SF.net SVN: geany:[2832] branches/custom-tab-width
ntrel at users.sourceforge.net
ntrel at xxxxx
Mon Jul 28 17:31:33 UTC 2008
Revision: 2832
http://geany.svn.sourceforge.net/geany/?rev=2832&view=rev
Author: ntrel
Date: 2008-07-28 17:31:33 +0000 (Mon, 28 Jul 2008)
Log Message:
-----------
Add radio_items_foreach(), combo_items_foreach().
Modified Paths:
--------------
branches/custom-tab-width/ChangeLog
branches/custom-tab-width/src/prefs.c
Modified: branches/custom-tab-width/ChangeLog
===================================================================
--- branches/custom-tab-width/ChangeLog 2008-07-28 17:28:19 UTC (rev 2831)
+++ branches/custom-tab-width/ChangeLog 2008-07-28 17:31:33 UTC (rev 2832)
@@ -17,6 +17,8 @@
* src/ui_utils.c, src/ui_utils.h:
Add ui_radio_menu_item_set_active_index(),
ui_radio_menu_item_get_active_index().
+ * src/prefs.c:
+ Add radio_items_foreach(), combo_items_foreach().
2008-07-25 Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com>
Modified: branches/custom-tab-width/src/prefs.c
===================================================================
--- branches/custom-tab-width/src/prefs.c 2008-07-28 17:28:19 UTC (rev 2831)
+++ branches/custom-tab-width/src/prefs.c 2008-07-28 17:31:33 UTC (rev 2832)
@@ -164,13 +164,70 @@
}
+static void radio_items_foreach(PrefCallbackAction action)
+{
+ guint i;
+ /* Only add one widget per radio-group */
+ PrefEntry items[] =
+ {
+ {"radio_indent_spaces", &editor_prefs.indentation->type},
+ };
+
+ for (i = 0; i < G_N_ELEMENTS(items); i++)
+ {
+ PrefEntry *pe = &items[i];
+ GtkWidget *widget = lookup_widget(ui_widgets.prefs_dialog, pe->widget_name);
+ gint *setting = pe->setting;
+
+ switch (action)
+ {
+ case PREF_DISPLAY:
+ ui_radio_menu_item_set_active_index(GTK_RADIO_MENU_ITEM(widget), *setting);
+ break;
+ case PREF_UPDATE:
+ *setting = ui_radio_menu_item_get_active_index(GTK_RADIO_MENU_ITEM(widget));
+ break;
+ }
+ }
+}
+
+
+static void combo_items_foreach(PrefCallbackAction action)
+{
+ guint i;
+ PrefEntry items[] =
+ {
+ {"combo_auto_indent_mode", &editor_prefs.indentation->type},
+ };
+
+ for (i = 0; i < G_N_ELEMENTS(items); i++)
+ {
+ PrefEntry *pe = &items[i];
+ GtkWidget *widget = lookup_widget(ui_widgets.prefs_dialog, pe->widget_name);
+ gint *setting = pe->setting;
+
+ switch (action)
+ {
+ case PREF_DISPLAY:
+ gtk_combo_box_set_active(GTK_COMBO_BOX(widget), *setting);
+ break;
+ case PREF_UPDATE:
+ *setting = gtk_combo_box_get_active(GTK_COMBO_BOX(widget));
+ break;
+ }
+ }
+}
+
+
typedef void (*PrefItemsCallback)(PrefCallbackAction action);
/* List of functions which hold the PrefEntry arrays. This allows access to
* runtime setting fields like EditorPrefs::indentation->width. */
PrefItemsCallback pref_item_callbacks[] = {
toggle_items_foreach,
- spin_items_foreach
+ spin_items_foreach,
+ radio_items_foreach,
+ combo_items_foreach
};
@@ -474,9 +531,6 @@
widget = lookup_widget(ui_widgets.prefs_dialog, "check_line_end");
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), editor_prefs.show_line_endings);
- widget = lookup_widget(ui_widgets.prefs_dialog, "combo_auto_indent_mode");
- gtk_combo_box_set_active(GTK_COMBO_BOX(widget), editor_prefs.indent_mode);
-
widget = lookup_widget(ui_widgets.prefs_dialog, "check_detect_indent");
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), editor_prefs.detect_tab_mode);
@@ -506,12 +560,6 @@
widget = lookup_widget(ui_widgets.prefs_dialog, "check_newline_strip");
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), editor_prefs.newline_strip);
- if (editor_prefs.use_tabs)
- widget = lookup_widget(ui_widgets.prefs_dialog, "radio_indent_tabs");
- else
- widget = lookup_widget(ui_widgets.prefs_dialog, "radio_indent_spaces");
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), TRUE);
-
widget = lookup_widget(ui_widgets.prefs_dialog, "check_indicators");
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), editor_prefs.use_indicators);
@@ -887,9 +935,6 @@
widget = lookup_widget(ui_widgets.prefs_dialog, "check_line_end");
editor_prefs.show_line_endings = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
- widget = lookup_widget(ui_widgets.prefs_dialog, "combo_auto_indent_mode");
- editor_prefs.indent_mode = gtk_combo_box_get_active(GTK_COMBO_BOX(widget));
-
widget = lookup_widget(ui_widgets.prefs_dialog, "check_line_wrapping");
editor_prefs.line_wrapping = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
@@ -911,22 +956,6 @@
widget = lookup_widget(ui_widgets.prefs_dialog, "check_newline_strip");
editor_prefs.newline_strip = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
- widget = lookup_widget(ui_widgets.prefs_dialog, "radio_indent_tabs");
- {
- gboolean use_tabs = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
-
- /* override each document setting only if the default has changed */
- if (editor_prefs.use_tabs != use_tabs)
- {
- editor_prefs.use_tabs = use_tabs;
- for (i = 0; i < documents_array->len; i++)
- {
- if (documents[i]->is_valid)
- editor_set_use_tabs(documents[i]->editor, editor_prefs.use_tabs);
- }
- }
- }
-
widget = lookup_widget(ui_widgets.prefs_dialog, "check_detect_indent");
editor_prefs.detect_tab_mode = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Commits
mailing list