]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/generic/caret.h
Fixed size problem due to wxMac window implementation difference
[wxWidgets.git] / include / wx / generic / caret.h
index ffb95c3422b40153cb1d4313fe072e2e7ac74c0d..21effecb5857d9ea8adf59c548a12357bbcdad56 100644 (file)
@@ -12,7 +12,7 @@
 #ifndef _WX_CARET_H_
 #define _WX_CARET_H_
 
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
 #pragma interface "caret.h"
 #endif
 
@@ -20,7 +20,7 @@
 
 class wxCaret;
 
-class wxCaretTimer : public wxTimer
+class WXDLLEXPORT wxCaretTimer : public wxTimer
 {
 public:
     wxCaretTimer(wxCaret *caret);
@@ -48,14 +48,24 @@ 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);
     
@@ -63,8 +73,15 @@ private:
     // GTK specific initialization
     void InitGeneric();
 
+    // 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;
+
     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_