static void impl_activate (GeditPlugin *plugin, GeditWindow *window) { WindowData *data; GList *views, *l; gedit_debug (DEBUG_PLUGINS); data = g_slice_new (WindowData); data->provider = gtk_source_completion_words_new (_("Document Words"), NULL); views = gedit_window_get_views (window); for (l = views; l != NULL; l = g_list_next (l)) { add_view (data, GTK_SOURCE_VIEW (l->data)); } g_object_set_data_full (G_OBJECT (window), WINDOW_DATA_KEY, data, (GDestroyNotify) free_window_data); data->tab_added_id = g_signal_connect (window, "tab-added", G_CALLBACK (tab_added_cb), NULL); data->tab_removed_id = g_signal_connect (window, "tab-removed", G_CALLBACK (tab_removed_cb), NULL); }
static void impl_deactivate (GeditPlugin *plugin, GeditWindow *window) { WindowData *data; GList *views; GList *item; gedit_debug (DEBUG_PLUGINS); uninstall_menu (window); uninstall_messages (window); views = gedit_window_get_views (window); for (item = views; item != NULL; item = item->next) { disable_bookmarks (GEDIT_VIEW (item->data)); } g_list_free (views); data = BOOKMARKS_DATA (window); g_return_if_fail (data != NULL); g_signal_handlers_disconnect_by_func (window, on_tab_added, plugin); g_signal_handlers_disconnect_by_func (window, on_tab_removed, plugin); g_object_set_data (G_OBJECT (window), WINDOW_DATA_KEY, NULL); }
static void impl_activate (GeditPlugin *plugin, GeditWindow *window) { WindowData *data; GList *views; GList *item; gedit_debug (DEBUG_PLUGINS); data = g_slice_new (WindowData); g_object_set_data_full (G_OBJECT (window), WINDOW_DATA_KEY, data, (GDestroyNotify) free_window_data); views = gedit_window_get_views (window); for (item = views; item != NULL; item = item->next) { enable_bookmarks (GEDIT_VIEW (item->data), plugin); load_bookmark_metadata (GEDIT_VIEW (item->data)); } g_list_free (views); g_signal_connect (window, "tab-added", G_CALLBACK (on_tab_added), plugin); g_signal_connect (window, "tab-removed", G_CALLBACK (on_tab_removed), plugin); install_menu (window); install_messages (window); }
static void gedit_modeline_plugin_deactivate (GeditPlugin *plugin, GeditWindow *window) { WindowData *wdata; GList *views; GList *l; gedit_debug (DEBUG_PLUGINS); wdata = g_object_steal_data (G_OBJECT (window), WINDOW_DATA_KEY); g_signal_handler_disconnect (window, wdata->tab_added_handler_id); g_signal_handler_disconnect (window, wdata->tab_removed_handler_id); window_data_free (wdata); views = gedit_window_get_views (window); for (l = views; l != NULL; l = l->next) { disconnect_handlers (GEDIT_VIEW (l->data)); modeline_parser_deactivate (GTK_SOURCE_VIEW (l->data)); } g_list_free (views); }
static void gedit_modeline_plugin_activate (GeditPlugin *plugin, GeditWindow *window) { WindowData *wdata; GList *views; GList *l; gedit_debug (DEBUG_PLUGINS); views = gedit_window_get_views (window); for (l = views; l != NULL; l = l->next) { connect_handlers (GEDIT_VIEW (l->data)); modeline_parser_apply_modeline (GTK_SOURCE_VIEW (l->data)); } g_list_free (views); wdata = g_slice_new (WindowData); wdata->tab_added_handler_id = g_signal_connect (window, "tab-added", G_CALLBACK (on_window_tab_added), NULL); wdata->tab_removed_handler_id = g_signal_connect (window, "tab-removed", G_CALLBACK (on_window_tab_removed), NULL); g_object_set_data_full (G_OBJECT (window), WINDOW_DATA_KEY, wdata, (GDestroyNotify) window_data_free); }
/** * gedit_app_get_views: * @app: the #GeditApp * * Returns all the views currently present in #GeditApp. * * Return value: (element-type Gedit.View) (transfer container): * a newly allocated list of #GeditView objects */ GList * gedit_app_get_views (GeditApp *app) { GList *res = NULL; GList *windows, *l; g_return_val_if_fail (GEDIT_IS_APP (app), NULL); windows = gtk_application_get_windows (GTK_APPLICATION (app)); for (l = windows; l != NULL; l = g_list_next (l)) { if (GEDIT_IS_WINDOW (l->data)) { res = g_list_concat (res, gedit_window_get_views (GEDIT_WINDOW (l->data))); } } return res; }
static void gedit_spell_plugin_activate (GeditWindowActivatable *activatable) { GeditSpellPlugin *plugin; GeditSpellPluginPrivate *priv; GList *views, *l; gedit_debug (DEBUG_PLUGINS); plugin = GEDIT_SPELL_PLUGIN (activatable); priv = plugin->priv; g_action_map_add_action_entries (G_ACTION_MAP (priv->window), action_entries, G_N_ELEMENTS (action_entries), activatable); priv->message_cid = gtk_statusbar_get_context_id (GTK_STATUSBAR (gedit_window_get_statusbar (priv->window)), "spell_plugin_message"); update_ui (plugin); views = gedit_window_get_views (priv->window); for (l = views; l != NULL; l = g_list_next (l)) { GeditView *view = GEDIT_VIEW (l->data); set_auto_spell_from_metadata (plugin, view); } priv->tab_added_id = g_signal_connect (priv->window, "tab-added", G_CALLBACK (tab_added_cb), activatable); priv->tab_removed_id = g_signal_connect (priv->window, "tab-removed", G_CALLBACK (tab_removed_cb), activatable); }
static void impl_deactivate (GeditPlugin *plugin, GeditWindow *window) { WindowData *data; GList *views, *l; gedit_debug (DEBUG_PLUGINS); data = (WindowData *) g_object_get_data (G_OBJECT (window), WINDOW_DATA_KEY); g_return_if_fail (data != NULL); views = gedit_window_get_views (window); for (l = views; l != NULL; l = g_list_next (l)) { remove_view (data, GTK_SOURCE_VIEW (l->data)); } g_signal_handler_disconnect (window, data->tab_added_id); g_signal_handler_disconnect (window, data->tab_removed_id); g_object_set_data (G_OBJECT (window), WINDOW_DATA_KEY, NULL); }