]> git.saurik.com Git - wxWidgets.git/blobdiff - src/gtk/tbargtk.cpp
correct a bug in the MSW code using wxMask
[wxWidgets.git] / src / gtk / tbargtk.cpp
index 29c954eca51e08ce18a79e1a108739cd8f892ffa..d8323989a0d3ee32d919e3281d50731691ce01e1 100644 (file)
@@ -2,9 +2,7 @@
 // Name:        tbargtk.cpp
 // Purpose:     GTK toolbar
 // Author:      Robert Roebling
-// Modified by:
-// Created:     01/02/97
-// RCS-ID:
+// RCS-ID:      $Id$
 // Copyright:   (c) Robert Roebling
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
@@ -113,15 +111,19 @@ bool wxToolBar::Create( wxWindow *parent, wxWindowID id,
 
   m_tools.DeleteContents( TRUE );
 
-  m_widget = gtk_handle_box_new();
+  m_toolbar = GTK_TOOLBAR( gtk_toolbar_new( GTK_ORIENTATION_HORIZONTAL,
+                                            GTK_TOOLBAR_ICONS ) );
 
-  m_toolbar = GTK_TOOLBAR( gtk_toolbar_new( GTK_ORIENTATION_HORIZONTAL, GTK_TOOLBAR_ICONS ) );
+  m_widget = GTK_WIDGET(m_toolbar);                                        
+                                           
   gtk_toolbar_set_tooltips( GTK_TOOLBAR(m_toolbar), TRUE );
 
-  gtk_container_add( GTK_CONTAINER(m_widget), GTK_WIDGET(m_toolbar) );
-
-  gtk_widget_show( GTK_WIDGET(m_toolbar) );
+  gtk_toolbar_append_space( m_toolbar );
+  
+  m_parent->AddChild( this );
 
+  (m_parent->m_insertCallback)( m_parent, this );
+  
   PostCreation();
 
   Show( TRUE );
@@ -177,53 +179,43 @@ wxToolBarTool *wxToolBar::AddTool( int toolIndex, const wxBitmap& bitmap,
   wxCHECK_MSG( bitmap.GetPixmap() != NULL, (wxToolBarTool *)NULL,
                "wxToolBar::Add needs a wxBitmap" );
   
-  GtkWidget *tool_pixmap = (GtkWidget *) NULL;
+  GtkWidget *tool_pixmap = (GtkWidget *)NULL;
   
   if (TRUE) // FIXME huh?
   {
     GdkPixmap *pixmap = bitmap.GetPixmap();
 
-    GdkBitmap *mask = (GdkBitmap *) NULL;
-    if (bitmap.GetMask()) mask = bitmap.GetMask()->GetBitmap();
+    GdkBitmap *mask = (GdkBitmap *)NULL;
+    if ( bitmap.GetMask() )
+      mask = bitmap.GetMask()->GetBitmap();
     
     tool_pixmap = gtk_pixmap_new( pixmap, mask );
   }
   
   gtk_misc_set_alignment( GTK_MISC(tool_pixmap), 0.5, 0.5 );
 
-#if 0
   GtkToolbarChildType ctype = toggle ? GTK_TOOLBAR_CHILD_TOGGLEBUTTON
                                      : GTK_TOOLBAR_CHILD_BUTTON;
 
-  tool->m_item = gtk_toolbar_append_element
-                 (
-                  GTK_TOOLBAR(m_toolbar),
-                  ctype,
-                  (GtkWidget *)NULL,
-                  (const char *)NULL,
-                  helpString1,
-                  "",
-                  tool_pixmap,
-                  (GtkSignalFunc)gtk_toolbar_callback,
-                  (gpointer)tool
-                 );
+  GtkWidget *item = gtk_toolbar_append_element
+                     (
+                      GTK_TOOLBAR(m_toolbar),
+                      ctype,
+                      (GtkWidget *)NULL,
+                      (const char *)NULL,
+                      helpString1,
+                      "",
+                      tool_pixmap,
+                      (GtkSignalFunc)gtk_toolbar_callback,
+                      (gpointer)tool
+                     );
+
+  tool->m_item = item;
 
   gtk_signal_connect( GTK_OBJECT(tool->m_item),
                       "enter_notify_event", 
                       GTK_SIGNAL_FUNC(gtk_toolbar_enter_callback),
                       (gpointer)tool );
-#else
-  tool->m_item = gtk_toolbar_append_item 
-                 (
-                  GTK_TOOLBAR(m_toolbar),
-                  (const char *)NULL,
-                  helpString1,
-                  "",
-                  tool_pixmap,
-                  (GtkSignalFunc)gtk_toolbar_callback,
-                  (gpointer)tool
-                 );
-#endif
 
   m_tools.Append( tool );
 
@@ -260,7 +252,7 @@ void wxToolBar::Realize()
     node = node->Next();
   }
   
-  m_height += 10;
+  m_height += 12;
 }
 
 void wxToolBar::EnableTool(int toolIndex, bool enable)
@@ -346,7 +338,7 @@ bool wxToolBar::GetToolEnabled(int toolIndex) const
 
 void wxToolBar::SetMargins( int WXUNUSED(x), int WXUNUSED(y) )
 {
-  wxFAIL_MSG( "wxToolBar::SetMargins not implemented" );
+//  wxFAIL_MSG( "wxToolBar::SetMargins not implemented" );
 }
 
 void wxToolBar::SetToolPacking( int WXUNUSED(packing) )