wxDC& dc,
const wxRect& rect,
int flags = 0);
-
+
+ virtual void DrawPushButton(wxWindow *win,
+ wxDC& dc,
+ const wxRect& rect,
+ int flags = 0);
+
virtual wxSplitterRenderParams GetSplitterParams(const wxWindow *win);
private:
// FIXME: shouldn't we destroy these windows somewhere?
- // used by DrawHeaderButton and DrawComboBoxDropButton
+ // used by DrawHeaderButton and DrawPushButton
static GtkWidget *GetButtonWidget();
// used by DrawTreeItemButton()
(
button->style,
// FIXME: I suppose GTK_PIZZA(win->m_wxwindow)->bin_window doesn't work with wxMemoryDC.
- // Maybe use code similar as in DrawComboBoxDropButton below?
+ // Maybe use code similar as in DrawPushButton below?
GTK_PIZZA(win->m_wxwindow)->bin_window,
flags & wxCONTROL_DISABLED ? GTK_STATE_INSENSITIVE : GTK_STATE_NORMAL,
GTK_SHADOW_OUT,
NULL,
button,
"button",
- dc.XLOG2DEV(rect.x) -1, rect.y -1, rect.width +2, rect.height +2
+ dc.XLOG2DEV(rect.x), rect.y, rect.width, rect.height
);
}
const wxRect& rect,
int flags)
{
- GtkWidget *button = GetButtonWidget();
+ DrawPushButton(win,dc,rect,flags);
+ DrawDropArrow(win,dc,rect);
+}
+
+void
+wxRendererGTK::DrawCheckButton(wxWindow *win,
+ wxDC& dc,
+ const wxRect& rect,
+ int flags )
+{
+ GtkWidget *button = GetCheckButtonWidget();
// for reason why we do this, see DrawDropArrow
wxWindowDC& wdc = (wxWindowDC&)dc;
wxASSERT ( wdc.IsKindOf(CLASSINFO(wxWindowDC)) );
-
- // draw button
+
GtkStateType state;
if ( flags & wxCONTROL_PRESSED )
state = GTK_STATE_PRELIGHT;
else
state = GTK_STATE_NORMAL;
-
- gtk_paint_box
+
+ gtk_paint_check
(
button->style,
wdc.m_window,
state,
- flags & wxCONTROL_PRESSED ? GTK_SHADOW_IN : GTK_SHADOW_OUT,
+ flags & wxCONTROL_CHECKED ? GTK_SHADOW_IN : GTK_SHADOW_OUT,
NULL,
button,
- "button",
- rect.x, rect.y, rect.width, rect.height
+ "cellcheck",
+ dc.LogicalToDeviceX(rect.x)+2,
+ dc.LogicalToDeviceY(rect.y)+3,
+ 13, 13
);
-
- // draw arrow on button
- DrawDropArrow(win,dc,rect,flags);
-
}
-void
-wxRendererGTK::DrawCheckButton(wxWindow *win,
- wxDC& dc,
- const wxRect& rect,
- int flags )
+void
+wxRendererGTK::DrawPushButton(wxWindow *win,
+ wxDC& dc,
+ const wxRect& rect,
+ int flags)
{
- GtkWidget *button = GetCheckButtonWidget();
+ GtkWidget *button = GetButtonWidget();
// for reason why we do this, see DrawDropArrow
wxWindowDC& wdc = (wxWindowDC&)dc;
wxASSERT ( wdc.IsKindOf(CLASSINFO(wxWindowDC)) );
-
+
+ // draw button
GtkStateType state;
if ( flags & wxCONTROL_PRESSED )
state = GTK_STATE_PRELIGHT;
else
state = GTK_STATE_NORMAL;
-
- gtk_paint_check
+
+ gtk_paint_box
(
button->style,
wdc.m_window,
state,
- flags & wxCONTROL_CHECKED ? GTK_SHADOW_IN : GTK_SHADOW_OUT,
+ flags & wxCONTROL_PRESSED ? GTK_SHADOW_IN : GTK_SHADOW_OUT,
NULL,
button,
- "cellcheck",
- rect.x, rect.y, 13, 13
+ "button",
+ rect.x, rect.y, rect.width, rect.height
);
}