static void pgd_annots_get_annots (PgdAnnotsDemo *demo) { GList *mapping, *l; gint n_fields; GTimer *timer; gtk_list_store_clear (demo->model); pgd_annot_view_set_annot (demo, NULL); if (demo->page) { g_object_unref (demo->page); demo->page = NULL; } demo->page = poppler_document_get_page (demo->doc, demo->num_page); if (!demo->page) return; timer = g_timer_new (); mapping = poppler_page_get_annot_mapping (demo->page); g_timer_stop (timer); n_fields = g_list_length (mapping); if (n_fields > 0) { gchar *str; str = g_strdup_printf ("<i>%d annotations found in %.4f seconds</i>", n_fields, g_timer_elapsed (timer, NULL)); gtk_label_set_markup (GTK_LABEL (demo->timer_label), str); g_free (str); } else { gtk_label_set_markup (GTK_LABEL (demo->timer_label), "<i>No annotations found</i>"); } g_timer_destroy (timer); for (l = mapping; l; l = g_list_next (l)) { PopplerAnnotMapping *amapping; amapping = (PopplerAnnotMapping *) l->data; pgd_annots_add_annot_to_model (demo, amapping->annot, amapping->area, FALSE); } poppler_page_free_annot_mapping (mapping); }
static VALUE rg_annotation_mapping(VALUE self) { return GLIST2ARY2F(poppler_page_get_annot_mapping(SELF(self)), POPPLER_TYPE_ANNOT_MAPPING); }