]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/generic/caret.h
activating DrawRectangle optimization
[wxWidgets.git] / include / wx / generic / caret.h
index 173e80a37b0b510fe2984f683b532932c78ef7e3..36380b6ea5641ea990a7b66319ec08540b6125a1 100644 (file)
@@ -1,26 +1,28 @@
 ///////////////////////////////////////////////////////////////////////////////
 ///////////////////////////////////////////////////////////////////////////////
-// Name:        generic/caret.h
+// Name:        wx/generic/caret.h
 // Purpose:     generic wxCaret class
 // Author:      Vadim Zeitlin (original code by Robert Roebling)
 // Modified by:
 // Created:     25.05.99
 // RCS-ID:      $Id$
 // Purpose:     generic wxCaret class
 // Author:      Vadim Zeitlin (original code by Robert Roebling)
 // 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_
 
 // Licence:     wxWindows licence
 ///////////////////////////////////////////////////////////////////////////////
 
 #ifndef _WX_CARET_H_
 #define _WX_CARET_H_
 
-#ifdef __GNUG__
-#pragma interface "caret.h"
-#endif
-
 #include "wx/timer.h"
 #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);
 {
 public:
     wxCaretTimer(wxCaret *caret);
@@ -30,7 +32,7 @@ private:
     wxCaret *m_caret;
 };
 
     wxCaret *m_caret;
 };
 
-class wxCaret : public wxCaretBase
+class WXDLLIMPEXP_CORE wxCaret : public wxCaretBase
 {
 public:
     // ctors
 {
 public:
     // ctors
@@ -59,6 +61,7 @@ protected:
     virtual void DoShow();
     virtual void DoHide();
     virtual void DoMove();
     virtual void DoShow();
     virtual void DoHide();
     virtual void DoMove();
+    virtual void DoSize();
 
     // blink the caret once
     void Blink();
 
     // blink the caret once
     void Blink();
@@ -67,21 +70,26 @@ protected:
     void Refresh();
 
     // draw the caret on the given DC
     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();
 
 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;
     // 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;
 
     wxCaretTimer  m_timer;
-    bool          m_blinkedOut,     // TRUE => caret hidden right now
-                  m_hasFocus;       // TRUE => our window has focus
+    bool          m_blinkedOut,     // true => caret hidden right now
+                  m_hasFocus;       // true => our window has focus
 };
 
 #endif // _WX_CARET_H_
 };
 
 #endif // _WX_CARET_H_