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>
33 #include <gtk/gtktextbuffer.h>
34 //#include <gtksourceview/gtksourceview.h>
38 #define GTK_TYPE_SOURCE_PRINT_JOB (gtk_source_print_job_get_type ())
39 #define GTK_SOURCE_PRINT_JOB(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_SOURCE_PRINT_JOB, GtkSourcePrintJob))
40 #define GTK_SOURCE_PRINT_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_SOURCE_PRINT_JOB, GtkSourcePrintJobClass))
41 #define GTK_IS_SOURCE_PRINT_JOB(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_SOURCE_PRINT_JOB))
42 #define GTK_IS_SOURCE_PRINT_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_SOURCE_PRINT_JOB))
43 #define GTK_SOURCE_PRINT_JOB_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_SOURCE_PRINT_JOB, GtkSourcePrintJobClass))
45 typedef struct _GtkSourcePrintJob GtkSourcePrintJob;
46 typedef struct _GtkSourcePrintJobClass GtkSourcePrintJobClass;
47 typedef struct _GtkSourcePrintJobPrivate GtkSourcePrintJobPrivate;
49 struct _GtkSourcePrintJob
51 GObject parent_instance;
53 GtkSourcePrintJobPrivate *priv;
56 struct _GtkSourcePrintJobClass
58 GObjectClass parent_class;
60 void (* begin_page) (GtkSourcePrintJob *job);
61 void (* finished) (GtkSourcePrintJob *job);
64 /* we want the idle handler to run before the view validation, but do
65 * not interfere with ui updates */
66 #define GTK_SOURCE_PRINT_JOB_PRIORITY ((GDK_PRIORITY_REDRAW + GTK_TEXT_VIEW_PRIORITY_VALIDATE) / 2)
68 GType gtk_source_print_job_get_type (void) G_GNUC_CONST;
70 /* constructor functions */
71 GtkSourcePrintJob *gtk_source_print_job_new (GnomePrintConfig *config);
72 GtkSourcePrintJob *gtk_source_print_job_new_with_buffer (GnomePrintConfig *config,
73 GtkTextBuffer *buffer);
74 /* print job basic configuration */
75 void gtk_source_print_job_set_config (GtkSourcePrintJob *job,
76 GnomePrintConfig *config);
77 GnomePrintConfig *gtk_source_print_job_get_config (GtkSourcePrintJob *job);
78 void gtk_source_print_job_set_buffer (GtkSourcePrintJob *job,
79 GtkTextBuffer *buffer);
80 GtkTextBuffer *gtk_source_print_job_get_buffer (GtkSourcePrintJob *job);
82 /* print job layout and style configuration */
83 //void gtk_source_print_job_setup_from_view (GtkSourcePrintJob *job,
84 // GtkSourceView *view);
85 void gtk_source_print_job_set_tabs_width (GtkSourcePrintJob *job,
87 guint gtk_source_print_job_get_tabs_width (GtkSourcePrintJob *job);
88 void gtk_source_print_job_set_wrap_mode (GtkSourcePrintJob *job,
90 GtkWrapMode gtk_source_print_job_get_wrap_mode (GtkSourcePrintJob *job);
91 void gtk_source_print_job_set_highlight (GtkSourcePrintJob *job,
93 gboolean gtk_source_print_job_get_highlight (GtkSourcePrintJob *job);
94 void gtk_source_print_job_set_font (GtkSourcePrintJob *job,
95 const gchar *font_name);
96 gchar *gtk_source_print_job_get_font (GtkSourcePrintJob *job);
97 void gtk_source_print_job_set_numbers_font (GtkSourcePrintJob *job,
98 const gchar *font_name);
99 gchar *gtk_source_print_job_get_numbers_font (GtkSourcePrintJob *job);
100 void gtk_source_print_job_set_print_numbers (GtkSourcePrintJob *job,
102 guint gtk_source_print_job_get_print_numbers (GtkSourcePrintJob *job);
103 void gtk_source_print_job_set_text_margins (GtkSourcePrintJob *job,
108 void gtk_source_print_job_get_text_margins (GtkSourcePrintJob *job,
114 /* New non-deprecated font-setting API */
115 void gtk_source_print_job_set_font_desc (GtkSourcePrintJob *job,
116 PangoFontDescription *desc);
117 PangoFontDescription *gtk_source_print_job_get_font_desc (GtkSourcePrintJob *job);
118 void gtk_source_print_job_set_numbers_font_desc (GtkSourcePrintJob *job,
119 PangoFontDescription *desc);
120 PangoFontDescription *gtk_source_print_job_get_numbers_font_desc (GtkSourcePrintJob *job);
121 void gtk_source_print_job_set_header_footer_font_desc (GtkSourcePrintJob *job,
122 PangoFontDescription *desc);
123 PangoFontDescription *gtk_source_print_job_get_header_footer_font_desc (GtkSourcePrintJob *job);
125 /* printing operations */
126 GnomePrintJob *gtk_source_print_job_print (GtkSourcePrintJob *job);
127 GnomePrintJob *gtk_source_print_job_print_range (GtkSourcePrintJob *job,
128 const GtkTextIter *start,
129 const GtkTextIter *end);
131 /* asynchronous printing */
132 gboolean gtk_source_print_job_print_range_async (GtkSourcePrintJob *job,
133 const GtkTextIter *start,
134 const GtkTextIter *end);
135 void gtk_source_print_job_cancel (GtkSourcePrintJob *job);
136 GnomePrintJob *gtk_source_print_job_get_print_job (GtkSourcePrintJob *job);
138 /* information for asynchronous ops and headers and footers callback */
139 guint gtk_source_print_job_get_page (GtkSourcePrintJob *job);
140 guint gtk_source_print_job_get_page_count (GtkSourcePrintJob *job);
141 GnomePrintContext *gtk_source_print_job_get_print_context (GtkSourcePrintJob *job);
144 /* header and footer */
145 void gtk_source_print_job_set_print_header (GtkSourcePrintJob *job,
147 gboolean gtk_source_print_job_get_print_header (GtkSourcePrintJob *job);
148 void gtk_source_print_job_set_print_footer (GtkSourcePrintJob *job,
150 gboolean gtk_source_print_job_get_print_footer (GtkSourcePrintJob *job);
151 void gtk_source_print_job_set_header_footer_font (GtkSourcePrintJob *job,
152 const gchar *font_name);
153 gchar *gtk_source_print_job_get_header_footer_font (GtkSourcePrintJob *job);
154 /* format strings are strftime like */
155 void gtk_source_print_job_set_header_format (GtkSourcePrintJob *job,
160 void gtk_source_print_job_set_footer_format (GtkSourcePrintJob *job,
168 #endif /* __GTK_SOURCE_PRINT_JOB_H__ */