X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/0290598f588681eb631c0a952a26c7637b8482d0..7b1279006496ba3251a755bcef91301ad107bb78:/include/wx/generic/caret.h diff --git a/include/wx/generic/caret.h b/include/wx/generic/caret.h index 93df894ea6..73dcaa4639 100644 --- a/include/wx/generic/caret.h +++ b/include/wx/generic/caret.h @@ -9,15 +9,27 @@ // Licence: wxWindows licence /////////////////////////////////////////////////////////////////////////////// -#if 0 //def __GNUG__ - #pragma implementation "caret.h" -#endif - #ifndef _WX_CARET_H_ #define _WX_CARET_H_ +#ifdef __GNUG__ +#pragma interface "caret.h" +#endif + #include "wx/timer.h" +class wxCaret; + +class WXDLLEXPORT wxCaretTimer : public wxTimer +{ +public: + wxCaretTimer(wxCaret *caret); + virtual void Notify(); + +private: + wxCaret *m_caret; +}; + class wxCaret : public wxCaretBase { public: @@ -36,33 +48,40 @@ 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(); + // blink the caret once + void Blink(); + + // refresh the caret + void Refresh(); + // draw the caret on the given DC void DoDraw(wxDC *dc); - + private: // GTK specific initialization void InitGeneric(); - class CaretTimer : public wxTimer - { - public: - CaretTimer(wxCaret *caret) { m_caret = caret; } - - virtual void Notify() { m_caret->Blink(); } - - private: - wxCaret *m_caret; - } m_timer; + // 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; - bool m_blinkedOut; // TRUE => caret hidden right now + wxCaretTimer m_timer; + bool m_blinkedOut, // TRUE => caret hidden right now + m_hasFocus; // TRUE => our window has focus }; #endif // _WX_CARET_H_