summaryrefslogtreecommitdiff
path: root/gtk/gtkprintoperationpreview.c
diff options
context:
space:
mode:
Diffstat (limited to 'gtk/gtkprintoperationpreview.c')
-rw-r--r--gtk/gtkprintoperationpreview.c116
1 files changed, 116 insertions, 0 deletions
diff --git a/gtk/gtkprintoperationpreview.c b/gtk/gtkprintoperationpreview.c
new file mode 100644
index 0000000000..c640bd9e99
--- /dev/null
+++ b/gtk/gtkprintoperationpreview.c
@@ -0,0 +1,116 @@
+/* GTK - The GIMP Toolkit
+ * gtkprintoperationpreview.c: Abstract print preview interface
+ * Copyright (C) 2006, Red Hat, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#include "config.h"
+
+#include "gtkprintoperationpreview.h"
+#include "gtkmarshalers.h"
+#include "gtkintl.h"
+
+static void gtk_print_operation_preview_base_init (gpointer g_iface);
+
+GType
+gtk_print_operation_preview_get_type (void)
+{
+ static GType print_operation_preview_type = 0;
+
+ if (!print_operation_preview_type)
+ {
+ static const GTypeInfo print_operation_preview_info =
+ {
+ sizeof (GtkPrintOperationPreviewIface), /* class_size */
+ gtk_print_operation_preview_base_init, /* base_init */
+ NULL, /* base_finalize */
+ NULL,
+ NULL, /* class_finalize */
+ NULL, /* class_data */
+ 0,
+ 0, /* n_preallocs */
+ NULL
+ };
+
+ print_operation_preview_type =
+ g_type_register_static (G_TYPE_INTERFACE, I_("GtkPrintOperationPreview"),
+ &print_operation_preview_info, 0);
+
+ g_type_interface_add_prerequisite (print_operation_preview_type, G_TYPE_OBJECT);
+ }
+
+ return print_operation_preview_type;
+}
+
+static void
+gtk_print_operation_preview_base_init (gpointer g_iface)
+{
+ static gboolean initialized = FALSE;
+
+ if (!initialized)
+ {
+ g_signal_new (I_("ready"),
+ GTK_TYPE_PRINT_OPERATION_PREVIEW,
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (GtkPrintOperationPreviewIface, ready),
+ NULL, NULL,
+ g_cclosure_marshal_VOID__OBJECT,
+ G_TYPE_NONE, 1,
+ G_TYPE_OBJECT);
+
+ g_signal_new (I_("got-page-size"),
+ GTK_TYPE_PRINT_OPERATION_PREVIEW,
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (GtkPrintOperationPreviewIface, ready),
+ NULL, NULL,
+ _gtk_marshal_VOID__OBJECT_OBJECT,
+ G_TYPE_NONE, 2,
+ GTK_TYPE_PRINT_CONTEXT,
+ GTK_TYPE_PAGE_SETUP);
+
+ initialized = TRUE;
+ }
+}
+
+
+void
+gtk_print_operation_preview_render_page (GtkPrintOperationPreview *preview,
+ gint page_nr)
+{
+ g_return_if_fail (GTK_IS_PRINT_OPERATION_PREVIEW (preview));
+
+ GTK_PRINT_OPERATION_PREVIEW_GET_IFACE (preview)->render_page (preview,
+ page_nr);
+}
+
+void
+gtk_print_operation_preview_end_preview (GtkPrintOperationPreview *preview)
+{
+ g_return_if_fail (GTK_IS_PRINT_OPERATION_PREVIEW (preview));
+
+ GTK_PRINT_OPERATION_PREVIEW_GET_IFACE (preview)->end_preview (preview);
+}
+
+gboolean
+gtk_print_operation_preview_is_selected (GtkPrintOperationPreview *preview,
+ gint page_nr)
+{
+ g_return_if_fail (GTK_IS_PRINT_OPERATION_PREVIEW (preview));
+
+ return GTK_PRINT_OPERATION_PREVIEW_GET_IFACE (preview)->is_selected (preview, page_nr);
+}
+