예제 #1
0
파일: clipboard.c 프로젝트: GNOME/gtk
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);
}
예제 #2
0
파일: clipboard.c 프로젝트: GNOME/gtk
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);
    }
}
예제 #3
0
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);
}