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 2 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, write to the Free Software
20 * Foundation, Inc., 59 Temple Place, Suite 330,
21 * Boston, MA 02111-1307, USA.
24 #ifndef __GTK_SOURCE_PRINT_JOB_H__
25 #define __GTK_SOURCE_PRINT_JOB_H__
33 #include <libgnomeprint/gnome-print-config.h>
34 #include <libgnomeprint/gnome-print-job.h>
35 #include <gtk/gtktextbuffer.h>
36 //#include <gtksourceview/gtksourceview.h>
40 #define GTK_TYPE_SOURCE_PRINT_JOB (gtk_source_print_job_get_type ())
41 #define GTK_SOURCE_PRINT_JOB(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_SOURCE_PRINT_JOB, GtkSourcePrintJob))
42 #define GTK_SOURCE_PRINT_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_SOURCE_PRINT_JOB, GtkSourcePrintJobClass))
43 #define GTK_IS_SOURCE_PRINT_JOB(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_SOURCE_PRINT_JOB))
44 #define GTK_IS_SOURCE_PRINT_JOB_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_SOURCE_PRINT_JOB))
45 #define GTK_SOURCE_PRINT_JOB_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_SOURCE_PRINT_JOB, GtkSourcePrintJobClass))
47 typedef struct _GtkSourcePrintJob GtkSourcePrintJob;
48 typedef struct _GtkSourcePrintJobClass GtkSourcePrintJobClass;
49 typedef struct _GtkSourcePrintJobPrivate GtkSourcePrintJobPrivate;
51 struct _GtkSourcePrintJob
53 GObject parent_instance;
55 GtkSourcePrintJobPrivate *priv;
58 struct _GtkSourcePrintJobClass
60 GObjectClass parent_class;
62 void (* begin_page) (GtkSourcePrintJob *job);
63 void (* finished) (GtkSourcePrintJob *job);
66 /* we want the idle handler to run before the view validation, but do
67 * not interfere with ui updates */
68 #define GTK_SOURCE_PRINT_JOB_PRIORITY ((GDK_PRIORITY_REDRAW + GTK_TEXT_VIEW_PRIORITY_VALIDATE) / 2)
70 GType gtk_source_print_job_get_type (void) G_GNUC_CONST;
72 /* constructor functions */
73 GtkSourcePrintJob *gtk_source_print_job_new (GnomePrintConfig *config);
74 GtkSourcePrintJob *gtk_source_print_job_new_with_buffer (GnomePrintConfig *config,
75 GtkTextBuffer *buffer);
76 /* print job basic configuration */
77 void gtk_source_print_job_set_config (GtkSourcePrintJob *job,
78 GnomePrintConfig *config);
79 GnomePrintConfig *gtk_source_print_job_get_config (GtkSourcePrintJob *job);
80 void gtk_source_print_job_set_buffer (GtkSourcePrintJob *job,
81 GtkTextBuffer *buffer);
82 GtkTextBuffer *gtk_source_print_job_get_buffer (GtkSourcePrintJob *job);
84 /* print job layout and style configuration */
85 //void gtk_source_print_job_setup_from_view (GtkSourcePrintJob *job,
86 // GtkSourceView *view);
87 void gtk_source_print_job_set_tabs_width (GtkSourcePrintJob *job,
89 guint gtk_source_print_job_get_tabs_width (GtkSourcePrintJob *job);
90 void gtk_source_print_job_set_wrap_mode (GtkSourcePrintJob *job,
92 GtkWrapMode gtk_source_print_job_get_wrap_mode (GtkSourcePrintJob *job);
93 void gtk_source_print_job_set_highlight (GtkSourcePrintJob *job,
95 gboolean gtk_source_print_job_get_highlight (GtkSourcePrintJob *job);
96 void gtk_source_print_job_set_font (GtkSourcePrintJob *job,
97 const gchar *font_name);
98 gchar *gtk_source_print_job_get_font (GtkSourcePrintJob *job);
99 void gtk_source_print_job_set_numbers_font (GtkSourcePrintJob *job,
100 const gchar *font_name);
101 gchar *gtk_source_print_job_get_numbers_font (GtkSourcePrintJob *job);
102 void gtk_source_print_job_set_print_numbers (GtkSourcePrintJob *job,
104 guint gtk_source_print_job_get_print_numbers (GtkSourcePrintJob *job);
105 void gtk_source_print_job_set_text_margins (GtkSourcePrintJob *job,
110 void gtk_source_print_job_get_text_margins (GtkSourcePrintJob *job,
116 /* New non-deprecated font-setting API */
117 void gtk_source_print_job_set_font_desc (GtkSourcePrintJob *job,
118 PangoFontDescription *desc);
119 PangoFontDescription *gtk_source_print_job_get_font_desc (GtkSourcePrintJob *job);
120 void gtk_source_print_job_set_numbers_font_desc (GtkSourcePrintJob *job,
121 PangoFontDescription *desc);
122 PangoFontDescription *gtk_source_print_job_get_numbers_font_desc (GtkSourcePrintJob *job);
123 void gtk_source_print_job_set_header_footer_font_desc (GtkSourcePrintJob *job,
124 PangoFontDescription *desc);
125 PangoFontDescription *gtk_source_print_job_get_header_footer_font_desc (GtkSourcePrintJob *job);
127 /* printing operations */
128 GnomePrintJob *gtk_source_print_job_print (GtkSourcePrintJob *job);
129 GnomePrintJob *gtk_source_print_job_print_range (GtkSourcePrintJob *job,
130 const GtkTextIter *start,
131 const GtkTextIter *end);
133 /* asynchronous printing */
134 gboolean gtk_source_print_job_print_range_async (GtkSourcePrintJob *job,
135 const GtkTextIter *start,
136 const GtkTextIter *end);
137 void gtk_source_print_job_cancel (GtkSourcePrintJob *job);
138 GnomePrintJob *gtk_source_print_job_get_print_job (GtkSourcePrintJob *job);
140 /* information for asynchronous ops and headers and footers callback */
141 guint gtk_source_print_job_get_page (GtkSourcePrintJob *job);
142 guint gtk_source_print_job_get_page_count (GtkSourcePrintJob *job);
143 GnomePrintContext *gtk_source_print_job_get_print_context (GtkSourcePrintJob *job);
146 /* header and footer */
147 void gtk_source_print_job_set_print_header (GtkSourcePrintJob *job,
149 gboolean gtk_source_print_job_get_print_header (GtkSourcePrintJob *job);
150 void gtk_source_print_job_set_print_footer (GtkSourcePrintJob *job,
152 gboolean gtk_source_print_job_get_print_footer (GtkSourcePrintJob *job);
153 void gtk_source_print_job_set_header_footer_font (GtkSourcePrintJob *job,
154 const gchar *font_name);
155 gchar *gtk_source_print_job_get_header_footer_font (GtkSourcePrintJob *job);
156 /* format strings are strftime like */
157 void gtk_source_print_job_set_header_format (GtkSourcePrintJob *job,
162 void gtk_source_print_job_set_footer_format (GtkSourcePrintJob *job,
170 #endif /* __GTK_SOURCE_PRINT_JOB_H__ */