]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/ownerdrw.h
fixed the bug with the order of 2 size events when the scrollbar[s] (dis)appear in...
[wxWidgets.git] / include / wx / ownerdrw.h
index e92483cc61ac4274642b1d1dc8aa7cd5dbac1173..f946e960ae0d6c6212f83c111e79d1bd28e2dc1f 100644 (file)
 #ifndef   _OWNERDRW_H
 #define   _OWNERDRW_H
 
+#if wxUSE_OWNER_DRAWN
+
 #ifdef    __GNUG__
-#pragma interface "ownerdrw.h"
+    #pragma interface "ownerdrw.h"
 #endif
 
-#include <stddef.h>
+#include "wx/bitmap.h"
+#include "wx/colour.h"
+#include "wx/font.h"
 
 // ----------------------------------------------------------------------------
 // wxOwnerDrawn - a mix-in base class, derive from it to implement owner-drawn
 // also supports 3 bitmaps: either a checked/unchecked bitmap for a checkable
 // element or one unchangeable bitmap otherwise.
 // ----------------------------------------------------------------------------
+
 class WXDLLEXPORT wxOwnerDrawn
 {
 public:
   // ctor & dtor
-  wxOwnerDrawn(const wxString& str = "",
+  wxOwnerDrawn(const wxString& str = wxEmptyString,
                bool bCheckable = FALSE,
                bool bMenuItem = FALSE); // FIXME kludge for colors
   virtual ~wxOwnerDrawn() { }
@@ -58,6 +63,10 @@ public:
         m_bmpUnchecked = bmpUnchecked;
         m_bOwnerDrawn = TRUE; }
 
+  void SetBitmap(const wxBitmap& bmpChecked)
+      { m_bmpChecked = bmpChecked;
+        m_bOwnerDrawn = TRUE; }
+
   const wxBitmap& GetBitmap(bool bChecked = TRUE) const
       { return (bChecked ? m_bmpChecked : m_bmpUnchecked); }
 
@@ -78,17 +87,22 @@ public:
   static int GetDefaultMarginWidth() { return (int) ms_nDefaultMarginWidth; }
 
   // accessors
-  void            SetName(const wxString& strName)  { m_strName = strName; }
-  const wxString& GetName()       const             { return m_strName;    }
-  bool            IsCheckable()   const             { return m_bCheckable; }
+  void SetName(const wxString& strName)  { m_strName = strName; }
+  const wxString& GetName() const { return m_strName;    }
+  void SetCheckable(bool checkable) { m_bCheckable = checkable; }
+  bool IsCheckable() const { return m_bCheckable; }
+
+  // this is for menu items only: accel string is drawn right aligned after the
+  // menu item if not empty
+  void SetAccelString(const wxString& strAccel) { m_strAccel = strAccel; }
 
   // this function might seem strange, but if it returns FALSE it means that
   // no non-standard attribute are set, so there is no need for this control
   // to be owner-drawn. Moreover, you can force owner-drawn to FALSE if you
   // want to change, say, the color for the item but only if it is owner-drawn
   // (see wxMenuItem::wxMenuItem for example)
-  bool     IsOwnerDrawn()  const             { return m_bOwnerDrawn;   }
-  void     ResetOwnerDrawn()                 { m_bOwnerDrawn = FALSE;  }
+  bool IsOwnerDrawn() const { return m_bOwnerDrawn;   }
+  void ResetOwnerDrawn() { m_bOwnerDrawn = FALSE;  }
 
 public:
   // constants used in OnDrawItem
@@ -115,7 +129,8 @@ public:
   virtual bool OnDrawItem(wxDC& dc, const wxRect& rc, wxODAction act, wxODStatus stat);
 
 protected:
-  wxString  m_strName;      // label for a manu item
+  wxString  m_strName,      // label for a manu item
+            m_strAccel;     // the accel string ("Ctrl-F17") if any
 
 private:
   static size_t ms_nDefaultMarginWidth; // menu check mark width
@@ -125,14 +140,16 @@ private:
             m_bOwnerDrawn;  // true if something is non standard
 
   wxFont    m_font;         // font to use for drawing
-  wxColour   m_colText,      // color ----"---"---"----
+  wxColour  m_colText,      // color ----"---"---"----
             m_colBack;      // background color
   wxBitmap  m_bmpChecked,   // bitmap to put near the item
             m_bmpUnchecked; // (checked is used also for 'uncheckable' items)
 
-  size_t      m_nHeight,      // font height
+  size_t    m_nHeight,      // font height
             m_nMarginWidth; // space occupied by bitmap to the left of the item
 };
 
+#endif // wxUSE_OWNER_DRAWN
+
 #endif
   // _OWNERDRW_H