///////////////////////////////////////////////////////////////////////////////
-// Name: caret.h
+// Name: wx/caret.h
// Purpose: wxCaretBase class - the interface of wxCaret
// Author: Vadim Zeitlin
// Modified by:
#if wxUSE_CARET
-#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
-#pragma interface "caret.h"
-#endif
-
// ---------------------------------------------------------------------------
// forward declarations
// ---------------------------------------------------------------------------
-class WXDLLEXPORT wxWindow;
-class WXDLLEXPORT wxWindowBase;
+class WXDLLIMPEXP_FWD_CORE wxWindow;
+class WXDLLIMPEXP_FWD_CORE wxWindowBase;
// ----------------------------------------------------------------------------
// headers we have to include
// appear. It can be either a solid block or a custom bitmap (TODO)
// ----------------------------------------------------------------------------
-class WXDLLEXPORT wxCaretBase
+class WXDLLIMPEXP_CORE wxCaretBase
{
public:
// ctors
(void)Create(window, size);
}
+ // a virtual dtor has been provided since this class has virtual members
+ virtual ~wxCaretBase() { }
+
// Create() functions - same as ctor but returns the success code
// --------------------------------------------------------------
virtual void OnKillFocus() { }
protected:
- // these functions may be overriden in the derived classes, but they
+ // these functions may be overridden in the derived classes, but they
// should call the base class version first
virtual bool DoCreate(wxWindowBase *window, int width, int height)
{
// the common initialization
void Init()
{
- m_window = (wxWindowBase *)NULL;
+ m_window = NULL;
m_x = m_y = 0;
m_width = m_height = 0;
m_countVisible = 0;
int m_countVisible;
private:
- DECLARE_NO_COPY_CLASS(wxCaretBase)
+ wxDECLARE_NO_COPY_CLASS(wxCaretBase);
};
// ---------------------------------------------------------------------------
// avoid overdrawing the caret
// ----------------------------------------------------------------------------
-class WXDLLEXPORT wxCaretSuspend
+#ifdef wxHAS_CARET_USING_OVERLAYS
+
+// we don't need to hide the caret if it's rendered using overlays
+class WXDLLIMPEXP_CORE wxCaretSuspend
+{
+public:
+ wxCaretSuspend(wxWindow *WXUNUSED(win)) {}
+
+ wxDECLARE_NO_COPY_CLASS(wxCaretSuspend);
+};
+
+#else // !wxHAS_CARET_USING_OVERLAYS
+
+class WXDLLIMPEXP_CORE wxCaretSuspend
{
public:
wxCaretSuspend(wxWindow *win)
wxCaret *m_caret;
bool m_show;
- DECLARE_NO_COPY_CLASS(wxCaretSuspend)
+ wxDECLARE_NO_COPY_CLASS(wxCaretSuspend);
};
+#endif // wxHAS_CARET_USING_OVERLAYS/!wxHAS_CARET_USING_OVERLAYS
+
#endif // wxUSE_CARET
#endif // _WX_CARET_H_BASE_
-