From b944e690105444ef4400e562b7b44836709ac214 Mon Sep 17 00:00:00 2001 From: Jesse van den Kieboom Date: Sat, 19 Nov 2005 13:10:25 +0000 Subject: [PATCH] Removed custom editor styles --- gnoemoe/dialogs/gm-preferences-dialog.c | 383 +----------------------- 1 file changed, 3 insertions(+), 380 deletions(-) diff --git a/gnoemoe/dialogs/gm-preferences-dialog.c b/gnoemoe/dialogs/gm-preferences-dialog.c index d802e2f..9c2e4ea 100644 --- a/gnoemoe/dialogs/gm-preferences-dialog.c +++ b/gnoemoe/dialogs/gm-preferences-dialog.c @@ -19,6 +19,7 @@ #include "../gm-app.h" #include "gm-preferences-dialog.h" +#include "../widgets/gm-editor-view.h" #include "../gm-support.h" #include "../gm-debug.h" #include "../gm-options.h" @@ -98,13 +99,6 @@ static const GmKeyValuePair color_schemes[] = { static GmPreferencesDialog *preferences = NULL; -enum { - EDITOR_NAME, - EDITOR_STYLE, - EDITOR_ID, - EDITOR_N_COLUMNS -}; - enum { SCHEME_NAME, SCHEME_OPTION, @@ -152,88 +146,6 @@ gm_preferences_dialog_init_combo_box_scheme() { gtk_combo_box_set_active(box, select); } -void -gm_preferences_dialog_init_editor_colors_tree() { - GtkCellRenderer *renderer; - GtkTreeViewColumn *column; - GtkTreeView *tv = GTK_TREE_VIEW( - gm_preferences_dialog_widget("tree_view_editor_colors")); - GtkListStore *store = gtk_list_store_new(EDITOR_N_COLUMNS, G_TYPE_STRING, - GTK_TYPE_SOURCE_TAG_STYLE, G_TYPE_STRING); - GtkTreeModel *model = - gtk_tree_model_sort_new_with_model(GTK_TREE_MODEL(store)); - GtkTreeSelection *select; - - gtk_tree_view_set_model(tv, model); - select = gtk_tree_view_get_selection(tv); - - g_signal_connect(select, "changed", G_CALLBACK( - on_gm_preferences_dialog_tree_view_editor_colors_row_changed), - NULL); - - renderer = gtk_cell_renderer_text_new(); - column = gtk_tree_view_column_new_with_attributes(_("Tag"), renderer, - "text", EDITOR_NAME, NULL); - gtk_tree_view_append_column(tv, column); - - renderer = gtk_cell_renderer_text_new(); - column = gtk_tree_view_column_new_with_attributes(_("Style"), renderer, - NULL); - gtk_tree_view_column_set_visible(column, FALSE); - - gtk_tree_view_append_column(tv, column); - - renderer = gtk_cell_renderer_text_new(); - column = gtk_tree_view_column_new_with_attributes(_("Id"), renderer, NULL); - gtk_tree_view_column_set_visible(column, FALSE); - - gtk_tree_view_append_column(tv, column); - - gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(model), EDITOR_NAME, - GTK_SORT_ASCENDING); -} - -void -gm_preferences_dialog_init_editor_colors() { - GtkSourceTag *st; - GtkSourceTagStyle *sty; - - GSList *tags, *tag; - gchar *name, *id; - GtkTreeIter iter; - GtkListStore *store; - GtkSourceLanguage *lang = NULL; - - // TODO: Fix this! - // lang = editor_get_language(); - - // Create column ed - gm_preferences_dialog_init_editor_colors_tree(); - store = GTK_LIST_STORE(gtk_tree_model_sort_get_model(GTK_TREE_MODEL_SORT( - gtk_tree_view_get_model(GTK_TREE_VIEW( - gm_preferences_dialog_widget("tree_view_editor_colors")))))); - - if (lang) { - tags = gtk_source_language_get_tags(lang); - - for (tag = tags; tag; tag = tag->next) { - st = GTK_SOURCE_TAG(tag->data); - sty = gtk_source_tag_get_style(st); - - g_object_get(G_OBJECT(st), "name", &name, "id", &id, NULL); - - gtk_list_store_prepend(store, &iter); - gtk_list_store_set(store, &iter, EDITOR_NAME, name, - EDITOR_STYLE, sty, EDITOR_ID, id, -1); - - g_free(name); - g_free(id); - } - - g_slist_free(tags); - } -} - #define GM_PREFERENCES_DIALOG_XML \ PACKAGE_DATA_DIR "/" PACKAGE "/ui/gm-preferences.glade" @@ -253,7 +165,7 @@ gm_preferences_dialog_run() { "gm_preferences_dialog", NULL); preferences->dialog = gm_preferences_dialog_widget("gm_preferences_dialog"); - gm_preferences_dialog_init_editor_colors(); + gm_preferences_dialog_load_colors(); gm_preferences_dialog_init_combo_box_scheme(); @@ -298,34 +210,11 @@ gm_preferences_dialog_run() { glade_xml_signal_connect(preferences->xml, "on_check_button_embed_editor_clicked", G_CALLBACK( on_gm_preferences_dialog_check_button_embed_editor_clicked)); - glade_xml_signal_connect(preferences->xml, - "on_check_button_fg_clicked", G_CALLBACK( - on_gm_preferences_dialog_check_button_fg_clicked)); - glade_xml_signal_connect(preferences->xml, - "on_check_button_bg_clicked", G_CALLBACK( - on_gm_preferences_dialog_check_button_bg_clicked)); glade_xml_signal_connect(preferences->xml, "on_combo_box_scheme_changed", G_CALLBACK( on_gm_preferences_dialog_combo_box_scheme_changed)); - glade_xml_signal_connect_data(preferences->xml, - "on_toggle_button_bold_clicked", G_CALLBACK( - on_gm_preferences_dialog_toggle_button_style_clicked), - GINT_TO_POINTER(1)); - glade_xml_signal_connect_data(preferences->xml, - "on_toggle_button_style_clicked", G_CALLBACK( - on_gm_preferences_dialog_toggle_button_style_clicked), - GINT_TO_POINTER(2)); - glade_xml_signal_connect_data(preferences->xml, - "on_toggle_button_underline_clicked", G_CALLBACK( - on_gm_preferences_dialog_toggle_button_style_clicked), - GINT_TO_POINTER(3)); - glade_xml_signal_connect_data(preferences->xml, - "on_toggle_button_strike_trough_clicked", G_CALLBACK( - on_gm_preferences_dialog_toggle_button_style_clicked), - GINT_TO_POINTER(4)); - glade_xml_signal_connect(preferences->xml, "on_color_button_fg_color_set", G_CALLBACK( on_gm_preferences_dialog_color_button_fg_color_set)); @@ -373,70 +262,6 @@ gm_preferences_dialog_save_colors() { } } -void -gm_preferences_dialog_save_editor_color(GtkTreeModel *model, - GtkTreeIter *iter) { - gchar *name, *id, *opt_key, *opt_value, *fg, *bg; - GtkSourceTagStyle *style; - GmOptions *options = gm_app_options(gm_app_instance()); - - gtk_tree_model_get(model, iter, EDITOR_NAME, &name, EDITOR_STYLE, &style, - EDITOR_ID, &id, -1); - - opt_key = g_strconcat("editor_", name, NULL); - - if (!(style->mask & GTK_SOURCE_TAG_STYLE_USE_FOREGROUND)) { - fg = g_strdup("0"); - } else { - fg = g_strdup_printf("#%04X%04X%04X", style->foreground.red, - style->foreground.green, style->foreground.blue); - } - - if (!(style->mask & GTK_SOURCE_TAG_STYLE_USE_BACKGROUND)) { - bg = g_strdup("0"); - } else { - bg = g_strdup_printf("#%04X%04X%04X", style->background.red, - style->background.green, style->background.blue); - } - - opt_value = g_strdup_printf("%s,%s,%d,%d,%d,%d", fg, bg, style->bold, - style->italic, style->underline, - style->strikethrough); - - gm_debug_msg(DEBUG_DEFAULT, "GmPreferencesDialog.SaveEditorColor %s to %s", opt_key, - opt_value); - - gm_options_set(options, opt_key, opt_value); - - // TODO: do something about this - //gtk_source_language_set_tag_style(editor_get_language(), id, style); - - g_free(opt_key); - g_free(opt_value); - g_free(id); - g_free(fg); - g_free(bg); - g_free(name); - - // CHECK this: - //gtk_source_tag_style_free(style); -} - -void -gm_preferences_dialog_save_editor_colors() { - GtkTreeIter iter; - GtkTreeView *vw = GTK_TREE_VIEW( - gm_preferences_dialog_widget("tree_view_editor_colors")); - GtkTreeModelSort *model = GTK_TREE_MODEL_SORT(gtk_tree_view_get_model(vw)); - GtkTreeModel *store = gtk_tree_model_sort_get_model(model); - - if (gtk_tree_model_get_iter_first(store, &iter)) { - do { - gm_preferences_dialog_save_editor_color(store, &iter); - } while (gtk_tree_model_iter_next(store, &iter)); - } -} - gboolean gm_preferences_dialog_check_values() { const gchar *alt_editor = gtk_entry_get_text(GTK_ENTRY( @@ -447,7 +272,7 @@ gm_preferences_dialog_check_values() { gm_preferences_dialog_widget("check_button_alt_editor"))); GmOptions *options = gm_app_options(gm_app_instance()); - if (use_alt_editor && alt_editor[0] != '\0') { + if (use_alt_editor && *alt_editor == '\0') { gm_error_dialog(_("Editor can't be empty, enter a non empty command"), GTK_WINDOW(preferences->dialog)); gm_notebook_focus_from_label(GTK_NOTEBOOK(gm_preferences_dialog_widget( @@ -472,7 +297,6 @@ gm_preferences_dialog_check_values() { gm_options_set(options, "font-family", font_description); gm_preferences_dialog_save_colors(); - gm_preferences_dialog_save_editor_colors(); return TRUE; } @@ -560,207 +384,6 @@ on_gm_preferences_dialog_check_button_alt_editor_clicked( "check_button_needs_terminal"), active); } -void -gm_preferences_dialog_editor_style_do_enable() { - gtk_widget_set_sensitive(gm_preferences_dialog_widget("check_button_fg"), - TRUE); - gtk_widget_set_sensitive(gm_preferences_dialog_widget("check_button_bg"), - TRUE); - gtk_widget_set_sensitive(gm_preferences_dialog_widget("toggle_button_bold"), - TRUE); - gtk_widget_set_sensitive(gm_preferences_dialog_widget( - "toggle_button_style"), TRUE); - gtk_widget_set_sensitive(gm_preferences_dialog_widget( - "toggle_button_underline"), TRUE); - gtk_widget_set_sensitive(gm_preferences_dialog_widget( - "toggle_button_strike_through"), TRUE); -} - -void -on_gm_preferences_dialog_tree_view_editor_colors_row_changed( - GtkTreeSelection *selection, gpointer data) { - GtkTreeIter iter; - GtkTreeModel *model; - GtkSourceTagStyle *style; - GtkColorButton *fg, *bg; - GtkToggleButton *fgt, *bgt; - GdkColor empty_col; - - gdk_color_parse("black", &empty_col); - - gtk_tree_selection_get_selected(selection, &model, &iter); - gtk_tree_model_get(model, &iter, EDITOR_STYLE, &style, -1); - - fg = GTK_COLOR_BUTTON(gm_preferences_dialog_widget("color_button_fg")); - bg = GTK_COLOR_BUTTON(gm_preferences_dialog_widget("color_button_bg")); - fgt = GTK_TOGGLE_BUTTON(gm_preferences_dialog_widget("check_button_fg")); - bgt = GTK_TOGGLE_BUTTON(gm_preferences_dialog_widget("check_button_bg")); - - if (style->mask & GTK_SOURCE_TAG_STYLE_USE_FOREGROUND) { - gtk_color_button_set_color(fg, &(style->foreground)); - gtk_widget_set_sensitive(GTK_WIDGET(fg), TRUE); - gtk_toggle_button_set_active(fgt, TRUE); - } else { - gtk_color_button_set_color(fg, &empty_col); - gtk_widget_set_sensitive(GTK_WIDGET(fg), FALSE); - gtk_toggle_button_set_active(fgt, FALSE); - } - - if (style->mask & GTK_SOURCE_TAG_STYLE_USE_BACKGROUND) { - gtk_color_button_set_color(bg, &(style->background)); - gtk_widget_set_sensitive(GTK_WIDGET(bg), TRUE); - gtk_toggle_button_set_active(bgt, TRUE); - } else { - gtk_color_button_set_color(bg, &empty_col); - gtk_widget_set_sensitive(GTK_WIDGET(bg), FALSE); - gtk_toggle_button_set_active(bgt, FALSE); - } - - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gm_preferences_dialog_widget( - "check_button_bold")), style->bold); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gm_preferences_dialog_widget( - "check_button_style")), style->italic); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gm_preferences_dialog_widget( - "check_button_underline")), style->underline); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(gm_preferences_dialog_widget( - "check_button_strike_through")), style->strikethrough); - gm_preferences_dialog_editor_style_do_enable(); -} - -typedef struct _GmSelectionInfo { - GtkTreeIter siter; - GtkTreeIter iter; - GtkListStore *store; - GtkTreeModel *model; - GtkSourceTagStyle *style; -} GmSelectionInfo; - -GmSelectionInfo -gm_preferences_dialog_get_selection_info() { - GtkTreeSelection *selection; - GmSelectionInfo info; - - selection = gtk_tree_view_get_selection(GTK_TREE_VIEW( - gm_preferences_dialog_widget("tree_view_editor_colors"))); - - gtk_tree_selection_get_selected(selection, &(info.model), &(info.siter)); - gtk_tree_model_get(info.model, &(info.siter), EDITOR_STYLE, &(info.style), - -1); - gtk_tree_model_sort_convert_iter_to_child_iter(GTK_TREE_MODEL_SORT( - info.model), &(info.iter), &(info.siter)); - - info.store = GTK_LIST_STORE(gtk_tree_model_sort_get_model( - GTK_TREE_MODEL_SORT(info.model))); - - return info; -} - -void -on_gm_preferences_dialog_check_button_fg_clicked(GtkButton *button, - gpointer user_data) { - GmSelectionInfo info; - gboolean tog = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(button)); - GtkWidget *clb = gm_preferences_dialog_widget("color_button_fg"); - GdkColor empty_col; - - info = gm_preferences_dialog_get_selection_info(); - gdk_color_parse("black", &empty_col); - - if (tog) { - info.style->mask = info.style->mask | - GTK_SOURCE_TAG_STYLE_USE_FOREGROUND; - } else { - info.style->mask = info.style->mask & - ~GTK_SOURCE_TAG_STYLE_USE_FOREGROUND; - gtk_color_button_set_color(GTK_COLOR_BUTTON(clb), &empty_col); - info.style->foreground = empty_col; - } - - gtk_list_store_set(info.store, &(info.iter), EDITOR_STYLE, info.style, -1); - gtk_source_tag_style_free(info.style); - - gtk_widget_set_sensitive(clb, tog); -} - -void -on_gm_preferences_dialog_check_button_bg_clicked(GtkButton *button, - gpointer user_data) { - GmSelectionInfo info; - gboolean tog = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(button)); - GtkWidget *clb = gm_preferences_dialog_widget("color_button_bg"); - GdkColor empty_col; - - info = gm_preferences_dialog_get_selection_info(); - gdk_color_parse("black", &empty_col); - - if (tog) { - info.style->mask = info.style->mask | - GTK_SOURCE_TAG_STYLE_USE_BACKGROUND; - } else { - info.style->mask = info.style->mask & - ~GTK_SOURCE_TAG_STYLE_USE_BACKGROUND; - gtk_color_button_set_color(GTK_COLOR_BUTTON(clb), &empty_col); - info.style->background = empty_col; - } - - gtk_list_store_set(info.store, &(info.iter), EDITOR_STYLE, info.style, -1); - gtk_source_tag_style_free(info.style); - - gtk_widget_set_sensitive(clb, tog); -} - -void -on_gm_preferences_dialog_toggle_button_style_clicked(GtkButton *button, - gpointer user_data) { - GmSelectionInfo info; - int type = GPOINTER_TO_INT(user_data); - gboolean tog = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(button)); - - info = gm_preferences_dialog_get_selection_info(); - - switch (type) { - case 1: /* bold */ - info.style->bold = tog; - break; - case 2: /* italic */ - info.style->italic = tog; - break; - case 3: /* underline */ - info.style->underline = tog; - break; - case 4: - info.style->strikethrough = tog; - break; - } - - gtk_list_store_set(info.store, &(info.iter), EDITOR_STYLE, info.style, -1); - gtk_source_tag_style_free(info.style); -} - -void -on_gm_preferences_dialog_color_button_fg_color_set(GtkColorButton *widget, - gpointer user_data) { - GmSelectionInfo info; - - info = gm_preferences_dialog_get_selection_info(); - gtk_color_button_get_color(widget, &(info.style->foreground)); - - gtk_list_store_set(info.store, &(info.iter), EDITOR_STYLE, info.style, -1); - gtk_source_tag_style_free(info.style); -} - -void -on_gm_preferences_dialog_color_button_bg_color_set(GtkColorButton *widget, - gpointer user_data) { - GmSelectionInfo info; - - info = gm_preferences_dialog_get_selection_info(); - gtk_color_button_get_color(widget, &(info.style->background)); - - gtk_list_store_set(info.store, &(info.iter), EDITOR_STYLE, info.style, -1); - gtk_source_tag_style_free(info.style); -} - void on_gm_preferences_dialog_combo_box_scheme_changed(GtkComboBox *box, gpointer user_data) {