// Purpose: interface of wxRendererNative
// Author: wxWidgets team
// RCS-ID: $Id$
-// Licence: wxWindows license
+// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
/**
wxCONTROL_UNDETERMINED = wxCONTROL_CHECKABLE
};
+/**
+ Title bar buttons supported by wxRendererNative::DrawTitleBarBitmap().
+ */
+enum wxTitleBarButton
+{
+ wxTITLEBAR_BUTTON_CLOSE = 0x01000000,
+ wxTITLEBAR_BUTTON_MAXIMIZE = 0x02000000,
+ wxTITLEBAR_BUTTON_ICONIZE = 0x04000000,
+ wxTITLEBAR_BUTTON_RESTORE = 0x08000000,
+ wxTITLEBAR_BUTTON_HELP = 0x10000000
+};
+
/**
@struct wxSplitterRenderParams
virtual int GetHeaderButtonHeight(wxWindow *win);
+ virtual int GetHeaderButtonMargin(wxWindow *win);
+
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 bitmap.
+ */
+ virtual void DrawRadioBitmap(wxWindow* win, wxDC& dc, const wxRect& rect, int flags = 0) = 0;
+
+ /**
+ Draw a title bar button in the given state.
+
+ This function is currently only available under MSW and OS X (and only
+ for wxTITLEBAR_BUTTON_CLOSE under the latter), its best replacement for
+ the other platforms is to use wxArtProvider to retrieve the bitmaps for
+ @c wxART_HELP and @c wxART_CLOSE (but not any other title bar buttons
+ and not for any state but normal, i.e. not pressed and not current one).
+
+ The presence of this function is indicated by @c
+ wxHAS_DRAW_TITLE_BAR_BITMAP symbol being defined.
+
+ Also notice that PNG handler must be enabled using wxImage::AddHandler()
+ to use this function under OS X currently as the bitmaps are embedded
+ in the library itself in PNG format.
+
+ @since 2.9.1
+ */
+ virtual void DrawTitleBarBitmap(wxWindow *win,
+ wxDC& dc,
+ const wxRect& rect,
+ wxTitleBarButton button,
+ 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
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) = 0;
/**
- Get the splitter parameters, see
- wxSplitterRenderParams.
+ Returns the horizontal margin on the left and right sides of header
+ button's label.
+
+ @since 2.9.2
+ */
+ virtual int GetHeaderButtonMargin(wxWindow *win) = 0;
+
+ /**
+ Get the splitter parameters, see wxSplitterRenderParams.
+ The @a win parameter should be a wxSplitterWindow.
*/
virtual wxSplitterRenderParams GetSplitterParams(const wxWindow* win) = 0;