static void on_notify_font_theme (GSettings* settings, const gchar* key, gpointer user_data) { Sourceview *sv; sv = ANJUTA_SOURCEVIEW(user_data); if (g_settings_get_boolean (settings, key)) { /* FIXME: GSettings */ #if 0 GConfClient *gclient = gconf_client_get_default (); gchar *desktop_fixed_font; desktop_fixed_font = gconf_client_get_string (gclient, DESKTOP_FIXED_FONT, NULL); if (desktop_fixed_font) anjuta_view_set_font(sv->priv->view, FALSE, desktop_fixed_font); else anjuta_view_set_font(sv->priv->view, TRUE, NULL); g_free (desktop_fixed_font); #endif } else { gchar* font = g_settings_get_string (settings, FONT); anjuta_view_set_font(sv->priv->view, FALSE, font); g_free (font); } }
static void on_notify_line_wrap (GSettings* settings, const gchar* key, gpointer user_data) { Sourceview *sv; sv = ANJUTA_SOURCEVIEW(user_data); gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (sv->priv->view), g_settings_get_boolean (settings, key) ? GTK_WRAP_WORD : GTK_WRAP_NONE); }
static void on_notify_use_tab_for_indentation (GSettings* settings, const gchar* key, gpointer user_data) { Sourceview *sv; sv = ANJUTA_SOURCEVIEW(user_data); gtk_source_view_set_insert_spaces_instead_of_tabs(GTK_SOURCE_VIEW(sv->priv->view), !g_settings_get_boolean (settings, key)); }
static void on_notify_font (GSettings* settings, const gchar* key, gpointer user_data) { Sourceview *sv; sv = ANJUTA_SOURCEVIEW(user_data); gchar* font = g_settings_get_string (settings, key); anjuta_view_set_font(sv->priv->view, FALSE, font); g_free (font); }
static void on_notify_view_eol (GSettings* settings, const gchar* key, gpointer user_data) { Sourceview *sv; sv = ANJUTA_SOURCEVIEW(user_data); GtkSourceDrawSpacesFlags flags = gtk_source_view_get_draw_spaces (GTK_SOURCE_VIEW (sv->priv->view)); if (g_settings_get_boolean (settings, key)) flags |= GTK_SOURCE_DRAW_SPACES_NEWLINE; else flags &= ~GTK_SOURCE_DRAW_SPACES_NEWLINE; gtk_source_view_set_draw_spaces (GTK_SOURCE_VIEW(sv->priv->view), flags); }
/* Preferences notifications */ static void on_notify_indic_colors (GSettings* settings, const gchar *key, gpointer user_data) { char* error_color = g_settings_get_string (settings, MSGMAN_COLOR_ERROR); char* warning_color = g_settings_get_string (settings, MSGMAN_COLOR_WARNING); Sourceview* sv = ANJUTA_SOURCEVIEW (user_data); g_object_set (sv->priv->warning_indic, "foreground", warning_color, NULL); g_object_set (sv->priv->critical_indic, "foreground", error_color, NULL); g_free (error_color); g_free (warning_color); }
static void on_notify_autocompletion (GSettings* settings, const gchar* key, gpointer user_data) { Sourceview *sv; sv = ANJUTA_SOURCEVIEW(user_data); GtkSourceCompletion* completion = gtk_source_view_get_completion(GTK_SOURCE_VIEW(sv->priv->view)); if (g_settings_get_boolean (settings, key)) { DEBUG_PRINT ("Register word completion provider"); GtkSourceCompletionWords *prov_words; prov_words = gtk_source_completion_words_new (NULL, NULL); gtk_source_completion_words_register (prov_words, gtk_text_view_get_buffer (GTK_TEXT_VIEW (sv->priv->view))); gtk_source_completion_add_provider (completion, GTK_SOURCE_COMPLETION_PROVIDER (prov_words), NULL); } else { GList* node; for (node = gtk_source_completion_get_providers(completion); node != NULL; node = g_list_next (node)) { if (GTK_IS_SOURCE_COMPLETION_WORDS(node->data)) { DEBUG_PRINT ("Unregister word completion provider"); gtk_source_completion_words_unregister (GTK_SOURCE_COMPLETION_WORDS(node->data), gtk_text_view_get_buffer (GTK_TEXT_VIEW (sv->priv->view))); gtk_source_completion_remove_provider(completion, GTK_SOURCE_COMPLETION_PROVIDER(node->data), NULL); break; } } } }
static void on_style_changed (GtkComboBox* combo, SourceviewPlugin* plugin) { GtkTreeIter iter; gchar* id; GtkSourceStyleSchemeManager* manager = gtk_source_style_scheme_manager_get_default(); GtkSourceStyleScheme* scheme; IAnjutaDocumentManager* docman; AnjutaShell* shell = ANJUTA_PLUGIN (plugin)->shell; gtk_combo_box_get_active_iter (combo, &iter); gtk_tree_model_get (gtk_combo_box_get_model(combo), &iter, COLUMN_ID, &id, -1); scheme = gtk_source_style_scheme_manager_get_scheme (manager, id); g_settings_set_string (plugin->settings, SOURCEVIEW_STYLE, id); g_free (id); docman = anjuta_shell_get_interface (shell, IAnjutaDocumentManager, NULL); if (docman) { GList* editors = ianjuta_document_manager_get_doc_widgets (docman, NULL); GList* node; for (node = editors; node != NULL; node = g_list_next (node)) { IAnjutaDocument* editor = IANJUTA_DOCUMENT (node->data); if (ANJUTA_IS_SOURCEVIEW (editor)) { Sourceview* sv = ANJUTA_SOURCEVIEW (editor); gtk_source_buffer_set_style_scheme (GTK_SOURCE_BUFFER (sv->priv->document), scheme); } } } }