static VALUE rg_subset_p(VALUE self) { CHECK_FITER_IS_VALID(self); return CBOOL2RVAL(poppler_fonts_iter_is_subset(RVAL2POPPLERFONTSITER(self))); }
static gboolean pgd_fonts_fill_model (PgdFontsDemo *demo) { GtkTreeModel *model; PopplerFontInfo *font_info; PopplerFontsIter *fonts_iter; gint n_pages, scanned = 0; n_pages = poppler_document_get_n_pages (demo->doc); model = gtk_tree_view_get_model (GTK_TREE_VIEW (demo->treeview)); g_object_ref (model); gtk_list_store_clear (GTK_LIST_STORE (model)); font_info = poppler_font_info_new (demo->doc); while (poppler_font_info_scan (font_info, 20, &fonts_iter)) { pgd_fonts_update_progress (demo, n_pages, scanned); while (gtk_events_pending ()) gtk_main_iteration (); scanned += 20; if (!fonts_iter) continue; do { GtkTreeIter iter; const gchar *name; const gchar *type; const gchar *embedded; const gchar *filename; gchar *details; name = poppler_fonts_iter_get_name (fonts_iter); if (!name) name = "No name"; type = font_type_to_string (poppler_fonts_iter_get_font_type (fonts_iter)); if (poppler_fonts_iter_is_embedded (fonts_iter)) { if (poppler_fonts_iter_is_subset (fonts_iter)) embedded = "Embedded subset"; else embedded = "Embedded"; } else { embedded = "Not embedded"; } filename = poppler_fonts_iter_get_file_name (fonts_iter); if (filename) details = g_markup_printf_escaped ("%s\n%s (%s)", type, embedded, filename); else details = g_markup_printf_escaped ("%s\n%s", type, embedded); gtk_list_store_append (GTK_LIST_STORE (model), &iter); gtk_list_store_set (GTK_LIST_STORE (model), &iter, FONTS_NAME_COLUMN, name, FONTS_DETAILS_COLUMN, details, -1); g_free (details); } while (poppler_fonts_iter_next (fonts_iter)); poppler_fonts_iter_free (fonts_iter); } pgd_fonts_update_progress (demo, n_pages, scanned); g_object_unref (font_info); g_object_unref (model); return FALSE; }