changeset 457:5e9c24d3b3a8

Add a replacement for gtk_radio_action_set_current_value() which require GTK+ >= 2.10. Two new files were added, compat.h and compat.c.
author zas_
date Sun, 20 Apr 2008 23:17:35 +0000
parents 12ba8fce8976
children 7a69309b91c8
files src/Makefile.am src/compat.c src/compat.h src/layout_util.c
diffstat 4 files changed, 57 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/Makefile.am	Sun Apr 20 22:51:53 2008 +0000
+++ b/src/Makefile.am	Sun Apr 20 23:17:35 2008 +0000
@@ -89,6 +89,8 @@
 	collect-table.h	\
 	color-man.c	\
 	color-man.h	\
+	compat.c	\
+	compat.h	\
 	dnd.c		\
 	dnd.h		\
 	dupe.c		\
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/compat.c	Sun Apr 20 23:17:35 2008 +0000
@@ -0,0 +1,36 @@
+/*
+ * Geeqie
+ *
+ * Authors: Vladimir Nadvornik / Laurent Monin
+ * 
+ * This software is released under the GNU General Public License (GNU GPL).
+ * Please read the included file COPYING for more information.
+ * This software comes with no warranty of any kind, use at your own risk!
+ */
+
+#include "main.h"
+#include "compat.h"
+
+/* gtk_radio_action_set_current_value() replacement for GTK+ < 2.10 */
+void radio_action_set_current_value(GtkRadioAction *action, gint current_value)
+{
+#if GTK_CHECK_VERSION(2, 10, 0)
+	gtk_radio_action_set_current_value(action, current_value);
+#else
+	GSList *group;
+	gint value;
+
+	group = gtk_radio_action_get_group(action);
+	while (group)
+		{
+		action = GTK_RADIO_ACTION(group->data);
+		g_object_get(G_OBJECT(action), "value", &value, NULL);
+		if (value == current_value)
+			{
+			gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(action), TRUE);
+			return;
+			}
+		group = g_slist_next(group);
+		}
+#endif
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/compat.h	Sun Apr 20 23:17:35 2008 +0000
@@ -0,0 +1,17 @@
+/*
+ * Geeqie
+ *
+ * Authors: Vladimir Nadvornik / Laurent Monin
+ *
+ *
+ * This software is released under the GNU General Public License (GNU GPL).
+ * Please read the included file COPYING for more information.
+ * This software comes with no warranty of any kind, use at your own risk!
+ */
+
+#ifndef COMPAT_H
+#define COMPAT_H
+
+void radio_action_set_current_value(GtkRadioAction *action, gint current_value);
+
+#endif /* COMPAT_H */
--- a/src/layout_util.c	Sun Apr 20 22:51:53 2008 +0000
+++ b/src/layout_util.c	Sun Apr 20 23:17:35 2008 +0000
@@ -19,6 +19,7 @@
 #include "cache_maint.h"
 #include "collect.h"
 #include "collect-dlg.h"
+#include "compat.h"
 #include "dupe.h"
 #include "editors.h"
 #include "filelist.h"
@@ -1551,7 +1552,7 @@
 	if (!lw->action_group) return;
 
 	action = gtk_action_group_get_action(lw->action_group, "FolderTree");
-	gtk_radio_action_set_current_value(GTK_RADIO_ACTION(action), lw->dir_view_type);
+	radio_action_set_current_value(GTK_RADIO_ACTION(action), lw->dir_view_type);
 
 	action = gtk_action_group_get_action(lw->action_group, "ViewIcons");
 	gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(action), lw->icon_view);