]> git.saurik.com Git - wxWidgets.git/blobdiff - src/gtk/tbargtk.cpp
attempts at making modal dialogs without parent work - failed
[wxWidgets.git] / src / gtk / tbargtk.cpp
index aa7574fecaec1668cfba3abdf8003e3834d2086e..d36704d5138eb212854bb2c471693ad2dc39764f 100644 (file)
@@ -30,6 +30,8 @@
 #include "gdk/gdk.h"
 #include "gtk/gtk.h"
 
+extern GdkFont *GtkGetDefaultGuiFont();
+
 // ----------------------------------------------------------------------------
 // globals
 // ----------------------------------------------------------------------------
@@ -80,7 +82,7 @@ protected:
 // wxWin macros
 // ----------------------------------------------------------------------------
 
-IMPLEMENT_DYNAMIC_CLASS(wxToolBar, wxControl)
+IMPLEMENT_DYNAMIC_CLASS(wxToolBar, wxToolBarBase)
 
 // ============================================================================
 // implementation
@@ -218,9 +220,7 @@ void wxToolBar::Init()
 {
     m_fg =
     m_bg = (GdkColor *)NULL;
-
     m_toolbar = (GtkToolbar *)NULL;
-
     m_blockNextEvent = FALSE;
 }
 
@@ -272,24 +272,26 @@ bool wxToolBar::Create( wxWindow *parent,
 
     gtk_toolbar_set_tooltips( GTK_TOOLBAR(m_toolbar), TRUE );
 
-#if (GTK_MINOR_VERSION > 0)
     if (style & wxTB_FLAT)
         gtk_toolbar_set_button_relief( GTK_TOOLBAR(m_toolbar), GTK_RELIEF_NONE );
-#endif
+
 
     m_fg = new GdkColor;
-    m_fg->red = 0;
-    m_fg->green = 0;
+    m_fg->red = 0; 
+    m_fg->green = 0; 
     m_fg->blue = 0;
-    gdk_color_alloc( gtk_widget_get_colormap( GTK_WIDGET(m_toolbar) ), m_fg );
-
+    wxColour fg(0,0,0);
+    fg.CalcPixel( gtk_widget_get_colormap( GTK_WIDGET(m_toolbar) ) );
+    m_fg->pixel = fg.GetPixel();
+    
     m_bg = new GdkColor;
     m_bg->red = 65535;
     m_bg->green = 65535;
-    m_bg->blue = 50000;
-    gdk_color_alloc( gtk_widget_get_colormap( GTK_WIDGET(m_toolbar) ), m_bg );
-
-#if (GTK_MINOR_VERSION > 0)
+    m_bg->blue = 49980;
+    wxColour bg(255,255,196);
+    bg.CalcPixel( gtk_widget_get_colormap( GTK_WIDGET(m_toolbar) ) );
+    m_bg->pixel = bg.GetPixel();
+    
     gtk_tooltips_force_window( GTK_TOOLBAR(m_toolbar)->tooltips );
 
     GtkStyle *g_style = 
@@ -298,10 +300,9 @@ bool wxToolBar::Create( wxWindow *parent,
                     GTK_TOOLBAR(m_toolbar)->tooltips->tip_window ) );
 
     g_style->bg[GTK_STATE_NORMAL] = *m_bg;
+    gdk_font_unref( g_style->font );
+       g_style->font = gdk_font_ref( GtkGetDefaultGuiFont() );
     gtk_widget_set_style( GTK_TOOLBAR(m_toolbar)->tooltips->tip_window, g_style );
-#else
-    gtk_tooltips_set_colors( GTK_TOOLBAR(m_toolbar)->tooltips, m_bg, m_fg );
-#endif
 
     m_parent->DoAddChild( this );
 
@@ -316,6 +317,9 @@ bool wxToolBar::DoInsertTool(size_t pos, wxToolBarToolBase *toolBase)
 {
     wxToolBarTool *tool = (wxToolBarTool *)toolBase;
 
+    // we have inserted a space before all the tools
+    if (m_xMargin > 1) pos++;
+    
     if ( tool->IsButton() )
     {
         wxBitmap bitmap = tool->GetBitmap1();
@@ -397,14 +401,15 @@ bool wxToolBar::DoInsertTool(size_t pos, wxToolBarToolBase *toolBase)
     }
 
     GtkRequisition req;
-    (* GTK_WIDGET_CLASS( GTK_OBJECT(m_widget)->klass )->size_request ) (m_widget, &req );
+    (* GTK_WIDGET_CLASS( GTK_OBJECT_GET_CLASS(m_widget) )->size_request )
+        (m_widget, &req );
     m_width = req.width + m_xMargin;
-    m_height = req.height + 2*m_yMargin + 4;
+    m_height = req.height + 2*m_yMargin;
 
     return TRUE;
 }
 
-bool wxToolBar::DoDeleteTool(size_t pos, wxToolBarToolBase *toolBase)
+bool wxToolBar::DoDeleteTool(size_t WXUNUSED(pos), wxToolBarToolBase *toolBase)
 {
     wxToolBarTool *tool = (wxToolBarTool *)toolBase;