GtkWidget * pgd_info_create_widget (PopplerDocument *document) { GtkWidget *vbox; GtkWidget *label; GtkWidget *frame, *alignment, *table; gchar *str; gchar *title, *format, *author, *subject; gchar *keywords, *creator, *producer, *linearized; gchar *metadata; GTime creation_date, mod_date; GEnumValue *enum_value; PopplerBackend backend; PopplerPageLayout layout; PopplerPageMode mode; PopplerPermissions permissions; PopplerViewerPreferences view_prefs; gint row = 0; g_object_get (document, "title", &title, "format", &format, "author", &author, "subject", &subject, "keywords", &keywords, "creation-date", &creation_date, "mod-date", &mod_date, "creator", &creator, "producer", &producer, "linearized", &linearized, "page-mode", &mode, "page-layout", &layout, "permissions", &permissions, "viewer-preferences", &view_prefs, "metadata", &metadata, NULL); vbox = gtk_vbox_new (FALSE, 12); backend = poppler_get_backend (); enum_value = g_enum_get_value ((GEnumClass *) g_type_class_ref (POPPLER_TYPE_BACKEND), backend); str = g_strdup_printf ("<span weight='bold' size='larger'>Poppler %s (%s)</span>", poppler_get_version (), enum_value->value_name); label = gtk_label_new (NULL); gtk_label_set_markup (GTK_LABEL (label), str); g_free (str); gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, TRUE, 12); gtk_widget_show (label); frame = gtk_frame_new (NULL); gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_NONE); label = gtk_label_new (NULL); gtk_label_set_markup (GTK_LABEL (label), "<b>Document properties</b>"); gtk_frame_set_label_widget (GTK_FRAME (frame), label); gtk_widget_show (label); alignment = gtk_alignment_new (0.5, 0.5, 1, 1); gtk_alignment_set_padding (GTK_ALIGNMENT (alignment), 5, 5, 12, 5); gtk_container_add (GTK_CONTAINER (frame), alignment); gtk_widget_show (alignment); table = gtk_table_new (14, 2, FALSE); gtk_table_set_col_spacings (GTK_TABLE (table), 6); gtk_table_set_row_spacings (GTK_TABLE (table), 6); pgd_table_add_property (GTK_TABLE (table), "<b>Format:</b>", format, &row); g_free (format); pgd_table_add_property (GTK_TABLE (table), "<b>Title:</b>", title, &row); g_free (title); pgd_table_add_property (GTK_TABLE (table), "<b>Author:</b>", author, &row); g_free (author); pgd_table_add_property (GTK_TABLE (table), "<b>Subject:</b>", subject, &row); g_free (subject); pgd_table_add_property (GTK_TABLE (table), "<b>Keywords:</b>", keywords, &row); g_free (keywords); pgd_table_add_property (GTK_TABLE (table), "<b>Creator:</b>", creator, &row); g_free (creator); pgd_table_add_property (GTK_TABLE (table), "<b>Producer:</b>", producer, &row); g_free (producer); pgd_table_add_property (GTK_TABLE (table), "<b>Linearized:</b>", linearized, &row); g_free (linearized); str = poppler_format_date (creation_date); pgd_table_add_property (GTK_TABLE (table), "<b>Creation Date:</b>", str, &row); g_free (str); str = poppler_format_date (mod_date); pgd_table_add_property (GTK_TABLE (table), "<b>Modification Date:</b>", str, &row); g_free (str); enum_value = g_enum_get_value ((GEnumClass *) g_type_class_peek (POPPLER_TYPE_PAGE_MODE), mode); pgd_table_add_property (GTK_TABLE (table), "<b>Page Mode:</b>", enum_value->value_name, &row); enum_value = g_enum_get_value ((GEnumClass *) g_type_class_peek (POPPLER_TYPE_PAGE_LAYOUT), layout); pgd_table_add_property (GTK_TABLE (table), "<b>Page Layout:</b>", enum_value->value_name, &row); pgd_info_add_permissions (GTK_TABLE (table), permissions, &row); pgd_info_add_metadata (GTK_TABLE (table), metadata, &row); g_free (metadata); /* TODO: view_prefs */ gtk_container_add (GTK_CONTAINER (alignment), table); gtk_widget_show (table); gtk_box_pack_start (GTK_BOX (vbox), frame, TRUE, TRUE, 0); gtk_widget_show (frame); return vbox; }
static VALUE rg_s_backend(G_GNUC_UNUSED VALUE self) { return POPPLERBACKEND2RVAL(poppler_get_backend()); }