SF.net SVN: geany:[2830] branches/custom-tab-width

ntrel at users.sourceforge.net ntrel at xxxxx
Mon Jul 28 13:50:56 UTC 2008


Revision: 2830
          http://geany.svn.sourceforge.net/geany/?rev=2830&view=rev
Author:   ntrel
Date:     2008-07-28 13:50:55 +0000 (Mon, 28 Jul 2008)

Log Message:
-----------
Add spin_items_foreach().
Bind spin_indent_width, spin_tab_width widgets to settings.

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 13:42:14 UTC (rev 2829)
+++ branches/custom-tab-width/ChangeLog	2008-07-28 13:50:55 UTC (rev 2830)
@@ -11,6 +11,9 @@
    array can contain runtime fields, so can read pointer contents.
    Add pref_item_callbacks array of functions to call like
    toggle_items_foreach().
+ * src/prefs.c:
+   Add spin_items_foreach().
+   Bind spin_indent_width, spin_tab_width widgets to settings.
 
 
 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 13:42:14 UTC (rev 2829)
+++ branches/custom-tab-width/src/prefs.c	2008-07-28 13:50:55 UTC (rev 2830)
@@ -136,12 +136,41 @@
 }
 
 
+static void spin_items_foreach(PrefCallbackAction action)
+{
+	guint i;
+	PrefEntry items[] =
+	{
+		{"spin_indent_width", &editor_prefs.indentation->width},
+		{"spin_tab_width", &editor_prefs.indentation->tab_width},
+	};
+
+	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_spin_button_set_value(GTK_SPIN_BUTTON(widget), *setting);
+				break;
+			case PREF_UPDATE:
+				*setting = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(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
+	toggle_items_foreach,
+	spin_items_foreach
 };
 
 
@@ -433,9 +462,6 @@
 	gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), file_prefs.final_new_line);
 
 	/* Editor settings */
-	widget = lookup_widget(ui_widgets.prefs_dialog, "spin_tab_width");
-	gtk_spin_button_set_value(GTK_SPIN_BUTTON(widget), editor_prefs.tab_width);
-
 	widget = lookup_widget(ui_widgets.prefs_dialog, "check_replace_tabs");
 	gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widget), file_prefs.replace_tabs);
 
@@ -842,9 +868,6 @@
 
 
 		/* Editor settings */
-		widget = lookup_widget(ui_widgets.prefs_dialog, "spin_tab_width");
-		editor_prefs.tab_width = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(widget));
-
 		widget = lookup_widget(ui_widgets.prefs_dialog, "spin_long_line");
 		editor_prefs.long_line_column = gtk_spin_button_get_value_as_int(GTK_SPIN_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