BUGS
=====================================================================
-- Delete():
- 1 - occasionally delete deletes too much, maybe when at begin of
- line?
- 2 - when in an empty line, Delete() doesn't always merge lines
- 3 - line numbers aren't updated properly, may be related to 2.
- 4 - deleting lines leaves later parts of the list unaffected
- --> just redrawing at least the next two lines doesn't seem
- enough, strange, don't positions change?
- dmalloc shows duplicate deletion after merging two lines and
deleting the second half
+- word wrap for objects with lots of non-space needs to search in positive
+ direction if begin of first object is reached
+
+ - delete in empty line doesn't always work
+ - fix initial scrollbar sizes
+ - fix horiz scrollbar size
+
+
TODO
=====================================================================
-- Add word wrap to wxlwindow/wxllist.
-- Cursor to mouseclick
-- Focus feedback for cursor
-- Selections
+Selections:
+ - moving in negative direction doesn't work
+ - selection state not properly reset, only works once
+ - selecting non-text objects is strange
+
+wxllist::GetSize() requires extra Layout() call, which should not be
+necessary. Find out why this is so.
+YES, it is necessary, because the normal drawing only happens within
+the visible window.
+I must find a way to re-Layout() objects. This is only required after
+their sizes change:
+- Just mark them as dirty:
+ - mark current line as dirty when editing it (so width gets recalculated)
+ - mark all following lines as dirty when changing font settings
+ - Let Layout() work only on the dirty lines.
+ !!! GOOD: this can also be used to recalculate the wxLayoutObjectCmds'
+ fonts! :-)
+
+- searching for text
+- moving cursor in non-edit mode
+- cursor screen positioning ignores font sizes once again :-(
+ --> UpdateCursorScreenPos() cannot work as it ignores previous font formatting commands.
+ Either draw cursor when drawing text, or wait for new wxLayoutObjectCmd to be fully
+ implemented.
+
+RECENTLY FIXED (?)
+ - fix(simplify) cursor size calculation
+ - delete in empty line doesn't work
+ - fix horiz scrollbar size OK here, a Mahogany problem?
+ - with a large number of lines, wraps to top of scrolled window
+ --> check where the problem lies, add a debug function showing all coordinates
+
+- update rectangle (needs support in wxllist and wxWindows)
+ --> needs a bit of fixing still
+ some code bits are commented out in wxlwindow.cpp
+ offset handling seems a bit dodgy, white shadow to top/left of cursor
+
-- More optimisations
+ - replacement of llist in window
+ - undo
+ - font optimisations(!)
+ - occasionally wraps lines wongly (twice) ??
+ - UNDO
+ later:
+ - DragNDrop ... broken in wxGTK at present
+ - cut&paste ... broken in wxGTK at present, Paste already implemented
+ - Selections
+- More optimisations:
+ - let each line have a pointer to the last layoutcommand and let that
+ one only store the settings that changed, then we no longer need to
+ recalculate all the lines
+