Mercurial > pidgin
diff src/gtkutils.c @ 9497:44a5bfa4730b
[gaim-migrate @ 10323]
Done with the file chooser for right clicking and saving icons.
There is a lot of code duplication here... I'm going to look
at the file chooser in the request API now.
committer: Tailor Script <tailor@pidgin.im>
author | Mark Doliner <mark@kingant.net> |
---|---|
date | Sat, 10 Jul 2004 15:18:02 +0000 |
parents | 05532ad61ed5 |
children | 6f0c90000bb5 |
line wrap: on
line diff
--- a/src/gtkutils.c Fri Jul 09 22:37:13 2004 +0000 +++ b/src/gtkutils.c Sat Jul 10 15:18:02 2004 +0000 @@ -109,100 +109,6 @@ (*text != '\0')); } -static int -des_save_icon(GtkObject *obj, GdkEvent *e, - GaimGtkConversation *gtkconv) -{ - gtk_widget_destroy(gtkconv->u.im->save_icon); - gtkconv->u.im->save_icon = NULL; - - return TRUE; -} - -static void -do_save_icon(GtkObject *obj, GaimConversation *c) -{ - GaimGtkConversation *gtkconv; - FILE *file; - const char *f; - GaimBuddyIcon *icon; - size_t len; - const void *data; - - - gtkconv = GAIM_GTK_CONVERSATION(c); - - f = gtk_file_selection_get_filename( - GTK_FILE_SELECTION(gtkconv->u.im->save_icon)); - - if (gaim_gtk_check_if_dir(f, GTK_FILE_SELECTION(gtkconv->u.im->save_icon))) - return; - - icon = gaim_conv_im_get_icon(GAIM_CONV_IM(c)); - data = gaim_buddy_icon_get_data(icon, &len); - - if ((len > 0) && (data != NULL) && (file = fopen(f, "wb")) != NULL) { - fwrite(data, 1, len, file); - fclose(file); - } else { - gaim_notify_error(NULL, NULL, - _("Can't save icon file to disk."), NULL); - } - - gtk_widget_destroy(gtkconv->u.im->save_icon); - gtkconv->u.im->save_icon = NULL; -} - -static void -cancel_save_icon(GtkObject *obj, GaimGtkConversation *gtkconv) -{ - gtk_widget_destroy(gtkconv->u.im->save_icon); - gtkconv->u.im->save_icon = NULL; -} - - -void -gaim_gtk_save_icon_dialog(GtkObject *obj, GaimConversation *conv) -{ - GaimGtkConversation *gtkconv; - char buf[BUF_LEN]; - - if (conv == NULL || gaim_conversation_get_type(conv) != GAIM_CONV_IM) - return; - - if (!GAIM_IS_GTK_CONVERSATION(conv)) - return; - - gtkconv = GAIM_GTK_CONVERSATION(conv); - - if (gtkconv->u.im->save_icon != NULL) - { - gdk_window_raise(gtkconv->u.im->save_icon->window); - return; - } - - gtkconv->u.im->save_icon = gtk_file_selection_new(_("Save Icon")); - - gtk_file_selection_hide_fileop_buttons( - GTK_FILE_SELECTION(gtkconv->u.im->save_icon)); - - g_snprintf(buf, BUF_LEN - 1, - "%s" G_DIR_SEPARATOR_S "%s.icon", - gaim_home_dir(), gaim_conversation_get_name(conv)); - - gtk_file_selection_set_filename( - GTK_FILE_SELECTION(gtkconv->u.im->save_icon), buf); - - g_signal_connect(G_OBJECT(gtkconv->u.im->save_icon), "delete_event", - G_CALLBACK(des_save_icon), gtkconv); - g_signal_connect(G_OBJECT(GTK_FILE_SELECTION(gtkconv->u.im->save_icon)->ok_button), "clicked", - G_CALLBACK(do_save_icon), conv); - g_signal_connect(G_OBJECT(GTK_FILE_SELECTION(gtkconv->u.im->save_icon)->cancel_button), "clicked", - G_CALLBACK(cancel_save_icon), gtkconv); - - gtk_widget_show(gtkconv->u.im->save_icon); -} - int gaim_gtk_get_dispstyle(GaimConversationType type) {