static void impl_deactivate (PlumaPlugin *plugin, PlumaWindow *window) { PlumaDrawspacesPlugin *ds_plugin = PLUMA_DRAWSPACES_PLUGIN (plugin); GtkUIManager *manager; WindowData *data; pluma_debug (DEBUG_PLUGINS); data = (WindowData *) g_object_get_data (G_OBJECT (window), WINDOW_DATA_KEY); g_return_if_fail (data != NULL); manager = pluma_window_get_ui_manager (window); data->enable = FALSE; draw_spaces_in_window (window, ds_plugin); g_signal_handlers_disconnect_by_func (window, tab_added_cb, ds_plugin); gtk_ui_manager_remove_ui (manager, data->ui_id); gtk_ui_manager_remove_action_group (manager, data->action_group); g_object_set_data (G_OBJECT (window), WINDOW_DATA_KEY, NULL); }
static void install_menu (PlumaWindow *window) { GtkUIManager *manager; WindowData *data = BOOKMARKS_DATA (window); GError *error = NULL; manager = pluma_window_get_ui_manager (window); data->action_group = gtk_action_group_new ("PlumaBookmarksPluginActions"); gtk_action_group_set_translation_domain (data->action_group, GETTEXT_PACKAGE); gtk_action_group_add_actions (data->action_group, action_entries, G_N_ELEMENTS (action_entries), window); gtk_ui_manager_insert_action_group (manager, data->action_group, -1); data->ui_id = gtk_ui_manager_add_ui_from_string (manager, uidefinition, -1, &error); if (!data->ui_id) { g_warning ("Could not load UI: %s", error->message); g_error_free (error); } }
static gboolean show_popup_menu (PlumaDocumentsPanel *panel, GdkEventButton *event) { GtkWidget *menu; menu = gtk_ui_manager_get_widget (pluma_window_get_ui_manager (panel->priv->window), "/NotebookPopup"); g_return_val_if_fail (menu != NULL, FALSE); if (event != NULL) { gtk_menu_popup (GTK_MENU (menu), NULL, NULL, NULL, NULL, event->button, event->time); } else { gtk_menu_popup (GTK_MENU (menu), NULL, NULL, (GtkMenuPositionFunc) menu_position, panel, 0, gtk_get_current_event_time ()); gtk_menu_shell_select_first (GTK_MENU_SHELL (menu), FALSE); } return TRUE; }
static void call_plugin_deactivate (PlumaPlugin *plugin, PlumaWindow *window) { pluma_plugin_deactivate (plugin, window); /* ensure update of ui manager, because we suspect it does something with expected static strings in the type module (when unloaded the strings don't exist anymore, and ui manager updates in an idle func) */ gtk_ui_manager_ensure_update (pluma_window_get_ui_manager (window)); }
static void uninstall_menu (PlumaWindow *window) { WindowData *data = BOOKMARKS_DATA (window); GtkUIManager *manager; manager = pluma_window_get_ui_manager (window); gtk_ui_manager_remove_ui (manager, data->ui_id); gtk_ui_manager_remove_action_group (manager, data->action_group); g_object_unref (data->action_group); }
static void pluma_prefs_manager_syntax_hl_enable_changed (GSettings *settings, gchar *key, gpointer user_data) { pluma_debug (DEBUG_PREFS); if (strcmp (key, GPM_SYNTAX_HL_ENABLE) == 0) { gboolean enable; GList *docs; GList *l; const GList *windows; enable = g_settings_get_boolean (settings, key); docs = pluma_app_get_documents (pluma_app_get_default ()); l = docs; while (l != NULL) { g_return_if_fail (GTK_SOURCE_IS_BUFFER (l->data)); gtk_source_buffer_set_highlight_syntax (GTK_SOURCE_BUFFER (l->data), enable); l = l->next; } g_list_free (docs); /* update the sensitivity of the Higlight Mode menu item */ windows = pluma_app_get_windows (pluma_app_get_default ()); while (windows != NULL) { GtkUIManager *ui; GtkAction *a; ui = pluma_window_get_ui_manager (PLUMA_WINDOW (windows->data)); a = gtk_ui_manager_get_action (ui, "/MenuBar/ViewMenu/ViewHighlightModeMenu"); gtk_action_set_sensitive (a, enable); windows = g_list_next (windows); } } }
static void impl_activate (PlumaPlugin *plugin, PlumaWindow *window) { GtkUIManager *manager; WindowData *data; pluma_debug (DEBUG_PLUGINS); data = g_new (WindowData, 1); data->plugin = g_object_ref (plugin); data->dialog = NULL; data->ui_action_group = gtk_action_group_new ("PlumaDocInfoPluginActions"); gtk_action_group_set_translation_domain (data->ui_action_group, GETTEXT_PACKAGE); gtk_action_group_add_actions (data->ui_action_group, action_entries, G_N_ELEMENTS (action_entries), window); manager = pluma_window_get_ui_manager (window); gtk_ui_manager_insert_action_group (manager, data->ui_action_group, -1); data->ui_id = gtk_ui_manager_new_merge_id (manager); g_object_set_data_full (G_OBJECT (window), WINDOW_DATA_KEY, data, (GDestroyNotify) free_window_data); gtk_ui_manager_add_ui (manager, data->ui_id, MENU_PATH, "DocumentStatistics", "DocumentStatistics", GTK_UI_MANAGER_MENUITEM, FALSE); update_ui_real (window, data); }
static void pluma_spell_plugin_deactivate (PeasActivatable *activatable) { PlumaSpellPluginPrivate *data; PlumaWindow *window; GtkUIManager *manager; pluma_debug (DEBUG_PLUGINS); data = PLUMA_SPELL_PLUGIN (activatable)->priv; window = PLUMA_WINDOW (data->window); manager = pluma_window_get_ui_manager (window); gtk_ui_manager_remove_ui (manager, data->ui_id); gtk_ui_manager_remove_action_group (manager, data->action_group); g_signal_handler_disconnect (window, data->tab_added_id); g_signal_handler_disconnect (window, data->tab_removed_id); }
static gboolean show_popup_menu (PlumaDocumentsPanel *panel, GdkEventButton *event) { GtkWidget *menu; menu = gtk_ui_manager_get_widget (pluma_window_get_ui_manager (panel->priv->window), "/NotebookPopup"); g_return_val_if_fail (menu != NULL, FALSE); if (event != NULL) { gtk_menu_popup_at_pointer (GTK_MENU (menu), NULL); } else { menu_popup_at_treeview_selection (menu, panel->priv->treeview); gtk_menu_shell_select_first (GTK_MENU_SHELL (menu), FALSE); } return TRUE; }
static void impl_deactivate (PlumaPlugin *plugin, PlumaWindow *window) { GtkUIManager *manager; WindowData *data; pluma_debug (DEBUG_PLUGINS); manager = pluma_window_get_ui_manager (window); data = (WindowData *) g_object_get_data (G_OBJECT (window), WINDOW_DATA_KEY); g_return_if_fail (data != NULL); gtk_ui_manager_remove_ui (manager, data->ui_id); gtk_ui_manager_remove_action_group (manager, data->ui_action_group); g_object_set_data (G_OBJECT (window), WINDOW_DATA_KEY, NULL); }
static void impl_activate (PlumaPlugin *plugin, PlumaWindow *window) { PlumaDrawspacesPlugin *ds_plugin; GtkUIManager *manager; GError *error = NULL; GtkAction *action; WindowData *data; ActionData *action_data; pluma_debug (DEBUG_PLUGINS); ds_plugin = PLUMA_DRAWSPACES_PLUGIN (plugin); data = g_slice_new (WindowData); action_data = g_slice_new (ActionData); action_data->window = window; action_data->plugin = ds_plugin; get_config_options (data, ds_plugin); manager = pluma_window_get_ui_manager (window); data->action_group = gtk_action_group_new ("PlumaDrawspacesPluginActions"); gtk_action_group_set_translation_domain (data->action_group, GETTEXT_PACKAGE); gtk_action_group_add_toggle_actions_full (data->action_group, action_entries, G_N_ELEMENTS (action_entries), action_data, (GDestroyNotify) free_action_data); /* Lets set the default value */ action = gtk_action_group_get_action (data->action_group, "DrawSpaces"); g_signal_handlers_block_by_func (action, on_active_toggled, action_data); gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (action), data->enable); g_signal_handlers_unblock_by_func (action, on_active_toggled, action_data); gtk_ui_manager_insert_action_group (manager, data->action_group, -1); data->ui_id = gtk_ui_manager_add_ui_from_string (manager, submenu, -1, &error); if (error) { g_warning ("%s", error->message); g_error_free (error); } g_object_set_data_full (G_OBJECT (window), WINDOW_DATA_KEY, data, (GDestroyNotify) free_window_data); if (data->enable) { draw_spaces_in_window (window, ds_plugin); } g_signal_connect (window, "tab-added", G_CALLBACK (tab_added_cb), ds_plugin); }
static void pluma_spell_plugin_activate (PeasActivatable *activatable) { PlumaSpellPlugin *plugin; PlumaSpellPluginPrivate *data; PlumaWindow *window; GtkUIManager *manager; GList *docs, *l; pluma_debug (DEBUG_PLUGINS); plugin = PLUMA_SPELL_PLUGIN (activatable); data = plugin->priv; window = PLUMA_WINDOW (data->window); manager = pluma_window_get_ui_manager (window); data->action_group = gtk_action_group_new ("PlumaSpellPluginActions"); gtk_action_group_set_translation_domain (data->action_group, GETTEXT_PACKAGE); gtk_action_group_add_actions (data->action_group, action_entries, G_N_ELEMENTS (action_entries), plugin); gtk_action_group_add_toggle_actions (data->action_group, toggle_action_entries, G_N_ELEMENTS (toggle_action_entries), plugin); gtk_ui_manager_insert_action_group (manager, data->action_group, -1); data->ui_id = gtk_ui_manager_new_merge_id (manager); data->message_cid = gtk_statusbar_get_context_id (GTK_STATUSBAR (pluma_window_get_statusbar (window)), "spell_plugin_message"); gtk_ui_manager_add_ui (manager, data->ui_id, MENU_PATH, "CheckSpell", "CheckSpell", GTK_UI_MANAGER_MENUITEM, FALSE); gtk_ui_manager_add_ui (manager, data->ui_id, MENU_PATH, "AutoSpell", "AutoSpell", GTK_UI_MANAGER_MENUITEM, FALSE); gtk_ui_manager_add_ui (manager, data->ui_id, MENU_PATH, "ConfigSpell", "ConfigSpell", GTK_UI_MANAGER_MENUITEM, FALSE); update_ui (plugin); docs = pluma_window_get_documents (window); for (l = docs; l != NULL; l = g_list_next (l)) { PlumaDocument *doc = PLUMA_DOCUMENT (l->data); set_auto_spell_from_metadata (plugin, doc, data->action_group); g_signal_handlers_disconnect_by_func (doc, on_document_loaded, plugin); g_signal_handlers_disconnect_by_func (doc, on_document_saved, plugin); } data->tab_added_id = g_signal_connect (window, "tab-added", G_CALLBACK (tab_added_cb), plugin); data->tab_removed_id = g_signal_connect (window, "tab-removed", G_CALLBACK (tab_removed_cb), plugin); }