X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/1144d24d25ebf729407db27594dd51778f77cec4..cce4b3fe2b05e1d928d7a5930c33c624b2f3a667:/src/gtk/tbargtk.cpp?ds=inline diff --git a/src/gtk/tbargtk.cpp b/src/gtk/tbargtk.cpp index 671fa18e00..df1b967d1d 100644 --- a/src/gtk/tbargtk.cpp +++ b/src/gtk/tbargtk.cpp @@ -13,6 +13,10 @@ #include "wx/toolbar.h" +#include "glib.h" +#include "gdk/gdk.h" +#include "gtk/gtk.h" + //----------------------------------------------------------------------------- // data //----------------------------------------------------------------------------- @@ -99,6 +103,8 @@ wxToolBar::wxToolBar( wxWindow *parent, wxWindowID id, wxToolBar::~wxToolBar() { + delete m_fg; + delete m_bg; } bool wxToolBar::Create( wxWindow *parent, wxWindowID id, @@ -121,18 +127,20 @@ bool wxToolBar::Create( wxWindow *parent, wxWindowID id, m_widget = GTK_WIDGET(m_toolbar); gtk_toolbar_set_tooltips( GTK_TOOLBAR(m_toolbar), TRUE ); + + m_fg = new GdkColor; + 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 ); - 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 ); - - 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 ); + 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 ); - gtk_tooltips_set_colors( GTK_TOOLBAR(m_toolbar)->tooltips, &m_bg, &m_fg ); + gtk_tooltips_set_colors( GTK_TOOLBAR(m_toolbar)->tooltips, m_bg, m_fg ); m_xMargin = 0; m_yMargin = 0; @@ -188,10 +196,6 @@ wxToolBarTool *wxToolBar::AddTool( int toolIndex, const wxBitmap& bitmap, wxCHECK_MSG( bitmap.Ok(), (wxToolBarTool *)NULL, "invalid bitmap for wxToolBar icon" ); - wxToolBarTool *tool = new wxToolBarTool( this, toolIndex, bitmap, pushedBitmap, - toggle, clientData, - helpString1, helpString2 ); - wxCHECK_MSG( bitmap.GetBitmap() == NULL, (wxToolBarTool *)NULL, "wxToolBar doesn't support GdkBitmap" ); @@ -210,6 +214,11 @@ wxToolBarTool *wxToolBar::AddTool( int toolIndex, const wxBitmap& bitmap, gtk_misc_set_alignment( GTK_MISC(tool_pixmap), 0.5, 0.5 ); + wxToolBarTool *tool = new wxToolBarTool( this, toolIndex, bitmap, pushedBitmap, + toggle, clientData, + helpString1, helpString2, + tool_pixmap ); + GtkToolbarChildType ctype = toggle ? GTK_TOOLBAR_CHILD_TOGGLEBUTTON : GTK_TOOLBAR_CHILD_BUTTON; @@ -280,8 +289,12 @@ void wxToolBar::EnableTool(int toolIndex, bool enable) { wxToolBarTool *tool = (wxToolBarTool*)node->Data(); if (tool->m_index == toolIndex) - { + { tool->m_enabled = enable; + + if (tool->m_item) + gtk_widget_set_sensitive( tool->m_item, enable ); + return; } node = node->Next();