=====================================================================
-- typedef wxCoords CoordType ??
-
- merge RecalulateXXX and Layout() into one
-- remove UpdateCursorScreenCoords() which is no longer needed
- UNDO!!
- replacement of llist in window
- - selection highlighting is a bit broken
+
Improve speed! (See layout problem below!)
- wxlwindow needs to shrink scrollbar range when window contents get removed
- The import of a private data object does not work yet, we need to get
the objects back from the string.
-- Changing default settings in Clear() or changing/inserting/deleting
- a wxLayoutObject needs to update the m_StyleInfo in all lines, only
- then can we start using that one.
- update rectangle (needs support in wxllist and wxWindows)
--> needs a bit of fixing still
offset handling seems a bit dodgy, white shadow to top/left of cursor
- DragNDrop
-
- Update docs, do full rtf/html editing.
- - Verify html export.
+ - Verify/fix html export.
height = m_CursorLine->GetHeight();
m_CursorLine = m_CursorLine->Break(m_CursorPos.x, this);
- m_CursorPos.y++;
+ if(m_CursorLine->GetPreviousLine() == NULL)
+ m_FirstLine = m_CursorLine;
+ if(m_CursorPos.x > 0)
+ m_CursorPos.y++;
m_CursorPos.x = 0;
// The following code will produce a height which is guaranteed to
PrepareDC( dc );
if ( eventId != WXLOWIN_MENU_MOUSEMOVE )
{
- // moving the mouse in a window shouldn't give it the focus!
+ // moving the mouse in a window shouldn't give it the focus!
+ // Oh yes! wxGTK's focus handling is so broken, that this is the
+ // only sensible way to go.
SetFocus();
}
if ( m_llist->HasSelection() )
{
m_llist->DiscardSelection();
+ m_Selecting = false;
DoPaint(); // TODO: we don't have to redraw everything!
}
}
#endif
+#if 0
// Force m_Selecting to be false if shift is no longer
// pressed. OnKeyUp() cannot catch all Shift-Up events.
- if(!event.ShiftDown())
+ if(m_Selecting && !event.ShiftDown())
+ {
m_Selecting = false;
-
+ m_llist->EndSelection();
+ }
+#endif
+
// If we deleted the selection here, we must not execute the
// deletion in Delete/Backspace handling.
bool deletedSelection = false;
// <Shift>+<arrow> starts selection
if ( IsDirectionKey(keyCode) )
{
- if ( !m_Selecting )
- {
- m_Selecting = true;
- m_llist->StartSelection();
- }
- else
+ if ( m_Selecting )
{
// just continue the old selection
- if(! event.ShiftDown() )
+ if( event.ShiftDown() )
+ m_llist->ContinueSelection();
+ else
+ {
m_llist->DiscardSelection();
+ m_Selecting = false;
+ }
+ }
+ else if( event.ShiftDown() )
+ {
+ m_Selecting = true;
+ m_llist->StartSelection();
}
+
}
// If needed, make cursor visible: