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