static void pgd_page_set_page (PgdPageDemo *demo, PopplerPage *page) { #ifdef POPPLER_WITH_GDK GdkPixbuf *thumbnail; #else cairo_surface_t *thumbnail; #endif gchar *str; str = page ? g_strdup_printf ("%d", poppler_page_get_index (page)) : NULL; gtk_label_set_text (GTK_LABEL (demo->index), str); g_free (str); if (page) { str = poppler_page_get_label (page); gtk_label_set_text (GTK_LABEL (demo->label), str); g_free (str); } else { gtk_label_set_text (GTK_LABEL (demo->label), NULL); } if (page) { gdouble width, height; poppler_page_get_size (page, &width, &height); str = g_strdup_printf ("%.2f x %.2f", width, height); gtk_label_set_text (GTK_LABEL (demo->size), str); g_free (str); } else { gtk_label_set_text (GTK_LABEL (demo->size), NULL); } str = page ? g_strdup_printf ("%.2f seconds", poppler_page_get_duration (page)) : NULL; gtk_label_set_text (GTK_LABEL (demo->duration), str); g_free (str); #ifdef POPPLER_WITH_GDK thumbnail = page ? poppler_page_get_thumbnail_pixbuf (page) : NULL; #else thumbnail = page ? poppler_page_get_thumbnail (page) : NULL; #endif if (thumbnail) { gint width, height; poppler_page_get_thumbnail_size (page, &width, &height); str = g_strdup_printf ("%d x %d", width, height); gtk_label_set_text (GTK_LABEL (demo->thumbnail_size), str); g_free (str); #ifdef POPPLER_WITH_GDK gtk_image_set_from_pixbuf (GTK_IMAGE (demo->thumbnail), thumbnail); g_object_unref (thumbnail); #else image_set_from_surface (GTK_IMAGE (demo->thumbnail), thumbnail); cairo_surface_destroy (thumbnail); #endif } else { str = g_strdup ("<i>No thumbnail found</i>"); gtk_label_set_markup (GTK_LABEL (demo->thumbnail_size), str); g_free (str); gtk_image_set_from_icon_name (GTK_IMAGE (demo->thumbnail), "image-missing", GTK_ICON_SIZE_DIALOG); } }
static VALUE rg_index(VALUE self) { return INT2NUM(poppler_page_get_index(SELF(self))); }