const wxColour& col,
const wxRect& rect,
int flags,
- wxWindow *window = NULL ) = 0;
+ wxWindow *window = NULL) = 0;
// draw the button surface
virtual void DrawButtonSurface(wxDC& dc,
- const wxColour& col,
- const wxRect& rect,
- int flags )
- { DrawBackground( dc, col, rect, flags ); }
+ const wxColour& col,
+ const wxRect& rect,
+ int flags) = 0;
+ // draw the focus rectangle around the label contained in the given rect
+ virtual void DrawFocusRect(wxDC& dc, const wxRect& rect) = 0;
+
// draw the label inside the given rectangle with the specified alignment
// and optionally emphasize the character with the given index
virtual void DrawLabel(wxDC& dc,
int indexAccel = -1,
wxRect *rectBounds = NULL) = 0;
+
// draw the border and optionally return the rectangle containing the
// region inside the border
virtual void DrawBorder(wxDC& dc,
int tbarStyle = 0) = 0;
#endif // wxUSE_TOOLBAR
+#if wxUSE_TEXTCTRL
// draw a (part of) line in the text control
virtual void DrawTextLine(wxDC& dc,
const wxString& text,
// draw a line wrap indicator
virtual void DrawLineWrapMark(wxDC& dc, const wxRect& rect) = 0;
+#endif // wxUSE_TEXTCTRL
+#if wxUSE_NOTEBOOK
// draw a notebook tab
virtual void DrawTab(wxDC& dc,
const wxRect& rect,
const wxBitmap& bitmap = wxNullBitmap,
int flags = 0,
int indexAccel = -1) = 0;
+#endif // wxUSE_NOTEBOOK
#if wxUSE_SLIDER
// misc functions
// --------------
+#if wxUSE_COMBOBOX
// return the bitmaps to use for combobox button
virtual void GetComboBitmaps(wxBitmap *bmpNormal,
wxBitmap *bmpFocus,
wxBitmap *bmpPressed,
wxBitmap *bmpDisabled) = 0;
+#endif // wxUSE_COMBOBOX
// geometry functions
// ------------------
wxCoord *extraSpaceBeyond) const = 0;
#endif // wxUSE_TEXTCTRL
+#if wxUSE_NOTEBOOK
// get the overhang of a selected tab
virtual wxSize GetTabIndent() const = 0;
// get the padding around the text in a tab
virtual wxSize GetTabPadding() const = 0;
+#endif // wxUSE_NOTEBOOK
#if wxUSE_SLIDER
// get the default size of the slider in lesser dimension (i.e. height of a
// virtual dtor for any base class
virtual ~wxRenderer();
-
-
-protected:
- // draw a frame around rectFrame rectangle but not touching the rectLabel
- // one: this is used by DrawFrame()
- void StandardDrawFrame(wxDC& dc,
- const wxRect& rectFrame,
- const wxRect& rectLabel);
-
- // standard text line drawing: just use DrawText() and highlight the
- // selected part
- static void StandardDrawTextLine(wxDC& dc,
- const wxString& text,
- const wxRect& rect,
- int selStart, int selEnd,
- int flags);
-
-#if wxUSE_SCROLLBAR
- // standard scrollbar hit testing: this assumes that it only has 2 arrows
- // and a thumb, so the themes which have more complicated scrollbars (e.g.
- // BeOS) can't use this method
- static wxRect StandardGetScrollbarRect(const wxScrollBar *scrollbar,
- wxScrollBar::Element elem,
- int thumbPos,
- const wxSize& sizeArrow);
- static wxHitTest StandardHitTestScrollbar(const wxScrollBar *scrollbar,
- const wxPoint& pt,
- const wxSize& sizeArrow);
- static wxCoord StandardScrollbarToPixel(const wxScrollBar *scrollbar,
- int thumbPos,
- const wxSize& sizeArrow);
- static int StandardPixelToScrollbar(const wxScrollBar *scrollbar,
- wxCoord coord,
- const wxSize& sizeArrow);
- static wxCoord StandardScrollBarSize(const wxScrollBar *scrollbar,
- const wxSize& sizeArrow);
- static void StandardScrollBarThumbSize(wxCoord lenBar,
- int thumbPos,
- int thumbSize,
- int range,
- wxCoord *thumbStart,
- wxCoord *thumbEnd);
-#endif // wxUSE_SCROLLBAR
-
};
// ----------------------------------------------------------------------------
int flags,
wxWindow *window = NULL )
{ m_renderer->DrawBackground(dc, col, rect, flags, window ); }
+ virtual void DrawButtonSurface(wxDC& dc,
+ const wxColour& col,
+ const wxRect& rect,
+ int flags)
+ { m_renderer->DrawButtonSurface(dc, col, rect, flags); }
+ virtual void DrawFocusRect(wxDC& dc, const wxRect& rect)
+ { m_renderer->DrawFocusRect(dc, rect); }
virtual void DrawLabel(wxDC& dc,
const wxString& label,
const wxRect& rect,
int tbarStyle = 0)
{ m_renderer->DrawToolBarButton(dc, label, bitmap, rect, flags, style, tbarStyle); }
#endif // wxUSE_TOOLBAR
+
+#if wxUSE_TEXTCTRL
virtual void DrawTextLine(wxDC& dc,
const wxString& text,
const wxRect& rect,
{ m_renderer->DrawTextLine(dc, text, rect, selStart, selEnd, flags); }
virtual void DrawLineWrapMark(wxDC& dc, const wxRect& rect)
{ m_renderer->DrawLineWrapMark(dc, rect); }
+#endif // wxUSE_TEXTCTRL
+#if wxUSE_NOTEBOOK
virtual void DrawTab(wxDC& dc,
const wxRect& rect,
wxDirection dir,
int flags = 0,
int accel = -1)
{ m_renderer->DrawTab(dc, rect, dir, label, bitmap, flags, accel); }
+#endif // wxUSE_NOTEBOOK
#if wxUSE_SLIDER
int flags = 0)
{ m_renderer->DrawFrameButton(dc, x, y, button, flags); }
+#if wxUSE_COMBOBOX
virtual void GetComboBitmaps(wxBitmap *bmpNormal,
wxBitmap *bmpFocus,
wxBitmap *bmpPressed,
wxBitmap *bmpDisabled)
{ m_renderer->GetComboBitmaps(bmpNormal, bmpFocus,
bmpPressed, bmpDisabled); }
+#endif // wxUSE_COMBOBOX
virtual void AdjustSize(wxSize *size, const wxWindow *window)
{ m_renderer->AdjustSize(size, window); }
{ return m_renderer->GetTextClientArea(text, rect, extraSpaceBeyond); }
#endif // wxUSE_TEXTCTRL
+#if wxUSE_NOTEBOOK
virtual wxSize GetTabIndent() const { return m_renderer->GetTabIndent(); }
virtual wxSize GetTabPadding() const { return m_renderer->GetTabPadding(); }
+#endif // wxUSE_NOTEBOOK
#if wxUSE_SLIDER
virtual wxCoord GetSliderDim() const
virtual void DrawHeaderButton(wxWindow *win,
wxDC& dc,
const wxRect& rect,
- int flags = 0)
- { m_renderer->DrawHeaderButton(win, dc, rect, flags); }
+ int flags = 0,
+ wxHeaderSortIconType sortIcon = wxHDR_SORT_ICON_NONE,
+ wxHeaderButtonParams* params = NULL)
+ { m_renderer->DrawHeaderButton(win, dc, rect, flags, sortIcon, params); }
virtual void DrawTreeItemButton(wxWindow *win,
wxDC& dc,
const wxRect& rect,