static void pgd_annots_add_annot_to_model (PgdAnnotsDemo *demo, PopplerAnnot *annot, PopplerRectangle area, gboolean selected) { GtkTreeIter iter; GdkPixbuf *pixbuf; PopplerAnnotFlag flags; pixbuf = get_annot_color (annot); flags = poppler_annot_get_flags (annot); gtk_list_store_append (demo->model, &iter); gtk_list_store_set (demo->model, &iter, ANNOTS_TYPE_COLUMN, get_annot_type (annot), ANNOTS_COLOR_COLUMN, pixbuf, ANNOTS_FLAG_INVISIBLE_COLUMN, (flags & POPPLER_ANNOT_FLAG_INVISIBLE), ANNOTS_FLAG_HIDDEN_COLUMN, (flags & POPPLER_ANNOT_FLAG_HIDDEN), ANNOTS_FLAG_PRINT_COLUMN, (flags & POPPLER_ANNOT_FLAG_PRINT), ANNOTS_COLUMN, annot, -1); if (selected) { GtkTreePath *path; path = gtk_tree_model_get_path (GTK_TREE_MODEL (demo->model), &iter); gtk_tree_view_set_cursor (GTK_TREE_VIEW (demo->tree_view), path, NULL, FALSE); gtk_tree_path_free (path); } if (pixbuf) g_object_unref (pixbuf); }
static void pgd_annots_flags_toggled (GtkCellRendererToggle *renderer, gchar *path_str, PgdAnnotsDemo *demo, gint column, PopplerAnnotFlag flag_bit) { GtkTreeIter iter; gboolean fixed; PopplerAnnot *annot; PopplerAnnotFlag flags; GtkTreePath *path = gtk_tree_path_new_from_string (path_str); GtkTreeModel *model = GTK_TREE_MODEL (demo->model); gtk_tree_model_get_iter (model, &iter, path); gtk_tree_model_get (model, &iter, column, &fixed, ANNOTS_COLUMN, &annot,-1); fixed ^= 1; flags = poppler_annot_get_flags (annot); if (fixed) flags |= flag_bit; else flags &= ~flag_bit; poppler_annot_set_flags (annot, flags); gtk_list_store_set (GTK_LIST_STORE (model), &iter, column, fixed, -1); pgd_annot_view_set_annot (demo, annot); gtk_tree_path_free (path); pgd_annots_viewer_queue_redraw (demo); }
static VALUE annot_get_flags(VALUE self) { return FLAG2RVAL(poppler_annot_get_flags(SELF(self))); }