Added wxRichTextCtrl
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@35949 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
122
samples/richtext/todo.txt
Normal file
122
samples/richtext/todo.txt
Normal file
@@ -0,0 +1,122 @@
|
||||
|
||||
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.
|
||||
|
||||
|
||||
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.
|
||||
- Make more efficient, e.g. don't try to draw lines outside the client area;
|
||||
don't store whole paragraph in Undo stack if just changing the paragraph's style.
|
||||
- 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.
|
||||
|
Reference in New Issue
Block a user