Sets our main struct and passes it to the parent class.
Creates a new GtkImageMenuItem containing a label. If mnemonic it true the label will be created using gtk_label_new_with_mnemonic(), so underscores in label indicate the mnemonic for the menu item.
Creates a new GtkImageMenuItem containing the image and text from a stock item. If you want this menu item to have changeable accelerators, then pass in null for accelGroup. Next call setAccelPath() with an appropriate path for the menu item, use gtk.StockItem.StockItem.lookup() to look up the standard accelerator for the stock item, and if one is found, call gtk.AccelMap.AccelMap.addEntry() to register it.
Creates a new #GtkImageMenuItem with an empty label.
Returns whether the menu item will ignore the #GtkSettings:gtk-menu-images setting and always show the image, if available.
Gets the widget that is currently set as the image of @image_menu_item. See gtk_image_menu_item_set_image().
Get the main Gtk struct
the main Gtk struct as a void*
Checks whether the label set in the menuitem is used as a stock id to select the stock item for the item.
Specifies an @accel_group to add the menu items accelerator to (this only applies to stock items so a stock item must already be set, make sure to call gtk_image_menu_item_set_use_stock() and gtk_menu_item_set_label() with a valid stock item first).
If %TRUE, the menu item will ignore the #GtkSettings:gtk-menu-images setting and always show the image, if available.
Sets the image of @image_menu_item to the given widget. Note that it depends on the show-menu-images setting whether the image will be displayed or not.
If %TRUE, the label set in the menuitem is used as a stock id to select the stock item for the item.
the main Gtk struct
the main Gtk struct
Get the main Gtk struct
the main Gtk struct as a void*
Gets the application set action code
Emits the #GtkMenuItem::activate signal on the given item
Emits the #GtkMenuItem::deselect signal on the given item.
Retrieve the accelerator path that was previously set on @menu_item.
Sets @text on the @menu_item label
Returns whether the @menu_item reserves space for the submenu indicator, regardless if it has a submenu or not.
Gets whether the menu item appears justified at the right side of the menu bar.
Gets the submenu underneath this menu item, if any. See gtk_menu_item_set_submenu().
Checks if an underline in the text indicates the next character should be used for the mnemonic accelerator key.
Emits the #GtkMenuItem::select signal on the given item.
Set the accelerator path on @menu_item, through which runtime changes of the menu item’s accelerator caused by the user can be identified and saved to persistent storage (see gtk_accel_map_save() on this). To set up a default accelerator for this menu item, call gtk_accel_map_add_entry() with the same @accel_path. See also gtk_accel_map_add_entry() on the specifics of accelerator paths, and gtk_menu_set_accel_path() for a more convenient variant of this function.
Sets @text on the @menu_item label
Sets whether the @menu_item should reserve space for the submenu indicator, regardless if it actually has a submenu or not.
Sets whether the menu item appears justified at the right side of a menu bar. This was traditionally done for “Help” menu items, but is now considered a bad idea. (If the widget layout is reversed for a right-to-left language like Hebrew or Arabic, right-justified-menu-items appear at the left.)
Sets or replaces the menu item’s submenu, or removes it when a %NULL submenu is passed.
If true, an underline in the text indicates the next character should be used for the mnemonic accelerator key.
Emits the #GtkMenuItem::toggle-size-allocate signal on the given item.
Emits the #GtkMenuItem::toggle-size-request signal on the given item.
Emitted when the item is activated.
Emitted when the item is activated, but also if the menu item has a submenu. For normal applications, the relevant signal is #GtkMenuItem::activate.
A GtkImageMenuItem is a menu item which has an icon next to the text label.
This is functionally equivalent to:
|[<!-- language="C" --> GtkWidget *box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6); GtkWidget *icon = gtk_image_new_from_icon_name ("folder-music-symbolic", GTK_ICON_SIZE_MENU); GtkWidget *label = gtk_label_new ("Music"); GtkWidget *menu_item = gtk_menu_item_new ();
gtk_container_add (GTK_CONTAINER (box), icon); gtk_container_add (GTK_CONTAINER (box), label);
gtk_container_add (GTK_CONTAINER (menu_item), box);
gtk_widget_show_all (menu_item); ]|
Note that the user may disable display of menu icons using the #GtkSettings:gtk-menu-images setting, so make sure to still fill in the text label. If you want to ensure that your menu items show an icon you are strongly encouraged to use a #GtkMenuItem with a #GtkImage instead.
#GtkImageMenuItem has been deprecated since GTK+ 3.10. If you want to display an icon in a menu item, you should use #GtkMenuItem and pack a #GtkBox with a #GtkImage and a #GtkLabel instead. You should also consider using #GtkBuilder and the XML #GMenu description for creating menus, by following the [GMenu guide]https://developer.gnome.org/GMenu/. You should consider using icons in menu items only sparingly, and for "objects" (or "nouns") elements only, like bookmarks, files, and links; "actions" (or "verbs") should not have icons.
Furthermore, if you would like to display keyboard accelerator, you must pack the accel label into the box using gtk_box_pack_end() and align the label, otherwise the accelerator will not display correctly. The following code snippet adds a keyboard accelerator to the menu item, with a key binding of Ctrl+M:
|[<!-- language="C" --> GtkWidget *box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6); GtkWidget *icon = gtk_image_new_from_icon_name ("folder-music-symbolic", GTK_ICON_SIZE_MENU); GtkWidget *label = gtk_accel_label_new ("Music"); GtkWidget *menu_item = gtk_menu_item_new (); GtkAccelGroup *accel_group = gtk_accel_group_new ();
gtk_container_add (GTK_CONTAINER (box), icon);
gtk_label_set_use_underline (GTK_LABEL (label), TRUE); gtk_label_set_xalign (GTK_LABEL (label), 0.0);
gtk_widget_add_accelerator (menu_item, "activate", accel_group, GDK_KEY_m, GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE); gtk_accel_label_set_accel_widget (GTK_ACCEL_LABEL (label), menu_item);
gtk_box_pack_end (GTK_BOX (box), label, TRUE, TRUE, 0);
gtk_container_add (GTK_CONTAINER (menu_item), box);
gtk_widget_show_all (menu_item); ]|