]> git.saurik.com Git - wxWidgets.git/commitdiff
some small fixes to make it work a bit again under MSW:
authorVadim Zeitlin <vadim@wxwidgets.org>
Sun, 6 Jun 1999 22:10:54 +0000 (22:10 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Sun, 6 Jun 1999 22:10:54 +0000 (22:10 +0000)
1. bg bitmap reenabled
2. wxCaret positioning reenabled

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2681 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

user/wxLayout/wxLayout.cpp
user/wxLayout/wxllist.cpp
user/wxLayout/wxllist.h
user/wxLayout/wxlwindow.cpp
user/wxLayout/wxlwindow.h

index b020e28f69c03d635652717abfc7dc392ce35d46..b4cd05060cd1ddc487ff046642c510cb8e67bcfb 100644 (file)
@@ -206,7 +206,7 @@ MyFrame::AddSampleText(wxLayoutList *llist)
    llist->Insert("And here the source for the test program:");
    llist->LineBreak();
    llist->Insert("And here the source for the test program:");
    llist->Insert("And here the source for the test program:");
    llist->LineBreak();
    llist->Insert("And here the source for the test program:");
-#if 0
+
    char buffer[1024];
    FILE *in = fopen("wxLayout.cpp","r");
    if(in)
    char buffer[1024];
    FILE *in = fopen("wxLayout.cpp","r");
    if(in)
@@ -219,7 +219,7 @@ MyFrame::AddSampleText(wxLayoutList *llist)
          wxLayoutImportText(llist, buffer);
       }
    }
          wxLayoutImportText(llist, buffer);
       }
    }
-#endif
+
    llist->MoveCursorTo(wxPoint(0,0));
    m_lwin->SetDirty();
    m_lwin->Refresh();
    llist->MoveCursorTo(wxPoint(0,0));
    m_lwin->SetDirty();
    m_lwin->Refresh();
@@ -331,6 +331,8 @@ void MyFrame::OnCommand( wxCommandEvent &event )
                          "This is a text\n"
                          "with embedded line\n"
                          "breaks.\n");
                          "This is a text\n"
                          "with embedded line\n"
                          "breaks.\n");
+      m_lwin->SetDirty();
+      m_lwin->Refresh();
       break;
 
    case ID_URL_TEST:
       break;
 
    case ID_URL_TEST:
index 5bc76fe34734188adcf66c662ae066927ad1eb63..a52aa0b89ddaf468f29f0dcd9460075f221c434a 100644 (file)
   Draw()   just draws them with the current settings, without
            re-layout()ing them again
 
   Draw()   just draws them with the current settings, without
            re-layout()ing them again
 
-  Each line has its own wxLayoutStyleInfo structure which gets updated 
-  from within Layout(). Thanks to this, we don't need to re-layout all 
+  Each line has its own wxLayoutStyleInfo structure which gets updated
+  from within Layout(). Thanks to this, we don't need to re-layout all
   lines if we want to draw one, but can just use its styleinfo to set
   the right font.
   lines if we want to draw one, but can just use its styleinfo to set
   the right font.
-  
+
  */
 
 #ifdef __GNUG__
  */
 
 #ifdef __GNUG__
 #define WXLO_CURSORCHAR   "E"
 /** @name Helper functions */
 //@{
 #define WXLO_CURSORCHAR   "E"
 /** @name Helper functions */
 //@{
+/// allows me to compare to wxPoints
+bool operator <=(wxPoint const &p1, wxPoint const &p2)
+{
+   return p1.y < p2.y || (p1.y == p2.y && p1.x <= p2.x);
+}
+
 /*
   The following STAY HERE until we have a working wxGTK again!!!
 */
 /*
   The following STAY HERE until we have a working wxGTK again!!!
 */
+#ifdef __WXGTK__
 /// allows me to compare to wxPoints
 bool operator ==(wxPoint const &p1, wxPoint const &p2)
 {
 /// allows me to compare to wxPoints
 bool operator ==(wxPoint const &p1, wxPoint const &p2)
 {
@@ -119,11 +126,12 @@ wxPoint & operator += (wxPoint &p1, wxPoint const &p2)
    p1.y += p2.y;
    return p1;
 }
    p1.y += p2.y;
    return p1;
 }
