]> git.saurik.com Git - wxWidgets.git/commitdiff
MSW Caret is now destroyed and recreated when resized.
authorRobin Dunn <robin@alldunn.com>
Mon, 10 Jan 2000 23:01:19 +0000 (23:01 +0000)
committerRobin Dunn <robin@alldunn.com>
Mon, 10 Jan 2000 23:01:19 +0000 (23:01 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5335 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/caret.h
include/wx/msw/caret.h
src/msw/caret.cpp

index 5a2926285a3119e6559f4513da58fb926169a8f8..9e0f3d3ea85f788871997ec04bbab2dbe13ca840 100644 (file)
@@ -96,7 +96,11 @@ public:
     wxWindow *GetWindow() const { return (wxWindow *)m_window; }
 
         // change the size of the caret
-    void SetSize(int width, int height) { m_width = width; m_height = height; }
+    void SetSize(int width, int height) {
+        m_width = width;
+        m_height = height;
+        DoSize();
+    }
     void SetSize(const wxSize& size) { SetSize(size.x, size.y); }
 
 
@@ -155,6 +159,7 @@ protected:
     virtual void DoShow() = 0;
     virtual void DoHide() = 0;
     virtual void DoMove() = 0;
+    virtual void DoSize() { }
 
     // the common initialization
     void Init()
index 1ea59e6d784f133d59955d58fdc3090c952cbed6..29c00938e91aee9e7db34c12ff81ce80bba5120d 100644 (file)
@@ -52,6 +52,7 @@ protected:
     virtual void DoMove();
     virtual void DoShow();
     virtual void DoHide();
+    virtual void DoSize();
 
     // helper function which creates the system caret
     bool MSWCreateCaret();
index 5378bc1f8f898f423fd92939e6efb2d74b8bc449..cacc6801f5128bac973e5c83bb454e2b05f7a1a4 100644 (file)
@@ -160,3 +160,19 @@ void wxCaret::DoMove()
     }
     //else: we don't have caret right now, nothing to do (this does happen)
 }
+
+
+// ---------------------------------------------------------------------------
+// resizing the caret
+// ---------------------------------------------------------------------------
+
+void wxCaret::DoSize()
+{
+    if ( m_hasCaret )
+    {
+        m_hasCaret = FALSE;
+        CALL_CARET_API(DestroyCaret, ());
+        MSWCreateCaret();
+        DoMove();
+    }
+}