From 83dc6964f0a5fce3be25bcf774981f6aae807915 Mon Sep 17 00:00:00 2001
From: Robert Roebling <robert@roebling.de>
Date: Mon, 28 Feb 2005 14:38:47 +0000
Subject: [PATCH]   Changed ComboDropDown button under GTK+ so that it     will
 create a transparent button. This works for     the date control, but should
 be generalized somehow.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@32462 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
---
 src/generic/datectlg.cpp | 21 +++++++++++++++++++++
 src/gtk/renderer.cpp     | 13 -------------
 src/gtk1/renderer.cpp    | 13 -------------
 3 files changed, 21 insertions(+), 26 deletions(-)

diff --git a/src/generic/datectlg.cpp b/src/generic/datectlg.cpp
index c035731aab..8a1c2bcf2e 100644
--- a/src/generic/datectlg.cpp
+++ b/src/generic/datectlg.cpp
@@ -194,12 +194,33 @@ void wxDropdownButton::DoMoveWindow(int x, int y, int w, int h)
 
         wxRect r(0,0,bw, bh);
         wxRendererNative& renderer = wxRendererNative::Get();
+        
+#ifdef __WXGTK__
+        wxColour magic(255,0,255);
+        dc.SetBrush( wxBrush( magic ) );
+        dc.SetPen( *wxTRANSPARENT_PEN );
+        dc.DrawRectangle(0,0,bw,bh);
+        renderer.DrawComboBoxDropButton(this, dc, r);
+        wxMask *mask = new wxMask( bmp, magic );
+        bmp.SetMask( mask );
+#else
         renderer.DrawComboBoxDropButton(this, dc, r);
+#endif
         SetBitmapLabel(bmp);
 
         wxBitmap bmpSel(bw, bh);
         dc.SelectObject(bmpSel);
+        
+#ifdef __WXGTK__
+        dc.SetBrush( wxBrush( magic ) );
+        dc.SetPen( *wxTRANSPARENT_PEN );
+        dc.DrawRectangle(0,0,bw,bh);
+        renderer.DrawComboBoxDropButton(this, dc, r, wxCONTROL_PRESSED);
+        mask = new wxMask( bmpSel, magic );
+        bmpSel.SetMask( mask );
+#else
         renderer.DrawComboBoxDropButton(this, dc, r, wxCONTROL_PRESSED);
+#endif        
         SetBitmapSelected(bmpSel);
     }
 
diff --git a/src/gtk/renderer.cpp b/src/gtk/renderer.cpp
index c6e3f69cdc..1094858d74 100644
--- a/src/gtk/renderer.cpp
+++ b/src/gtk/renderer.cpp
@@ -396,19 +396,6 @@ void wxRendererGTK::DrawComboBoxDropButton(wxWindow *win,
     else
         state = GTK_STATE_NORMAL;
 
-    // erase background first
-    gtk_paint_box
-    (
-        button->style,
-        wdc.m_window,
-        state,
-        GTK_SHADOW_NONE,
-        NULL,
-        button,
-        "button",
-        rect.x, rect.y, rect.width, rect.height
-    );
-
     // draw arrow on button
     gtk_paint_arrow
     (
diff --git a/src/gtk1/renderer.cpp b/src/gtk1/renderer.cpp
index c6e3f69cdc..1094858d74 100644
--- a/src/gtk1/renderer.cpp
+++ b/src/gtk1/renderer.cpp
@@ -396,19 +396,6 @@ void wxRendererGTK::DrawComboBoxDropButton(wxWindow *win,
     else
         state = GTK_STATE_NORMAL;
 
-    // erase background first
-    gtk_paint_box
-    (
-        button->style,
-        wdc.m_window,
-        state,
-        GTK_SHADOW_NONE,
-        NULL,
-        button,
-        "button",
-        rect.x, rect.y, rect.width, rect.height
-    );
-
     // draw arrow on button
     gtk_paint_arrow
     (
-- 
2.47.2