| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124 |
- wxRichTextCtrl To-Do List
- =========================
- BUGS:
- =====
- - Setting selection with mouse sometimes causes negative selection
- lengths. See wxRichTextCtrl::ExtendSelection.
- - Word forward can miss first word on line.
- - Doesn't correctly undo deletion of bulleted paragraphs.
- - Sizing doesn't restore the scroll position correctly (related
- to the use of buffer layout optimization and OnIdle full layout.)
- IMPROVEMENTS:
- =============
- - Add bakefiles, choose location for further development - wxCode or wxWidgets.
- - Document.
- - Rework scrolling code so (a) can scroll one line at a time (uneven
- scroll increments and (b) can derive from wxTextCtrl if this is desirable.
- - Implement auto-scroll when selecting.
- - Implement auto-wrap option (currently it's always on) with option for
- horizontal scrollbars.
- - Implement overwrite mode.
- - Collapse multiple keystrokes into single undo command.
- - Unicode adaptation (e.g. in OnChar).
- - Implement "Paste Special".
- - Pass wxRichTextDrawContext to Draw and Layout with data such as
- selection colour.
- - Have virtual functions for customisation, e.g. CreateTextObject, CreateImageObject,
- CreateParagraph object. Should be a separate factory object that can be
- plugged in.
- - Implement more event generation.
- - Implement roman numerals in bullet points.
- - Make as wxTextCtrl-compatible as possible.
- - Allow use as single-line edit control, so potentially the class can
- replace both wxUniversal wxTextCtrl implementations.
- - Adjust behaviour on each platform to conform to native standards.
- This might be a run-time option.
- - Custom attributes (simply add an integer field to wxRichTextAttr and
- maybe wxTextAttrEx).
- - Improve image support: margins, resizing, storage of image as native format
- data (e.g. JPEG) so no lossiness.
- - Ensure read-only mode works.
- - Don't store whole paragraph in Undo stack if just changing the paragraph's style.
- - Use binary chop to find character position for (x,y).
- - Allow specification of word separators, and whether hyphenation will be done
- (language-dependent).
- API ISSUES:
- ===========
- - Consider whether to merge wxTextAttrEx with wxTextAttr.
- - Implementation-independent API for traversing rich text controls, e.g. getting spans
- of text, retrieving images, etc.
- - FindString: search for a substring within a range, returning a range. Will make it
- easy to add styles to text you just added.
- - WriteString, WriteImage should really return a range. However, can query insertion point.
- - Bullets: suggest we are able to specify symbols in a specific named font
- (maybe keep mapping from name to actual symbol font in style manager).
- We wouldn't want to store a wxFont with each paragraph, just for the symbol,
- since this will be inefficient. If no font is specified, use the font
- for this paragraph.
- Also allow bitmaps to be specified for bullets.
- - For adding floating text boxes and images, suggest e.g.
- bool wxRichTextBuffer::AddFloatingImage(long paragraphPosition, const wxImage& image);
- FEATURES:
- =========
- - XML I/O (a prototype implementation done, maybe the syntax/verbosity could be improved)
- - HTML (I)/O and clipboard support
- - RTF (I)/O and clipboard support
- - OpenOffice.org I/O
- - C++ output, i.e. generate set of buffer commands from a buffer
- so that the data can be included in an app, possibly with translation.
- - Line breaks. How will we implement these? Suggest special non-ASCII code.
- - Hard (non-breaking) spaces. Insert special code in text string. Shift-Return.
- - Borders on paragraphs, with special attention to how they join up.
- - Bitmap bullets.
- - Tab stops, with ruler display.
- - Rules (lines).
- - Hyperlinks.
- - Ready-made find and replace implementation
- - Ready-made toolbars, standard identifiers.
- - Floating text boxes and images, with appropriate wrapping: have a separate list of
- these, and when formatting each line, simply restrict the available space accordingly.
- Boxes can optionally be tied to a paragraph so they move relative to it (may need to introduce
- paragraph identifiers for that).
- - Set of convenience controls and dialogs including wxRichTextStyleListBox,
- wxRichTextParagraphFormattingDialog, wxRichTextStyleEditorDialog,
- wxRichTextBulletDialog, wxRichTextInsertSymbolDialog, wxRichTextTabsDialog
- (also displayed as a page on wxRichTextParagraphFormattingDialog),
- - Template manager.
- - ADVANCED: Implement tables. This is a kind of paragraph that knows how to lay
- out a 2D grid of paragraph layout boxes. A few assumptions
- about the hierarchy will need correcting but in general, paragraph
- layout is self-contained and should just work within table cells.
- - ADVANCED: Implement printing, including headers and footers.
- - ADVANCED: Implement page view mode where pagination is shown while editing.
- - ADVANCED: Field codes that can be hidden/shown: for example, cross-references,
- HTML links, page number, heading number, etc.
- - ADVANCED: Implement justification, by distributing space over the line (draw one
- word at a time but store in the usual way).
- - ADVANCED: Implement headings.
- - ADVANCED: Zoom.
- - ADVANCED: Versioning and markup facility (for e.g. collaboration).
- - ADVANCED: Columns.
- - ADVANCED: Table of contents, index.
- - ADVANCED: Autocorrect.
- DEMO:
- =====
- - Drop-down lists for style, face, font size.
- - Rework formatting icons.
|