diff src/gtksavedstatuses.c @ 11888:7d2d926704aa

[gaim-migrate @ 14179] Gtk 2.0 support. Deja Vu. committer: Tailor Script <tailor@pidgin.im>
author Stu Tomlinson <stu@nosnilmot.com>
date Sat, 29 Oct 2005 14:45:15 +0000
parents 9ca386c15ffe
children 04c2c3d84849
line wrap: on
line diff
--- a/src/gtksavedstatuses.c	Sat Oct 29 13:23:19 2005 +0000
+++ b/src/gtksavedstatuses.c	Sat Oct 29 14:45:15 2005 +0000
@@ -131,6 +131,23 @@
 	return FALSE;
 }
 
+#if !GTK_CHECK_VERSION(2,2,0)
+static void
+count_selected_helper(GtkTreeModel *model, GtkTreePath *path,
+					GtkTreeIter *iter, gpointer user_data)
+{
+	(*(gint *)user_data)++;
+}
+
+static void
+list_selected_helper(GtkTreeModel *model, GtkTreePath *path,
+					GtkTreeIter *iter, gpointer user_data)
+{
+	GList *list = (GList *)user_data;
+	list = g_list_append(list, path);
+}
+#endif
+
 static void
 status_window_use_cb(GtkButton *button, StatusWindow *dialog)
 {
@@ -138,17 +155,27 @@
 	GtkTreeIter iter;
 	GaimSavedStatus *saved_status;
 	GList *list;
+	int num_selected = 0;
 
 	selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(dialog->treeview));
 
-	if (gtk_tree_selection_count_selected_rows(selection) != 1)
+#if GTK_CHECK_VERSION(2,2,0)
+	num_selected = gtk_tree_selection_count_selected_rows(selection);
+#else
+	gtk_tree_selection_selected_foreach(selection, count_selected_helper, &num_selected);
+#endif
+	if (num_selected != 1)
 		/*
 		 * This shouldn't happen because the "Use" button should have
 		 * been grayed out.  Oh well.
 		 */
 		return;
 
+#if GTK_CHECK_VERSION(2,2,0)
 	list = gtk_tree_selection_get_selected_rows(selection, NULL);
+#else
+	gtk_tree_selection_selected_foreach(selection, list_selected_helper, &list);
+#endif
 
 	if (gtk_tree_model_get_iter(GTK_TREE_MODEL(dialog->model),
 								&iter, list->data))
@@ -239,25 +266,16 @@
 	gaim_gtk_status_window_hide();
 }
 
-#if !GTK_CHECK_VERSION(2,2,0)
-static void
-get_selected_helper(GtkTreeModel *model, GtkTreePath *path,
-					GtkTreeIter *iter, gpointer user_data)
-{
-	*((gboolean *)user_data)++;
-}
-#endif
-
 static void
 status_selected_cb(GtkTreeSelection *sel, gpointer user_data)
 {
 	StatusWindow *dialog = user_data;
-	int num_selected;
+	int num_selected = 0;
 
 #if GTK_CHECK_VERSION(2,2,0)
 	num_selected = gtk_tree_selection_count_selected_rows(sel);
 #else
-	gtk_tree_selection_selected_foreach(sel, get_selected_helper, &num_selected);
+	gtk_tree_selection_selected_foreach(sel, count_selected_helper, &num_selected);
 #endif
 
 	gtk_widget_set_sensitive(dialog->use_button, (num_selected == 1));