+#endif // wxGTK
 
 /// allows me to compare to wxPoints
 
 /// allows me to compare to wxPoints
-bool operator <=(wxPoint const &p1, wxPoint const &p2)
+bool operator>(wxPoint const &p1, wxPoint const &p2)
 {
 {
-   return p1.y < p2.y || (p1.y == p2.y && p1.x <= p2.x);
+   return !(p1 <= p2);
 }
 
 /// grows a wxRect so that it includes the given point
 }
 
 /// grows a wxRect so that it includes the given point
@@ -251,12 +259,14 @@ wxLayoutObjectText::Draw(wxDC &dc, wxPoint const &coords,
                          wxLayoutList *wxllist,
                          CoordType begin, CoordType end)
 {
                          wxLayoutList *wxllist,
                          CoordType begin, CoordType end)
 {
-   if( end <= 0)
+   if( end <= 0 )
+   {
+      // draw the whole object normally
       dc.DrawText(m_Text, coords.x, coords.y-m_Top);
       dc.DrawText(m_Text, coords.x, coords.y-m_Top);
+   }
    else
    {
       // highlight the bit between begin and len
    else
    {
       // highlight the bit between begin and len
-      wxString str;
       CoordType
          xpos = coords.x,
          ypos = coords.y-m_Top;
       CoordType
          xpos = coords.x,
          ypos = coords.y-m_Top;
@@ -266,7 +276,7 @@ wxLayoutObjectText::Draw(wxDC &dc, wxPoint const &coords,
       if( end > (signed)m_Text.Length() )
          end = m_Text.Length();
 
       if( end > (signed)m_Text.Length() )
          end = m_Text.Length();
 
-      str = m_Text.Mid(0, begin);
+      wxString str = m_Text.Mid(0, begin);
       dc.DrawText(str, xpos, ypos);
       dc.GetTextExtent(str, &width, &height, &descent);
       xpos += width;
       dc.DrawText(str, xpos, ypos);
       dc.GetTextExtent(str, &width, &height, &descent);
       xpos += width;
@@ -799,7 +809,7 @@ wxLayoutLine::Insert(CoordType xpos, wxLayoutObject *obj)
    // to update their styleinfo structure.
    if(obj->GetType() == WXLO_TYPE_CMD)
       MarkNextDirty(-1);
    // to update their styleinfo structure.
    if(obj->GetType() == WXLO_TYPE_CMD)
       MarkNextDirty(-1);
-   
+
    CoordType offset;
    wxLOiterator i = FindObject(xpos, &offset);
    if(i == NULLIT)
    CoordType offset;
    wxLOiterator i = FindObject(xpos, &offset);
    if(i == NULLIT)
@@ -1056,7 +1066,7 @@ wxLayoutLine::Draw(wxDC &dc,
 }
 
 /*
 }
 
 /*
-  This function does all the recalculation, that is, it should only be 
+  This function does all the recalculation, that is, it should only be
   called from within wxLayoutList::Layout(), as it uses the current
   list's styleinfo and updates it.
 */
   called from within wxLayoutList::Layout(), as it uses the current
   list's styleinfo and updates it.
 */
@@ -2079,7 +2089,6 @@ wxLayoutList::UpdateCursorScreenPos(wxDC &dc,
                                     bool resetCursorMovedFlag,
                                     const wxPoint& translate)
 {
                                     bool resetCursorMovedFlag,
                                     const wxPoint& translate)
 {
-   return;
    wxCHECK_RET( m_CursorLine, "no cursor line" );
 
    if ( m_movedCursor )
    wxCHECK_RET( m_CursorLine, "no cursor line" );
 
    if ( m_movedCursor )
@@ -2092,7 +2101,7 @@ wxLayoutList::UpdateCursorScreenPos(wxDC &dc,
                            m_CursorPos.x,
                            /* suppress update */ true);
       ApplyStyle(SiBackup, dc); // restore it
                            m_CursorPos.x,
                            /* suppress update */ true);
       ApplyStyle(SiBackup, dc); // restore it
-      
+
       if ( resetCursorMovedFlag )
       {
 #ifdef WXLAYOUT_USE_CARET
       if ( resetCursorMovedFlag )
       {
 #ifdef WXLAYOUT_USE_CARET
@@ -2135,8 +2144,6 @@ wxLayoutList::Layout(wxDC &dc, CoordType bottom, bool forceAll)
    // This one we always Layout() to get the current cursor
    // coordinates on the screen:
    m_CursorLine->MarkDirty();
    // This one we always Layout() to get the current cursor
    // coordinates on the screen:
    m_CursorLine->MarkDirty();
-   // FIXME this is completely wrong - we should start by first *visible* line
-   //       (and stop on the last one) instead of looping over all lines!!
    bool wasDirty = false;
    wxLayoutLine *line = m_FirstLine;
    while(line)
    bool wasDirty = false;
    wxLayoutLine *line = m_FirstLine;
    while(line)
@@ -2352,41 +2359,60 @@ wxLayoutList::SetUpdateRect(CoordType x, CoordType y)
 }
 
 void
 }
 
 void
-wxLayoutList::StartSelection(wxPoint cpos)
+wxLayoutList::StartSelection(const wxPoint& cposOrig, const wxPoint& spos)
 {
 {
-   if(cpos.x == -1)
+   wxPoint cpos(cposOrig);
+   if ( cpos.x == -1 )
       cpos = m_CursorPos;
    WXLO_DEBUG(("Starting selection at %ld/%ld", cpos.x, cpos.y));
    m_Selection.m_CursorA = cpos;
    m_Selection.m_CursorB = cpos;
       cpos = m_CursorPos;
    WXLO_DEBUG(("Starting selection at %ld/%ld", cpos.x, cpos.y));
    m_Selection.m_CursorA = cpos;
    m_Selection.m_CursorB = cpos;
+   m_Selection.m_ScreenA = spos;
+   m_Selection.m_ScreenB = spos;
    m_Selection.m_selecting = true;
    m_Selection.m_valid = false;
 }
 
 void
    m_Selection.m_selecting = true;
    m_Selection.m_valid = false;
 }
 
 void
-wxLayoutList::ContinueSelection(wxPoint cpos)
+wxLayoutList::ContinueSelection(const wxPoint& cposOrig, const wxPoint& spos)
 {
 {
+   wxPoint cpos(cposOrig);
    if(cpos.x == -1)
       cpos = m_CursorPos;
    if(cpos.x == -1)
       cpos = m_CursorPos;
+
    wxASSERT(m_Selection.m_selecting == true);
    wxASSERT(m_Selection.m_valid == false);
    WXLO_DEBUG(("Continuing selection at %ld/%ld", cpos.x, cpos.y));
    wxASSERT(m_Selection.m_selecting == true);
    wxASSERT(m_Selection.m_valid == false);
    WXLO_DEBUG(("Continuing selection at %ld/%ld", cpos.x, cpos.y));
-   if(m_Selection.m_CursorB <= cpos)
+
+   if ( m_Selection.m_CursorB <= cpos )
+   {
+      m_Selection.m_ScreenB = spos;
       m_Selection.m_CursorB = cpos;
       m_Selection.m_CursorB = cpos;
+   }
    else
    else
+   {
+      m_Selection.m_ScreenA = spos;
       m_Selection.m_CursorA = cpos;
       m_Selection.m_CursorA = cpos;
-   // We always want m_CursorA <= m_CursorB!
-   if(! (m_Selection.m_CursorA <= m_Selection.m_CursorB))
+   }
+
+   // we always want m_CursorA <= m_CursorB!
+   if( m_Selection.m_CursorA > m_Selection.m_CursorB )
    {
    {
+      // exchange the start/end points
       wxPoint help = m_Selection.m_CursorB;
       m_Selection.m_CursorB = m_Selection.m_CursorA;
       m_Selection.m_CursorA = help;
       wxPoint help = m_Selection.m_CursorB;
       m_Selection.m_CursorB = m_Selection.m_CursorA;
       m_Selection.m_CursorA = help;
+
+      help = m_Selection.m_ScreenB;
+      m_Selection.m_ScreenB = m_Selection.m_ScreenA;
+      m_Selection.m_ScreenA = help;
    }
 }
 
 void
    }
 }
 
 void
-wxLayoutList::EndSelection(wxPoint cpos)
+wxLayoutList::EndSelection(const wxPoint& cposOrig, const wxPoint& spos)
 {
 {
+   wxPoint cpos(cposOrig);
    if(cpos.x == -1)
       cpos = m_CursorPos;
    ContinueSelection(cpos);
    if(cpos.x == -1)
       cpos = m_CursorPos;
    ContinueSelection(cpos);
@@ -2395,6 +2421,27 @@ wxLayoutList::EndSelection(wxPoint cpos)
    m_Selection.m_valid = true;
 }
 
    m_Selection.m_valid = true;
 }
 
+void
+wxLayoutList::DiscardSelection()
+{
+   if ( !HasSelection() )
+      return;
+
+   m_Selection.m_valid =
+   m_Selection.m_selecting = false;
+
+   // invalidate the area which was previousle selected - and which is not
+   // selected any more
+   if ( m_Selection.HasValidScreenCoords() )
+   {
+      SetUpdateRect(m_Selection.m_ScreenA);
+      SetUpdateRect(m_Selection.m_ScreenB);
+   }
+   else
+   {
+       // TODO
+   }
+}
 
 bool
 wxLayoutList::IsSelecting(void)
 
 bool
 wxLayoutList::IsSelecting(void)
@@ -2405,10 +2452,10 @@ wxLayoutList::IsSelecting(void)
 bool
 wxLayoutList::IsSelected(const wxPoint &cursor)
 {
 bool
 wxLayoutList::IsSelected(const wxPoint &cursor)
 {
-   if(! m_Selection.m_valid && ! m_Selection.m_selecting)
+   if ( !HasSelection() )
       return false;
       return false;
-   return m_Selection.m_CursorA <= cursor
-      && cursor <= m_Selection.m_CursorB;
+
+   return m_Selection.m_CursorA <= cursor && cursor <= m_Selection.m_CursorB;
 }
 
 
 }
 
 
index 668360ad26282f34e85b4594100654061458ad46..5bc7fbae19ba4a3ca72de5bdb195bf8761fcc7dd 100644 (file)
@@ -1025,15 +1025,24 @@ public:
       }
    //@}
 
       }
    //@}
 
-   /// Begin selecting text.
-   void StartSelection(wxPoint cpos = wxPoint(-1,-1));
+   /// Begin selecting text
+   void StartSelection(const wxPoint& cpos = wxPoint(-1,-1),
+                       const wxPoint& spos = wxPoint(-1,-1));
    // Continue selecting text
    // Continue selecting text
-   void ContinueSelection(wxPoint cpos = wxPoint(-1,-1));
+   void ContinueSelection(const wxPoint& cpos = wxPoint(-1,-1),
+                          const wxPoint& spos = wxPoint(-1,-1));
    /// End selecting text.
    /// End selecting text.
-   void EndSelection(wxPoint cpos = wxPoint(-1,-1));
+   void EndSelection(const wxPoint& cpos = wxPoint(-1,-1),
+                     const wxPoint& spos = wxPoint(-1,-1));
+   /// Discard the current selection
+   void DiscardSelection();
    /// Are we still selecting text?
    bool IsSelecting(void);
    /// Are we still selecting text?
    bool IsSelecting(void);
+   /// Is the given point (text coords) selected?
    bool IsSelected(const wxPoint &cursor);
    bool IsSelected(const wxPoint &cursor);
+   /// Do we have a non null selection?
+   bool HasSelection() const
+      { return m_Selection.m_valid || m_Selection.m_selecting; }
 
    /** Return the selection as a wxLayoutList.
        @param invalidate if true, the selection will be invalidated after this and can no longer be used.
 
    /** Return the selection as a wxLayoutList.
        @param invalidate if true, the selection will be invalidated after this and can no longer be used.
@@ -1066,6 +1075,7 @@ public:
 #ifdef WXLAYOUT_DEBUG
    void Debug(void);
 #endif
 #ifdef WXLAYOUT_DEBUG
    void Debug(void);
 #endif
+
 private:
    /// Clear the list.
    void InternalClear(void);
 private:
    /// Clear the list.
    void InternalClear(void);
@@ -1094,12 +1104,22 @@ private:
 #endif // WXLAYOUT_USE_CARET
    //@}
 
 #endif // WXLAYOUT_USE_CARET
    //@}
 
-   /// A structure for the selection.
+   /// selection.state and begin/end coordinates
    struct Selection
    {
       Selection() { m_valid = false; m_selecting = false; }
       bool m_valid;
       bool m_selecting;
    struct Selection
    {
       Selection() { m_valid = false; m_selecting = false; }
       bool m_valid;
       bool m_selecting;
+
+      // returns true if we already have the screen coordinates of the
+      // selection start and end
+      bool HasValidScreenCoords() const
+          { return m_ScreenA.x != -1 && m_ScreenB.x != -1; }
+
+      // the start and end of the selection coordinates in pixels
+      wxPoint m_ScreenA, m_ScreenB;
+
+      // these coordinates are in text positions, not in pixels
       wxPoint m_CursorA, m_CursorB;
    } m_Selection;
    /** @name Font parameters. */
       wxPoint m_CursorA, m_CursorB;
    } m_Selection;
    /** @name Font parameters. */
index 6d9bef9c8f77f7cabfebaca6b27d077d657007bc..5df8db37c5f5e1e9af0a2032300fbf910b339d08 100644 (file)
@@ -101,11 +101,17 @@ END_EVENT_TABLE()
 // ===========================================================================
 
 /* LEAVE IT HERE UNTIL WXGTK WORKS AGAIN!!! */
 // ===========================================================================
 
 /* LEAVE IT HERE UNTIL WXGTK WORKS AGAIN!!! */
+#ifdef __WXGTK__
 /// allows me to compare to wxPoints
 static bool operator != (wxPoint const &p1, wxPoint const &p2)
 {
    return p1.x != p2.x || p1.y != p2.y;
 }
 /// allows me to compare to wxPoints
 static bool operator != (wxPoint const &p1, wxPoint const &p2)
 {
    return p1.x != p2.x || p1.y != p2.y;
 }
+#endif // __WXGTK__
+
+#ifndef wxWANTS_CHARS
+   #define wxWANTS_CHARS 0
+#endif
 
 // ----------------------------------------------------------------------------
 // wxLayoutWindow
 
 // ----------------------------------------------------------------------------
 // wxLayoutWindow
@@ -115,9 +121,8 @@ wxLayoutWindow::wxLayoutWindow(wxWindow *parent)
               : wxScrolledWindow(parent, -1,
                                  wxDefaultPosition, wxDefaultSize,
                                  wxHSCROLL | wxVSCROLL |
               : wxScrolledWindow(parent, -1,
                                  wxDefaultPosition, wxDefaultSize,
                                  wxHSCROLL | wxVSCROLL |
-                                 wxBORDER
-                                 //FIXME |wxWANTS_CHARS
-                 )
+                                 wxBORDER |
+                                 wxWANTS_CHARS)
 {
    SetStatusBar(NULL); // don't use statusbar
    m_Editable = false;
 {
    SetStatusBar(NULL); // don't use statusbar
    m_Editable = false;
@@ -240,31 +245,41 @@ wxLayoutWindow::OnMouse(int eventId, wxMouseEvent& event)
       {
          if(! m_Selecting)
          {
       {
          if(! m_Selecting)
          {
-            m_llist->StartSelection();
+            m_llist->StartSelection(wxPoint(-1, -1), m_ClickPosition);
             m_Selecting = true;
             m_Selecting = true;
-            DoPaint(FALSE);
+            DoPaint();  // TODO: we don't have to redraw everything!
          }
          else
          {
          }
          else
          {
-            m_llist->ContinueSelection(cursorPos);
-            DoPaint(FALSE);
+            m_llist->ContinueSelection(cursorPos, m_ClickPosition);
+            DoPaint();  // TODO: we don't have to redraw everything!
          }
       }
       if(m_Selecting && ! event.LeftIsDown())
       {
          }
       }
       if(m_Selecting && ! event.LeftIsDown())
       {
-         m_llist->EndSelection(cursorPos);
+         m_llist->EndSelection(cursorPos, m_ClickPosition);
          m_Selecting = false;
          m_Selecting = false;
-         DoPaint(FALSE);
+         DoPaint();     // TODO: we don't have to redraw everything!
       }
       }
-      if(u) u->DecRef();
-      return;
-   }
 
 
-   // always move cursor to mouse click:
-   if(eventId == WXLOWIN_MENU_LCLICK)
+      if ( u )
+      {
+         u->DecRef();
+         u = NULL;
+      }
+   }
+   else if(eventId == WXLOWIN_MENU_LCLICK)
    {
    {
+      // always move cursor to mouse click:
       m_llist->MoveCursorTo(cursorPos);
 
       m_llist->MoveCursorTo(cursorPos);
 
+      // clicking a mouse removes the selection
+      if ( m_llist->HasSelection() )
+      {
+         m_llist->DiscardSelection();
+         DoPaint();     // TODO: we don't have to redraw everything!
+      }
+
       // Calculate where the top of the visible area is:
       int x0, y0;
       ViewStart(&x0,&y0);
       // Calculate where the top of the visible area is:
       int x0, y0;
       ViewStart(&x0,&y0);
@@ -285,35 +300,35 @@ wxLayoutWindow::OnMouse(int eventId, wxMouseEvent& event)
 #endif // 0
 
 #ifdef __WXGTK__
 #endif // 0
 
 #ifdef __WXGTK__
-      DoPaint(FALSE); // DoPaint suppresses flicker under GTK
+      DoPaint(); // DoPaint suppresses flicker under GTK
 #endif // wxGTK
    }
 
 #endif // wxGTK
    }
 
-   if(!m_doSendEvents) // nothing to do
+   // notify about mouse events?
+   if( m_doSendEvents )
    {
    {
-      if(u) u->DecRef();
-      return;
-   }
+      // only do the menu if activated, editable and not on a clickable object
+      if(eventId == WXLOWIN_MENU_RCLICK
+         && IsEditable()
+         && (! obj || u == NULL))
+      {
+         PopupMenu(m_PopupMenu, m_ClickPosition.x, m_ClickPosition.y);
+         if(u) u->DecRef();
+         return;
+      }
 
 
-   // only do the menu if activated, editable and not on a clickable object
-   if(eventId == WXLOWIN_MENU_RCLICK
-      && IsEditable()
-      && (! obj || u == NULL))
-   {
-      PopupMenu(m_PopupMenu, m_ClickPosition.x, m_ClickPosition.y);
-      if(u) u->DecRef();
-      return;
+      // find the object at this position
+      if(obj)
+      {
+         wxCommandEvent commandEvent(wxEVT_COMMAND_MENU_SELECTED, eventId);
+         commandEvent.SetEventObject( this );
+         commandEvent.SetClientData((char *)obj);
+         GetEventHandler()->ProcessEvent(commandEvent);
+      }
    }
 
    }
 
-   if(u) u->DecRef();
-   // find the object at this position
-   if(obj)
-   {
-      wxCommandEvent commandEvent(wxEVT_COMMAND_MENU_SELECTED, eventId);
-      commandEvent.SetEventObject( this );
-      commandEvent.SetClientData((char *)obj);
-      GetEventHandler()->ProcessEvent(commandEvent);
-   }
+   if( u )
+      u->DecRef();
 }
 
 /*
 }
 
 /*
@@ -669,9 +684,9 @@ wxLayoutWindow::InternalPaint(const wxRect *updateRect)
    m_memDC->SetPen(wxPen(m_llist->GetDefaultStyleInfo().GetBGColour(),
                          0,wxTRANSPARENT));
    m_memDC->SetLogicalFunction(wxCOPY);
    m_memDC->SetPen(wxPen(m_llist->GetDefaultStyleInfo().GetBGColour(),
                          0,wxTRANSPARENT));
    m_memDC->SetLogicalFunction(wxCOPY);
+   m_memDC->Clear();
 
 
-   /* Either fill the background with the background bitmap, or clear
-      it. */
+   // fill the background with the background bitmap
    if(m_BGbitmap)
    {
       CoordType
    if(m_BGbitmap)
    {
       CoordType
@@ -683,15 +698,8 @@ wxLayoutWindow::InternalPaint(const wxRect *updateRect)
             m_memDC->DrawBitmap(*m_BGbitmap, x, y);
       m_memDC->SetBackgroundMode(wxTRANSPARENT);
    }
             m_memDC->DrawBitmap(*m_BGbitmap, x, y);
       m_memDC->SetBackgroundMode(wxTRANSPARENT);
    }
