static void ol_menu_init () { /* create accelerator group */ GtkAccelGroup *accel = ol_keybinding_get_accel_group (); OlConfigProxy *config = ol_config_proxy_get_instance (); popup_menu = ol_gui_get_widget ("pop-menu"); gtk_menu_set_accel_group (GTK_MENU (popup_menu), accel); menu.lock = ol_gui_get_widget ("menu-lock"); if (menu.lock) { gtk_menu_item_set_accel_path (GTK_MENU_ITEM (menu.lock), "<OSD Lyrics>/Lock"); } menu.hide = ol_gui_get_widget ("menu-hide"); if (menu.hide) { gtk_menu_item_set_accel_path (GTK_MENU_ITEM (menu.hide), "<OSD Lyrics>/Hide"); } menu.preference = ol_gui_get_widget ("menu-prefernce"); menu.about = ol_gui_get_widget ("menu-about"); menu.quit = ol_gui_get_widget ("menu-quit"); menu.play = ol_gui_get_widget ("menu-play"); menu.pause = ol_gui_get_widget ("menu-pause"); menu.stop = ol_gui_get_widget ("menu-stop"); menu.prev = ol_gui_get_widget ("menu-prev"); menu.next = ol_gui_get_widget ("menu-next"); menu.switch_osd = ol_gui_get_widget ("menu-switch-osd"); menu.switch_scroll = ol_gui_get_widget ("menu-switch-scroll"); gtk_widget_show_all (popup_menu); _locked_changed_cb (config, "OSD/locked", NULL); _visible_changed_cb (config, ".visible", NULL); _display_mode_osd_changed_cb (config, "General/display-mode-osd", NULL); _display_mode_scroll_changed_cb (config, "General/display-mode-scroll", NULL); g_signal_connect (config, "changed::OSD/locked", G_CALLBACK (_locked_changed_cb), NULL); g_signal_connect (config, "changed::.visible", G_CALLBACK (_visible_changed_cb), NULL); g_signal_connect (config, "changed::General/display-mode-osd", G_CALLBACK (_display_mode_osd_changed_cb), NULL); g_signal_connect (config, "changed::General/display-mode-scroll", G_CALLBACK (_display_mode_scroll_changed_cb), NULL); }
GtkWidget * gu_menu_add_item(GtkWidget *parent, const char *title, void (*cb)(GtkWidget *menuitem, gpointer aux), gpointer aux, const char *image, const char *accel, gboolean sensitive) { GtkWidget *w; GtkWidget *img; if(image != NULL) { w = gtk_image_menu_item_new_with_mnemonic(title); img = gtk_image_new_from_stock(image, GTK_ICON_SIZE_MENU); gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(w), img); } else { w = gtk_menu_item_new_with_mnemonic(title); } if(accel != NULL) { gtk_menu_item_set_accel_path(GTK_MENU_ITEM(w), accel); } gtk_widget_set_sensitive(w, sensitive); gtk_menu_shell_append(GTK_MENU_SHELL(parent), w); g_signal_connect(G_OBJECT(w), "activate", (void *)cb, aux); return w; }
void GtkMenuItem_::set_accel_path(Php::Parameters ¶meters) { std::string s_accel_path = parameters[0]; gchar *accel_path = (gchar *)s_accel_path.c_str(); gtk_menu_item_set_accel_path (GTK_MENU_ITEM(instance), accel_path); }
/** * gtk_menu_item_add_accel: * @mi: a valid GtkMenuItem * @path: accelerator path, corresponding to this menu item's functionality. * @accel_key: the accelerator key * @accel_mods: the accelerator modifiers * * Convenience wrapper around gtk_menu_item_set_accel_path() and * gtk_accel_map_add_entry(). * * see_also: gtk_widget_add_accelerator() */ void gtk_menu_item_add_accel (GtkMenuItem * mi, const gchar * path, guint accel_key, GdkModifierType accel_mods) { g_intern_static_string (path); gtk_menu_item_set_accel_path (mi, path); gtk_accel_map_add_entry (path, accel_key, accel_mods); }
/*# @method set_accel_path GtkMenuItem @brief 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 persistant storage (see gtk_accel_map_save() on this). @param accel_path accelerator path, corresponding to this menu item's functionality, or NULL to unset the current path To setup 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. This function is basically a convenience wrapper that handles calling gtk_widget_set_accel_path() with the appropriate accelerator group for the menu item. Note that you do need to set an accelerator on the parent menu with gtk_menu_set_accel_group() for this to work. */ FALCON_FUNC MenuItem::set_accel_path( VMARG ) { Gtk::ArgCheck1 args( vm, "S" ); const gchar* path = args.getCString( 0, false ); MYSELF; GET_OBJ( self ); gtk_menu_item_set_accel_path( (GtkMenuItem*)_obj, path ); }
int clip_GTK_MENUITEMSETACCELPATH(ClipMachine * ClipMachineMemory) { C_widget *citm = _fetch_cw_arg(ClipMachineMemory); const gchar *accel_path = _clip_parc(ClipMachineMemory, 2); CHECKCWID(citm, GTK_IS_MENU_ITEM); CHECKARG(2, CHARACTER_type_of_ClipVarType); gtk_menu_item_set_accel_path(GTK_MENU_ITEM(citm->widget), accel_path); return 0; err: return 1; }
GtkWidget * gu_menu_add_toggle(GtkWidget *parent, const char *title, void (*cb)(GtkCheckMenuItem *menuitem, gpointer aux), gpointer aux, gboolean active, const char *accel, gboolean sensitive) { GtkWidget *w; w = gtk_check_menu_item_new_with_mnemonic(title); if(accel != NULL) { gtk_menu_item_set_accel_path(GTK_MENU_ITEM(w), accel); } gtk_widget_set_sensitive(w, sensitive); gtk_menu_shell_append(GTK_MENU_SHELL(parent), w); gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(w), active); g_signal_connect(G_OBJECT(w), "toggled", (void *)cb, aux); return w; }
static VALUE mitem_set_accel_path(VALUE self, VALUE accel_path) { gtk_menu_item_set_accel_path(_SELF(self), RVAL2CSTR(accel_path)); return self; }
static void gxk_menu_item_set_property (GObject *object, guint param_id, const GValue *value, GParamSpec *pspec) { GxkMenuItem *self = GXK_MENU_ITEM (object); GtkMenuItem *mitem = GTK_MENU_ITEM (object); GtkBin *bin = GTK_BIN (self); switch (param_id) { const gchar *string, *path; gchar *accel; gboolean vbool; case MENU_ITEM_PROP_ULINE_LABEL: if (bin->child) gtk_container_remove (GTK_CONTAINER (self), bin->child); string = g_value_get_string (value); if (string) { GtkWidget *label = g_object_new (GTK_TYPE_ACCEL_LABEL, "visible", TRUE, "label", string, "use-underline", TRUE, "xalign", 0.0, "accel-widget", self, "parent", self, NULL); if (g_object_get_long (self, "gxk-title-style")) gxk_widget_modify_as_title (label); } break; case MENU_ITEM_PROP_STOCK_IMAGE: string = g_value_get_string (value); if (string) { GtkWidget *image = gtk_image_new_from_stock (string, GXK_ICON_SIZE_MENU); if (image) { gtk_widget_show (image); gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (self), image); } } break; case MENU_ITEM_PROP_KEEP_MENUBAR_IMAGE: vbool = g_value_get_boolean (value); g_object_set_long (self, "gxk-keep-menubar-image", vbool); menu_item_keep_menubar_image (self); break; case MENU_ITEM_PROP_RIGHT_JUSTIFY: gtk_menu_item_set_right_justified (mitem, g_value_get_boolean (value)); break; case MENU_ITEM_PROP_TITLE_STYLE: if (g_value_get_boolean (value)) { gxk_widget_modify_as_title (GTK_WIDGET (self)); g_object_set_long (self, "gxk-title-style", 1); if (bin->child) gxk_widget_modify_as_title (bin->child); } break; case MENU_ITEM_PROP_ACCEL_PATH: path = g_value_get_string (value); gtk_menu_item_set_accel_path (mitem, path); accel = g_object_get_data (self, "gxk-menu-item-accel"); goto setup_accel; case MENU_ITEM_PROP_ACCEL: accel = g_value_dup_string (value); g_object_set_data_full (self, "gxk-menu-item-accel", accel, g_free); path = mitem->accel_path; setup_accel: if (accel && path) { GdkModifierType mods = 0; guint keyval = 0; if (accel) gtk_accelerator_parse (accel, &keyval, &mods); keyval = keyval != GDK_VoidSymbol ? keyval : 0; gtk_accel_map_add_entry (path, keyval, mods); } break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (self, param_id, pspec); break; } }