Mercurial > pidgin
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)); |