X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ae3c17b4013e80b99976c750c19fca47729517f6..850e47aa3c20c22ff650e80e92e7795a66431863:/interface/wx/renderer.h?ds=inline diff --git a/interface/wx/renderer.h b/interface/wx/renderer.h index 6c33c39d59..0d0803e4f4 100644 --- a/interface/wx/renderer.h +++ b/interface/wx/renderer.h @@ -58,7 +58,6 @@ enum /** @struct wxSplitterRenderParams - @wxheader{renderer.h} This is just a simple @c struct used as a return value of wxRendererNative::GetSplitterParams(). @@ -95,7 +94,6 @@ struct wxSplitterRenderParams /** @struct wxHeaderButtonParams - @wxheader{renderer.h} This @c struct can optionally be used with wxRendererNative::DrawHeaderButton() to specify custom values used to draw @@ -132,7 +130,6 @@ enum wxHeaderSortIconType /** @class wxDelegateRendererNative - @wxheader{renderer.h} wxDelegateRendererNative allows reuse of renderers code by forwarding all the wxRendererNative methods to the given object and @@ -214,6 +211,8 @@ public: virtual void DrawCheckBox(wxWindow *win, wxDC& dc, const wxRect& rect, int flags = 0 ); + virtual wxSize GetCheckBoxSize(wxWindow *win); + virtual void DrawPushButton(wxWindow *win, wxDC& dc, const wxRect& rect, int flags = 0 ); @@ -232,7 +231,6 @@ public: /** @class wxRendererNative - @wxheader{renderer.h} First, a brief introduction to wxRendererNative and why it is needed. @@ -287,16 +285,16 @@ public: /** Virtual destructor as for any base class. */ - ~wxRendererNative(); + virtual ~wxRendererNative(); /** - Draw a check box (used by wxDataViewCtrl). + Draw a check box. @a flags may have the @c wxCONTROL_CHECKED, @c wxCONTROL_CURRENT or @c wxCONTROL_UNDETERMINED bit set, see @ref wxCONTROL_FLAGS. */ - virtual void DrawCheckBox(wxWindow* win, wxDC& dc, - const wxRect& rect, int flags); + virtual void DrawCheckBox(wxWindow* win, wxDC& dc, const wxRect& rect, + int flags = 0) = 0; /** Draw a button like the one used by wxComboBox to show a @@ -306,8 +304,7 @@ public: see @ref wxCONTROL_FLAGS. */ virtual void DrawComboBoxDropButton(wxWindow* win, wxDC& dc, - const wxRect& rect, - int flags); + const wxRect& rect, int flags = 0) = 0; /** Draw a drop down arrow that is suitable for use outside a combo box. Arrow will @@ -320,7 +317,7 @@ public: see @ref wxCONTROL_FLAGS. */ virtual void DrawDropArrow(wxWindow* win, wxDC& dc, const wxRect& rect, - int flags); + int flags = 0) = 0; /** Draw a focus rectangle using the specified rectangle. @@ -330,7 +327,7 @@ public: see @ref wxCONTROL_FLAGS. */ virtual void DrawFocusRect(wxWindow* win, wxDC& dc, const wxRect& rect, - int flags = 0); + int flags = 0) = 0; /** Draw the header control button (used, for example, by wxListCtrl). @@ -342,10 +339,9 @@ public: The optimal width to contain the the unabreviated label text or bitmap, the sort arrow if present, and internal margins. */ - virtual int DrawHeaderButton(wxWindow* win, wxDC& dc, - const wxRect& rect, int flags = 0, - wxHeaderSortIconType sortArrow = wxHDR_SORT_ICON_NONE, - wxHeaderButtonParams* params = NULL); + virtual int DrawHeaderButton(wxWindow* win, wxDC& dc, const wxRect& rect, + int flags = 0, + wxHeaderSortIconType sortArrow = wxHDR_SORT_ICON_NONE, wxHeaderButtonParams* params = NULL) = 0; /** Draw the contents of a header control button (label, sort arrows, @@ -358,10 +354,9 @@ public: The optimal width to contain the the unabreviated label text or bitmap, the sort arrow if present, and internal margins. */ - virtual int DrawHeaderButtonContents(wxWindow *win, wxDC& dc, + virtual int DrawHeaderButtonContents(wxWindow* win, wxDC& dc, const wxRect& rect, int flags = 0, - wxHeaderSortIconType sortArrow = wxHDR_SORT_ICON_NONE, - wxHeaderButtonParams* params = NULL); + wxHeaderSortIconType sortArrow = wxHDR_SORT_ICON_NONE, wxHeaderButtonParams* params = NULL) = 0; /** Draw a selection rectangle underneath the text as used e.g. in a @@ -376,7 +371,7 @@ public: the @a win. */ virtual void DrawItemSelectionRect(wxWindow* win, wxDC& dc, - const wxRect& rect, int flags = 0); + const wxRect& rect, int flags = 0) = 0; /** Draw a blank push button that looks very similar to wxButton. @@ -384,23 +379,23 @@ public: @a flags may have the @c wxCONTROL_PRESSED, @c wxCONTROL_CURRENT or @c wxCONTROL_ISDEFAULT bit set, see @ref wxCONTROL_FLAGS. */ - virtual void DrawPushButton(wxWindow* win, wxDC& dc, - const wxRect& rect, int flags); + virtual void DrawPushButton(wxWindow* win, wxDC& dc, const wxRect& rect, + int flags = 0) = 0; /** Draw the border for sash window: this border must be such that the sash drawn by DrawSplitterSash() blends into it well. */ - virtual void DrawSplitterBorder(wxWindow* win, wxDC& dc, - const wxRect& rect, int flags = 0); + virtual void DrawSplitterBorder(wxWindow* win, wxDC& dc, const wxRect& rect, + int flags = 0) = 0; /** Draw a sash. The @a orient parameter defines whether the sash should be vertical or horizontal and how the @a position should be interpreted. */ - virtual void DrawSplitterSash(wxWindow* win, wxDC& dc, - const wxSize& size, wxCoord position, - wxOrientation orient, int flags = 0); + virtual void DrawSplitterSash(wxWindow* win, wxDC& dc, const wxSize& size, + wxCoord position, wxOrientation orient, + int flags = 0) = 0; /** Draw the expanded/collapsed icon for a tree control item. @@ -408,13 +403,33 @@ public: To draw an expanded button the @a flags parameter must contain @c wxCONTROL_EXPANDED bit, see @ref wxCONTROL_FLAGS. */ - virtual void DrawTreeItemButton(wxWindow* win, wxDC& dc, - const wxRect& rect, int flags = 0); + virtual void DrawTreeItemButton(wxWindow* win, wxDC& dc, const wxRect& rect, + int flags = 0) = 0; + + /** + Draw a native wxChoice + */ + virtual void DrawChoice(wxWindow* win, wxDC& dc, const wxRect& rect, int flags=0) = 0; + + /** + Draw a native wxComboBox + */ + virtual void DrawComboBox(wxWindow* win, wxDC& dc, const wxRect& rect, int flags=0) = 0; + + /** + Draw a native wxTextCtrl frame + */ + virtual void DrawTextCtrl(wxWindow* win, wxDC& dc, const wxRect& rect, int flags=0) = 0; + + /** + Draw a native wxRadioButton (just the button image, not the text) + */ + virtual void DrawRadioButton(wxWindow* win, wxDC& dc, const wxRect& rect, int flags=0) = 0; /** Return the currently used renderer. */ - static wxRendererNative Get(); + static wxRendererNative& Get(); /** Return the default (native) implementation for this platform -- this is also @@ -422,27 +437,32 @@ public: Set() in which case the return value of this method may be different from the return value of Get(). */ - static wxRendererNative GetDefault(); + static wxRendererNative& GetDefault(); /** 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(). */ - static wxRendererNative GetGeneric(); + static wxRendererNative& GetGeneric(); + + /** + Returns the size of a check box. + The @a win parameter is not used currently and can be @NULL. + */ + virtual wxSize GetCheckBoxSize(wxWindow* win) = 0; /** Returns the height of a header button, either a fixed platform height if - available, or a - generic height based on the window's font. + available, or a generic height based on the @a win window's font. */ - virtual int GetHeaderButtonHeight(wxWindow* win); + virtual int GetHeaderButtonHeight(wxWindow* win) = 0; /** - Get the splitter parameters, see - wxSplitterRenderParams. + Get the splitter parameters, see wxSplitterRenderParams. + The @a win parameter should be a wxSplitterWindow. */ - virtual wxSplitterRenderParams GetSplitterParams(const wxWindow* win); + virtual wxSplitterRenderParams GetSplitterParams(const wxWindow* win) = 0; /** This function is used for version checking: Load() @@ -455,7 +475,7 @@ public: but it has to be in the derived, not base, class, to detect mismatches between the renderers versions and so you have to implement it anew in all renderers. */ - virtual wxRendererVersion GetVersion() const; + virtual wxRendererVersion GetVersion() const = 0; /** Load the renderer from the specified DLL, the returned pointer must be @@ -481,7 +501,6 @@ public: /** @struct wxRendererVersion - @wxheader{renderer.h} This simple struct represents the wxRendererNative interface version and is only used as the return value of