static GtkTreeModel * create_stock_icon_store (void) { gchar *stock_id[6] = { GTK_STOCK_DIALOG_WARNING, GTK_STOCK_STOP, GTK_STOCK_NEW, GTK_STOCK_CLEAR, NULL, GTK_STOCK_OPEN }; GtkStockItem item; GdkPixbuf *pixbuf; GtkWidget *cellview; GtkTreeIter iter; GtkListStore *store; gchar *label; gint i; cellview = gtk_cell_view_new (); store = gtk_list_store_new (2, GDK_TYPE_PIXBUF, G_TYPE_STRING); for (i = 0; i < G_N_ELEMENTS (stock_id); i++) { if (stock_id[i]) { pixbuf = gtk_widget_render_icon (cellview, stock_id[i], GTK_ICON_SIZE_BUTTON, NULL); gtk_stock_lookup (stock_id[i], &item); label = strip_underscore (item.label); gtk_list_store_append (store, &iter); gtk_list_store_set (store, &iter, PIXBUF_COL, pixbuf, TEXT_COL, label, -1); g_object_unref (pixbuf); g_free (label); } else { gtk_list_store_append (store, &iter); gtk_list_store_set (store, &iter, PIXBUF_COL, NULL, TEXT_COL, "separator", -1); } } gtk_widget_destroy (cellview); return GTK_TREE_MODEL (store); }
static void moo_action_base_set_tooltip (MooActionBase *ab, const char *tooltip) { GtkStockItem stock_item; char *freeme = NULL; g_return_if_fail (MOO_IS_ACTION_BASE (ab)); if (tooltip && gtk_stock_lookup (tooltip, &stock_item)) { freeme = strip_underscore (stock_item.label); tooltip = freeme; } g_object_set (G_OBJECT (ab), "GtkAction::tooltip", tooltip, NULL); g_free (freeme); }
static void moo_action_base_set_display_name (MooActionBase *ab, const char *name) { GtkStockItem stock_item; char *freeme = NULL; g_return_if_fail (MOO_IS_ACTION_BASE (ab)); g_return_if_fail (name != NULL); if (gtk_stock_lookup (name, &stock_item)) { freeme = strip_underscore (stock_item.label); name = freeme; } set_string (ab, "moo-action-display-name", name); g_object_notify (G_OBJECT (ab), "display-name"); g_free (freeme); }