-   else
-   {
-      // clear the background: (must not be done if we use the update rectangle!)
-      m_memDC->SetBackgroundMode(wxSOLID);
-      m_memDC->DrawRectangle(0,0,x1, y1);
-   }
 
 
-   m_memDC->Clear();
-   /* This is the important bit: we tell the list to draw itself: */
+   // This is the important bit: we tell the list to draw itself
 #if WXLO_DEBUG_URECT
    if(updateRect)
    {
 #if WXLO_DEBUG_URECT
    if(updateRect)
    {
index f943c107736509766065f1e52b944aa95b4c8dff..7e4d0ce70fa1e2be36947ea95956f8714a817435 100644 (file)
@@ -89,7 +89,7 @@ public:
    inline int SetCursorVisibility(int visibility = -1)
       { int v =m_CursorVisibility;
       m_CursorVisibility = visibility; return v;}
    inline int SetCursorVisibility(int visibility = -1)
       { int v =m_CursorVisibility;
       m_CursorVisibility = visibility; return v;}
-   
+
    /// Pastes text from clipboard.
    void Paste(void);
    /** Copies selection to clipboard.
    /// Pastes text from clipboard.
    void Paste(void);
    /** Copies selection to clipboard.
@@ -102,14 +102,14 @@ public:
 
    bool Find(const wxString &needle,
              wxPoint * fromWhere = NULL);
 
    bool Find(const wxString &needle,
              wxPoint * fromWhere = NULL);
-   
+
    void EnablePopup(bool enable = true) { m_DoPopupMenu = enable; }
 
    /** Sets the wrap margin.
        @param margin set this to 0 to disable it
    */
    void SetWrapMargin(CoordType margin) { m_WrapMargin = margin; }
    void EnablePopup(bool enable = true) { m_DoPopupMenu = enable; }
 
    /** Sets the wrap margin.
        @param margin set this to 0 to disable it
    */
    void SetWrapMargin(CoordType margin) { m_WrapMargin = margin; }
-   
+
    /** Redraws the window.
        Internally, this stores the parameter and calls a refresh on
        wxMSW, draws directly on wxGTK.
    /** Redraws the window.
        Internally, this stores the parameter and calls a refresh on
        wxMSW, draws directly on wxGTK.
@@ -172,7 +172,8 @@ public:
          m_StatusBar = bar; m_StatusFieldLabel = labelfield;
          m_StatusFieldCursor = cursorfield;
       }
          m_StatusBar = bar; m_StatusFieldLabel = labelfield;
          m_StatusFieldCursor = cursorfield;
       }
-protected:   
+
+protected:
    /// generic function for mouse events processing
    void OnMouse(int eventId, wxMouseEvent& event);
    /// as the name says
    /// generic function for mouse events processing
    void OnMouse(int eventId, wxMouseEvent& event);
    /// as the name says