Exemple #1
0
static void
xv_doc_build_index(GtkTreeModel* model, GtkTreeIter* parent, PopplerIndexIter* index_iter)
{
    do {
        GtkTreeIter       tree_iter;
        PopplerIndexIter *child;
        PopplerAction    *action;
        gboolean          expand;
        gchar            *markup;

        action = poppler_index_iter_get_action(index_iter);
        expand = poppler_index_iter_is_open(index_iter);

        if(!action) {
            continue;
        }

        markup = g_markup_escape_text(action->any.title, -1);

        gtk_tree_store_append(GTK_TREE_STORE(model), &tree_iter, parent);
        gtk_tree_store_set(GTK_TREE_STORE(model), &tree_iter, 0, markup, 1, action, -1);
        g_object_weak_ref(G_OBJECT(model), (GWeakNotify) poppler_action_free, action);
        g_free(markup);

        child = poppler_index_iter_get_child(index_iter);
        if(child) {
            xv_doc_build_index(model, &tree_iter, child);
        }

        poppler_index_iter_free(child);
    } while(poppler_index_iter_next(index_iter));
}
static VALUE
rg_open_p(VALUE self)
{
    CHECK_IITER_IS_VALID(self);
    return CBOOL2RVAL(poppler_index_iter_is_open(RVAL2POPPLERINDEXITER(self)));
}