static void CreateAndConnect( intf_thread_t *p_intf, GtkMenu *menu, const char *psz_var, const char *text, const char *help, int i_item_type, vlc_object_t *p_obj, vlc_value_t val, int i_val_type, bool checked ) { GtkMenuItem *menu_item = (GtkMenuItem *)vlc_menu_item_new (p_obj, i_item_type, val, psz_var ); (void)help; (void)i_val_type; #if GTK_CHECK_VERSION(2,16,0) gtk_menu_item_set_label (menu_item, text ? text : psz_var); #else GtkWidget *accel_label = gtk_accel_label_new(text ? text : psz_var); gtk_misc_set_alignment(GTK_MISC (accel_label), 0.0, 0.5); gtk_container_add (GTK_CONTAINER (menu_item), accel_label); gtk_accel_label_set_accel_widget (GTK_ACCEL_LABEL (accel_label), GTK_WIDGET(menu_item)); gtk_widget_show (accel_label); #endif /* GTK_CHECK_VERSION(2,16,0) */ gtk_menu_append( GTK_WIDGET(menu), GTK_WIDGET(menu_item) ); if( i_item_type == ITEM_CHECK || i_item_type == ITEM_RADIO ) gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(menu_item), checked); g_signal_connect( GTK_OBJECT(menu_item), "activate", G_CALLBACK( menu_callback ), p_intf ); }
/* Sets the widget whose accelerators are to be shown. */ int clip_GTK_ACCELLABELSETACCELWIDGET(ClipMachine * cm) { C_widget *clbl = _fetch_cw_arg(cm); C_widget *cwid = _fetch_cwidget(cm,_clip_spar(cm,2)); CHECKCWID(clbl,GTK_IS_ACCEL_LABEL); CHECKARG2(2,MAP_t,NUMERIC_t); gtk_accel_label_set_accel_widget(GTK_ACCEL_LABEL(clbl->widget), cwid->widget); return 0; err: return 1; }
/* Sets the widget whose accelerators are to be shown. */ int clip_GTK_ACCELLABELSETACCELWIDGET(ClipMachine * ClipMachineMemory) { C_widget *clbl = _fetch_cw_arg(ClipMachineMemory); C_widget *cwid = _fetch_cwidget(ClipMachineMemory, _clip_spar(ClipMachineMemory, 2)); CHECKCWID(clbl, GTK_IS_ACCEL_LABEL); CHECKARG2(2, MAP_type_of_ClipVarType, NUMERIC_type_of_ClipVarType); gtk_accel_label_set_accel_widget(GTK_ACCEL_LABEL(clbl->widget), cwid->widget); return 0; err: return 1; }
GtkWidget* gtk_radio_menu_item_new_with_label (GSList *group, const gchar *label) { GtkWidget *radio_menu_item; GtkWidget *accel_label; radio_menu_item = gtk_radio_menu_item_new (group); accel_label = gtk_accel_label_new (label); gtk_misc_set_alignment (GTK_MISC (accel_label), 0.0, 0.5); gtk_container_add (GTK_CONTAINER (radio_menu_item), accel_label); gtk_accel_label_set_accel_widget (GTK_ACCEL_LABEL (accel_label), radio_menu_item); gtk_widget_show (accel_label); return radio_menu_item; }
void setup_menuitem (GtkWidget *menuitem, GtkIconSize icon_size, GtkWidget *image, const char *title) { GtkWidget *label; char *_title; /* this creates a label with an invisible mnemonic */ label = g_object_new (GTK_TYPE_ACCEL_LABEL, NULL); _title = menu_escape_underscores_and_prepend (title); gtk_label_set_text_with_mnemonic (GTK_LABEL (label), _title); g_free (_title); gtk_label_set_pattern (GTK_LABEL (label), ""); gtk_accel_label_set_accel_widget (GTK_ACCEL_LABEL (label), menuitem); gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5); gtk_widget_show (label); gtk_container_add (GTK_CONTAINER (menuitem), label); if (image) { g_object_set_data_full (G_OBJECT (menuitem), "Panel:Image", g_object_ref (image), (GDestroyNotify) g_object_unref); gtk_widget_show (image); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menuitem), image); } else if (icon_size != GTK_ICON_SIZE_INVALID) #if GTK_CHECK_VERSION (3, 0, 0) image_menuitem_set_size_request (menuitem, icon_size); #else g_signal_connect (menuitem, "size_request", G_CALLBACK (image_menuitem_size_request), GINT_TO_POINTER (icon_size)); #endif gtk_widget_show (menuitem); }
GtkDialog* encoding_dialog_new(GtkWindow* parent) { GtkBuilder* builder; GObject* object; GtkDialog* dialog; GtkWidget* combobox; GtkTreeModel* model; dialog = NULL; builder = gtk_builder_new(); gtk_builder_add_from_file(builder, ENCODINGS_DIALOG_UI, NULL); gtk_builder_set_translation_domain(builder, GETTEXT_PACKAGE); object = gtk_builder_get_object(builder, "encoding_dialog"); if (object == NULL) goto done; dialog = GTK_DIALOG(object); gtk_window_set_transient_for(GTK_WINDOW(dialog), parent); model = GTK_TREE_MODEL(get_encoding_list_model()); combobox = combobox_entry_new(model); g_object_set_data(G_OBJECT(dialog), "encoding_entry", combobox); object = gtk_builder_get_object(builder, "hbox1"); if (object == NULL) goto done; gtk_box_pack_start(GTK_BOX(object), combobox, FALSE, TRUE, 0); gtk_widget_show(combobox); object = gtk_builder_get_object(builder, "accellabel1"); if (object == NULL) goto done; gtk_accel_label_set_accel_widget(GTK_ACCEL_LABEL(object), combobox); done: g_object_unref(builder); return dialog; }
void setup_menuitem (GtkWidget *menuitem, GtkIconSize icon_size, GtkWidget *image, const char *title) { GtkWidget *label; char *_title; /* this creates a label with an invisible mnemonic */ label = g_object_new (GTK_TYPE_ACCEL_LABEL, NULL); _title = menu_escape_underscores_and_prepend (title); gtk_label_set_text_with_mnemonic (GTK_LABEL (label), _title); g_free (_title); gtk_label_set_pattern (GTK_LABEL (label), ""); gtk_accel_label_set_accel_widget (GTK_ACCEL_LABEL (label), menuitem); #if GTK_CHECK_VERSION (3, 16, 0) gtk_label_set_xalign (GTK_LABEL (label), 0.0); gtk_label_set_yalign (GTK_LABEL (label), 0.5); #else gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5); #endif gtk_widget_show (label); gtk_container_add (GTK_CONTAINER (menuitem), label); if (image) { gint icon_height = PANEL_DEFAULT_MENU_ICON_SIZE; gtk_icon_size_lookup (icon_size, NULL, &icon_height); gtk_widget_show (image); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menuitem), image); gtk_image_set_pixel_size (GTK_IMAGE(image), icon_height); } gtk_widget_show (menuitem); }
void setup_menuitem (GtkWidget *menuitem, GtkIconSize icon_size, GtkWidget *image, const char *title) { GtkWidget *label; char *_title; /* this creates a label with an invisible mnemonic */ label = g_object_new (GTK_TYPE_ACCEL_LABEL, NULL); _title = menu_escape_underscores_and_prepend (title); gtk_label_set_text_with_mnemonic (GTK_LABEL (label), _title); g_free (_title); gtk_label_set_pattern (GTK_LABEL (label), ""); gtk_accel_label_set_accel_widget (GTK_ACCEL_LABEL (label), menuitem); gtk_label_set_xalign (GTK_LABEL (label), 0); gtk_widget_show (label); gtk_container_add (GTK_CONTAINER (menuitem), label); if (image) { g_object_set_data_full (G_OBJECT (menuitem), "Panel:Image", g_object_ref (image), (GDestroyNotify) g_object_unref); gtk_widget_show (image); panel_image_menu_item_set_image (PANEL_IMAGE_MENU_ITEM (menuitem), image); } else if (icon_size != GTK_ICON_SIZE_INVALID) image_menuitem_set_size_request (menuitem, icon_size); gtk_widget_show (menuitem); }
/* * Sets the properties of the widget. This is used for both applying the * properties changed in the property editor, and also for loading. */ static void gb_menu_item_set_properties (GtkWidget * widget, GbWidgetSetArgData * data) { gboolean input_label = TRUE, input_rest = TRUE; GtkAccelGroup *accel_group; guint key; GdkModifierType modifiers; /* We only support loading the properties here. */ if (data->action != GB_LOADING) return; #ifdef USE_GNOME /* Check for a stock menu item. */ if (glade_project_get_gnome_support (data->project)) { GnomeUIInfo *uiinfo; gchar *stock_item; GtkWidget *label; gint stock_item_index; stock_item = gb_widget_input_string (data, "stock_item"); if (stock_item && stock_item[0]) { /* Special case for the NEW_SUBTREE. */ if (!strcmp (stock_item, "GNOMEUIINFO_MENU_NEW_SUBTREE")) { stock_item_index = GladeStockMenuItemNew; } else { stock_item_index = glade_util_string_array_index (GladeStockMenuItemSymbols, GladeStockMenuItemSize, stock_item); } if (stock_item_index != -1) { uiinfo = &GladeStockMenuItemValues[stock_item_index]; if (uiinfo->type == GNOME_APP_UI_ITEM_CONFIGURABLE) gnome_app_ui_configure_configurable (uiinfo); /* Note that we don't have to worry about the pixmap, since if it had a pixmap it would be a GtkImageMenuItem. */ label = gtk_accel_label_new (""); gtk_label_set_text_with_mnemonic (GTK_LABEL (label), uiinfo->label); gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5); gtk_widget_show (label); gtk_accel_label_set_accel_widget (GTK_ACCEL_LABEL (label), widget); gtk_container_add (GTK_CONTAINER (widget), label); /* Add the configured accelerator key. */ if (uiinfo->accelerator_key != 0 && widget->parent && GTK_IS_MENU (widget->parent)) { accel_group = GTK_MENU (widget->parent)->accel_group; gtk_widget_add_accelerator (widget, "activate", accel_group, uiinfo->accelerator_key, uiinfo->ac_mods, GTK_ACCEL_VISIBLE); } /* Remember the index of the stock item. */ gtk_object_set_data (GTK_OBJECT (widget), GladeMenuItemStockIndexKey, GINT_TO_POINTER (stock_item_index)); /* The 'New' item can have a label. The rest can't. */ if (stock_item_index != GladeStockMenuItemNew) input_label = FALSE; input_rest = FALSE; } else { #ifdef FIXME load_add_error_message_with_tag (data, GLADE_LINE_PROPERTY, _("Invalid stock menu item"), "stock_item", stock_item); #endif } } } #endif if (input_label) gb_widget_input_child_label (widget, data, Label); if (input_rest) { /* FIXME: should this be somewhere else? */ /* If we are loading, install the 'activate' accelerator, if it has one, so that is is visible. */ if (data->action == GB_LOADING && widget->parent && GTK_IS_MENU (widget->parent)) { int i; for (i = 0; i < data->widget_info->n_accels; i++) { if (!strcmp (data->widget_info->accels[i].signal, "activate")) { key = data->widget_info->accels[i].key; modifiers = data->widget_info->accels[i].modifiers; accel_group = GTK_MENU (widget->parent)->accel_group; gtk_widget_add_accelerator (widget, "activate", accel_group, key, modifiers, GTK_ACCEL_VISIBLE); break; } } } } }