X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/3cbab64109b007fa1d939fe588f5e79f9105b915..e8d9821d754585e579a0a7e9aeb2fd7913706d05:/src/gtk1/renderer.cpp diff --git a/src/gtk1/renderer.cpp b/src/gtk1/renderer.cpp index 65efb88eae..beb39a217f 100644 --- a/src/gtk1/renderer.cpp +++ b/src/gtk1/renderer.cpp @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////// -// Name: gtk/renderer.cpp +// Name: src/gtk1/renderer.cpp // Purpose: implementation of wxRendererNative for wxGTK // Author: Vadim Zeitlin // Modified by: @@ -25,12 +25,15 @@ #endif #include "wx/renderer.h" + +#ifndef WX_PRECOMP + #include "wx/window.h" + #include "wx/dc.h" +#endif + #include #include "wx/gtk1/win_gtk.h" - -#include "wx/window.h" -#include "wx/dc.h" -#include "wx/dcclient.h" +#include "wx/gtk1/dcclient.h" // RR: After a correction to the orientation of the sash // this doesn't seem to be required anymore and it @@ -138,7 +141,7 @@ wxRendererGTK::DrawHeaderButton(wxWindow *win, NULL, button, "button", - dc.XLOG2DEV(rect.x) -1, rect.y -1, rect.width +2, rect.height +2 + dc.LogicalToDeviceX(rect.x) -1, rect.y -1, rect.width +2, rect.height +2 ); } @@ -180,7 +183,7 @@ wxRendererGTK::DrawSplitterBorder(wxWindow * WXUNUSED(win), void wxRendererGTK::DrawSplitterSash(wxWindow *win, - wxDC& dc, + wxDC& WXUNUSED(dc), const wxSize& size, wxCoord position, wxOrientation orient, @@ -294,7 +297,7 @@ wxRendererGTK::DrawSplitterSash(wxWindow *win, } void -wxRendererGTK::DrawDropArrow(wxWindow *win, +wxRendererGTK::DrawDropArrow(wxWindow *WXUNUSED(win), wxDC& dc, const wxRect& rect, int flags) @@ -306,11 +309,10 @@ wxRendererGTK::DrawDropArrow(wxWindow *win, // work for wxMemoryDC. So that is why we assume wxDC // is wxWindowDC (wxClientDC, wxMemoryDC and wxPaintDC // are derived from it) and use its m_window. - wxWindowDC& wdc = (wxWindowDC&)dc; + wxWindowDCImpl * const impl = wxDynamicCast(dc.GetImpl(), wxWindowDCImpl); + wxCHECK_RET( impl, "must have a window DC" ); - // only doing debug-time checking here (it should - // probably be enough) - wxASSERT ( wdc.IsKindOf(CLASSINFO(wxWindowDC)) ); + GdkWindow* gdk_window = impl->GetGDKWindow(); // draw arrow so that there is even space horizontally // on both sides @@ -337,7 +339,7 @@ wxRendererGTK::DrawDropArrow(wxWindow *win, gtk_paint_arrow ( button->style, - wdc.m_window, + gdk_window, state, flags & wxCONTROL_PRESSED ? GTK_SHADOW_IN : GTK_SHADOW_OUT, NULL, @@ -361,8 +363,10 @@ wxRendererGTK::DrawComboBoxDropButton(wxWindow *win, GtkWidget *button = GetButtonWidget(); // for reason why we do this, see DrawDropArrow - wxWindowDC& wdc = (wxWindowDC&)dc; - wxASSERT ( wdc.IsKindOf(CLASSINFO(wxWindowDC)) ); + wxWindowDCImpl * const impl = wxDynamicCast(dc.GetImpl(), wxWindowDCImpl); + wxCHECK_RET( impl, "must have a window DC" ); + + GdkWindow* gdk_window = impl->GetGDKWindow(); // draw button GtkStateType state; @@ -379,7 +383,7 @@ wxRendererGTK::DrawComboBoxDropButton(wxWindow *win, gtk_paint_box ( button->style, - wdc.m_window, + gdk_window, state, flags & wxCONTROL_PRESSED ? GTK_SHADOW_IN : GTK_SHADOW_OUT, NULL,