From 88c7b51ad700a0484e16fa3337ee5c2b22750629 Mon Sep 17 00:00:00 2001 From: Pierre Pronchery Date: Tue, 24 Nov 2009 22:56:50 +0000 Subject: [PATCH] Allowed libDesktop toolbars to pack items without a stock icon or icon name --- include/Desktop/toolbar.h | 1 + src/toolbar.c | 9 +++++---- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/include/Desktop/toolbar.h b/include/Desktop/toolbar.h index d66854f..4373f3e 100644 --- a/include/Desktop/toolbar.h +++ b/include/Desktop/toolbar.h @@ -25,6 +25,7 @@ typedef struct _DesktopToolbar { const char * name; GtkSignalFunc callback; + const char * stock; unsigned int accel; GtkToolItem * widget; } DesktopToolbar; diff --git a/src/toolbar.c b/src/toolbar.c index ab5072b..24a6cf8 100644 --- a/src/toolbar.c +++ b/src/toolbar.c @@ -38,15 +38,16 @@ GtkWidget * desktop_toolbar_create(DesktopToolbar * toolbar, gpointer data, gtk_toolbar_insert(GTK_TOOLBAR(ret), p->widget, -1); continue; } - else if(strncmp(p->name, "gtk-", 4) != 0) /* not a stock icon */ + else if(strncmp(p->stock, "gtk-", 4) == 0) /* stock icon */ + p->widget = gtk_tool_button_new_from_stock(p->stock); + else if(p->stock != NULL) /* icon name */ { - /* XXX have stock and name instead (needs API change) */ - widget = gtk_image_new_from_icon_name(p->name, + widget = gtk_image_new_from_icon_name(p->stock, GTK_ICON_SIZE_LARGE_TOOLBAR); p->widget = gtk_tool_button_new(widget, NULL); } else - p->widget = gtk_tool_button_new_from_stock(p->name); + p->widget = gtk_tool_button_new(NULL, p->name); g_signal_connect_swapped(G_OBJECT(p->widget), "clicked", G_CALLBACK(p->callback), data); if(accel != NULL && p->accel != 0)