1 /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8; coding: utf-8 -*- */
4 * This file is part of GtkSourceView
6 * Copyright (C) 2003 Gustavo Giráldez
8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License as published by
10 * the Free Software Foundation; either version 3 of the License, or
11 * (at your option) any later version.
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
18 * You should have received a copy of the GNU General Public License
19 * along with this program. If not, see <http://www.gnu.org/licenses/>.
22 #ifndef __GTK_SOURCE_PRINT_JOB_H__
23 #define __GTK_SOURCE_PRINT_JOB_H__
31 #include <libgnomeprint/gnome-print-config.h>
32 #include <libgnomeprint/gnome-print-job.h>
37 #define GTK_TYPE_SOURCE_PRINT_JOB (gtk_source_print_job_get_type ())
38 #define GTK_SOURCE_PRINT_JOB(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_SOURCE_PRINT_JOB, GtkSourcePrintJob))
39 #define GTK_SOURCE_PRINT_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_SOURCE_PRINT_JOB, GtkSourcePrintJobClass))
40 #define GTK_IS_SOURCE_PRINT_JOB(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_SOURCE_PRINT_JOB))
41 #define GTK_IS_SOURCE_PRINT_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_SOURCE_PRINT_JOB))
42 #define GTK_SOURCE_PRINT_JOB_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_SOURCE_PRINT_JOB, GtkSourcePrintJobClass))
44 typedef struct _GtkSourcePrintJob GtkSourcePrintJob;
45 typedef struct _GtkSourcePrintJobClass GtkSourcePrintJobClass;
46 typedef struct _GtkSourcePrintJobPrivate GtkSourcePrintJobPrivate;
48 struct _GtkSourcePrintJob
50 GObject parent_instance;
52 GtkSourcePrintJobPrivate *priv;
55 struct _GtkSourcePrintJobClass
57 GObjectClass parent_class;
59 void (* begin_page) (GtkSourcePrintJob *job);
60 void (* finished) (GtkSourcePrintJob *job);
63 /* we want the idle handler to run before the view validation, but do
64 * not interfere with ui updates */
65 #define GTK_SOURCE_PRINT_JOB_PRIORITY ((GDK_PRIORITY_REDRAW + GTK_TEXT_VIEW_PRIORITY_VALIDATE) / 2)
67 GType gtk_source_print_job_get_type (void) G_GNUC_CONST;
69 /* constructor functions */
70 GtkSourcePrintJob *gtk_source_print_job_new (GnomePrintConfig *config);
71 GtkSourcePrintJob *gtk_source_print_job_new_with_buffer (GnomePrintConfig *config,
72 GtkTextBuffer *buffer);
73 /* print job basic configuration */
74 void gtk_source_print_job_set_config (GtkSourcePrintJob *job,
75 GnomePrintConfig *config);
76 GnomePrintConfig *gtk_source_print_job_get_config (GtkSourcePrintJob *job);
77 void gtk_source_print_job_set_buffer (GtkSourcePrintJob *job,
78 GtkTextBuffer *buffer);
79 GtkTextBuffer *gtk_source_print_job_get_buffer (GtkSourcePrintJob *job);
81 /* print job layout and style configuration */
82 //void gtk_source_print_job_setup_from_view (GtkSourcePrintJob *job,
83 // GtkSourceView *view);
84 void gtk_source_print_job_set_tabs_width (GtkSourcePrintJob *job,
86 guint gtk_source_print_job_get_tabs_width (GtkSourcePrintJob *job);
87 void gtk_source_print_job_set_wrap_mode (GtkSourcePrintJob *job,
89 GtkWrapMode gtk_source_print_job_get_wrap_mode (GtkSourcePrintJob *job);
90 void gtk_source_print_job_set_highlight (GtkSourcePrintJob *job,
92 gboolean gtk_source_print_job_get_highlight (GtkSourcePrintJob *job);
93 void gtk_source_print_job_set_font (GtkSourcePrintJob *job,
94 const gchar *font_name);
95 gchar *gtk_source_print_job_get_font (GtkSourcePrintJob *job);
96 void gtk_source_print_job_set_numbers_font (GtkSourcePrintJob *job,
97 const gchar *font_name);
98 gchar *gtk_source_print_job_get_numbers_font (GtkSourcePrintJob *job);
99 void gtk_source_print_job_set_print_numbers (GtkSourcePrintJob *job,
101 guint gtk_source_print_job_get_print_numbers (GtkSourcePrintJob *job);
102 void gtk_source_print_job_set_text_margins (GtkSourcePrintJob *job,
107 void gtk_source_print_job_get_text_margins (GtkSourcePrintJob *job,
113 /* New non-deprecated font-setting API */
114 void gtk_source_print_job_set_font_desc (GtkSourcePrintJob *job,
115 PangoFontDescription *desc);
116 PangoFontDescription *gtk_source_print_job_get_font_desc (GtkSourcePrintJob *job);
117 void gtk_source_print_job_set_numbers_font_desc (GtkSourcePrintJob *job,
118 PangoFontDescription *desc);
119 PangoFontDescription *gtk_source_print_job_get_numbers_font_desc (GtkSourcePrintJob *job);
120 void gtk_source_print_job_set_header_footer_font_desc (GtkSourcePrintJob *job,
121 PangoFontDescription *desc);
122 PangoFontDescription *gtk_source_print_job_get_header_footer_font_desc (GtkSourcePrintJob *job);
124 /* printing operations */
125 GnomePrintJob *gtk_source_print_job_print (GtkSourcePrintJob *job);
126 GnomePrintJob *gtk_source_print_job_print_range (GtkSourcePrintJob *job,
127 const GtkTextIter *start,
128 const GtkTextIter *end);
130 /* asynchronous printing */
131 gboolean gtk_source_print_job_print_range_async (GtkSourcePrintJob *job,
132 const GtkTextIter *start,
133 const GtkTextIter *end);
134 void gtk_source_print_job_cancel (GtkSourcePrintJob *job);
135 GnomePrintJob *gtk_source_print_job_get_print_job (GtkSourcePrintJob *job);
137 /* information for asynchronous ops and headers and footers callback */
138 guint gtk_source_print_job_get_page (GtkSourcePrintJob *job);
139 guint gtk_source_print_job_get_page_count (GtkSourcePrintJob *job);
140 GnomePrintContext *gtk_source_print_job_get_print_context (GtkSourcePrintJob *job);
143 /* header and footer */
144 void gtk_source_print_job_set_print_header (GtkSourcePrintJob *job,
146 gboolean gtk_source_print_job_get_print_header (GtkSourcePrintJob *job);
147 void gtk_source_print_job_set_print_footer (GtkSourcePrintJob *job,
149 gboolean gtk_source_print_job_get_print_footer (GtkSourcePrintJob *job);
150 void gtk_source_print_job_set_header_footer_font (GtkSourcePrintJob *job,
151 const gchar *font_name);
152 gchar *gtk_source_print_job_get_header_footer_font (GtkSourcePrintJob *job);
153 /* format strings are strftime like */
154 void gtk_source_print_job_set_header_format (GtkSourcePrintJob *job,
159 void gtk_source_print_job_set_footer_format (GtkSourcePrintJob *job,
167 #endif /* __GTK_SOURCE_PRINT_JOB_H__ */