comparison 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
comparison
equal deleted inserted replaced
11887:6f514bb8f0a9 11888:7d2d926704aa
129 gaim_gtk_status_window_hide(); 129 gaim_gtk_status_window_hide();
130 130
131 return FALSE; 131 return FALSE;
132 } 132 }
133 133
134 #if !GTK_CHECK_VERSION(2,2,0)
135 static void
136 count_selected_helper(GtkTreeModel *model, GtkTreePath *path,
137 GtkTreeIter *iter, gpointer user_data)
138 {
139 (*(gint *)user_data)++;
140 }
141
142 static void
143 list_selected_helper(GtkTreeModel *model, GtkTreePath *path,
144 GtkTreeIter *iter, gpointer user_data)
145 {
146 GList *list = (GList *)user_data;
147 list = g_list_append(list, path);
148 }
149 #endif
150
134 static void 151 static void
135 status_window_use_cb(GtkButton *button, StatusWindow *dialog) 152 status_window_use_cb(GtkButton *button, StatusWindow *dialog)
136 { 153 {
137 GtkTreeSelection *selection; 154 GtkTreeSelection *selection;
138 GtkTreeIter iter; 155 GtkTreeIter iter;
139 GaimSavedStatus *saved_status; 156 GaimSavedStatus *saved_status;
140 GList *list; 157 GList *list;
158 int num_selected = 0;
141 159
142 selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(dialog->treeview)); 160 selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(dialog->treeview));
143 161
144 if (gtk_tree_selection_count_selected_rows(selection) != 1) 162 #if GTK_CHECK_VERSION(2,2,0)
163 num_selected = gtk_tree_selection_count_selected_rows(selection);
164 #else
165 gtk_tree_selection_selected_foreach(selection, count_selected_helper, &num_selected);
166 #endif
167 if (num_selected != 1)
145 /* 168 /*
146 * This shouldn't happen because the "Use" button should have 169 * This shouldn't happen because the "Use" button should have
147 * been grayed out. Oh well. 170 * been grayed out. Oh well.
148 */ 171 */
149 return; 172 return;
150 173
174 #if GTK_CHECK_VERSION(2,2,0)
151 list = gtk_tree_selection_get_selected_rows(selection, NULL); 175 list = gtk_tree_selection_get_selected_rows(selection, NULL);
176 #else
177 gtk_tree_selection_selected_foreach(selection, list_selected_helper, &list);
178 #endif
152 179
153 if (gtk_tree_model_get_iter(GTK_TREE_MODEL(dialog->model), 180 if (gtk_tree_model_get_iter(GTK_TREE_MODEL(dialog->model),
154 &iter, list->data)) 181 &iter, list->data))
155 { 182 {
156 gtk_tree_model_get(GTK_TREE_MODEL(dialog->model), &iter, 183 gtk_tree_model_get(GTK_TREE_MODEL(dialog->model), &iter,
237 status_window_close_cb(GtkButton *button, gpointer user_data) 264 status_window_close_cb(GtkButton *button, gpointer user_data)
238 { 265 {
239 gaim_gtk_status_window_hide(); 266 gaim_gtk_status_window_hide();
240 } 267 }
241 268
242 #if !GTK_CHECK_VERSION(2,2,0)
243 static void
244 get_selected_helper(GtkTreeModel *model, GtkTreePath *path,
245 GtkTreeIter *iter, gpointer user_data)
246 {
247 *((gboolean *)user_data)++;
248 }
249 #endif
250
251 static void 269 static void
252 status_selected_cb(GtkTreeSelection *sel, gpointer user_data) 270 status_selected_cb(GtkTreeSelection *sel, gpointer user_data)
253 { 271 {
254 StatusWindow *dialog = user_data; 272 StatusWindow *dialog = user_data;
255 int num_selected; 273 int num_selected = 0;
256 274
257 #if GTK_CHECK_VERSION(2,2,0) 275 #if GTK_CHECK_VERSION(2,2,0)
258 num_selected = gtk_tree_selection_count_selected_rows(sel); 276 num_selected = gtk_tree_selection_count_selected_rows(sel);
259 #else 277 #else
260 gtk_tree_selection_selected_foreach(sel, get_selected_helper, &num_selected); 278 gtk_tree_selection_selected_foreach(sel, count_selected_helper, &num_selected);
261 #endif 279 #endif
262 280
263 gtk_widget_set_sensitive(dialog->use_button, (num_selected == 1)); 281 gtk_widget_set_sensitive(dialog->use_button, (num_selected == 1));
264 gtk_widget_set_sensitive(dialog->modify_button, (num_selected > 0)); 282 gtk_widget_set_sensitive(dialog->modify_button, (num_selected > 0));
265 gtk_widget_set_sensitive(dialog->delete_button, (num_selected > 0)); 283 gtk_widget_set_sensitive(dialog->delete_button, (num_selected > 0));