static gboolean pgd_transitions_fill_model (PgdTransitionsDemo *demo) { GtkTreeModel *model; gint i, n_pages; n_pages = poppler_document_get_n_pages (demo->doc); model = gtk_tree_view_get_model (GTK_TREE_VIEW (demo->treeview)); g_object_ref (model); for (i = 0; i < n_pages; i++) { PopplerPage *page; PopplerPageTransition *transition; pgd_transitions_update_progress (demo, n_pages, i); while (gtk_events_pending ()) gtk_main_iteration (); page = poppler_document_get_page (demo->doc, i); if (!page) continue; transition = poppler_page_get_transition (page); if (transition) { GtkTreeIter iter; gchar *npage; gchar *duration; gchar *angle; gchar *scale; npage = g_strdup_printf ("%d", i + 1); duration = g_strdup_printf ("%d", transition->duration); angle = g_strdup_printf ("%d", transition->angle); scale = g_strdup_printf ("%.2f", transition->scale); gtk_list_store_append (GTK_LIST_STORE (model), &iter); gtk_list_store_set (GTK_LIST_STORE (model), &iter, TRANSITIONS_PAGE_COLUMN, npage, TRANSITIONS_TYPE_COLUMN, transition_type_to_string (transition->type), TRANSITIONS_ALIGNMENT_COLUMN, transition_alignment_to_string (transition->alignment), TRANSITIONS_DIRECTION_COLUMN, transition_direction_to_string (transition->direction), TRANSITIONS_DURATION_COLUMN, duration, TRANSITIONS_ANGLE_COLUMN, angle, TRANSITIONS_SCALE_COLUMN, scale, TRANSITIONS_RECTANGULAR_COLUMN, transition->rectangular ? "Yes" : "No", -1); g_free (npage); g_free (duration); g_free (angle); g_free (scale); poppler_page_transition_free (transition); } g_object_unref (page); } pgd_transitions_update_progress (demo, n_pages, n_pages); g_object_unref (model); return FALSE; }
static VALUE rg_transition(VALUE self) { return POPPLERPAGETRANSITION2RVAL(poppler_page_get_transition(SELF(self))); }