X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/e413198572959f013fc2537a3c8cc184c9ac820d..055400c94e55d93025f64bc79c613c444261406b:/src/gtk/renderer.cpp diff --git a/src/gtk/renderer.cpp b/src/gtk/renderer.cpp index 7cb8da4000..34554c2b63 100644 --- a/src/gtk/renderer.cpp +++ b/src/gtk/renderer.cpp @@ -33,6 +33,7 @@ #include "wx/module.h" #endif +#include "wx/dcgraph.h" #include "wx/gtk/dc.h" #include "wx/gtk/private.h" @@ -134,17 +135,25 @@ wxRendererNative& wxRendererNative::GetDefault() return s_rendererGTK; } -GdkWindow* wxGetGdkWindowForDC(wxWindow* win, wxDC& dc) +static GdkWindow* wxGetGdkWindowForDC(wxWindow* win, wxDC& dc) { GdkWindow* gdk_window = NULL; + +#if wxUSE_GRAPHICS_CONTEXT + if ( dc.IsKindOf( CLASSINFO(wxGCDC) ) ) + gdk_window = win->GTKGetDrawingWindow(); + else +#endif + { #if wxUSE_NEW_DC - wxDCImpl *impl = dc.GetImpl(); - wxGTKDCImpl *gtk_impl = wxDynamicCast( impl, wxGTKDCImpl ); - if (gtk_impl) - gdk_window = gtk_impl->GetGDKWindow(); + wxDCImpl *impl = dc.GetImpl(); + wxGTKDCImpl *gtk_impl = wxDynamicCast( impl, wxGTKDCImpl ); + if (gtk_impl) + gdk_window = gtk_impl->GetGDKWindow(); #else - gdk_window = dc.GetGDKWindow(); + gdk_window = dc.GetGDKWindow(); #endif + } return gdk_window; } @@ -268,7 +277,7 @@ wxRendererGTK::DrawSplitterBorder(wxWindow * WXUNUSED(win), } void -wxRendererGTK::DrawSplitterSash(wxWindow *win, +wxRendererGTK::DrawSplitterSash(wxWindow* win, wxDC& dc, const wxSize& size, wxCoord position, @@ -329,14 +338,14 @@ wxRendererGTK::DrawSplitterSash(wxWindow *win, } void -wxRendererGTK::DrawDropArrow(wxWindow *WXUNUSED(win), +wxRendererGTK::DrawDropArrow(wxWindow* win, wxDC& dc, const wxRect& rect, int flags) { GtkWidget *button = wxGTKPrivate::GetButtonWidget(); - // If we give GTK_PIZZA(win->m_wxwindow)->bin_window as + // If we give WX_PIZZA(win->m_wxwindow)->bin_window as // a window for gtk_paint_xxx function, then it won't // work for wxMemoryDC. So that is why we assume wxDC // is wxWindowDC (wxClientDC, wxMemoryDC and wxPaintDC @@ -409,7 +418,7 @@ wxRendererGTK::GetCheckBoxSize(wxWindow *WXUNUSED(win)) } void -wxRendererGTK::DrawCheckBox(wxWindow *WXUNUSED(win), +wxRendererGTK::DrawCheckBox(wxWindow* win, wxDC& dc, const wxRect& rect, int flags ) @@ -453,7 +462,7 @@ wxRendererGTK::DrawCheckBox(wxWindow *WXUNUSED(win), } void -wxRendererGTK::DrawPushButton(wxWindow *WXUNUSED(win), +wxRendererGTK::DrawPushButton(wxWindow* win, wxDC& dc, const wxRect& rect, int flags) @@ -493,7 +502,7 @@ wxRendererGTK::DrawPushButton(wxWindow *WXUNUSED(win), } void -wxRendererGTK::DrawItemSelectionRect(wxWindow *win, +wxRendererGTK::DrawItemSelectionRect(wxWindow* win, wxDC& dc, const wxRect& rect, int flags ) @@ -704,9 +713,9 @@ void wxRendererGTK::DrawRadioButton(wxWindow* win, wxDC& dc, const wxRect& rect, GtkStateType state = GTK_STATE_NORMAL; if ( flags & wxCONTROL_DISABLED ) - state = GTK_STATE_INSENSITIVE; + state = GTK_STATE_INSENSITIVE; if ( flags & wxCONTROL_PRESSED ) - state = GTK_STATE_ACTIVE; + state = GTK_STATE_ACTIVE; /* Don't know when to set this state_type = GTK_STATE_PRELIGHT;