static void gtk_tool_button_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) { GtkToolButton *button = GTK_TOOL_BUTTON (object); switch (prop_id) { case PROP_LABEL: g_value_set_string (value, gtk_tool_button_get_label (button)); break; case PROP_LABEL_WIDGET: g_value_set_object (value, gtk_tool_button_get_label_widget (button)); break; case PROP_USE_UNDERLINE: g_value_set_boolean (value, gtk_tool_button_get_use_underline (button)); break; case PROP_STOCK_ID: g_value_set_string (value, button->priv->stock_id); break; case PROP_ICON_NAME: g_value_set_string (value, button->priv->icon_name); break; case PROP_ICON_WIDGET: g_value_set_object (value, button->priv->icon_widget); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; } }
/*# @method get_label_widget GtkToolButton @brief Returns the widget used as label on button. @return The widget used as label on button, or NULL. */ FALCON_FUNC ToolButton::get_label_widget( VMARG ) { NO_ARGS MYSELF; GET_OBJ( self ); GtkWidget* wdt = gtk_tool_button_get_label_widget( (GtkToolButton*)_obj ); if ( wdt ) vm->retval( new Gtk::Widget( vm->findWKI( "GtkWidget" )->asClass(), wdt ) ); else vm->retnil(); }
static gboolean gtk_toggle_tool_button_create_menu_proxy (GtkToolItem *item) { GtkToolButton *tool_button = GTK_TOOL_BUTTON (item); GtkToggleToolButton *toggle_tool_button = GTK_TOGGLE_TOOL_BUTTON (item); GtkWidget *menu_item = NULL; GtkStockItem stock_item; gboolean use_mnemonic = TRUE; const char *label; GtkWidget *label_widget; const gchar *label_text; const gchar *stock_id; if (_gtk_tool_item_create_menu_proxy (item)) return TRUE; label_widget = gtk_tool_button_get_label_widget (tool_button); label_text = gtk_tool_button_get_label (tool_button); stock_id = gtk_tool_button_get_stock_id (tool_button); if (GTK_IS_LABEL (label_widget)) { label = gtk_label_get_label (GTK_LABEL (label_widget)); use_mnemonic = gtk_label_get_use_underline (GTK_LABEL (label_widget)); } else if (label_text) { label = label_text; use_mnemonic = gtk_tool_button_get_use_underline (tool_button); } else if (stock_id && gtk_stock_lookup (stock_id, &stock_item)) { label = stock_item.label; } else { label = ""; } if (use_mnemonic) menu_item = gtk_check_menu_item_new_with_mnemonic (label); else menu_item = gtk_check_menu_item_new_with_label (label); gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (menu_item), toggle_tool_button->priv->active); if (GTK_IS_RADIO_TOOL_BUTTON (toggle_tool_button)) { gtk_check_menu_item_set_draw_as_radio (GTK_CHECK_MENU_ITEM (menu_item), TRUE); } g_signal_connect_closure_by_id (menu_item, g_signal_lookup ("activate", G_OBJECT_TYPE (menu_item)), 0, g_cclosure_new_object (G_CALLBACK (menu_item_activated), G_OBJECT (toggle_tool_button)), FALSE); gtk_tool_item_set_proxy_menu_item (item, MENU_ID, menu_item); return TRUE; }