]> git.saurik.com Git - wxWidgets.git/blobdiff - src/gtk1/renderer.cpp
derive wxSTC from wxTextEntryBase to provide even more wxTextCtrl-like methods (see...
[wxWidgets.git] / src / gtk1 / renderer.cpp
index 65efb88eae9a472a8ee2cfc73ef891a00dac578a..beb39a217f1b18d3bf4a95b5b76feef68b4a4d8a 100644 (file)
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
 ///////////////////////////////////////////////////////////////////////////////
-// Name:        gtk/renderer.cpp
+// Name:        src/gtk1/renderer.cpp
 // Purpose:     implementation of wxRendererNative for wxGTK
 // Author:      Vadim Zeitlin
 // Modified by:
 // Purpose:     implementation of wxRendererNative for wxGTK
 // Author:      Vadim Zeitlin
 // Modified by:
 #endif
 
 #include "wx/renderer.h"
 #endif
 
 #include "wx/renderer.h"
+
+#ifndef WX_PRECOMP
+    #include "wx/window.h"
+    #include "wx/dc.h"
+#endif
+
 #include <gtk/gtk.h>
 #include "wx/gtk1/win_gtk.h"
 #include <gtk/gtk.h>
 #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
 
 // 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",
         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,
 
 void
 wxRendererGTK::DrawSplitterSash(wxWindow *win,
-                                wxDC& dc,
+                                wxDC& WXUNUSED(dc),
                                 const wxSize& size,
                                 wxCoord position,
                                 wxOrientation orient,
                                 const wxSize& size,
                                 wxCoord position,
                                 wxOrientation orient,
@@ -294,7 +297,7 @@ wxRendererGTK::DrawSplitterSash(wxWindow *win,
 }
 
 void
 }
 
 void
-wxRendererGTK::DrawDropArrow(wxWindow *win,
+wxRendererGTK::DrawDropArrow(wxWindow *WXUNUSED(win),
                              wxDC& dc,
                              const wxRect& rect,
                              int flags)
                              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.
     // 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
 
     // 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,
     gtk_paint_arrow
     (
         button->style,
-        wdc.m_window,
+        gdk_window,
         state,
         flags & wxCONTROL_PRESSED ? GTK_SHADOW_IN : GTK_SHADOW_OUT,
         NULL,
         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
     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;
 
     // draw button
     GtkStateType state;
@@ -379,7 +383,7 @@ wxRendererGTK::DrawComboBoxDropButton(wxWindow *win,
     gtk_paint_box
     (
         button->style,
     gtk_paint_box
     (
         button->style,
-        wdc.m_window,
+        gdk_window,
         state,
         flags & wxCONTROL_PRESSED ? GTK_SHADOW_IN : GTK_SHADOW_OUT,
         NULL,
         state,
         flags & wxCONTROL_PRESSED ? GTK_SHADOW_IN : GTK_SHADOW_OUT,
         NULL,