static void toggle_speed (GtkToggleButton *button, gpointer data) { GMenuModel *model; GActionGroup *group; GSimpleAction *action; gboolean adding; GMenuModel *m; GMenu *submenu; GtkTreeView *tv = data; GtkTreeModel *store; model = g_object_get_data (G_OBJECT (button), "model"); group = g_object_get_data (G_OBJECT (button), "group"); store = gtk_tree_view_get_model (tv); adding = gtk_toggle_button_get_active (button); m = g_menu_model_get_item_link (model, 1, G_MENU_LINK_SECTION); if (adding) { action = g_simple_action_new ("faster", NULL); g_action_map_add_action (G_ACTION_MAP (group), G_ACTION (action)); g_signal_connect (action, "activate", G_CALLBACK (activate_action), NULL); g_object_unref (action); action = g_simple_action_new ("slower", NULL); g_action_map_add_action (G_ACTION_MAP (group), G_ACTION (action)); g_signal_connect (action, "activate", G_CALLBACK (activate_action), NULL); g_object_unref (action); action_list_add (store, "faster"); action_list_add (store, "slower"); submenu = g_menu_new (); g_menu_append (submenu, "Faster", "faster"); g_menu_append (submenu, "Slower", "slower"); g_menu_append_submenu (G_MENU (m), "Speed", G_MENU_MODEL (submenu)); } else { g_action_map_remove_action (G_ACTION_MAP (group), "faster"); g_action_map_remove_action (G_ACTION_MAP (group), "slower"); action_list_remove (store, "faster"); action_list_remove (store, "slower"); g_menu_remove (G_MENU (m), g_menu_model_get_n_items (m) - 1); } }
static void toggle_italic (GtkToggleButton *button, gpointer data) { GMenuModel *model; GActionGroup *group; GSimpleAction *action; gboolean adding; GMenuModel *m; GtkTreeView *tv = data; GtkTreeModel *store; model = g_object_get_data (G_OBJECT (button), "model"); group = g_object_get_data (G_OBJECT (button), "group"); store = gtk_tree_view_get_model (tv); adding = gtk_toggle_button_get_active (button); m = g_menu_model_get_item_link (model, g_menu_model_get_n_items (model) - 1, G_MENU_LINK_SECTION); if (adding) { action = g_simple_action_new_stateful ("italic", NULL, g_variant_new_boolean (FALSE)); g_action_map_add_action (G_ACTION_MAP (group), G_ACTION (action)); g_signal_connect (action, "activate", G_CALLBACK (activate_toggle), NULL); g_object_unref (action); action_list_add (store, "italic"); g_menu_insert (G_MENU (m), 1, "Italic", "italic"); } else { g_action_map_remove_action (G_ACTION_MAP (group), "italic"); action_list_remove (store, "italic"); g_menu_remove (G_MENU (m), 1); } }
static void impl_deactivate (EogWindowActivatable *activatable) { EogPostrPlugin *plugin = EOG_POSTR_PLUGIN (activatable); GMenu *menu; GMenuModel *model; gint i; eog_debug (DEBUG_PLUGINS); menu = eog_window_get_gear_menu_section (plugin->window, "plugins-section"); g_return_if_fail (G_IS_MENU (menu)); /* Remove menu entry */ model = G_MENU_MODEL (menu); for (i = 0; i < g_menu_model_get_n_items (model); i++) { gchar *id; if (g_menu_model_get_item_attribute (model, i, "id", "s", &id)) { const gboolean found = (g_strcmp0 (id, EOG_POSTR_PLUGIN_MENU_ID) == 0); g_free (id); if (found) { g_menu_remove (menu, i); break; } } } /* Finally remove action */ g_action_map_remove_action (G_ACTION_MAP (plugin->window), EOG_POSTR_PLUGIN_ACTION); }
static void disable_plugin (const gchar *name) { GMenuModel *plugin_menu; g_print ("Disabling '%s' plugin\n", name); plugin_menu = find_plugin_menu (); if (plugin_menu) { const gchar *id; gint i; for (i = 0; i < g_menu_model_get_n_items (plugin_menu); i++) { if (g_menu_model_get_item_attribute (plugin_menu, i, "id", "s", &id) && g_strcmp0 (id, name) == 0) { g_menu_remove (G_MENU (plugin_menu), i); g_print ("Menus of '%s' plugin removed\n", name); } } } else g_warning ("Plugin menu not found\n"); g_action_map_remove_action (G_ACTION_MAP (g_application_get_default ()), name); g_print ("Actions of '%s' plugin removed\n", name); if (g_strcmp0 (name, "red") == 0) is_red_plugin_enabled = FALSE; else is_black_plugin_enabled = FALSE; }
static void gtk_application_window_remove_action (GActionMap *action_map, const gchar *action_name) { GtkApplicationWindow *window = GTK_APPLICATION_WINDOW (action_map); g_action_map_remove_action (G_ACTION_MAP (window->priv->actions), action_name); }
static void gedit_spell_plugin_deactivate (GeditWindowActivatable *activatable) { GeditSpellPluginPrivate *priv; gedit_debug (DEBUG_PLUGINS); priv = GEDIT_SPELL_PLUGIN (activatable)->priv; g_action_map_remove_action (G_ACTION_MAP (priv->window), "check-spell"); g_action_map_remove_action (G_ACTION_MAP (priv->window), "config-spell"); g_action_map_remove_action (G_ACTION_MAP (priv->window), "auto-spell"); g_signal_handler_disconnect (priv->window, priv->tab_added_id); g_signal_handler_disconnect (priv->window, priv->tab_removed_id); }
Ekiga::GActorMenu::~GActorMenu () { Actor::const_iterator it; for (it = obj.begin(); it != obj.end(); ++it) g_action_map_remove_action (G_ACTION_MAP (g_application_get_default ()), (*it)->get_name ().c_str ()); g_object_unref (builder); }
static void gbp_retab_editor_page_addin_unload (IdeEditorPageAddin *addin, IdeEditorPage *view) { GActionGroup *group; g_assert (GBP_IS_RETAB_EDITOR_PAGE_ADDIN (addin)); g_assert (IDE_IS_EDITOR_PAGE (view)); group = gtk_widget_get_action_group (GTK_WIDGET (view), "editor-page"); g_action_map_remove_action (G_ACTION_MAP (group), "retab"); }
static void gbp_greeter_application_addin_unload (IdeApplicationAddin *addin, IdeApplication *application) { GbpGreeterApplicationAddin *self = (GbpGreeterApplicationAddin *)addin; g_assert (GBP_IS_GREETER_APPLICATION_ADDIN (self)); g_assert (IDE_IS_APPLICATION (application)); for (guint i = 0; i < G_N_ELEMENTS (actions); i++) g_action_map_remove_action (G_ACTION_MAP (application), actions[i].name); self->application = NULL; }
static void eog_reload_plugin_deactivate (EogWindowActivatable *activatable) { const gchar * const empty_accels[1] = { NULL }; EogReloadPlugin *plugin = EOG_RELOAD_PLUGIN (activatable); GMenu *menu; GMenuModel *model; gint i; eog_debug (DEBUG_PLUGINS); menu = eog_window_get_gear_menu_section (plugin->window, "plugins-section"); g_return_if_fail (G_IS_MENU (menu)); /* Remove menu entry */ model = G_MENU_MODEL (menu); for (i = 0; i < g_menu_model_get_n_items (model); i++) { gchar *id; if (g_menu_model_get_item_attribute (model, i, "id", "s", &id)) { const gboolean found = (g_strcmp0 (id, EOG_RELOAD_PLUGIN_MENU_ID) == 0); g_free (id); if (found) { g_menu_remove (menu, i); break; } } } /* Unset accelerator */ gtk_application_set_accels_for_action(GTK_APPLICATION (EOG_APP), "win." EOG_RELOAD_PLUGIN_ACTION, empty_accels); /* Disconnect selection-changed handler as the thumbview would * otherwise still cause callbacks during its own disposal */ g_signal_handlers_disconnect_by_func (eog_window_get_thumb_view (plugin->window), _selection_changed_cb, plugin); /* Finally remove action */ g_action_map_remove_action (G_ACTION_MAP (plugin->window), EOG_RELOAD_PLUGIN_ACTION); }
static void impl_deactivate (EogWindowActivatable *activatable) { const gchar * const empty_accels[1] = { NULL }; EogFitToWidthPlugin *plugin = EOG_FIT_TO_WIDTH_PLUGIN (activatable); GMenu *menu; GMenuModel *model; gint i; menu = eog_window_get_gear_menu_section (plugin->window, "plugins-section"); g_return_if_fail (G_IS_MENU (menu)); /* Remove menu entry */ model = G_MENU_MODEL (menu); for (i = 0; i < g_menu_model_get_n_items (model); i++) { gchar *id; if (g_menu_model_get_item_attribute (model, i, "id", "s", &id)) { const gboolean found = (g_strcmp0 (id, EOG_FIT_TO_WIDTH_PLUGIN_MENU_ID) == 0); g_free (id); if (found) { g_menu_remove (menu, i); break; } } } /* Unset accelerator */ gtk_application_set_accels_for_action(GTK_APPLICATION (EOG_APP), "win." EOG_FIT_TO_WIDTH_PLUGIN_ACTION, empty_accels); /* Finally remove action */ g_action_map_remove_action (G_ACTION_MAP (plugin->window), EOG_FIT_TO_WIDTH_PLUGIN_ACTION); }
void Ekiga::GActorMenu::add_gio_action (Ekiga::ActionPtr a) { GSimpleAction *action = NULL; /* Action is disabled or already present */ if (!a->is_enabled ()) return; g_action_map_remove_action (G_ACTION_MAP (g_application_get_default ()), a->get_name ().c_str ()); action = g_simple_action_new (a->get_name ().c_str (), NULL); g_object_set_data_full (G_OBJECT (action), "action", g_strdup (a->get_name ().c_str ()), (GDestroyNotify) g_free); g_action_map_add_action (G_ACTION_MAP (g_application_get_default ()), G_ACTION (action)); g_signal_connect (action, "activate", G_CALLBACK (action_activated), (gpointer) this); g_object_unref (action); }
void Ekiga::GActorMenu::remove_gio_action (const std::string & _name) { g_action_map_remove_action (G_ACTION_MAP (g_application_get_default ()), _name.c_str ()); }