comparison pidgin/gtkimhtml.c @ 27950:fb593c327870

propagate from branch 'im.pidgin.pidgin' (head e155acab29d005538351633111052f094e5f5f98) to branch 'im.pidgin.pidgin.yaz' (head 9a2679f1f093d6f68ab515aa5278606fb451449a)
author Yoshiki Yazawa <yaz@honeyplanet.jp>
date Fri, 12 Jun 2009 05:27:34 +0000
parents c2ac87c5a035 804141095de5
children c815b2aa78ee
comparison
equal deleted inserted replaced
27949:a4a2090fd976 27950:fb593c327870
3880 3880
3881 gtk_widget_show(image->filesel); 3881 gtk_widget_show(image->filesel);
3882 } 3882 }
3883 3883
3884 static void 3884 static void
3885 gtk_imhtml_custom_smiley_save(GtkWidget *w, GtkIMHtmlImage *image) 3885 gtk_imhtml_custom_smiley_save(GtkWidget *w, GtkIMHtmlImageSave *save)
3886 { 3886 {
3887 GtkIMHtmlImage *image = (GtkIMHtmlImage *)save->image;
3888
3887 /* Create an add dialog */ 3889 /* Create an add dialog */
3888 PidginSmiley *editor = pidgin_smiley_edit(NULL, NULL); 3890 PidginSmiley *editor = pidgin_smiley_edit(NULL, NULL);
3889 pidgin_smiley_editor_set_shortcut(editor, image->filename); 3891 pidgin_smiley_editor_set_shortcut(editor, image->filename);
3890 pidgin_smiley_editor_set_image(editor, image->pixbuf); 3892 pidgin_smiley_editor_set_image(editor, image->pixbuf);
3893 pidgin_smiley_editor_set_data(editor, save->data, save->datasize);
3891 } 3894 }
3892 3895
3893 /* 3896 /*
3894 * So, um, AIM Direct IM lets you send any file, not just images. You can 3897 * So, um, AIM Direct IM lets you send any file, not just images. You can
3895 * just insert a sound or a file or whatever in a conversation. It's 3898 * just insert a sound or a file or whatever in a conversation. It's
3920 if (image->width <= 96 && image->height <= 96) { 3923 if (image->width <= 96 && image->height <= 96) {
3921 img = gtk_image_new_from_stock(GTK_STOCK_ADD, GTK_ICON_SIZE_MENU); 3924 img = gtk_image_new_from_stock(GTK_STOCK_ADD, GTK_ICON_SIZE_MENU);
3922 item = gtk_image_menu_item_new_with_mnemonic(_("_Add Custom Smiley...")); 3925 item = gtk_image_menu_item_new_with_mnemonic(_("_Add Custom Smiley..."));
3923 gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item), img); 3926 gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item), img);
3924 g_signal_connect(G_OBJECT(item), "activate", 3927 g_signal_connect(G_OBJECT(item), "activate",
3925 G_CALLBACK(gtk_imhtml_custom_smiley_save), image); 3928 G_CALLBACK(gtk_imhtml_custom_smiley_save), save);
3926 gtk_menu_shell_append(GTK_MENU_SHELL(menu), item); 3929 gtk_menu_shell_append(GTK_MENU_SHELL(menu), item);
3927 } 3930 }
3928 3931
3929 gtk_widget_show_all(menu); 3932 gtk_widget_show_all(menu);
3930 gtk_menu_popup(GTK_MENU(menu), NULL, NULL, NULL, NULL, 3933 gtk_menu_popup(GTK_MENU(menu), NULL, NULL, NULL, NULL,
5075 char *text = g_strdup(unescaped); 5078 char *text = g_strdup(unescaped);
5076 gtk_container_add(GTK_CONTAINER(ebox), img); 5079 gtk_container_add(GTK_CONTAINER(ebox), img);
5077 gtk_widget_show(img); 5080 gtk_widget_show(img);
5078 g_object_set_data_full(G_OBJECT(anchor), "gtkimhtml_plaintext", text, g_free); 5081 g_object_set_data_full(G_OBJECT(anchor), "gtkimhtml_plaintext", text, g_free);
5079 g_object_set_data(G_OBJECT(anchor), "gtkimhtml_tiptext", text); 5082 g_object_set_data(G_OBJECT(anchor), "gtkimhtml_tiptext", text);
5083 g_object_set_data_full(G_OBJECT(anchor), "gtkimhtml_htmltext", g_strdup(smiley), g_free);
5080 gtk_text_view_add_child_at_anchor(GTK_TEXT_VIEW(imhtml), ebox, anchor); 5084 gtk_text_view_add_child_at_anchor(GTK_TEXT_VIEW(imhtml), ebox, anchor);
5081 } 5085 }
5082 } else { 5086 } else {
5083 gtk_text_buffer_insert(imhtml->text_buffer, iter, smiley, -1); 5087 gtk_text_buffer_insert(imhtml->text_buffer, iter, smiley, -1);
5084 } 5088 }