Mercurial > pidgin.yaz
comparison src/gtkrequest.c @ 12234:7de5514bc406
[gaim-migrate @ 14536]
Let's use the busy cursor in request API boxes as well.
committer: Tailor Script <tailor@pidgin.im>
author | Richard Laager <rlaager@wiktel.com> |
---|---|
date | Sun, 27 Nov 2005 04:41:13 +0000 |
parents | e859c1663a27 |
children | 255e6912607b |
comparison
equal
deleted
inserted
replaced
12233:02833a0ae716 | 12234:7de5514bc406 |
---|---|
89 | 89 |
90 } GaimGtkCompletionData; | 90 } GaimGtkCompletionData; |
91 #endif | 91 #endif |
92 | 92 |
93 static void | 93 static void |
94 generic_response_start(GaimGtkRequestData *data) | |
95 { | |
96 GdkWindow *window = GTK_WIDGET(data->dialog)->window; | |
97 GdkCursor *cursor; | |
98 | |
99 /* Tell the user we're doing something. */ | |
100 cursor = gdk_cursor_new(GDK_WATCH); | |
101 gdk_window_set_cursor(window, cursor); | |
102 gdk_cursor_unref(cursor); | |
103 while (gtk_events_pending()) | |
104 gtk_main_iteration(); | |
105 | |
106 } | |
107 | |
108 static void | |
94 input_response_cb(GtkDialog *dialog, gint id, GaimGtkRequestData *data) | 109 input_response_cb(GtkDialog *dialog, gint id, GaimGtkRequestData *data) |
95 { | 110 { |
96 const char *value; | 111 const char *value; |
97 char *multiline_value = NULL; | 112 char *multiline_value = NULL; |
113 | |
114 generic_response_start(data); | |
98 | 115 |
99 if (data->u.input.multiline) { | 116 if (data->u.input.multiline) { |
100 GtkTextIter start_iter, end_iter; | 117 GtkTextIter start_iter, end_iter; |
101 GtkTextBuffer *buffer = | 118 GtkTextBuffer *buffer = |
102 gtk_text_view_get_buffer(GTK_TEXT_VIEW(data->u.input.entry)); | 119 gtk_text_view_get_buffer(GTK_TEXT_VIEW(data->u.input.entry)); |
127 } | 144 } |
128 | 145 |
129 static void | 146 static void |
130 action_response_cb(GtkDialog *dialog, gint id, GaimGtkRequestData *data) | 147 action_response_cb(GtkDialog *dialog, gint id, GaimGtkRequestData *data) |
131 { | 148 { |
149 generic_response_start(data); | |
150 | |
132 if (id < data->cb_count && data->cbs[id] != NULL) | 151 if (id < data->cb_count && data->cbs[id] != NULL) |
133 ((GaimRequestActionCb)data->cbs[id])(data->user_data, id); | 152 ((GaimRequestActionCb)data->cbs[id])(data->user_data, id); |
134 | 153 |
135 gaim_request_close(GAIM_REQUEST_INPUT, data); | 154 gaim_request_close(GAIM_REQUEST_INPUT, data); |
136 } | 155 } |
139 static void | 158 static void |
140 choice_response_cb(GtkDialog *dialog, gint id, GaimGtkRequestData *data) | 159 choice_response_cb(GtkDialog *dialog, gint id, GaimGtkRequestData *data) |
141 { | 160 { |
142 GtkWidget *radio = g_object_get_data(G_OBJECT(dialog), "radio"); | 161 GtkWidget *radio = g_object_get_data(G_OBJECT(dialog), "radio"); |
143 GSList *group = gtk_radio_button_get_group(GTK_RADIO_BUTTON(radio)); | 162 GSList *group = gtk_radio_button_get_group(GTK_RADIO_BUTTON(radio)); |
163 | |
164 generic_response_start(data); | |
165 | |
144 if (id < data->cb_count && data->cbs[id] != NULL) | 166 if (id < data->cb_count && data->cbs[id] != NULL) |
145 while (group) { | 167 while (group) { |
146 if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(group->data))) { | 168 if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(group->data))) { |
147 ((GaimRequestChoiceCb)data->cbs[id])(data->user_data, GPOINTER_TO_INT(g_object_get_data(G_OBJECT(group->data), "choice_id"))); | 169 ((GaimRequestChoiceCb)data->cbs[id])(data->user_data, GPOINTER_TO_INT(g_object_get_data(G_OBJECT(group->data), "choice_id"))); |
148 break; | 170 break; |
219 } | 241 } |
220 | 242 |
221 static void | 243 static void |
222 multifield_ok_cb(GtkWidget *button, GaimGtkRequestData *data) | 244 multifield_ok_cb(GtkWidget *button, GaimGtkRequestData *data) |
223 { | 245 { |
246 generic_response_start(data); | |
247 | |
224 if (!GTK_WIDGET_HAS_FOCUS(button)) | 248 if (!GTK_WIDGET_HAS_FOCUS(button)) |
225 gtk_widget_grab_focus(button); | 249 gtk_widget_grab_focus(button); |
226 | 250 |
227 if (data->cbs[0] != NULL) | 251 if (data->cbs[0] != NULL) |
228 ((GaimRequestFieldsCb)data->cbs[0])(data->user_data, | 252 ((GaimRequestFieldsCb)data->cbs[0])(data->user_data, |
232 } | 256 } |
233 | 257 |
234 static void | 258 static void |
235 multifield_cancel_cb(GtkWidget *button, GaimGtkRequestData *data) | 259 multifield_cancel_cb(GtkWidget *button, GaimGtkRequestData *data) |
236 { | 260 { |
261 generic_response_start(data); | |
262 | |
237 if (data->cbs[1] != NULL) | 263 if (data->cbs[1] != NULL) |
238 ((GaimRequestFieldsCb)data->cbs[1])(data->user_data, | 264 ((GaimRequestFieldsCb)data->cbs[1])(data->user_data, |
239 data->u.multifield.fields); | 265 data->u.multifield.fields); |
240 | 266 |
241 gaim_request_close(GAIM_REQUEST_FIELDS, data); | 267 gaim_request_close(GAIM_REQUEST_FIELDS, data); |
1749 static void | 1775 static void |
1750 file_ok_check_if_exists_cb(GtkWidget *widget, gint response, GaimGtkRequestData *data) | 1776 file_ok_check_if_exists_cb(GtkWidget *widget, gint response, GaimGtkRequestData *data) |
1751 { | 1777 { |
1752 gchar *current_folder; | 1778 gchar *current_folder; |
1753 | 1779 |
1780 generic_response_start(data); | |
1781 | |
1754 if (response != GTK_RESPONSE_ACCEPT) { | 1782 if (response != GTK_RESPONSE_ACCEPT) { |
1755 if (data->cbs[0] != NULL) | 1783 if (data->cbs[0] != NULL) |
1756 ((GaimRequestFileCb)data->cbs[0])(data->user_data, NULL); | 1784 ((GaimRequestFileCb)data->cbs[0])(data->user_data, NULL); |
1757 gaim_request_close(GAIM_REQUEST_FILE, data); | 1785 gaim_request_close(GAIM_REQUEST_FILE, data); |
1758 return; | 1786 return; |
1774 static void | 1802 static void |
1775 file_ok_check_if_exists_cb(GtkWidget *button, GaimGtkRequestData *data) | 1803 file_ok_check_if_exists_cb(GtkWidget *button, GaimGtkRequestData *data) |
1776 { | 1804 { |
1777 const gchar *name; | 1805 const gchar *name; |
1778 gchar *current_folder; | 1806 gchar *current_folder; |
1807 | |
1808 generic_response_start(data); | |
1779 | 1809 |
1780 name = gtk_file_selection_get_filename(GTK_FILE_SELECTION(data->dialog)); | 1810 name = gtk_file_selection_get_filename(GTK_FILE_SELECTION(data->dialog)); |
1781 | 1811 |
1782 /* If name is a directory then change directories */ | 1812 /* If name is a directory then change directories */ |
1783 if (gaim_gtk_check_if_dir(name, GTK_FILE_SELECTION(data->dialog))) | 1813 if (gaim_gtk_check_if_dir(name, GTK_FILE_SELECTION(data->dialog))) |
1809 | 1839 |
1810 #if !GTK_CHECK_VERSION(2,4,0) /* FILECHOOSER */ | 1840 #if !GTK_CHECK_VERSION(2,4,0) /* FILECHOOSER */ |
1811 static void | 1841 static void |
1812 file_cancel_cb(GaimGtkRequestData *data) | 1842 file_cancel_cb(GaimGtkRequestData *data) |
1813 { | 1843 { |
1844 generic_response_start(data); | |
1845 | |
1814 if (data->cbs[0] != NULL) | 1846 if (data->cbs[0] != NULL) |
1815 ((GaimRequestFileCb)data->cbs[0])(data->user_data, NULL); | 1847 ((GaimRequestFileCb)data->cbs[0])(data->user_data, NULL); |
1816 | 1848 |
1817 gaim_request_close(GAIM_REQUEST_FILE, data); | 1849 gaim_request_close(GAIM_REQUEST_FILE, data); |
1818 } | 1850 } |