///////////////////////////////////////////////////////////////////////////////
-// Name: gtk/renderer.cpp
+// Name: src/gtk/renderer.cpp
// Purpose: implementation of wxRendererNative for wxGTK
// Author: Vadim Zeitlin
// Modified by:
#endif
#include "wx/renderer.h"
+
+#ifndef WX_PRECOMP
+ #include "wx/window.h"
+ #include "wx/dcclient.h"
+ #include "wx/settings.h"
+#endif
+
#include <gtk/gtk.h>
#include "wx/gtk/win_gtk.h"
-#include "wx/window.h"
-#include "wx/dc.h"
-#include "wx/dcclient.h"
-#include "wx/settings.h"
-
// RR: After a correction to the orientation of the sash
// this doesn't seem to be required anymore and it
// seems to confuse some themes so USE_ERASE_RECT=0
const wxRect& rect,
int flags = 0);
- virtual void DrawCheckButton(wxWindow *win,
- wxDC& dc,
- const wxRect& rect,
- int flags = 0);
+ virtual void DrawCheckBox(wxWindow *win,
+ wxDC& dc,
+ const wxRect& rect,
+ int flags = 0);
virtual void DrawPushButton(wxWindow *win,
wxDC& dc,
const wxRect& rect,
int flags = 0);
+ virtual void DrawItemSelectionRect(wxWindow *win,
+ wxDC& dc,
+ const wxRect& rect,
+ int flags = 0);
+
virtual wxSplitterRenderParams GetSplitterParams(const wxWindow *win);
private:
// used by DrawTreeItemButton()
static GtkWidget *GetTreeWidget();
-
- // used by DrawCheckButton()
+
+ // used by DrawCheckBox()
static GtkWidget *GetCheckButtonWidget();
};
NULL,
button,
"button",
- dc.XLOG2DEV(rect.x) -1, rect.y -1, rect.width +2, rect.height +2
+ dc.LogicalToDeviceX(rect.x), rect.y, rect.width, rect.height
);
}
DrawDropArrow(win,dc,rect);
}
-void
-wxRendererGTK::DrawCheckButton(wxWindow *win,
- wxDC& dc,
- const wxRect& rect,
- int flags )
+void
+wxRendererGTK::DrawCheckBox(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)) );
-
+
GtkStateType state;
if ( flags & wxCONTROL_PRESSED )
state = GTK_STATE_PRELIGHT;
else
state = GTK_STATE_NORMAL;
-
+
gtk_paint_check
(
button->style,
NULL,
button,
"cellcheck",
- rect.x, rect.y, 13, 13
+ dc.LogicalToDeviceX(rect.x)+2,
+ dc.LogicalToDeviceY(rect.y)+3,
+ 13, 13
);
}
rect.x, rect.y, rect.width, rect.height
);
}
+
+void
+wxRendererGTK::DrawItemSelectionRect(wxWindow *win,
+ wxDC& dc,
+ const wxRect& rect,
+ int flags )
+{
+ GtkStateType state;
+ if (flags & wxCONTROL_SELECTED)
+ {
+ if (flags & wxCONTROL_FOCUSED)
+ state = GTK_STATE_SELECTED;
+ else
+ state = GTK_STATE_INSENSITIVE;
+
+ gtk_paint_flat_box( win->m_wxwindow->style,
+ GTK_PIZZA(win->m_wxwindow)->bin_window,
+ state,
+ GTK_SHADOW_NONE,
+ NULL,
+ win->m_wxwindow,
+ "treeview",
+ dc.LogicalToDeviceX(rect.x),
+ dc.LogicalToDeviceY(rect.y),
+ rect.width,
+ rect.height );
+ }
+
+ if (flags & wxCONTROL_CURRENT)
+ {
+ dc.SetPen( *wxBLACK_PEN );
+ dc.SetBrush( *wxTRANSPARENT_BRUSH );
+ dc.DrawRectangle( rect );
+ }
+}