X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/cfb76a19a4aeb25f245196ff5d4cae8a33fa6802..79099b80ad442cb93b2f7df716bf3d1dd80b446f:/include/wx/caret.h diff --git a/include/wx/caret.h b/include/wx/caret.h index 9e0f3d3ea8..0967690a1b 100644 --- a/include/wx/caret.h +++ b/include/wx/caret.h @@ -5,14 +5,18 @@ // Modified by: // Created: 23.05.99 // RCS-ID: $Id$ -// Copyright: (c) wxWindows team +// Copyright: (c) wxWidgets team // Licence: wxWindows licence /////////////////////////////////////////////////////////////////////////////// #ifndef _WX_CARET_H_BASE_ #define _WX_CARET_H_BASE_ -#ifdef __GNUG__ +#include "wx/defs.h" + +#if wxUSE_CARET + +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) #pragma interface "caret.h" #endif @@ -183,7 +187,7 @@ protected: int m_countVisible; private: - DECLARE_NO_COPY_CLASS(wxCaretBase); + DECLARE_NO_COPY_CLASS(wxCaretBase) }; // --------------------------------------------------------------------------- @@ -196,5 +200,40 @@ private: #include "wx/generic/caret.h" #endif // platform +// ---------------------------------------------------------------------------- +// wxCaretSuspend: a simple class which hides the caret in its ctor and +// restores it in the dtor, this should be used when drawing on the screen to +// avoid overdrawing the caret +// ---------------------------------------------------------------------------- + +class WXDLLEXPORT wxCaretSuspend +{ +public: + wxCaretSuspend(wxWindow *win) + { + m_caret = win->GetCaret(); + m_show = FALSE; + if ( m_caret && m_caret->IsVisible() ) + { + m_caret->Hide(); + m_show = TRUE; + } + } + + ~wxCaretSuspend() + { + if ( m_caret && m_show ) + m_caret->Show(); + } + +private: + wxCaret *m_caret; + bool m_show; + + DECLARE_NO_COPY_CLASS(wxCaretSuspend) +}; + +#endif // wxUSE_CARET + #endif // _WX_CARET_H_BASE_