+ if (g_isIdle) wxapp_install_idle_handler();
+
+ if (g_blockEventsOnDrag) return;
+ if (!tool->m_enabled) return;
+
+ if (tool->m_isToggle)
+ {
+ tool->m_toggleState = !tool->m_toggleState;
+
+ if (tool->m_bitmap2.Ok())
+ {
+ wxBitmap bitmap = tool->m_bitmap1;
+ if (tool->m_toggleState) bitmap = tool->m_bitmap2;
+
+ GtkPixmap *pixmap = GTK_PIXMAP( tool->m_pixmap );
+
+ GdkBitmap *mask = (GdkBitmap *) NULL;
+ if (bitmap.GetMask()) mask = bitmap.GetMask()->GetBitmap();
+
+ gtk_pixmap_set( pixmap, bitmap.GetPixmap(), mask );
+ }
+ }
+
+ tool->m_owner->OnLeftClick( tool->m_index, tool->m_toggleState );
+}
+
+//-----------------------------------------------------------------------------
+// "enter_notify_event"
+//-----------------------------------------------------------------------------
+
+static gint gtk_toolbar_enter_callback( GtkWidget *WXUNUSED(widget),
+ GdkEventCrossing *WXUNUSED(gdk_event), wxToolBarTool *tool )
+{
+ if (g_isIdle) wxapp_install_idle_handler();
+
+ if (g_blockEventsOnDrag) return TRUE;
+
+
+ wxToolBar *tb = tool->m_owner;
+
+ /* we grey-out the tip text of disabled tool */
+#if 0
+ if (tool->m_enabled)
+ {
+ 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 );
+
+#if (GTK_MINOR_VERSION > 0)
+ GtkStyle *g_style =
+ gtk_style_copy(
+ gtk_widget_get_style(
+ GTK_TOOLBAR(tb->m_toolbar)->tooltips->tip_window ) );
+
+ g_style->fg[GTK_STATE_NORMAL] = *tb->m_fg;
+ gtk_widget_set_style( GTK_TOOLBAR(tb->m_toolbar)->tooltips->tip_window, g_style );
+#else
+ gtk_tooltips_set_colors( GTK_TOOLBAR(tb->m_toolbar)->tooltips, tb->m_bg, tb->m_fg );
+#endif
+ }
+ }
+ 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 );
+#if (GTK_MINOR_VERSION > 0)
+ GtkStyle *g_style =
+ gtk_style_copy(
+ gtk_widget_get_style(
+ GTK_TOOLBAR(tb->m_toolbar)->tooltips->tip_window ) );
+
+ g_style->fg[GTK_STATE_NORMAL] = *tb->m_fg;
+ gtk_widget_set_style( GTK_TOOLBAR(tb->m_toolbar)->tooltips->tip_window, g_style );
+#else
+ gtk_tooltips_set_colors( GTK_TOOLBAR(tb->m_toolbar)->tooltips, tb->m_bg, tb->m_fg );
+#endif
+ }
+ }
+#endif
+
+ /* emit the event */