]> git.saurik.com Git - wxWidgets.git/blobdiff - src/gtk/button.cpp
Disable wxUSE_ENH_METAFILE for wxGTK builds.
[wxWidgets.git] / src / gtk / button.cpp
index 28379ea99881fc20be1a0ab18a646c4dd092c82e..a2ec92fdde239c3d860c2a4668e1ec5e771e5b2a 100644 (file)
 
 #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"
 
 // ----------------------------------------------------------------------------
 // GTK callbacks
 
 // ----------------------------------------------------------------------------
 // GTK callbacks
@@ -33,7 +36,7 @@ wxgtk_button_clicked_callback(GtkWidget *WXUNUSED(widget), wxButton *button)
     if ( button->GTKShouldIgnoreEvent() )
         return;
 
     if ( button->GTKShouldIgnoreEvent() )
         return;
 
-    wxCommandEvent event(wxEVT_COMMAND_BUTTON_CLICKED, button->GetId());
+    wxCommandEvent event(wxEVT_BUTTON, button->GetId());
     event.SetEventObject(button);
     button->HandleWindowEvent(event);
 }
     event.SetEventObject(button);
     button->HandleWindowEvent(event);
 }
@@ -168,12 +171,12 @@ wxSize wxButtonBase::GetDefaultSize()
         //     button's size. We have to retrieve both values and combine them.
 
         GtkWidget *wnd = gtk_window_new(GTK_WINDOW_TOPLEVEL);
         //     button's size. We have to retrieve both values and combine them.
 
         GtkWidget *wnd = gtk_window_new(GTK_WINDOW_TOPLEVEL);
-        GtkWidget *box = gtk_hbutton_box_new();
+        GtkWidget *box = gtk_button_box_new(GTK_ORIENTATION_HORIZONTAL);
         GtkWidget *btn = gtk_button_new_from_stock(GTK_STOCK_CANCEL);
         gtk_container_add(GTK_CONTAINER(box), btn);
         gtk_container_add(GTK_CONTAINER(wnd), box);
         GtkRequisition req;
         GtkWidget *btn = gtk_button_new_from_stock(GTK_STOCK_CANCEL);
         gtk_container_add(GTK_CONTAINER(box), btn);
         gtk_container_add(GTK_CONTAINER(wnd), box);
         GtkRequisition req;
-        gtk_widget_size_request(btn, &req);
+        gtk_widget_get_preferred_size(btn, NULL, &req);
 
         gint minwidth, minheight;
         gtk_widget_style_get(box,
 
         gint minwidth, minheight;
         gtk_widget_style_get(box,
@@ -252,13 +255,12 @@ GtkLabel *wxButton::GTKGetLabel() const
     {
         GtkWidget* box = gtk_bin_get_child(GTK_BIN(child));
         GtkLabel* label = NULL;
     {
         GtkWidget* box = gtk_bin_get_child(GTK_BIN(child));
         GtkLabel* label = NULL;
-        GList* list = gtk_container_get_children(GTK_CONTAINER(box));
+        wxGtkList list(gtk_container_get_children(GTK_CONTAINER(box)));
         for (GList* item = list; item; item = item->next)
         {
             if (GTK_IS_LABEL(item->data))
                 label = GTK_LABEL(item->data);
         }
         for (GList* item = list; item; item = item->next)
         {
             if (GTK_IS_LABEL(item->data))
                 label = GTK_LABEL(item->data);
         }
-        g_list_free(list);
 
         return label;
     }
 
         return label;
     }
@@ -269,9 +271,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
@@ -280,12 +282,11 @@ void wxButton::DoApplyWidgetStyle(GtkRcStyle *style)
         GtkWidget* box = gtk_bin_get_child(GTK_BIN(child));
         if ( GTK_IS_BOX(box) )
         {
         GtkWidget* box = gtk_bin_get_child(GTK_BIN(child));
         if ( GTK_IS_BOX(box) )
         {
-            GList* list = gtk_container_get_children(GTK_CONTAINER(box));
+            wxGtkList list(gtk_container_get_children(GTK_CONTAINER(box)));
             for (GList* item = list; item; item = item->next)
             {
             for (GList* item = list; item; item = item->next)
             {
-                gtk_widget_modify_style(GTK_WIDGET(item->data), style);
+                GTKApplyStyle(GTK_WIDGET(item->data), style);
             }
             }
-            g_list_free(list);
         }
     }
 }
         }
     }
 }
@@ -296,7 +297,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
@@ -328,7 +329,7 @@ wxSize wxButton::DoGetBestSize() const
 wxVisualAttributes
 wxButton::GetClassDefaultAttributes(wxWindowVariant WXUNUSED(variant))
 {
 wxVisualAttributes
 wxButton::GetClassDefaultAttributes(wxWindowVariant WXUNUSED(variant))
 {
-    return GetDefaultAttributesFromGTKWidget(gtk_button_new);
+    return GetDefaultAttributesFromGTKWidget(gtk_button_new());
 }
 
 #endif // wxUSE_BUTTON
 }
 
 #endif // wxUSE_BUTTON