X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/e46286351dbfa7ae98e8341e4fc328b134601e87..86ac84b8ce086e6bbda58f422d41f84268606e35:/include/wx/generic/caret.h diff --git a/include/wx/generic/caret.h b/include/wx/generic/caret.h index ffb95c3422..83fd6e1aae 100644 --- a/include/wx/generic/caret.h +++ b/include/wx/generic/caret.h @@ -5,22 +5,24 @@ // Modified by: // Created: 25.05.99 // RCS-ID: $Id$ -// Copyright: (c) wxWindows team +// Copyright: (c) wxWidgets team // Licence: wxWindows licence /////////////////////////////////////////////////////////////////////////////// #ifndef _WX_CARET_H_ #define _WX_CARET_H_ -#ifdef __GNUG__ -#pragma interface "caret.h" -#endif - #include "wx/timer.h" +#include "wx/dc.h" +#include "wx/overlay.h" + +#ifdef wxHAS_NATIVE_OVERLAY + #define wxHAS_CARET_USING_OVERLAYS +#endif -class wxCaret; +class WXDLLIMPEXP_FWD_CORE wxCaret; -class wxCaretTimer : public wxTimer +class WXDLLIMPEXP_CORE wxCaretTimer : public wxTimer { public: wxCaretTimer(wxCaret *caret); @@ -30,7 +32,7 @@ private: wxCaret *m_caret; }; -class wxCaret : public wxCaretBase +class WXDLLIMPEXP_CORE wxCaret : public wxCaretBase { public: // ctors @@ -48,23 +50,46 @@ public: // implementation // -------------- - // blink the caret once - void Blink(); + // called by wxWindow (not using the event tables) + virtual void OnSetFocus(); + virtual void OnKillFocus(); + + // called by wxCaretTimer + void OnTimer(); protected: virtual void DoShow(); virtual void DoHide(); virtual void DoMove(); + virtual void DoSize(); + + // blink the caret once + void Blink(); + + // refresh the caret + void Refresh(); // draw the caret on the given DC - void DoDraw(wxDC *dc); - + void DoDraw(wxDC *dc, wxWindow* win); + private: // GTK specific initialization void InitGeneric(); +#ifdef wxHAS_CARET_USING_OVERLAYS + // the overlay for displaying the caret + wxOverlay m_overlay; +#else + // the bitmap holding the part of window hidden by the caret when it was + // at (m_xOld, m_yOld) + wxBitmap m_bmpUnderCaret; + int m_xOld, + m_yOld; +#endif + wxCaretTimer m_timer; - bool m_blinkedOut; // TRUE => caret hidden right now + bool m_blinkedOut, // true => caret hidden right now + m_hasFocus; // true => our window has focus }; #endif // _WX_CARET_H_