]> git.saurik.com Git - wxWidgets.git/blobdiff - src/gtk/button.cpp
Fix broken and missing DataView interface items for Phoenix
[wxWidgets.git] / src / gtk / button.cpp
index cf3fb8b26aea5aaff6be2c5278e78b97a5e25134..6e496d75bbcf6a53260aece1bfc0aac61f566f27 100644 (file)
@@ -18,7 +18,9 @@
 
 #include "wx/stockitem.h"
 
 
 #include "wx/stockitem.h"
 
+#include <gtk/gtk.h>
 #include "wx/gtk/private.h"
 #include "wx/gtk/private.h"
+#include "wx/gtk/private/gtk2-compat.h"
 #include "wx/gtk/private/list.h"
 
 // ----------------------------------------------------------------------------
 #include "wx/gtk/private/list.h"
 
 // ----------------------------------------------------------------------------
@@ -174,7 +176,12 @@ wxSize wxButtonBase::GetDefaultSize()
         gtk_container_add(GTK_CONTAINER(box), btn);
         gtk_container_add(GTK_CONTAINER(wnd), box);
         GtkRequisition req;
         gtk_container_add(GTK_CONTAINER(box), btn);
         gtk_container_add(GTK_CONTAINER(wnd), box);
         GtkRequisition req;
+#ifdef __WXGTK3__
+        gtk_widget_get_preferred_height(btn, NULL, &req.height);
+        gtk_widget_get_preferred_width_for_height(btn, req.height, NULL, &req.width);
+#else
         gtk_widget_size_request(btn, &req);
         gtk_widget_size_request(btn, &req);
+#endif
 
         gint minwidth, minheight;
         gtk_widget_style_get(box,
 
         gint minwidth, minheight;
         gtk_widget_style_get(box,
@@ -269,9 +276,9 @@ GtkLabel *wxButton::GTKGetLabel() const
 
 void wxButton::DoApplyWidgetStyle(GtkRcStyle *style)
 {
 
 void wxButton::DoApplyWidgetStyle(GtkRcStyle *style)
 {
-    gtk_widget_modify_style(m_widget, style);
+    GTKApplyStyle(m_widget, style);
     GtkWidget* child = gtk_bin_get_child(GTK_BIN(m_widget));
     GtkWidget* child = gtk_bin_get_child(GTK_BIN(m_widget));
-    gtk_widget_modify_style(child, style);
+    GTKApplyStyle(child, style);
 
     // for buttons with images, the path to the label is (at least in 2.12)
     // GtkButton -> GtkAlignment -> GtkHBox -> GtkLabel
 
     // for buttons with images, the path to the label is (at least in 2.12)
     // GtkButton -> GtkAlignment -> GtkHBox -> GtkLabel
@@ -283,7 +290,7 @@ void wxButton::DoApplyWidgetStyle(GtkRcStyle *style)
             wxGtkList list(gtk_container_get_children(GTK_CONTAINER(box)));
             for (GList* item = list; item; item = item->next)
             {
             wxGtkList list(gtk_container_get_children(GTK_CONTAINER(box)));
             for (GList* item = list; item; item = item->next)
             {
-                gtk_widget_modify_style(GTK_WIDGET(item->data), style);
+                GTKApplyStyle(GTK_WIDGET(item->data), style);
             }
         }
     }
             }
         }
     }
@@ -295,7 +302,7 @@ wxSize wxButton::DoGetBestSize() const
     // extra border around it, but we don't want to take it into account in
     // our size calculations (otherwise the result is visually ugly), so
     // always return the size of non default button from here
     // extra border around it, but we don't want to take it into account in
     // our size calculations (otherwise the result is visually ugly), so
     // always return the size of non default button from here
-    const bool isDefault = gtk_widget_has_default(m_widget);
+    const bool isDefault = gtk_widget_has_default(m_widget) != 0;
     if ( isDefault )
     {
         // temporarily unset default flag
     if ( isDefault )
     {
         // temporarily unset default flag