X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c7a757aa56bb3eb47e14418f53579c4a8d9055dc..00dc9772321d7539fd155cdf529821f2fbfc82fb:/src/gtk/renderer.cpp diff --git a/src/gtk/renderer.cpp b/src/gtk/renderer.cpp index 7323cb5c04..1eec14354d 100644 --- a/src/gtk/renderer.cpp +++ b/src/gtk/renderer.cpp @@ -92,6 +92,8 @@ public: const wxRect& rect, int flags = 0); + virtual void DrawFocusRect(wxWindow* win, wxDC& dc, const wxRect& rect, int flags = 0); + virtual wxSplitterRenderParams GetSplitterParams(const wxWindow *win); private: @@ -188,7 +190,7 @@ GtkWidget * wxRendererGTK::GetHeaderButtonWidget() { static GtkWidget *s_button = NULL; - + if ( !s_button ) { // Get the dummy tree widget, give it a column, and then use the @@ -216,7 +218,7 @@ wxRendererGTK::DrawHeaderButton(wxWindow *win, { GtkWidget *button = GetHeaderButtonWidget(); - + GdkWindow* gdk_window = dc.GetGDKWindow(); wxASSERT_MSG( gdk_window, wxT("cannot use wxRendererNative on wxDC of this type") ); @@ -577,3 +579,27 @@ wxRendererGTK::DrawItemSelectionRect(wxWindow *win, rect.height ); } } + +void wxRendererGTK::DrawFocusRect(wxWindow* win, wxDC& dc, const wxRect& rect, int flags) +{ + GdkWindow* gdk_window = dc.GetGDKWindow(); + wxASSERT_MSG( gdk_window, + wxT("cannot use wxRendererNative on wxDC of this type") ); + + GtkStateType state; + if (flags & wxCONTROL_SELECTED) + state = GTK_STATE_SELECTED; + else + state = GTK_STATE_NORMAL; + + gtk_paint_focus( win->m_widget->style, + gdk_window, + state, + NULL, + win->m_wxwindow, + NULL, + dc.LogicalToDeviceX(rect.x), + dc.LogicalToDeviceY(rect.y), + rect.width, + rect.height ); +}