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:
Robin Dunn 2000-01-10 23:01:19 +00:00
parent 9e0c3ef2c3
commit cfb76a19a4
3 changed files with 23 additions and 1 deletions

View 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()

View 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();

View 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();
}
}