wxCONTROL_DISABLED = 0x00000001, // control is disabled
wxCONTROL_FOCUSED = 0x00000002, // currently has keyboard focus
wxCONTROL_PRESSED = 0x00000004, // (button) is pressed
- wxCONTROL_ISDEFAULT = 0x00000008, // only applies to the buttons
- wxCONTROL_ISSUBMENU = wxCONTROL_ISDEFAULT, // only for menu items
- wxCONTROL_EXPANDED = wxCONTROL_ISDEFAULT, // only for the tree items
+ wxCONTROL_SPECIAL = 0x00000008, // control-specific bit:
+ wxCONTROL_ISDEFAULT = wxCONTROL_SPECIAL, // only for the buttons
+ wxCONTROL_ISSUBMENU = wxCONTROL_SPECIAL, // only for the menu items
+ wxCONTROL_EXPANDED = wxCONTROL_SPECIAL, // only for the tree items
+ wxCONTROL_SIZEGRIP = wxCONTROL_SPECIAL, // only for the status bar panes
wxCONTROL_CURRENT = 0x00000010, // mouse is currently over the control
wxCONTROL_SELECTED = 0x00000020, // selected item in e.g. listbox
wxCONTROL_CHECKED = 0x00000040, // (check/radio button) is checked
+DocStr(wxHeaderButtonParams,
+"Extra (optional) parameters for `wx.RendererNative.DrawHeaderButton`", "");
+
+struct wxHeaderButtonParams
+{
+ wxHeaderButtonParams();
+ ~wxHeaderButtonParams();
+
+ // So wxColour_helper will be used when assigning to the colour items in the struct
+ %typemap(in) wxColour* (wxColour temp) {
+ $1 = &temp;
+ if ( ! wxColour_helper($input, &$1)) SWIG_fail;
+ }
+ wxColour m_arrowColour;
+ wxColour m_selectionColour;
+ wxString m_labelText;
+ wxFont m_labelFont;
+ wxColour m_labelColour;
+ wxBitmap m_labelBitmap;
+ int m_labelAlignment;
+};
+
+enum wxHeaderSortIconType {
+ wxHDR_SORT_ICON_NONE, // Header button has no sort arrow
+ wxHDR_SORT_ICON_UP, // Header button an an up sort arrow icon
+ wxHDR_SORT_ICON_DOWN // Header button an a down sort arrow icon
+};
+
DocStr(wxRendererVersion,
"This simple struct represents the `wx.RendererNative` interface
DocStr(wxRendererNative,
-"One of the design principles of wxWidgets is to use the native widgets
-on every platform in order to be as close to the native look and feel
-on every platform. However there are still cases when some generic
-widgets are needed for various reasons, but it can sometimes take a
-lot of messy work to make them conform to the native LnF.
+"One of the design principles of wxWidgets is to use the native
+widgets on every platform in order to be as close as possible to
+the native look and feel on every platform. However there are
+still cases when some generic widgets are needed for various
+reasons, but it can sometimes take a lot of messy work to make
+them conform to the native LnF.
The wx.RendererNative class is a collection of functions that have
platform-specific implementations for drawing certain parts of
DocDeclStr(
- virtual void , DrawHeaderButton(wxWindow *win,
- wxDC& dc,
- const wxRect& rect,
- int flags = 0),
- "Draw the header control button (such as what is used by `wx.ListCtrl`
-in report mode.)", "");
+ virtual int , DrawHeaderButton(wxWindow *win,
+ wxDC& dc,
+ const wxRect& rect,
+ int flags = 0,
+ wxHeaderSortIconType sortArrow = wxHDR_SORT_ICON_NONE,
+ wxHeaderButtonParams* params=NULL),
+ "Draw a header control button (such as what is used by `wx.ListCtrl` in report
+mode.) The optimal size of the label (text and icons) is returned.", "");
-
+ DocDeclStr(
+ virtual int , DrawHeaderButtonContents(wxWindow *win,
+ wxDC& dc,
+ const wxRect& rect,
+ int flags = 0,
+ wxHeaderSortIconType sortArrow = wxHDR_SORT_ICON_NONE,
+ wxHeaderButtonParams* params=NULL),
+ "Draw the contents of a header control button, (label, sort
+arrows, etc.) Normally this is only called by `DrawHeaderButton`.", "");
+
+ DocDeclStr(
+ virtual int , GetHeaderButtonHeight(wxWindow *win),
+ "Returns the default height of a header button, either a fixed platform
+height if available, or a generic height based on the window's font.", "");
+
+
DocDeclStr(
virtual void , DrawTreeItemButton(wxWindow *win,
wxDC& dc,