]> git.saurik.com Git - wxWidgets.git/commitdiff
fixes to work in M
authorVadim Zeitlin <vadim@wxwidgets.org>
Thu, 17 Jun 1999 21:40:49 +0000 (21:40 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Thu, 17 Jun 1999 21:40:49 +0000 (21:40 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2821 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

samples/richedit/wxLayout.cpp
samples/richedit/wxlwindow.cpp
samples/richedit/wxlwindow.h

index 679f83ad2373a8fc73a52464d9d191553e1b3a5b..c23c45580b9ff3c1f362c461f7ccb4c3707ab201 100644 (file)
@@ -125,6 +125,7 @@ MyFrame::MyFrame(void) :
    m_lwin->SetFocus();
    Clear();
 
+#if 0
    // create and set the background bitmap (this will result in a lattice)
    static const int sizeBmp = 10;
    wxBitmap *bitmap = new wxBitmap(sizeBmp, sizeBmp);
@@ -140,6 +141,7 @@ MyFrame::MyFrame(void) :
    dcMem.SelectObject( wxNullBitmap );
 
    m_lwin->SetBackgroundBitmap(bitmap);
+#endif // 0
 };
 
 void
@@ -236,7 +238,9 @@ MyFrame::AddSampleText(wxLayoutList *llist)
 void
 MyFrame::Clear(void)
 {
-   m_lwin->Clear(wxROMAN,16,wxNORMAL,wxNORMAL, false);
+   wxColour colBg(0, 255, 255);
+
+   m_lwin->Clear(wxROMAN,16,wxNORMAL,wxNORMAL, false, wxGREEN, &colBg);
 }
 
 
index 7793430eb5a4ff7fb43752044a5f8dae1cce7d3e..e767192d5cd8d7784826d553d4c160d9803c330d 100644 (file)
@@ -153,11 +153,6 @@ wxLayoutWindow::wxLayoutWindow(wxWindow *parent)
    m_bitmap = new wxBitmap(4,4);
    m_bitmapSize = wxPoint(4,4);
    m_llist = new wxLayoutList();
-#ifdef __WXMSW__
-   SetAutoDeleteSelection(true);
-#else
-   SetAutoDeleteSelection(false);
-#endif
    m_BGbitmap = NULL;
    m_ScrollToCursor = false;
    SetWrapMargin(0);
@@ -173,13 +168,20 @@ wxLayoutWindow::wxLayoutWindow(wxWindow *parent)
    wxCaret *caret = new wxCaret(this, 2, 20);
    SetCaret(caret);
    m_llist->SetCaret(caret);
-   caret->Show();
 #endif // WXLAYOUT_USE_CARET
 
+   m_HaveFocus = FALSE;
    m_HandCursor = FALSE;
    m_CursorVisibility = -1;
    SetCursor(wxCURSOR_IBEAM);
    SetDirty();
+
+   // at least under Windows, this should be the default behaviour
+#ifdef __WXMSW__
+   m_AutoDeleteSelection = TRUE;
+#else // !Windows
+   m_AutoDeleteSelection = FALSE;
+#endif // Win/!Win
 }
 
 wxLayoutWindow::~wxLayoutWindow()
@@ -206,7 +208,12 @@ wxLayoutWindow::Clear(int family,
    ResizeScrollbars(true);
    SetDirty();
    SetModified(false);
-   wxScrolledWindow::Clear();
+
+#ifdef WXLAYOUT_USE_CARET
+   if ( m_CursorVisibility == 1 )
+      GetCaret()->Show();
+#endif // WXLAYOUT_USE_CARET
+
    DoPaint((wxRect *)NULL);
 }
 
@@ -331,7 +338,7 @@ wxLayoutWindow::OnMouse(int eventId, wxMouseEvent& event)
 
              if(m_CursorVisibility != 0)
              {
-                // draw a thick cursor for    editable windows with focus
+                // draw a thick cursor for editable windows with focus
                 m_llist->DrawCursor(dc, m_HaveFocus && IsEditable(), offset);
              }
 
@@ -720,12 +727,13 @@ void
 wxLayoutWindow::DoPaint(const wxRect *updateRect)
 {
 #ifdef __WXGTK__
+   // Calling Refresh() causes bad flicker under wxGTK!!!
    InternalPaint(updateRect);
-#else // Causes bad flicker under wxGTK!!!
+#else
+   // shouldn't specify the update rectangle if it doesn't include all the
+   // changed locations - otherwise, they won't be repainted at all because
+   // the system clips the display to the update rect
    Refresh(FALSE); //, updateRect);
-
-   if ( !::UpdateWindow(GetHwnd()) )
-      wxLogLastError("UpdateWindow");
 #endif
 }
 
@@ -764,6 +772,7 @@ wxLayoutWindow::InternalPaint(const wxRect *updateRect)
       m_llist->Layout(dc);
       ResizeScrollbars();
    }
+
    /* Check whether the window has grown, if so, we need to reallocate
       the bitmap to be larger. */
    if(x1 > m_bitmapSize.x || y1 > m_bitmapSize.y)
@@ -779,7 +788,7 @@ wxLayoutWindow::InternalPaint(const wxRect *updateRect)
    }
 
    m_memDC->SetDeviceOrigin(0,0);
-   m_memDC->SetBrush(wxBrush(m_llist->GetDefaultStyleInfo().GetBGColour(),wxSOLID));
+   m_memDC->SetBackground(wxBrush(m_llist->GetDefaultStyleInfo().GetBGColour(),wxSOLID));
    m_memDC->SetPen(wxPen(m_llist->GetDefaultStyleInfo().GetBGColour(),
                          0,wxTRANSPARENT));
    m_memDC->SetLogicalFunction(wxCOPY);
@@ -855,7 +864,7 @@ wxLayoutWindow::InternalPaint(const wxRect *updateRect)
 
 #ifdef WXLAYOUT_USE_CARET
    // show the caret back after everything is redrawn
-   m_caret->Show();
+   GetCaret()->Show();
 #endif // WXLAYOUT_USE_CARET
 
    ResetDirty();
index 60bc28c06536494517b6efc23dcf41a67cce09ca..c0dbd638bb31e37b6bb8ad8aba56ed1c14081375 100644 (file)
@@ -39,6 +39,7 @@ enum
    WXLOWIN_MENU_DBLCLICK,
    WXLOWIN_MENU_MDOWN,
    WXLOWIN_MENU_LDOWN,
+   WXLOWIN_MENU_LCLICK = WXLOWIN_MENU_LDOWN,
    WXLOWIN_MENU_LUP,
    WXLOWIN_MENU_MOUSEMOVE,
    WXLOWIN_MENU_LAST = WXLOWIN_MENU_MOUSEMOVE
@@ -82,7 +83,8 @@ public:
          m_BGbitmap = bitmap;
       }
    /// Enable or disable editing, i.e. processing of keystrokes.
-   void SetEditable(bool toggle) { m_Editable = toggle; }
+   void SetEditable(bool toggle)
+      { m_Editable = toggle; SetCursorVisibility(toggle); }
    /// Query whether list can be edited by user.
    bool IsEditable(void) const { return m_Editable; }
    /** Sets cursor visibility, visible=1, invisible=0,