{
public:
// draw the header control button (used by wxListCtrl)
- virtual void DrawHeaderButton(wxWindow *win,
+ virtual int DrawHeaderButton(wxWindow *win,
wxDC& dc,
const wxRect& rect,
int flags = 0,
// list/tree controls drawing
// ----------------------------------------------------------------------------
-void
+int
wxRendererGTK::DrawHeaderButton(wxWindow *win,
wxDC& dc,
const wxRect& rect,
int x_diff = 0;
if (win->GetLayoutDirection() == wxLayout_RightToLeft)
x_diff = rect.width;
-
+
gtk_paint_box
(
button->style,
dc.LogicalToDeviceX(rect.x) - x_diff, rect.y, rect.width, rect.height
);
- DrawHeaderButtonContents(win, dc, rect, flags, sortArrow, params);
+ return DrawHeaderButtonContents(win, dc, rect, flags, sortArrow, params);
}
// draw a ">" or "v" button
rect.height = full_size;
rect.width = w;
}
-
+
int x_diff = 0;
if (win->GetLayoutDirection() == wxLayout_RightToLeft)
x_diff = rect.width;
wxASSERT_MSG( gdk_window,
wxT("cannot use wxRendererNative on wxDC of this type") );
+ int x_diff = 0;
+ if (win->GetLayoutDirection() == wxLayout_RightToLeft)
+ x_diff = rect.width;
+
GtkStateType state;
if (flags & wxCONTROL_SELECTED)
{
- if (flags & wxCONTROL_FOCUSED)
- state = GTK_STATE_SELECTED;
- else
- state = GTK_STATE_INSENSITIVE;
+ // the wxCONTROL_FOCUSED state is deduced
+ // directly from the m_wxwindow by GTK+
+ state = GTK_STATE_SELECTED;
- gtk_paint_flat_box( win->m_wxwindow->style,
+ gtk_paint_flat_box( win->m_widget->style,
gdk_window,
state,
GTK_SHADOW_NONE,
NULL,
win->m_wxwindow,
- "treeview",
- dc.LogicalToDeviceX(rect.x),
+ "cell_even",
+ dc.LogicalToDeviceX(rect.x) - x_diff,
dc.LogicalToDeviceY(rect.y),
rect.width,
rect.height );
}
+ else // !wxCONTROL_SELECTED
+ {
+ state = GTK_STATE_NORMAL;
+ }
if (flags & wxCONTROL_CURRENT)
{
- dc.SetPen( *wxBLACK_PEN );
- dc.SetBrush( *wxTRANSPARENT_BRUSH );
- dc.DrawRectangle( rect );
+ gtk_paint_focus( win->m_widget->style,
+ gdk_window,
+ state,
+ NULL,
+ win->m_wxwindow,
+ "treeview",
+ dc.LogicalToDeviceX(rect.x),
+ dc.LogicalToDeviceY(rect.y),
+ rect.width,
+ rect.height );
}
}