static void pgd_annot_view_set_annot_free_text (GtkWidget *table, PopplerAnnotFreeText *annot, gint *row) { gchar *text; pgd_table_add_property (GTK_GRID (table), "<b>Quadding:</b>", get_free_text_quadding (annot), row); text = get_free_text_callout_line (annot); pgd_table_add_property (GTK_GRID (table), "<b>Callout:</b>", text, row); g_free (text); }
static void pgd_annot_view_set_annot_text_markup (GtkWidget *table, PopplerAnnotTextMarkup *annot, gint *row) { gint i; gchar *text = NULL; gchar *prev_text = NULL; GArray *quads_array = NULL; PopplerQuadrilateral quadrilateral; quads_array = poppler_annot_text_markup_get_quadrilaterals (annot); prev_text = g_strdup (""); for (i = 0; i < quads_array->len; i++) { quadrilateral = g_array_index (quads_array, PopplerQuadrilateral, i); text = g_strdup_printf ("%s%2d:(%.2f,%.2f) (%.2f,%.2f)\n" " (%.2f,%.2f) (%.2f,%.2f)\n", prev_text, i+1, quadrilateral.p1.x, quadrilateral.p1.y, quadrilateral.p2.x, quadrilateral.p2.y, quadrilateral.p3.x, quadrilateral.p3.y, quadrilateral.p4.x, quadrilateral.p4.y); g_free (prev_text); prev_text = text; } text = g_strchomp (text); pgd_table_add_property (GTK_GRID (table), "<b>Quadrilaterals:</b>", text, row); g_array_free (quads_array, TRUE); g_free (text); }
static void pgd_annot_view_set_annot_text (GtkWidget *table, PopplerAnnotText *annot, gint *row) { gchar *text; pgd_table_add_property (GTK_GRID (table), "<b>Is open:</b>", poppler_annot_text_get_is_open (annot) ? "Yes" : "No", row); text = poppler_annot_text_get_icon (annot); pgd_table_add_property (GTK_GRID (table), "<b>Icon:</b>", text, row); g_free (text); pgd_table_add_property (GTK_GRID (table), "<b>State:</b>", get_text_state (annot), row); }
void pgd_movie_view_set_movie (GtkWidget *movie_view, PopplerMovie *movie) { GtkWidget *alignment; GtkWidget *table; GtkWidget *button; gint row = 0; alignment = gtk_bin_get_child (GTK_BIN (movie_view)); if (alignment) { gtk_container_remove (GTK_CONTAINER (movie_view), alignment); } 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 (movie_view), alignment); gtk_widget_show (alignment); if (!movie) return; table = gtk_grid_new (); gtk_grid_set_column_spacing (GTK_GRID (table), 6); gtk_grid_set_row_spacing (GTK_GRID (table), 6); pgd_table_add_property (GTK_GRID (table), "<b>Filename:</b>", poppler_movie_get_filename (movie), &row); pgd_table_add_property (GTK_GRID (table), "<b>Need Poster:</b>", poppler_movie_need_poster (movie) ? "Yes" : "No", &row); pgd_table_add_property (GTK_GRID (table), "<b>Show Controls:</b>", poppler_movie_show_controls (movie) ? "Yes" : "No", &row); button = gtk_button_new_from_stock (GTK_STOCK_MEDIA_PLAY); g_signal_connect (button, "clicked", G_CALLBACK (pgd_movie_view_play_movie), movie); pgd_table_add_property_with_custom_widget (GTK_GRID (table), NULL, button, &row); gtk_widget_show (button); gtk_container_add (GTK_CONTAINER (alignment), table); gtk_widget_show (table); }
static void pgd_annot_view_set_annot_movie (GtkWidget *table, PopplerAnnotMovie *annot, gint *row) { GtkWidget *movie_view; gchar *text; text = poppler_annot_movie_get_title (annot); pgd_table_add_property (GTK_GRID (table), "<b>Movie Title:</b>", text, row); g_free (text); movie_view = pgd_movie_view_new (); pgd_movie_view_set_movie (movie_view, poppler_annot_movie_get_movie (annot)); pgd_table_add_property_with_custom_widget (GTK_GRID (table), "<b>Movie:</b>", movie_view, row); gtk_widget_show (movie_view); }
static void pgd_annot_view_set_annot_file_attachment (GtkWidget *table, PopplerAnnotFileAttachment *annot, gint *row) { GtkWidget *button; gchar *text; text = poppler_annot_file_attachment_get_name (annot); pgd_table_add_property (GTK_GRID (table), "<b>Attachment Name:</b>", text, row); g_free (text); button = gtk_button_new_with_label ("Save Attachment"); g_signal_connect (G_OBJECT (button), "clicked", G_CALLBACK (pgd_annot_save_file_attachment_button_clicked), (gpointer)annot); pgd_table_add_property_with_custom_widget (GTK_GRID (table), "<b>File Attachment:</b>", button, row); gtk_widget_show (button); }
static void pgd_annot_view_set_annot_markup (GtkWidget *table, PopplerAnnotMarkup *markup, gint *row) { gchar *text; PopplerRectangle rect; text = poppler_annot_markup_get_label (markup); pgd_table_add_property (GTK_GRID (table), "<b>Label:</b>", text, row); g_free (text); if (poppler_annot_markup_has_popup (markup)) { pgd_table_add_property (GTK_GRID (table), "<b>Popup is open:</b>", poppler_annot_markup_get_popup_is_open (markup) ? "Yes" : "No", row); poppler_annot_markup_get_popup_rectangle (markup, &rect); text = g_strdup_printf ("X1: %.2f, Y1: %.2f, X2: %.2f, Y2: %.2f", rect.x1, rect.y1, rect.x2, rect.y2); pgd_table_add_property (GTK_GRID (table), "<b>Popup Rectangle:</b>", text, row); g_free (text); } text = g_strdup_printf ("%f", poppler_annot_markup_get_opacity (markup)); pgd_table_add_property (GTK_GRID (table), "<b>Opacity:</b>", text, row); g_free (text); text = get_markup_date (markup); pgd_table_add_property (GTK_GRID (table), "<b>Date:</b>", text, row); g_free (text); text = poppler_annot_markup_get_subject (markup); pgd_table_add_property (GTK_GRID (table), "<b>Subject:</b>", text, row); g_free (text); pgd_table_add_property (GTK_GRID (table), "<b>Reply To:</b>", get_markup_reply_to (markup), row); pgd_table_add_property (GTK_GRID (table), "<b>External Data:</b>", get_markup_external_data (markup), row); }
static void pgd_action_view_add_destination (GtkWidget *action_view, GtkGrid *table, PopplerDest *dest, gboolean remote, gint *row) { PopplerDocument *document; GEnumValue *enum_value; gchar *str; pgd_table_add_property (table, "<b>Type:</b>", "Destination", row); enum_value = g_enum_get_value ((GEnumClass *) g_type_class_ref (POPPLER_TYPE_DEST_TYPE), dest->type); pgd_table_add_property (table, "<b>Destination Type:</b>", enum_value->value_name, row); document = g_object_get_data (G_OBJECT (action_view), "document"); if (dest->type != POPPLER_DEST_NAMED) { str = NULL; if (document && !remote) { PopplerPage *poppler_page; gchar *page_label; poppler_page = poppler_document_get_page (document, MAX (0, dest->page_num - 1)); g_object_get (G_OBJECT (poppler_page), "label", &page_label, NULL); if (page_label) { str = g_strdup_printf ("%d (%s)", dest->page_num, page_label); g_free (page_label); } } if (!str) str = g_strdup_printf ("%d", dest->page_num); pgd_table_add_property (table, "<b>Page:</b>", str, row); g_free (str); str = g_strdup_printf ("%.2f", dest->left); pgd_table_add_property (table, "<b>Left:</b>", str, row); g_free (str); str = g_strdup_printf ("%.2f", dest->right); pgd_table_add_property (table, "<b>Right:</b>", str, row); g_free (str); str = g_strdup_printf ("%.2f", dest->top); pgd_table_add_property (table, "<b>Top:</b>", str, row); g_free (str); str = g_strdup_printf ("%.2f", dest->bottom); pgd_table_add_property (table, "<b>Bottom:</b>", str, row); g_free (str); str = g_strdup_printf ("%.2f", dest->zoom); pgd_table_add_property (table, "<b>Zoom:</b>", str, row); g_free (str); } else { pgd_table_add_property (table, "<b>Named Dest:</b>", dest->named_dest, row); if (document && !remote) { PopplerDest *new_dest; new_dest = poppler_document_find_dest (document, dest->named_dest); if (new_dest) { GtkWidget *new_table, *alignment; gint new_row = 0; alignment = gtk_alignment_new (0.5, 0.5, 1, 1); gtk_alignment_set_padding (GTK_ALIGNMENT (alignment), 5, 5, 12, 5); new_table = gtk_grid_new (); gtk_grid_set_column_spacing (GTK_GRID (new_table), 6); gtk_grid_set_row_spacing (GTK_GRID (new_table), 6); gtk_grid_attach (GTK_GRID(table), alignment, 0, *row, 1, 1); gtk_widget_show (alignment); pgd_action_view_add_destination (action_view, GTK_GRID (new_table), new_dest, FALSE, &new_row); poppler_dest_free (new_dest); gtk_container_add (GTK_CONTAINER (alignment), new_table); gtk_widget_show (new_table); *row += 1; } } } }
void pgd_action_view_set_action (GtkWidget *action_view, PopplerAction *action) { GtkWidget *alignment; GtkWidget *table; gint row = 0; alignment = gtk_bin_get_child (GTK_BIN (action_view)); if (alignment) { gtk_container_remove (GTK_CONTAINER (action_view), alignment); } 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 (action_view), alignment); gtk_widget_show (alignment); if (!action) return; table = gtk_grid_new (); gtk_grid_set_column_spacing (GTK_GRID (table), 6); gtk_grid_set_row_spacing (GTK_GRID (table), 6); pgd_table_add_property (GTK_GRID (table), "<b>Title:</b>", action->any.title, &row); switch (action->type) { case POPPLER_ACTION_UNKNOWN: pgd_table_add_property (GTK_GRID (table), "<b>Type:</b>", "Unknown", &row); break; case POPPLER_ACTION_NONE: pgd_table_add_property (GTK_GRID (table), "<b>Type:</b>", "None", &row); break; case POPPLER_ACTION_GOTO_DEST: pgd_action_view_add_destination (action_view, GTK_GRID (table), action->goto_dest.dest, FALSE, &row); break; case POPPLER_ACTION_GOTO_REMOTE: pgd_table_add_property (GTK_GRID (table), "<b>Type:</b>", "Remote Destination", &row); pgd_table_add_property (GTK_GRID (table), "<b>Filename:</b>", action->goto_remote.file_name, &row); pgd_action_view_add_destination (action_view, GTK_GRID (table), action->goto_remote.dest, TRUE, &row); break; case POPPLER_ACTION_LAUNCH: pgd_table_add_property (GTK_GRID (table), "<b>Type:</b>", "Launch", &row); pgd_table_add_property (GTK_GRID (table), "<b>Filename:</b>", action->launch.file_name, &row); pgd_table_add_property (GTK_GRID (table), "<b>Params:</b>", action->launch.params, &row); break; case POPPLER_ACTION_URI: pgd_table_add_property (GTK_GRID (table), "<b>Type:</b>", "External URI", &row); pgd_table_add_property (GTK_GRID (table), "<b>URI</b>", action->uri.uri, &row); break; case POPPLER_ACTION_NAMED: pgd_table_add_property (GTK_GRID (table), "<b>Type:</b>", "Named Action", &row); pgd_table_add_property (GTK_GRID (table), "<b>Name:</b>", action->named.named_dest, &row); break; case POPPLER_ACTION_MOVIE: { GtkWidget *movie_view = pgd_movie_view_new (); pgd_table_add_property (GTK_GRID (table), "<b>Type:</b>", "Movie", &row); pgd_table_add_property (GTK_GRID (table), "<b>Operation:</b>", get_movie_op (action->movie.operation), &row); pgd_movie_view_set_movie (movie_view, action->movie.movie); pgd_table_add_property_with_custom_widget (GTK_GRID (table), "<b>Movie:</b>", movie_view, &row); } break; case POPPLER_ACTION_RENDITION: { gchar *text; pgd_table_add_property (GTK_GRID (table), "<b>Type:</b>", "Rendition", &row); text = g_strdup_printf ("%d", action->rendition.op); pgd_table_add_property (GTK_GRID (table), "<b>Operation:</b>", text, &row); g_free (text); if (action->rendition.media) { gboolean embedded = poppler_media_is_embedded (action->rendition.media); GtkWidget *button; pgd_table_add_property (GTK_GRID (table), "<b>Embedded:</b>", embedded ? "Yes": "No", &row); if (embedded) { const gchar *mime_type = poppler_media_get_mime_type (action->rendition.media); pgd_table_add_property (GTK_GRID (table), "<b>Mime type:</b>", mime_type ? mime_type : "", &row); } else { pgd_table_add_property (GTK_GRID (table), "<b>Filename:</b>", poppler_media_get_filename (action->rendition.media), &row); } button = gtk_button_new_from_stock (GTK_STOCK_MEDIA_PLAY); g_signal_connect (button, "clicked", G_CALLBACK (pgd_action_view_play_rendition), action->rendition.media); pgd_table_add_property_with_custom_widget (GTK_GRID (table), NULL, button, &row); gtk_widget_show (button); } } break; case POPPLER_ACTION_OCG_STATE: { GList *l; GtkWidget *button; pgd_table_add_property (GTK_GRID (table), "<b>Type:</b>", "OCGState", &row); for (l = action->ocg_state.state_list; l; l = g_list_next (l)) { PopplerActionLayer *action_layer = (PopplerActionLayer *)l->data; gchar *text; gint n_layers = g_list_length (action_layer->layers); switch (action_layer->action) { case POPPLER_ACTION_LAYER_ON: text = g_strdup_printf ("%d layers On", n_layers); break; case POPPLER_ACTION_LAYER_OFF: text = g_strdup_printf ("%d layers Off", n_layers); break; case POPPLER_ACTION_LAYER_TOGGLE: text = g_strdup_printf ("%d layers Toggle", n_layers); break; } pgd_table_add_property (GTK_GRID (table), "<b>Action:</b>", text, &row); g_free (text); } button = gtk_button_new_with_label ("Do action"); g_signal_connect (button, "clicked", G_CALLBACK (pgd_action_view_do_action_layer), action->ocg_state.state_list); pgd_table_add_property_with_custom_widget (GTK_GRID (table), NULL, button, &row); gtk_widget_show (button); } break; case POPPLER_ACTION_JAVASCRIPT: { GtkTextBuffer *buffer; GtkWidget *textview; GtkWidget *swindow; pgd_table_add_property (GTK_GRID (table), "<b>Type:</b>", "JavaScript", &row); buffer = gtk_text_buffer_new (NULL); if (action->javascript.script) gtk_text_buffer_set_text (buffer, action->javascript.script, -1); textview = gtk_text_view_new_with_buffer (buffer); gtk_text_view_set_editable (GTK_TEXT_VIEW (textview), FALSE); g_object_unref (buffer); swindow = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (swindow), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_container_add (GTK_CONTAINER (swindow), textview); gtk_widget_show (textview); pgd_table_add_property_with_custom_widget (GTK_GRID (table), NULL, swindow, &row); gtk_widget_show (swindow); } break; default: g_assert_not_reached (); } gtk_container_add (GTK_CONTAINER (alignment), table); gtk_widget_show (table); }
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 void pgd_form_field_view_set_field (GtkWidget *field_view, PopplerFormField *field) { GtkWidget *alignment; GtkWidget *table; PopplerAction *action; GEnumValue *enum_value; gchar *text; gint row = 0; alignment = gtk_bin_get_child (GTK_BIN (field_view)); if (alignment) { gtk_container_remove (GTK_CONTAINER (field_view), alignment); } 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 (field_view), alignment); gtk_widget_show (alignment); if (!field) return; table = gtk_table_new (13, 2, FALSE); gtk_table_set_col_spacings (GTK_TABLE (table), 6); gtk_table_set_row_spacings (GTK_TABLE (table), 6); text = poppler_form_field_get_name (field); if (text) { pgd_table_add_property (GTK_TABLE (table), "<b>Name:</b>", text, &row); g_free (text); } text = poppler_form_field_get_partial_name (field); if (text) { pgd_table_add_property (GTK_TABLE (table), "<b>Partial Name:</b>", text, &row); g_free (text); } text = poppler_form_field_get_mapping_name (field); if (text) { pgd_table_add_property (GTK_TABLE (table), "<b>Mapping Name:</b>", text, &row); g_free (text); } action = poppler_form_field_get_action (field); if (action) { GtkWidget *action_view; action_view = pgd_action_view_new (NULL); pgd_action_view_set_action (action_view, action); pgd_table_add_property_with_custom_widget (GTK_TABLE (table), "<b>Action:</b>", action_view, &row); gtk_widget_show (action_view); } switch (poppler_form_field_get_field_type (field)) { case POPPLER_FORM_FIELD_BUTTON: enum_value = g_enum_get_value ((GEnumClass *) g_type_class_ref (POPPLER_TYPE_FORM_BUTTON_TYPE), poppler_form_field_button_get_button_type (field)); pgd_table_add_property (GTK_TABLE (table), "<b>Button Type:</b>", enum_value->value_name, &row); pgd_table_add_property (GTK_TABLE (table), "<b>Button State:</b>", poppler_form_field_button_get_state (field) ? "Active" : "Inactive", &row); break; case POPPLER_FORM_FIELD_TEXT: enum_value = g_enum_get_value ((GEnumClass *) g_type_class_ref (POPPLER_TYPE_FORM_TEXT_TYPE), poppler_form_field_text_get_text_type (field)); pgd_table_add_property (GTK_TABLE (table), "<b>Text Type:</b>", enum_value->value_name, &row); text = poppler_form_field_text_get_text (field); pgd_table_add_property (GTK_TABLE (table), "<b>Contents:</b>", text, &row); g_free (text); text = g_strdup_printf ("%d", poppler_form_field_text_get_max_len (field)); pgd_table_add_property (GTK_TABLE (table), "<b>Max Length:</b>", text, &row); g_free (text); pgd_table_add_property (GTK_TABLE (table), "<b>Do spellcheck:</b>", poppler_form_field_text_do_spell_check (field) ? "Yes" : "No", &row); pgd_table_add_property (GTK_TABLE (table), "<b>Do scroll:</b>", poppler_form_field_text_do_scroll (field) ? "Yes" : "No", &row); pgd_table_add_property (GTK_TABLE (table), "<b>Rich Text:</b>", poppler_form_field_text_is_rich_text (field) ? "Yes" : "No", &row); pgd_table_add_property (GTK_TABLE (table), "<b>Pasword type:</b>", poppler_form_field_text_is_password (field) ? "Yes" : "No", &row); break; case POPPLER_FORM_FIELD_CHOICE: { gchar *item; gint selected = -1; enum_value = g_enum_get_value ((GEnumClass *) g_type_class_ref (POPPLER_TYPE_FORM_CHOICE_TYPE), poppler_form_field_choice_get_choice_type (field)); pgd_table_add_property (GTK_TABLE (table), "<b>Choice Type:</b>", enum_value->value_name, &row); pgd_table_add_property (GTK_TABLE (table), "<b>Editable:</b>", poppler_form_field_choice_is_editable (field) ? "Yes" : "No", &row); pgd_table_add_property (GTK_TABLE (table), "<b>Multiple Selection:</b>", poppler_form_field_choice_can_select_multiple (field) ? "Yes" : "No", &row); pgd_table_add_property (GTK_TABLE (table), "<b>Do spellcheck:</b>", poppler_form_field_choice_do_spell_check (field) ? "Yes" : "No", &row); pgd_table_add_property (GTK_TABLE (table), "<b>Commit on Change:</b>", poppler_form_field_choice_commit_on_change (field) ? "Yes" : "No", &row); text = g_strdup_printf ("%d", poppler_form_field_choice_get_n_items (field)); pgd_table_add_property (GTK_TABLE (table), "<b>Number of items:</b>", text, &row); g_free (text); pgd_form_field_view_add_choice_items (GTK_TABLE (table), field, &selected, &row); if (selected >= 0 && poppler_form_field_choice_get_n_items (field) > selected) { item = poppler_form_field_choice_get_item (field, selected); text = g_strdup_printf ("%d (%s)", selected, item); g_free (item); pgd_table_add_property (GTK_TABLE (table), "<b>Selected item:</b>", text, &row); g_free (text); } text = poppler_form_field_choice_get_text (field); pgd_table_add_property (GTK_TABLE (table), "<b>Contents:</b>", text, &row); g_free (text); } break; case POPPLER_FORM_FIELD_SIGNATURE: case POPPLER_FORM_FIELD_UNKNOWN: break; default: g_assert_not_reached (); } gtk_container_add (GTK_CONTAINER (alignment), table); gtk_widget_show (table); }
void pgd_action_view_set_action (GtkWidget *action_view, PopplerAction *action) { GtkWidget *alignment; GtkWidget *table; GEnumValue *enum_value; gint row = 0; alignment = gtk_bin_get_child (GTK_BIN (action_view)); if (alignment) { gtk_container_remove (GTK_CONTAINER (action_view), alignment); } 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 (action_view), alignment); gtk_widget_show (alignment); if (!action) return; table = gtk_table_new (10, 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>Title:</b>", action->any.title, &row); switch (action->type) { case POPPLER_ACTION_UNKNOWN: pgd_table_add_property (GTK_TABLE (table), "<b>Type:</b>", "Unknown", &row); break; case POPPLER_ACTION_GOTO_DEST: pgd_action_view_add_destination (action_view, GTK_TABLE (table), action->goto_dest.dest, &row); break; case POPPLER_ACTION_GOTO_REMOTE: pgd_table_add_property (GTK_TABLE (table), "<b>Type:</b>", "Remote Destination", &row); pgd_table_add_property (GTK_TABLE (table), "<b>Filename:</b>", action->goto_remote.file_name, &row); pgd_action_view_add_destination (action_view, GTK_TABLE (table), action->goto_remote.dest, &row); break; case POPPLER_ACTION_LAUNCH: pgd_table_add_property (GTK_TABLE (table), "<b>Type:</b>", "Launch", &row); pgd_table_add_property (GTK_TABLE (table), "<b>Filename:</b>", action->launch.file_name, &row); pgd_table_add_property (GTK_TABLE (table), "<b>Params:</b>", action->launch.file_name, &row); break; case POPPLER_ACTION_URI: pgd_table_add_property (GTK_TABLE (table), "<b>Type:</b>", "External URI", &row); pgd_table_add_property (GTK_TABLE (table), "<b>URI</b>", action->uri.uri, &row); break; case POPPLER_ACTION_NAMED: pgd_table_add_property (GTK_TABLE (table), "<b>Type:</b>", "Named Action", &row); pgd_table_add_property (GTK_TABLE (table), "<b>Name:</b>", action->named.named_dest, &row); break; case POPPLER_ACTION_MOVIE: pgd_table_add_property (GTK_TABLE (table), "<b>Type:</b>", "Movie", &row); break; default: g_assert_not_reached (); } gtk_container_add (GTK_CONTAINER (alignment), table); gtk_widget_show (table); }
static void pgd_annot_view_set_annot (PgdAnnotsDemo *demo, PopplerAnnot *annot) { GtkWidget *alignment; GtkWidget *table; gint row = 0; gchar *text; time_t timet; PopplerRectangle rect; alignment = gtk_bin_get_child (GTK_BIN (demo->annot_view)); if (alignment) { gtk_container_remove (GTK_CONTAINER (demo->annot_view), alignment); } alignment = gtk_alignment_new (0.5, 0.5, 1, 1); gtk_alignment_set_padding (GTK_ALIGNMENT (alignment), 5, 5, 8, 5); gtk_container_add (GTK_CONTAINER (demo->annot_view), alignment); gtk_widget_show (alignment); if (!annot) return; table = gtk_grid_new (); gtk_grid_set_column_spacing (GTK_GRID (table), 6); gtk_grid_set_row_spacing (GTK_GRID (table), 6); text = poppler_annot_get_contents (annot); pgd_table_add_property (GTK_GRID (table), "<b>Contents:</b>", text, &row); g_free (text); text = poppler_annot_get_name (annot); pgd_table_add_property (GTK_GRID (table), "<b>Name:</b>", text, &row); g_free (text); text = poppler_annot_get_modified (annot); if (poppler_date_parse (text, &timet)) { g_free (text); text = pgd_format_date (timet); } pgd_table_add_property (GTK_GRID (table), "<b>Modified:</b>", text, &row); g_free (text); poppler_annot_get_rectangle (annot, &rect); text = g_strdup_printf ("(%.2f;%.2f) (%.2f;%.2f)", rect.x1, rect.y1, rect.x2, rect.y2); pgd_table_add_property (GTK_GRID (table), "<b>Coords:</b>", text, &row); g_free (text); if (POPPLER_IS_ANNOT_MARKUP (annot)) pgd_annot_view_set_annot_markup (table, POPPLER_ANNOT_MARKUP (annot), &row); switch (poppler_annot_get_annot_type (annot)) { case POPPLER_ANNOT_TEXT: pgd_annot_view_set_annot_text (table, POPPLER_ANNOT_TEXT (annot), &row); break; case POPPLER_ANNOT_HIGHLIGHT: case POPPLER_ANNOT_UNDERLINE: case POPPLER_ANNOT_SQUIGGLY: case POPPLER_ANNOT_STRIKE_OUT: pgd_annot_view_set_annot_text_markup (table, POPPLER_ANNOT_TEXT_MARKUP (annot), &row); break; case POPPLER_ANNOT_FREE_TEXT: pgd_annot_view_set_annot_free_text (table, POPPLER_ANNOT_FREE_TEXT (annot), &row); break; case POPPLER_ANNOT_FILE_ATTACHMENT: pgd_annot_view_set_annot_file_attachment (table, POPPLER_ANNOT_FILE_ATTACHMENT (annot), &row); break; case POPPLER_ANNOT_MOVIE: pgd_annot_view_set_annot_movie (table, POPPLER_ANNOT_MOVIE (annot), &row); break; case POPPLER_ANNOT_SCREEN: pgd_annot_view_set_annot_screen (table, POPPLER_ANNOT_SCREEN (annot), &row); break; default: break; } gtk_container_add (GTK_CONTAINER (alignment), table); gtk_widget_show (table); }