]> git.saurik.com Git - wxWidgets.git/blobdiff - src/gtk/clrpicker.cpp
Fix crash in wxDC::GetMultiLineTextExtent() after last commit.
[wxWidgets.git] / src / gtk / clrpicker.cpp
index 014285911154883f6d1931c9b0e0c94cd1d753ae..f317108ac1c3763e8cb1a37b52d52e1c1ba12dcb 100644 (file)
@@ -37,9 +37,14 @@ static void gtk_clrbutton_setcolor_callback(GtkColorButton *widget,
 {
     // update the m_colour member of the wxColourButton
     wxASSERT(p);
+#ifdef __WXGTK3__
+    GdkRGBA gdkColor;
+    gtk_color_button_get_rgba(widget, &gdkColor);
+#else
     GdkColor gdkColor;
     gtk_color_button_get_color(widget, &gdkColor);
-    p->SetGdkColor(gdkColor);
+#endif
+    p->GTKSetColour(gdkColor);
 
     // fire the colour-changed event
     wxColourPickerEvent event(p, p->GetId(), p->GetColour());
@@ -67,9 +72,12 @@ bool wxColourButton::Create( wxWindow *parent, wxWindowID id,
     }
 
     m_colour = col;
+#ifdef __WXGTK3__
+    m_widget = gtk_color_button_new_with_rgba(m_colour);
+#else
     m_widget = gtk_color_button_new_with_color( m_colour.GetColor() );
+#endif
     g_object_ref(m_widget);
-    gtk_widget_show(m_widget);
 
     // GtkColourButton signals
     g_signal_connect(m_widget, "color-set",
@@ -90,7 +98,11 @@ wxColourButton::~wxColourButton()
 
 void wxColourButton::UpdateColour()
 {
+#ifdef __WXGTK3__
+    gtk_color_button_set_rgba(GTK_COLOR_BUTTON(m_widget), m_colour);
+#else
     gtk_color_button_set_color(GTK_COLOR_BUTTON(m_widget), m_colour.GetColor());
+#endif
 }
 
 #endif // wxUSE_COLOURPICKERCTRL