static void paste_image_received (GObject *source, GAsyncResult *result, gpointer data) { GdkTexture *texture; texture = gdk_clipboard_read_texture_finish (GDK_CLIPBOARD (source), result, NULL); if (texture == NULL) return; gtk_image_set_from_paintable (GTK_IMAGE (data), GDK_PAINTABLE (texture)); g_object_unref (texture); }
static void drag_data_received (GtkWidget *widget, GdkDrop *drop, GtkSelectionData *selection_data, gpointer data) { if (gtk_selection_data_get_length (selection_data) > 0) { GdkTexture *texture; texture = gtk_selection_data_get_texture (selection_data); gtk_image_set_from_paintable (GTK_IMAGE (data), GDK_PAINTABLE (texture)); g_object_unref (texture); } }
GtkWidget * cb_media_image_widget_new (CbMedia *media) { CbMediaImageWidget *self; g_return_val_if_fail (CB_IS_MEDIA (media), NULL); g_return_val_if_fail (!media->invalid, NULL); g_return_val_if_fail (media->texture != NULL, NULL); self = CB_MEDIA_IMAGE_WIDGET (g_object_new (CB_TYPE_MEDIA_IMAGE_WIDGET, NULL)); if (media->type == CB_MEDIA_TYPE_GIF) g_warning ("Maybe remove the GIF handling support!"); /*gtk_image_set_from_animation (GTK_IMAGE (self->image), media->animation);*/ else gtk_image_set_from_paintable(GTK_IMAGE (self->image), GDK_PAINTABLE (media->texture)); self->img_width = gdk_texture_get_width (media->texture); self->img_height = gdk_texture_get_height (media->texture); return GTK_WIDGET (self); }