Mercurial > pidgin.yaz
comparison src/gtkdebug.c @ 9482:b917acdc982f
[gaim-migrate @ 10307]
Alright, the buddy icon selector is done. It should rock now.
I also made a few tweaks to the debug save window.
gaim_notify_close_with_handle() and gaim_request_close_with_handle()
are sweet.
committer: Tailor Script <tailor@pidgin.im>
author | Mark Doliner <mark@kingant.net> |
---|---|
date | Thu, 08 Jul 2004 04:07:23 +0000 |
parents | 91856b52a391 |
children | 59d986a931d4 |
comparison
equal
deleted
inserted
replaced
9481:683660b4efeb | 9482:b917acdc982f |
---|---|
94 | 94 |
95 return FALSE; | 95 return FALSE; |
96 } | 96 } |
97 | 97 |
98 static void | 98 static void |
99 do_find_cb(GtkWidget *widget, gint resp, struct _find *f) | 99 do_find_cb(GtkWidget *widget, gint response, struct _find *f) |
100 { | 100 { |
101 switch (resp) { | 101 switch (response) { |
102 case GTK_RESPONSE_OK: | 102 case GTK_RESPONSE_OK: |
103 gtk_imhtml_search_find(GTK_IMHTML(f->window->text), | 103 gtk_imhtml_search_find(GTK_IMHTML(f->window->text), |
104 gtk_entry_get_text(GTK_ENTRY(f->entry))); | 104 gtk_entry_get_text(GTK_ENTRY(f->entry))); |
105 break; | 105 break; |
106 | 106 |
170 gtk_widget_show_all(win->find); | 170 gtk_widget_show_all(win->find); |
171 gtk_widget_grab_focus(f->entry); | 171 gtk_widget_grab_focus(f->entry); |
172 } | 172 } |
173 | 173 |
174 static void | 174 static void |
175 do_save_cb(GtkWidget *widget) | 175 save_writefile_cb(GtkWidget *widget) |
176 { | 176 { |
177 const char *filename; | 177 const char *filename; |
178 char *tmp; | 178 char *tmp; |
179 FILE *fp; | 179 FILE *fp; |
180 | 180 |
184 filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(debug_win->save)); | 184 filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(debug_win->save)); |
185 #else /* FILECHOOSER */ | 185 #else /* FILECHOOSER */ |
186 filename = gtk_file_selection_get_filename(GTK_FILE_SELECTION(debug_win->save)); | 186 filename = gtk_file_selection_get_filename(GTK_FILE_SELECTION(debug_win->save)); |
187 #endif /* FILECHOOSER */ | 187 #endif /* FILECHOOSER */ |
188 | 188 |
189 gaim_notify_close_with_handle(debug_win->save); | |
190 | |
189 if (filename == NULL) { | 191 if (filename == NULL) { |
190 gaim_notify_error(NULL, NULL, _("Invalid file name."), NULL); | 192 gaim_notify_error(debug_win->save, NULL, _("Invalid file name."), NULL); |
191 return; | 193 return; |
192 } | 194 } |
193 | 195 |
194 if ((fp = fopen(filename, "w+")) == NULL) { | 196 if ((fp = fopen(filename, "w+")) == NULL) { |
195 gaim_notify_error(NULL, NULL, _("Unable to open file."), NULL); | 197 gaim_notify_error(debug_win->save, NULL, _("Unable to open file."), NULL); |
196 return; | 198 return; |
197 } | 199 } |
198 | 200 |
199 tmp = gtk_imhtml_get_text(GTK_IMHTML(debug_win->text), NULL, NULL); | 201 tmp = gtk_imhtml_get_text(GTK_IMHTML(debug_win->text), NULL, NULL); |
200 fprintf(fp, "Gaim Debug log : %s\n", gaim_date_full()); | 202 fprintf(fp, "Gaim Debug log : %s\n", gaim_date_full()); |
207 debug_win->save = NULL; | 209 debug_win->save = NULL; |
208 } | 210 } |
209 | 211 |
210 #if GTK_CHECK_VERSION(2,4,0) /* FILECHOOSER */ | 212 #if GTK_CHECK_VERSION(2,4,0) /* FILECHOOSER */ |
211 static void | 213 static void |
212 do_check_save_cb(GtkWidget *widget, gint response, gpointer data) | 214 save_checkfile_cb(GtkWidget *widget, gint response, DebugWindow *win) |
213 { | 215 { |
214 DebugWindow *win = (DebugWindow *)data; | |
215 const char *filename; | 216 const char *filename; |
216 | 217 |
217 if (response != GTK_RESPONSE_ACCEPT) { | 218 if (response != GTK_RESPONSE_ACCEPT) { |
218 if (response == GTK_RESPONSE_CANCEL) | 219 if (response == GTK_RESPONSE_CANCEL) |
219 gtk_widget_destroy(win->save); | 220 gtk_widget_destroy(win->save); |
222 } | 223 } |
223 | 224 |
224 filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(win->save)); | 225 filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(win->save)); |
225 #else /* FILECHOOSER */ | 226 #else /* FILECHOOSER */ |
226 static void | 227 static void |
227 do_check_save_cb(GtkWidget *widget, DebugWindow *win) | 228 save_checkfile_cb(GtkWidget *widget, DebugWindow *win) |
228 { | 229 { |
229 const char *filename; | 230 const char *filename; |
230 | 231 |
231 filename = gtk_file_selection_get_filename(GTK_FILE_SELECTION(win->save)); | 232 filename = gtk_file_selection_get_filename(GTK_FILE_SELECTION(win->save)); |
232 if (gaim_gtk_check_if_dir(filename, GTK_FILE_SELECTION(win->save))) { | 233 if (gaim_gtk_check_if_dir(filename, GTK_FILE_SELECTION(win->save))) { |
235 } | 236 } |
236 #endif /* FILECHOOSER */ | 237 #endif /* FILECHOOSER */ |
237 | 238 |
238 if (g_file_test(filename, G_FILE_TEST_EXISTS)) | 239 if (g_file_test(filename, G_FILE_TEST_EXISTS)) |
239 { | 240 { |
240 gaim_request_yes_no(NULL, NULL, _("That file already exists"), | 241 gaim_request_close_with_handle(win->save); |
242 gaim_request_yes_no(win->save, NULL, _("That file already exists"), | |
241 _("Would you like to overwrite it?"), 1, | 243 _("Would you like to overwrite it?"), 1, |
242 win->save, G_CALLBACK(do_save_cb), NULL); | 244 win->save, G_CALLBACK(save_writefile_cb), NULL); |
243 } | 245 } |
244 else | 246 else |
245 do_save_cb(win->save); | 247 save_writefile_cb(win->save); |
246 } | 248 } |
247 | 249 |
248 #if !GTK_CHECK_VERSION(2,4,0) /* FILECHOOSER */ | 250 #if !GTK_CHECK_VERSION(2,4,0) /* FILECHOOSER */ |
249 static void | 251 static void |
250 cancel_save_cb(GtkWidget *widget, DebugWindow *win) | 252 save_destroy_cb(GtkWidget *widget, DebugWindow *win) |
251 { | 253 { |
252 if (win->save != NULL) | 254 if (win->save != NULL) |
253 gtk_widget_destroy(win->save); | 255 gtk_widget_destroy(win->save); |
254 | 256 |
255 win->save = NULL; | 257 win->save = NULL; |
258 | 260 |
259 static void | 261 static void |
260 save_cb(GtkWidget *w, DebugWindow *win) | 262 save_cb(GtkWidget *w, DebugWindow *win) |
261 { | 263 { |
262 if (win->save != NULL) { | 264 if (win->save != NULL) { |
263 gtk_widget_show(win->save); | 265 gtk_window_present(GTK_WINDOW(win->save)); |
264 gdk_window_raise(win->save->window); | |
265 return; | 266 return; |
266 } | 267 } |
267 | 268 |
268 #if GTK_CHECK_VERSION(2,4,0) /* FILECHOOSER */ | 269 #if GTK_CHECK_VERSION(2,4,0) /* FILECHOOSER */ |
269 win->save = gtk_file_chooser_dialog_new(_("Save Conversation"), | 270 win->save = gtk_file_chooser_dialog_new(_("Save Conversation"), |
273 GTK_STOCK_SAVE, GTK_RESPONSE_ACCEPT, | 274 GTK_STOCK_SAVE, GTK_RESPONSE_ACCEPT, |
274 NULL); | 275 NULL); |
275 gtk_dialog_set_default_response(GTK_DIALOG(win->save), GTK_RESPONSE_ACCEPT); | 276 gtk_dialog_set_default_response(GTK_DIALOG(win->save), GTK_RESPONSE_ACCEPT); |
276 gtk_file_chooser_set_current_name(GTK_FILE_CHOOSER(win->save), | 277 gtk_file_chooser_set_current_name(GTK_FILE_CHOOSER(win->save), |
277 "gaim-debug.log"); | 278 "gaim-debug.log"); |
278 g_signal_connect(G_OBJECT(win->save), | 279 g_signal_connect(G_OBJECT(win->save), "response", |
279 "response", G_CALLBACK(do_check_save_cb), win->save); | 280 G_CALLBACK(save_checkfile_cb), win); |
280 #else /* FILECHOOSER */ | 281 #else /* FILECHOOSER */ |
281 gchar *buf; | 282 gchar *buf; |
282 | 283 |
283 win->save = gtk_file_selection_new(_("Save Debug Log")); | 284 win->save = gtk_file_selection_new(_("Save Debug Log")); |
284 buf = g_strdup_printf("%s" G_DIR_SEPARATOR_S "gaim-debug.log", | 285 buf = g_strdup_printf("%s" G_DIR_SEPARATOR_S "gaim-debug.log", |
285 gaim_home_dir()); | 286 gaim_home_dir()); |
286 gtk_file_selection_set_filename(GTK_FILE_SELECTION(win->save), buf); | 287 gtk_file_selection_set_filename(GTK_FILE_SELECTION(win->save), buf); |
287 g_free(buf); | 288 g_free(buf); |
288 g_signal_connect(G_OBJECT(GTK_FILE_SELECTION(win->save)->ok_button), | 289 g_signal_connect(G_OBJECT(GTK_FILE_SELECTION(win->save)->ok_button), |
289 "clicked", G_CALLBACK(do_check_save_cb), win); | 290 "clicked", G_CALLBACK(save_checkfile_cb), win); |
290 g_signal_connect(G_OBJECT(GTK_FILE_SELECTION(win->save)->cancel_button), | 291 g_signal_connect(G_OBJECT(GTK_FILE_SELECTION(win->save)->cancel_button), |
291 "clicked", G_CALLBACK(cancel_save_cb), win); | 292 "clicked", G_CALLBACK(save_destroy_cb), win); |
292 g_signal_connect(G_OBJECT(win->save), | 293 g_signal_connect(G_OBJECT(win->save), |
293 "destroy", G_CALLBACK(cancel_save_cb), win); | 294 "destroy", G_CALLBACK(save_destroy_cb), win); |
294 #endif /* FILECHOOSER */ | 295 #endif /* FILECHOOSER */ |
295 | 296 |
296 gtk_widget_show(win->save); | 297 gtk_widget_show_all(GTK_WIDGET(win->save)); |
297 } | 298 } |
298 | 299 |
299 static void | 300 static void |
300 clear_cb(GtkWidget *w, DebugWindow *win) | 301 clear_cb(GtkWidget *w, DebugWindow *win) |
301 { | 302 { |