summaryrefslogtreecommitdiff
path: root/Build/source/libs/poppler/poppler-0.12.4/glib/demo/images.c
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/libs/poppler/poppler-0.12.4/glib/demo/images.c')
-rw-r--r--Build/source/libs/poppler/poppler-0.12.4/glib/demo/images.c342
1 files changed, 0 insertions, 342 deletions
diff --git a/Build/source/libs/poppler/poppler-0.12.4/glib/demo/images.c b/Build/source/libs/poppler/poppler-0.12.4/glib/demo/images.c
deleted file mode 100644
index 76cfed20846..00000000000
--- a/Build/source/libs/poppler/poppler-0.12.4/glib/demo/images.c
+++ /dev/null
@@ -1,342 +0,0 @@
-/*
- * Copyright (C) 2008 Carlos Garcia Campos <carlosgc@gnome.org>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2, or (at your option)
- * any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#include "config.h"
-
-#include <gtk/gtk.h>
-
-#include "images.h"
-
-enum {
- IMAGES_ID_COLUMN,
- IMAGES_X1_COLUMN,
- IMAGES_Y1_COLUMN,
- IMAGES_X2_COLUMN,
- IMAGES_Y2_COLUMN,
- N_COLUMNS
-};
-
-typedef struct {
- PopplerDocument *doc;
-
- GtkListStore *model;
- GtkWidget *timer_label;
- GtkWidget *image_view;
-
- gint page;
-} PgdImagesDemo;
-
-static void
-pgd_images_free (PgdImagesDemo *demo)
-{
- if (!demo)
- return;
-
- if (demo->doc) {
- g_object_unref (demo->doc);
- demo->doc = NULL;
- }
-
- if (demo->model) {
- g_object_unref (demo->model);
- demo->model = NULL;
- }
-
- g_free (demo);
-}
-
-static gboolean
-pgd_image_view_drawing_area_expose (GtkWidget *area,
- GdkEventExpose *event,
- GtkWidget *image_view)
-{
- cairo_t *cr;
- cairo_surface_t *image;
-
- image = g_object_get_data (G_OBJECT (image_view), "image-surface");
- if (!image)
- return FALSE;
-
- gtk_widget_set_size_request (area,
- cairo_image_surface_get_width (image),
- cairo_image_surface_get_height (image));
-
- cr = gdk_cairo_create (area->window);
- cairo_set_source_surface (cr, image, 0, 0);
- cairo_paint (cr);
- cairo_destroy (cr);
-
- return TRUE;
-}
-
-static GtkWidget *
-pgd_image_view_new ()
-{
- GtkWidget *swindow;
- GtkWidget *darea;
-
- swindow = gtk_scrolled_window_new (NULL, NULL);
-
- darea = gtk_drawing_area_new ();
- g_signal_connect (G_OBJECT (darea), "expose_event",
- G_CALLBACK (pgd_image_view_drawing_area_expose),
- (gpointer)swindow);
- gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (swindow),
- GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
- gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (swindow),
- darea);
- gtk_widget_show (darea);
-
- return swindow;
-}
-
-static void
-pgd_image_view_set_image (GtkWidget *image_view,
- cairo_surface_t *image)
-{
- g_object_set_data_full (G_OBJECT (image_view), "image-surface",
- image,
- (GDestroyNotify)cairo_surface_destroy);
- gtk_widget_queue_draw (image_view);
-}
-
-static void
-pgd_images_get_images (GtkWidget *button,
- PgdImagesDemo *demo)
-{
- PopplerPage *page;
- GList *mapping, *l;
- gint n_images;
- GTimer *timer;
-
- gtk_list_store_clear (demo->model);
- pgd_image_view_set_image (demo->image_view, NULL);
-
- page = poppler_document_get_page (demo->doc, demo->page);
- if (!page)
- return;
-
- timer = g_timer_new ();
- mapping = poppler_page_get_image_mapping (page);
- g_timer_stop (timer);
-
- n_images = g_list_length (mapping);
- if (n_images > 0) {
- gchar *str;
-
- str = g_strdup_printf ("<i>%d images found in %.4f seconds</i>",
- n_images, g_timer_elapsed (timer, NULL));
- gtk_label_set_markup (GTK_LABEL (demo->timer_label), str);
- g_free (str);
- } else {
- gtk_label_set_markup (GTK_LABEL (demo->timer_label), "<i>No images found</i>");
- }
-
- g_timer_destroy (timer);
-
- for (l = mapping; l; l = g_list_next (l)) {
- PopplerImageMapping *imapping;
- GtkTreeIter iter;
- gchar *x1, *y1, *x2, *y2;
-
- imapping = (PopplerImageMapping *)l->data;
-
- x1 = g_strdup_printf ("%.2f", imapping->area.x1);
- y1 = g_strdup_printf ("%.2f", imapping->area.y1);
- x2 = g_strdup_printf ("%.2f", imapping->area.x2);
- y2 = g_strdup_printf ("%.2f", imapping->area.y2);
-
- gtk_list_store_append (demo->model, &iter);
- gtk_list_store_set (demo->model, &iter,
- IMAGES_ID_COLUMN, imapping->image_id,
- IMAGES_X1_COLUMN, x1,
- IMAGES_Y1_COLUMN, y1,
- IMAGES_X2_COLUMN, x2,
- IMAGES_Y2_COLUMN, y2,
- -1);
- g_free (x1);
- g_free (y1);
- g_free (x2);
- g_free (y2);
- }
-
- poppler_page_free_image_mapping (mapping);
- g_object_unref (page);
-}
-
-static void
-pgd_images_page_selector_value_changed (GtkSpinButton *spinbutton,
- PgdImagesDemo *demo)
-{
- demo->page = (gint)gtk_spin_button_get_value (spinbutton) - 1;
-}
-
-static void
-pgd_images_selection_changed (GtkTreeSelection *treeselection,
- PgdImagesDemo *demo)
-{
- GtkTreeModel *model;
- GtkTreeIter iter;
-
- if (gtk_tree_selection_get_selected (treeselection, &model, &iter)) {
- PopplerPage *page;
- gint image_id;
-
- gtk_tree_model_get (model, &iter,
- IMAGES_ID_COLUMN, &image_id,
- -1);
- page = poppler_document_get_page (demo->doc, demo->page);
-#if defined (HAVE_CAIRO)
- pgd_image_view_set_image (demo->image_view,
- poppler_page_get_image (page, image_id));
-#endif
- g_object_unref (page);
-
- }
-}
-
-GtkWidget *
-pgd_images_create_widget (PopplerDocument *document)
-{
- PgdImagesDemo *demo;
- GtkWidget *label;
- GtkWidget *vbox;
- GtkWidget *hbox, *page_selector;
- GtkWidget *button;
- GtkWidget *hpaned;
- GtkWidget *swindow, *treeview;
- GtkTreeSelection *selection;
- GtkCellRenderer *renderer;
- gchar *str;
- gint n_pages;
-
- demo = g_new0 (PgdImagesDemo, 1);
-
- demo->doc = g_object_ref (document);
-
- n_pages = poppler_document_get_n_pages (document);
-
- vbox = gtk_vbox_new (FALSE, 12);
-
- hbox = gtk_hbox_new (FALSE, 6);
-
- label = gtk_label_new ("Page:");
- gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, TRUE, 0);
- gtk_widget_show (label);
-
- page_selector = gtk_spin_button_new_with_range (1, n_pages, 1);
- g_signal_connect (G_OBJECT (page_selector), "value-changed",
- G_CALLBACK (pgd_images_page_selector_value_changed),
- (gpointer)demo);
- gtk_box_pack_start (GTK_BOX (hbox), page_selector, FALSE, TRUE, 0);
- gtk_widget_show (page_selector);
-
- str = g_strdup_printf ("of %d", n_pages);
- label = gtk_label_new (str);
- gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, TRUE, 0);
- gtk_widget_show (label);
- g_free (str);
-
- button = gtk_button_new_with_label ("Get Images");
- g_signal_connect (G_OBJECT (button), "clicked",
- G_CALLBACK (pgd_images_get_images),
- (gpointer)demo);
- gtk_box_pack_end (GTK_BOX (hbox), button, FALSE, FALSE, 0);
- gtk_widget_show (button);
-
- gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, TRUE, 0);
- gtk_widget_show (hbox);
-
- demo->timer_label = gtk_label_new (NULL);
- gtk_label_set_markup (GTK_LABEL (demo->timer_label), "<i>No images found</i>");
- g_object_set (G_OBJECT (demo->timer_label), "xalign", 1.0, NULL);
- gtk_box_pack_start (GTK_BOX (vbox), demo->timer_label, FALSE, TRUE, 0);
- gtk_widget_show (demo->timer_label);
-
- hpaned = gtk_hpaned_new ();
-
- demo->image_view = pgd_image_view_new ();
-
- swindow = gtk_scrolled_window_new (NULL, NULL);
- gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (swindow),
- GTK_POLICY_AUTOMATIC,
- GTK_POLICY_AUTOMATIC);
-
- demo->model = gtk_list_store_new (N_COLUMNS, G_TYPE_INT,
- G_TYPE_STRING, G_TYPE_STRING,
- G_TYPE_STRING, G_TYPE_STRING);
- treeview = gtk_tree_view_new_with_model (GTK_TREE_MODEL (demo->model));
-
- renderer = gtk_cell_renderer_text_new ();
- renderer = gtk_cell_renderer_text_new ();
- gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (treeview),
- 0, "Image",
- renderer,
- "text", IMAGES_ID_COLUMN,
- NULL);
-
- renderer = gtk_cell_renderer_text_new ();
- gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (treeview),
- 1, "X1",
- renderer,
- "text", IMAGES_X1_COLUMN,
- NULL);
- renderer = gtk_cell_renderer_text_new ();
- gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (treeview),
- 2, "Y1",
- renderer,
- "text", IMAGES_Y1_COLUMN,
- NULL);
- renderer = gtk_cell_renderer_text_new ();
- gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (treeview),
- 3, "X2",
- renderer,
- "text", IMAGES_X2_COLUMN,
- NULL);
- renderer = gtk_cell_renderer_text_new ();
- gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (treeview),
- 4, "Y2",
- renderer,
- "text", IMAGES_Y2_COLUMN,
- NULL);
-
- selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (treeview));
- g_signal_connect (G_OBJECT (selection), "changed",
- G_CALLBACK (pgd_images_selection_changed),
- (gpointer)demo);
-
- gtk_container_add (GTK_CONTAINER (swindow), treeview);
- gtk_widget_show (treeview);
-
- gtk_paned_add1 (GTK_PANED (hpaned), swindow);
- gtk_widget_show (swindow);
-
- gtk_paned_add2 (GTK_PANED (hpaned), demo->image_view);
- gtk_widget_show (demo->image_view);
-
- gtk_paned_set_position (GTK_PANED (hpaned), 300);
-
- gtk_box_pack_start (GTK_BOX (vbox), hpaned, TRUE, TRUE, 0);
- gtk_widget_show (hpaned);
-
- g_object_weak_ref (G_OBJECT (vbox),
- (GWeakNotify)pgd_images_free,
- demo);
-
- return vbox;
-}