]> git.saurik.com Git - wxWidgets.git/blobdiff - src/gtk1/tbargtk.cpp
implemented dummy wxPalette for wxGTK, so that it no longer pops up assertion failure...
[wxWidgets.git] / src / gtk1 / tbargtk.cpp
index de64297fd4b1eb265aa2ee011a093c99ed079041..8753cade8d270b4e40e4d13f0bd6a62144e9a79a 100644 (file)
@@ -30,6 +30,8 @@
 #include "gdk/gdk.h"
 #include "gtk/gtk.h"
 
 #include "gdk/gdk.h"
 #include "gtk/gtk.h"
 
+extern GdkFont *GtkGetDefaultGuiFont();
+
 // ----------------------------------------------------------------------------
 // globals
 // ----------------------------------------------------------------------------
 // ----------------------------------------------------------------------------
 // globals
 // ----------------------------------------------------------------------------
@@ -80,7 +82,7 @@ protected:
 // wxWin macros
 // ----------------------------------------------------------------------------
 
 // wxWin macros
 // ----------------------------------------------------------------------------
 
-IMPLEMENT_DYNAMIC_CLASS(wxToolBar, wxControl)
+IMPLEMENT_DYNAMIC_CLASS(wxToolBar, wxToolBarBase)
 
 // ============================================================================
 // implementation
 
 // ============================================================================
 // implementation
@@ -139,35 +141,7 @@ static gint gtk_toolbar_enter_callback( GtkWidget *WXUNUSED(widget),
     
     wxToolBar *tb = (wxToolBar *)tool->GetToolBar();
     
     
     wxToolBar *tb = (wxToolBar *)tool->GetToolBar();
     
-#if (GTK_MINOR_VERSION == 0)
-    /* we grey-out the tip text of disabled tool in GTK 1.0 */
-    if (tool->IsEnabled())
-    {
-        if (tb->m_fg->red != 0)
-        {
-            tb->m_fg->red = 0;
-            tb->m_fg->green = 0;
-            tb->m_fg->blue = 0;
-            gdk_color_alloc( gtk_widget_get_colormap( GTK_WIDGET(tb->m_toolbar) ), tb->m_fg );
-            
-            gtk_tooltips_set_colors( GTK_TOOLBAR(tb->m_toolbar)->tooltips, tb->m_bg, tb->m_fg );
-        }
-    }
-    else
-    {
-        if (tb->m_fg->red == 0)
-        {
-            tb->m_fg->red = 33000;
-            tb->m_fg->green = 33000;
-            tb->m_fg->blue = 33000;
-            gdk_color_alloc( gtk_widget_get_colormap( GTK_WIDGET(tb->m_toolbar) ), tb->m_fg );
-            gtk_tooltips_set_colors( GTK_TOOLBAR(tb->m_toolbar)->tooltips, tb->m_bg, tb->m_fg );
-        }
-    }
-#endif
-    
-    /* emit the event */
-  
+    // emit the event
     tb->OnMouseEnter( tool->GetId() );
   
     return FALSE;
     tb->OnMouseEnter( tool->GetId() );
   
     return FALSE;
@@ -180,7 +154,7 @@ static gint gtk_toolbar_enter_callback( GtkWidget *WXUNUSED(widget),
 static void wxInsertChildInToolBar( wxToolBar* WXUNUSED(parent),
                                     wxWindow* WXUNUSED(child) )
 {
 static void wxInsertChildInToolBar( wxToolBar* WXUNUSED(parent),
                                     wxWindow* WXUNUSED(child) )
 {
-    /* we don't do anything here but pray */
+    // we don't do anything here
 }
 
 // ----------------------------------------------------------------------------
 }
 
 // ----------------------------------------------------------------------------
@@ -218,9 +192,7 @@ void wxToolBar::Init()
 {
     m_fg =
     m_bg = (GdkColor *)NULL;
 {
     m_fg =
     m_bg = (GdkColor *)NULL;
-
     m_toolbar = (GtkToolbar *)NULL;
     m_toolbar = (GtkToolbar *)NULL;
-
     m_blockNextEvent = FALSE;
 }
 
     m_blockNextEvent = FALSE;
 }
 
@@ -260,10 +232,8 @@ bool wxToolBar::Create( wxWindow *parent,
         gtk_container_add( GTK_CONTAINER(m_widget), GTK_WIDGET(m_toolbar) );
         gtk_widget_show( GTK_WIDGET(m_toolbar) );
 
         gtk_container_add( GTK_CONTAINER(m_widget), GTK_WIDGET(m_toolbar) );
         gtk_widget_show( GTK_WIDGET(m_toolbar) );
 
-#if (GTK_MINOR_VERSION > 0)
         if (style & wxTB_FLAT)
             gtk_handle_box_set_shadow_type( GTK_HANDLE_BOX(m_widget), GTK_SHADOW_NONE );
         if (style & wxTB_FLAT)
             gtk_handle_box_set_shadow_type( GTK_HANDLE_BOX(m_widget), GTK_SHADOW_NONE );
-#endif
     }
     else
     {     
     }
     else
     {     
@@ -300,8 +270,9 @@ bool wxToolBar::Create( wxWindow *parent,
                     GTK_TOOLBAR(m_toolbar)->tooltips->tip_window ) );
 
     g_style->bg[GTK_STATE_NORMAL] = *m_bg;
                     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 );
     gtk_widget_set_style( GTK_TOOLBAR(m_toolbar)->tooltips->tip_window, g_style );
-    
 
     m_parent->DoAddChild( this );
 
 
     m_parent->DoAddChild( this );
 
@@ -400,7 +371,8 @@ bool wxToolBar::DoInsertTool(size_t pos, wxToolBarToolBase *toolBase)
     }
 
     GtkRequisition req;
     }
 
     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;
 
     m_width = req.width + m_xMargin;
     m_height = req.height + 2*m_yMargin;
 
@@ -504,6 +476,18 @@ void wxToolBar::SetToolSeparation( int separation )
     m_toolSeparation = separation;
 }
 
     m_toolSeparation = separation;
 }
 
+void wxToolBar::SetToolShortHelp( int id, const wxString& helpString )
+{
+    wxToolBarTool *tool = (wxToolBarTool *)FindById(id);
+
+    if ( tool )
+    {
+        (void)tool->SetShortHelp(helpString);
+        gtk_tooltips_set_tip(m_toolbar->tooltips, tool->m_item,
+                             helpString.mbc_str(), "");
+    }
+}
+
 // ----------------------------------------------------------------------------
 // wxToolBar idle handling
 // ----------------------------------------------------------------------------
 // ----------------------------------------------------------------------------
 // wxToolBar idle handling
 // ----------------------------------------------------------------------------
@@ -553,4 +537,4 @@ void wxToolBar::OnInternalIdle()
     UpdateWindowUI();
 }
 
     UpdateWindowUI();
 }
 
-#endif
+#endif // wxUSE_TOOLBAR_NATIVE