]>
Commit | Line | Data |
---|---|---|
5d7836c4 JS |
1 | |
2 | wxRichTextCtrl To-Do List | |
3 | ========================= | |
4 | ||
5 | ||
6 | BUGS: | |
7 | ===== | |
8 | ||
9 | - Setting selection with mouse sometimes causes negative selection | |
10 | lengths. See wxRichTextCtrl::ExtendSelection. | |
11 | - Word forward can miss first word on line. | |
12 | - Doesn't correctly undo deletion of bulleted paragraphs. | |
13 | ||
14 | ||
15 | IMPROVEMENTS: | |
16 | ============= | |
17 | ||
18 | - Add bakefiles, choose location for further development - wxCode or wxWidgets. | |
19 | - Document. | |
20 | - Rework scrolling code so (a) can scroll one line at a time (uneven | |
21 | scroll increments and (b) can derive from wxTextCtrl if this is desirable. | |
22 | - Implement auto-scroll when selecting. | |
23 | - Implement auto-wrap option (currently it's always on) with option for | |
24 | horizontal scrollbars. | |
25 | - Implement overwrite mode. | |
26 | - Collapse multiple keystrokes into single undo command. | |
27 | - Unicode adaptation (e.g. in OnChar). | |
28 | - Implement "Paste Special". | |
29 | - Pass wxRichTextDrawContext to Draw and Layout with data such as | |
30 | selection colour. | |
31 | - Have virtual functions for customisation, e.g. CreateTextObject, CreateImageObject, | |
32 | CreateParagraph object. Should be a separate factory object that can be | |
33 | plugged in. | |
34 | - Implement more event generation. | |
35 | - Implement roman numerals in bullet points. | |
36 | - Make as wxTextCtrl-compatible as possible. | |
37 | - Allow use as single-line edit control, so potentially the class can | |
38 | replace both wxUniversal wxTextCtrl implementations. | |
39 | - Adjust behaviour on each platform to conform to native standards. | |
40 | This might be a run-time option. | |
41 | - Custom attributes (simply add an integer field to wxRichTextAttr and | |
42 | maybe wxTextAttrEx). | |
43 | - Improve image support: margins, resizing, storage of image as native format | |
44 | data (e.g. JPEG) so no lossiness. | |
45 | - Ensure read-only mode works. | |
46 | - Make more efficient, e.g. don't try to draw lines outside the client area; | |
47 | don't store whole paragraph in Undo stack if just changing the paragraph's style. | |
48 | - Allow specification of word separators, and whether hyphenation will be done | |
49 | (language-dependent). | |
50 | ||
51 | ||
52 | API ISSUES: | |
53 | =========== | |
54 | ||
55 | - Consider whether to merge wxTextAttrEx with wxTextAttr. | |
56 | - Implementation-independent API for traversing rich text controls, e.g. getting spans | |
57 | of text, retrieving images, etc. | |
58 | - FindString: search for a substring within a range, returning a range. Will make it | |
59 | easy to add styles to text you just added. | |
60 | - WriteString, WriteImage should really return a range. However, can query insertion point. | |
61 | - Bullets: suggest we are able to specify symbols in a specific named font | |
62 | (maybe keep mapping from name to actual symbol font in style manager). | |
63 | We wouldn't want to store a wxFont with each paragraph, just for the symbol, | |
64 | since this will be inefficient. If no font is specified, use the font | |
65 | for this paragraph. | |
66 | Also allow bitmaps to be specified for bullets. | |
67 | - For adding floating text boxes and images, suggest e.g. | |
68 | bool wxRichTextBuffer::AddFloatingImage(long paragraphPosition, const wxImage& image); | |
69 | ||
70 | ||
71 | FEATURES: | |
72 | ========= | |
73 | ||
74 | - XML I/O (a prototype implementation done, maybe the syntax/verbosity could be improved) | |
75 | - HTML (I)/O and clipboard support | |
76 | - RTF (I)/O and clipboard support | |
77 | - OpenOffice.org I/O | |
78 | - C++ output, i.e. generate set of buffer commands from a buffer | |
79 | so that the data can be included in an app, possibly with translation. | |
80 | - Line breaks. How will we implement these? Suggest special non-ASCII code. | |
81 | - Hard (non-breaking) spaces. Insert special code in text string. Shift-Return. | |
82 | - Borders on paragraphs, with special attention to how they join up. | |
83 | - Bitmap bullets. | |
84 | - Tab stops, with ruler display. | |
85 | - Rules (lines). | |
86 | - Hyperlinks. | |
87 | - Ready-made find and replace implementation | |
88 | - Ready-made toolbars, standard identifiers. | |
89 | - Floating text boxes and images, with appropriate wrapping: have a separate list of | |
90 | these, and when formatting each line, simply restrict the available space accordingly. | |
91 | Boxes can optionally be tied to a paragraph so they move relative to it (may need to introduce | |
92 | paragraph identifiers for that). | |
93 | - Set of convenience controls and dialogs including wxRichTextStyleListBox, | |
94 | wxRichTextParagraphFormattingDialog, wxRichTextStyleEditorDialog, | |
95 | wxRichTextBulletDialog, wxRichTextInsertSymbolDialog, wxRichTextTabsDialog | |
96 | (also displayed as a page on wxRichTextParagraphFormattingDialog), | |
97 | - Template manager. | |
98 | ||
99 | - ADVANCED: Implement tables. This is a kind of paragraph that knows how to lay | |
100 | out a 2D grid of paragraph layout boxes. A few assumptions | |
101 | about the hierarchy will need correcting but in general, paragraph | |
102 | layout is self-contained and should just work within table cells. | |
103 | - ADVANCED: Implement printing, including headers and footers. | |
104 | - ADVANCED: Implement page view mode where pagination is shown while editing. | |
105 | - ADVANCED: Field codes that can be hidden/shown: for example, cross-references, | |
106 | HTML links, page number, heading number, etc. | |
107 | - ADVANCED: Implement justification, by distributing space over the line (draw one | |
108 | word at a time but store in the usual way). | |
109 | - ADVANCED: Implement headings. | |
110 | - ADVANCED: Zoom. | |
111 | - ADVANCED: Versioning and markup facility (for e.g. collaboration). | |
112 | - ADVANCED: Columns. | |
113 | - ADVANCED: Table of contents, index. | |
114 | - ADVANCED: Autocorrect. | |
115 | ||
116 | ||
117 | DEMO: | |
118 | ===== | |
119 | ||
120 | - Drop-down lists for style, face, font size. | |
121 | - Rework formatting icons. | |
122 |