MSW Caret is now destroyed and recreated when resized.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5335 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -96,7 +96,11 @@ public:
|
|||||||
wxWindow *GetWindow() const { return (wxWindow *)m_window; }
|
wxWindow *GetWindow() const { return (wxWindow *)m_window; }
|
||||||
|
|
||||||
// change the size of the caret
|
// 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); }
|
void SetSize(const wxSize& size) { SetSize(size.x, size.y); }
|
||||||
|
|
||||||
|
|
||||||
@@ -155,6 +159,7 @@ protected:
|
|||||||
virtual void DoShow() = 0;
|
virtual void DoShow() = 0;
|
||||||
virtual void DoHide() = 0;
|
virtual void DoHide() = 0;
|
||||||
virtual void DoMove() = 0;
|
virtual void DoMove() = 0;
|
||||||
|
virtual void DoSize() { }
|
||||||
|
|
||||||
// the common initialization
|
// the common initialization
|
||||||
void Init()
|
void Init()
|
||||||
|
@@ -52,6 +52,7 @@ protected:
|
|||||||
virtual void DoMove();
|
virtual void DoMove();
|
||||||
virtual void DoShow();
|
virtual void DoShow();
|
||||||
virtual void DoHide();
|
virtual void DoHide();
|
||||||
|
virtual void DoSize();
|
||||||
|
|
||||||
// helper function which creates the system caret
|
// helper function which creates the system caret
|
||||||
bool MSWCreateCaret();
|
bool MSWCreateCaret();
|
||||||
|
@@ -160,3 +160,19 @@ void wxCaret::DoMove()
|
|||||||
}
|
}
|
||||||
//else: we don't have caret right now, nothing to do (this does happen)
|
//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();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Reference in New Issue
Block a user