コード例 #1
0
static void
impl_activate (PlumaPlugin *plugin,
	       PlumaWindow *window)
{
	WindowData *data;
	GList *views;
	GList *item;

	pluma_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 = pluma_window_get_views (window);
	for (item = views; item != NULL; item = item->next)
	{
		enable_bookmarks (PLUMA_VIEW (item->data), plugin);
		load_bookmark_metadata (PLUMA_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);
}
コード例 #2
0
static void
impl_deactivate	(PlumaPlugin *plugin,
		 PlumaWindow *window)
{
	WindowData *data;
	GList *views;
	GList *item;

	pluma_debug (DEBUG_PLUGINS);

	uninstall_menu (window);
	uninstall_messages (window);

	views = pluma_window_get_views (window);

	for (item = views; item != NULL; item = item->next)
	{
		disable_bookmarks (PLUMA_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);
}
コード例 #3
0
static void
pluma_prefs_manager_editor_font_changed (GSettings *settings,
        gchar       *key,
        gpointer     user_data)
{
    GList *views;
    GList *l;
    gchar *font = NULL;
    gboolean def = TRUE;
    gint ts;

    pluma_debug (DEBUG_PREFS);

    if (strcmp (key, GPM_USE_DEFAULT_FONT) == 0)
    {
        def = g_settings_get_boolean (settings, key);

        if (def)
            font = pluma_prefs_manager_get_system_font ();
        else
            font = pluma_prefs_manager_get_editor_font ();
    }
    else if (strcmp (key, GPM_EDITOR_FONT) == 0)
    {
        font = g_settings_get_string (settings, key);

        def = pluma_prefs_manager_get_use_default_font ();
    }
    else
        return;

    g_return_if_fail (font != NULL);

    ts = pluma_prefs_manager_get_tabs_size ();

    views = pluma_app_get_views (pluma_app_get_default ());
    l = views;

    while (l != NULL)
    {
        /* Note: we use def=FALSE to avoid PlumaView to query GSettings */
        pluma_view_set_font (PLUMA_VIEW (l->data), FALSE,  font);
        gtk_source_view_set_tab_width (GTK_SOURCE_VIEW (l->data), ts);

        l = l->next;
    }

    g_list_free (views);
    g_free (font);
}
コード例 #4
0
static void
pluma_prefs_manager_system_font_changed (GSettings *settings,
        gchar       *key,
        gpointer     user_data)
{
    GList *views;
    GList *l;
    gchar *font;
    gint ts;

    pluma_debug (DEBUG_PREFS);

    if (strcmp (key, GPM_SYSTEM_FONT) != 0)
        return;

    if (!pluma_prefs_manager_get_use_default_font ())
        return;

    font = g_settings_get_string (settings, key);

    ts = pluma_prefs_manager_get_tabs_size ();

    views = pluma_app_get_views (pluma_app_get_default ());
    l = views;

    while (l != NULL)
    {
        /* Note: we use def=FALSE to avoid PlumaView to query GSettings */
        pluma_view_set_font (PLUMA_VIEW (l->data), FALSE, font);

        gtk_source_view_set_tab_width (GTK_SOURCE_VIEW (l->data), ts);
        l = l->next;
    }

    g_list_free (views);
    g_free (font);
}
コード例 #5
0
static void
pluma_automatic_spell_checker_free_internal (PlumaAutomaticSpellChecker *spell)
{
	GtkTextTagTable *table;
	GtkTextIter start, end;
	GSList *list;
	
	g_return_if_fail (spell != NULL);

	table = gtk_text_buffer_get_tag_table (GTK_TEXT_BUFFER (spell->doc));

	if (table != NULL && spell->tag_highlight != NULL)
	{
		gtk_text_buffer_get_bounds (GTK_TEXT_BUFFER (spell->doc), 
					    &start, 
					    &end);
		gtk_text_buffer_remove_tag (GTK_TEXT_BUFFER (spell->doc), 
					    spell->tag_highlight, 
					    &start, 
					    &end);

		g_signal_handlers_disconnect_matched (G_OBJECT (table),
					G_SIGNAL_MATCH_DATA,
					0, 0, NULL, NULL,
					spell);

		gtk_text_tag_table_remove (table, spell->tag_highlight);
	}
		
	g_signal_handlers_disconnect_matched (G_OBJECT (spell->doc),
			G_SIGNAL_MATCH_DATA,
			0, 0, NULL, NULL,
			spell);

	g_signal_handlers_disconnect_matched (G_OBJECT (spell->spell_checker),
			G_SIGNAL_MATCH_DATA,
			0, 0, NULL, NULL,
			spell);

	g_object_unref (spell->spell_checker);

	list = spell->views;
	while (list != NULL)
	{
		PlumaView *view = PLUMA_VIEW (list->data);
		
		g_signal_handlers_disconnect_matched (G_OBJECT (view),
				G_SIGNAL_MATCH_DATA,
				0, 0, NULL, NULL,
				spell);

		g_signal_handlers_disconnect_matched (G_OBJECT (view),
			G_SIGNAL_MATCH_DATA,
			0, 0, NULL, NULL,
			spell);

		list = g_slist_next (list);
	}

	g_slist_free (spell->views);
	
	g_free (spell);
}