]> git.saurik.com Git - wxWidgets.git/commitdiff
use a GtkAlignment to set size of toolbar controls, instead of trying to "correct...
authorPaul Cornett <paulcor@bullseye.com>
Sat, 20 Oct 2007 03:47:33 +0000 (03:47 +0000)
committerPaul Cornett <paulcor@bullseye.com>
Sat, 20 Oct 2007 03:47:33 +0000 (03:47 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@49252 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/gtk/tbargtk.cpp

index b1409d49f723739bfd9ed03e2d52534ca5f918e3..54e50ec64a700125416fc2868c3347b627791b2e 100644 (file)
 #include "wx/toolbar.h"
 
 #ifndef WX_PRECOMP
-    #include "wx/frame.h"
+    #include "wx/menu.h"
 #endif
 
 // FIXME: Use GtkImage instead of GtkPixmap. Use the new toolbar API for when gtk runtime is new enough?
 // Beware that the new and old toolbar API may not be mixed in usage.
-#include <gtk/gtkversion.h>
-#ifdef GTK_DISABLE_DEPRECATED
 #undef GTK_DISABLE_DEPRECATED
-#endif
 
 #include "wx/gtk/private.h"
-#include "wx/menu.h"
-
 
 /* XPM */
 static const char *arrow_down_xpm[] = {
@@ -338,27 +333,6 @@ static gint gtk_toolbar_tool_callback( GtkWidget *WXUNUSED(widget),
 }
 }
 
-extern "C" {
-static
-void gtktoolwidget_size_callback( GtkWidget *widget,
-                                  GtkAllocation *alloc,
-                                  wxWindow *win )
-{
-    // this shouldn't happen...
-    if (win->GetParent()->m_wxwindow) return;
-
-    wxSize size = win->GetEffectiveMinSize();
-    if (size.y != alloc->height)
-    {
-        GtkAllocation alloc2;
-        alloc2.x = alloc->x;
-        alloc2.y = (alloc->height - size.y + 3) / 2;
-        alloc2.width = alloc->width;
-        alloc2.height = size.y;
-        gtk_widget_size_allocate( widget, &alloc2 );
-    }
-}
-}
 //-----------------------------------------------------------------------------
 // InsertChild callback for wxToolBar
 //-----------------------------------------------------------------------------
@@ -646,20 +620,18 @@ bool wxToolBar::DoInsertTool(size_t pos, wxToolBarToolBase *toolBase)
             return true;
 
         case wxTOOL_STYLE_CONTROL:
+            GtkWidget* align = gtk_alignment_new(0.5, 0.5, 0, 0);
+            gtk_widget_show(align);
+            gtk_container_add((GtkContainer*)align, tool->GetControl()->m_widget);
             gtk_toolbar_insert_widget(
                                        m_toolbar,
-                                       tool->GetControl()->m_widget,
+                                       align,
                                        (const char *) NULL,
                                        (const char *) NULL,
                                        posGtk
                                       );
             // release reference obtained by wxInsertChildInToolBar
             g_object_unref(tool->GetControl()->m_widget);
-
-            // connect after in order to correct size_allocate events
-            g_signal_connect_after (tool->GetControl()->m_widget, "size_allocate",
-                          G_CALLBACK (gtktoolwidget_size_callback), tool->GetControl());
-
             break;
     }