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
genereic controls in ways that are as close to the native look as
possible.
+
+Note that each drawing function restores the `wx.DC` attributes if it
+changes them, so it is safe to assume that the same pen, brush and
+colours that were active before the call to this function are still in
+effect after it.
", "");
class wxRendererNative
DocDeclStr(
- virtual void , DrawHeaderButton(wxWindow *win,
- wxDC& dc,
- const wxRect& rect,
- int flags = 0),
- "Draw the header control button (such as whar 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,
``wx.CONTROL_CURRENT`` bit set.", "");
+ DocDeclStr(
+ virtual void , DrawCheckBox(wxWindow *win,
+ wxDC& dc,
+ const wxRect& rect,
+ int flags = 0),
+ "Draw a check button. Flags may use wx.CONTROL_CHECKED,
+wx.CONTROL_UNDETERMINED and wx.CONTROL_CURRENT.", "");
+
+
+ DocDeclStr(
+ virtual void , DrawPushButton(wxWindow *win,
+ wxDC& dc,
+ const wxRect& rect,
+ int flags = 0),
+ "Draw a blank button. Flags may be wx.CONTROL_PRESSED, wx.CONTROL_CURRENT and
+wx.CONTROL_ISDEFAULT", "");
+
+ DocDeclStr(
+ virtual void , DrawItemSelectionRect(wxWindow *win,
+ wxDC& dc,
+ const wxRect& rect,
+ int flags = 0),
+ "Draw rectangle indicating that an item in e.g. a list control has been
+selected or focused
+
+The flags parameter may be:
+
+ ==================== ============================================
+ wx.CONTROL_SELECTED item is selected, e.g. draw background
+ wx.CONTROL_CURRENT item is the current item, e.g. dotted border
+ wx.CONTROL_FOCUSED the whole control has focus, e.g. blue
+ background vs. grey otherwise
+ ==================== ============================================
+", "");
+
+
DocDeclStr(
virtual wxSplitterRenderParams , GetSplitterParams(const wxWindow *win),
"Get the splitter parameters, see `wx.SplitterRenderParams`.", "");
-
+ MustHaveApp(Get);
DocDeclStr(
static wxRendererNative& , Get(),
"Return the currently used renderer", "");
+ MustHaveApp(GetGeneric);
DocDeclStr(
static wxRendererNative& , GetGeneric(),
"Return the generic implementation of the renderer. Under some
platforms, this is the default renderer implementation, others have
platform-specific default renderer which can be retrieved by calling
-`GetDefault`.", "");
+`wx.RendererNative.GetDefault`.", "");
+ MustHaveApp(GetDefault);
DocDeclStr(
static wxRendererNative& , GetDefault(),
"Return the default (native) implementation for this platform -- this
-is also the one used by default but this may be changed by calling `Set`
-in which case the return value of this method may be different from
-the return value of `Get`.", "");
+is also the one used by default but this may be changed by calling
+`wx.RendererNative.Set` in which case the return value of this method
+may be different from the return value of `wx.RendererNative.Get`.", "");
// static wxRendererNative *Load(const wxString& name);
+ MustHaveApp(Set);
DocDeclStr(
static wxRendererNative *, Set(wxRendererNative *renderer),
"Set the renderer to use, passing None reverts to using the default
virtual wxRendererVersion , GetVersion() const,
"Returns the version of the renderer. Will be used for ensuring
compatibility of dynamically loaded renderers.", "");
+
+ %property(SplitterParams, GetSplitterParams, doc="See `GetSplitterParams`");
+ %property(Version, GetVersion, doc="See `GetVersion`");
};