X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/3c31306c74e878e6888b6c73a44a337516717d73..0a5bb138a71dfc1c706fc0858fb2801500e2c2e8:/wxPython/src/_renderer.i diff --git a/wxPython/src/_renderer.i b/wxPython/src/_renderer.i index 2735302ab4..85c9e57361 100644 --- a/wxPython/src/_renderer.i +++ b/wxPython/src/_renderer.i @@ -26,9 +26,11 @@ enum 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 @@ -73,6 +75,34 @@ struct wxSplitterRenderParams +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 @@ -102,16 +132,22 @@ struct wxRendererVersion 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 @@ -123,12 +159,29 @@ public: virtual void , DrawHeaderButton(wxWindow *win, wxDC& dc, const wxRect& rect, - int flags = 0), + int flags = 0, + wxHeaderSortIconType sortArrow = wxHDR_SORT_ICON_NONE, + wxHeaderButtonParams* params=NULL), "Draw the header control button (such as what is used by `wx.ListCtrl` in report mode.)", ""); - + DocDeclStr( + virtual void , 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, @@ -183,33 +236,71 @@ you need. ``flags`` may have the ``wx.CONTROL_PRESSED`` or ``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`.", ""); @@ -219,6 +310,7 @@ the return value of `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 @@ -230,7 +322,10 @@ renderer. Returns the previous renderer used with Set or None.", ""); 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`"); };