Mercurial > hg > forks > geeqie
annotate src/print.c @ 2837:c8cc3884bc8d
Ref #160: Replace print dialog by standard GTK dialog
https://github.com/BestImageViewer/geeqie/issues/160
Rotate to exif orientation
author | Colin Clark <colin.clark@cclark.uk> |
---|---|
date | Thu, 04 Oct 2018 16:16:25 +0100 |
parents | ac46f4e545a4 |
children | 87242753ed2c |
rev | line source |
---|---|
9 | 1 /* |
2830
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
2 * Copyright (C) 2018 The Geeqie Team |
9 | 3 * |
2830
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
4 * Author: Colin Clark |
9 | 5 * |
2350
95507e596256
Update copyright in all files
Klaus Ethgen <Klaus@Ethgen.de>
parents:
2221
diff
changeset
|
6 * This program is free software; you can redistribute it and/or modify |
95507e596256
Update copyright in all files
Klaus Ethgen <Klaus@Ethgen.de>
parents:
2221
diff
changeset
|
7 * it under the terms of the GNU General Public License as published by |
95507e596256
Update copyright in all files
Klaus Ethgen <Klaus@Ethgen.de>
parents:
2221
diff
changeset
|
8 * the Free Software Foundation; either version 2 of the License, or |
95507e596256
Update copyright in all files
Klaus Ethgen <Klaus@Ethgen.de>
parents:
2221
diff
changeset
|
9 * (at your option) any later version. |
95507e596256
Update copyright in all files
Klaus Ethgen <Klaus@Ethgen.de>
parents:
2221
diff
changeset
|
10 * |
95507e596256
Update copyright in all files
Klaus Ethgen <Klaus@Ethgen.de>
parents:
2221
diff
changeset
|
11 * This program is distributed in the hope that it will be useful, |
95507e596256
Update copyright in all files
Klaus Ethgen <Klaus@Ethgen.de>
parents:
2221
diff
changeset
|
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
95507e596256
Update copyright in all files
Klaus Ethgen <Klaus@Ethgen.de>
parents:
2221
diff
changeset
|
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
95507e596256
Update copyright in all files
Klaus Ethgen <Klaus@Ethgen.de>
parents:
2221
diff
changeset
|
14 * GNU General Public License for more details. |
95507e596256
Update copyright in all files
Klaus Ethgen <Klaus@Ethgen.de>
parents:
2221
diff
changeset
|
15 * |
95507e596256
Update copyright in all files
Klaus Ethgen <Klaus@Ethgen.de>
parents:
2221
diff
changeset
|
16 * You should have received a copy of the GNU General Public License along |
95507e596256
Update copyright in all files
Klaus Ethgen <Klaus@Ethgen.de>
parents:
2221
diff
changeset
|
17 * with this program; if not, write to the Free Software Foundation, Inc., |
95507e596256
Update copyright in all files
Klaus Ethgen <Klaus@Ethgen.de>
parents:
2221
diff
changeset
|
18 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. |
9 | 19 */ |
20 | |
281 | 21 #include "main.h" |
9 | 22 #include "print.h" |
23 | |
2837
c8cc3884bc8d
Ref #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2832
diff
changeset
|
24 #include "exif.h" |
586
122fc2223b42
split filelist.c to filefilter.c and filedata.c
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
512
diff
changeset
|
25 #include "filedata.h" |
9 | 26 #include "image-load.h" |
2837
c8cc3884bc8d
Ref #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2832
diff
changeset
|
27 #include "pixbuf_util.h" |
9 | 28 #include "ui_misc.h" |
29 #include "ui_fileops.h" | |
30 | |
2830
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
31 #define PRINT_SETTINGS "print_settings" // filename save printer settings |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
32 #define PAGE_SETUP "page_setup" // filename save page setup |
9 | 33 |
2832
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
34 /* padding between objects */ |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
35 #define PRINT_TEXT_PADDING 3.0 |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
36 |
2830
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
37 /* method to use when scaling down image data */ |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
38 #define PRINT_MAX_INTERP GDK_INTERP_HYPER |
9 | 39 |
40 typedef enum { | |
41 TEXT_INFO_FILENAME = 1 << 0, | |
42 TEXT_INFO_FILEDATE = 1 << 1, | |
43 TEXT_INFO_FILESIZE = 1 << 2, | |
266
38b962cd4f0f
Add the possibility to print file names with path.
Laurent Monin <geeqie@norz.org>
parents:
254
diff
changeset
|
44 TEXT_INFO_DIMENSIONS = 1 << 3, |
38b962cd4f0f
Add the possibility to print file names with path.
Laurent Monin <geeqie@norz.org>
parents:
254
diff
changeset
|
45 TEXT_INFO_FILEPATH = 1 << 4 |
9 | 46 } TextInfo; |
47 | |
2832
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
48 /* reverse order is important */ |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
49 typedef enum { |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
50 FOOTER_2, |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
51 FOOTER_1, |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
52 HEADER_2, |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
53 HEADER_1 |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
54 } TextPosition; |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
55 |
9 | 56 typedef struct _PrintWindow PrintWindow; |
57 struct _PrintWindow | |
58 { | |
2830
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
59 GtkWidget *vbox; |
9 | 60 GList *source_selection; |
61 | |
62 TextInfo text_fields; | |
63 gint job_page; | |
2832
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
64 GtkTextBuffer *page_text; |
9 | 65 ImageLoader *job_loader; |
66 | |
2830
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
67 GList *print_pixbuf_queue; |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
68 gboolean job_render_finished; |
2832
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
69 GSList *image_group; |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
70 GSList *page_group; |
9 | 71 }; |
72 | |
73 static gint print_layout_page_count(PrintWindow *pw) | |
74 { | |
75 gint images; | |
76 | |
2830
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
77 images = g_list_length(pw->source_selection); |
9 | 78 |
2830
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
79 if (images < 1 ) return 0; |
9 | 80 |
2830
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
81 return images; |
9 | 82 } |
83 | |
1443 | 84 static gboolean print_job_render_image(PrintWindow *pw); |
9 | 85 |
86 static void print_job_render_image_loader_done(ImageLoader *il, gpointer data) | |
87 { | |
88 PrintWindow *pw = data; | |
89 GdkPixbuf *pixbuf; | |
90 | |
91 pixbuf = image_loader_get_pixbuf(il); | |
92 | |
2830
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
93 g_object_ref(pixbuf); |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
94 pw->print_pixbuf_queue = g_list_append(pw->print_pixbuf_queue, pixbuf); |
9 | 95 |
96 image_loader_free(pw->job_loader); | |
97 pw->job_loader = NULL; | |
98 | |
2830
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
99 pw->job_page++; |
9 | 100 |
2830
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
101 if (!print_job_render_image(pw)) |
9 | 102 { |
2830
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
103 pw->job_render_finished = TRUE; |
9 | 104 } |
105 } | |
106 | |
1443 | 107 static gboolean print_job_render_image(PrintWindow *pw) |
9 | 108 { |
138
5be5d1c53016
replaced gchar* path with FileData *fd
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
121
diff
changeset
|
109 FileData *fd = NULL; |
9 | 110 |
2830
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
111 fd = g_list_nth_data(pw->source_selection, pw->job_page); |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
112 if (!fd) return FALSE; |
9 | 113 |
114 image_loader_free(pw->job_loader); | |
115 pw->job_loader = NULL; | |
116 | |
2830
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
117 pw->job_loader = image_loader_new(fd); |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
118 g_signal_connect(G_OBJECT(pw->job_loader), "done", |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
119 (GCallback)print_job_render_image_loader_done, pw); |
138
5be5d1c53016
replaced gchar* path with FileData *fd
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
121
diff
changeset
|
120 |
1012
409b52dfe683
converted image loader to a GObject and use signals for notification
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1011
diff
changeset
|
121 if (!image_loader_start(pw->job_loader)) |
9 | 122 { |
123 image_loader_free(pw->job_loader); | |
124 pw->job_loader= NULL; | |
125 } | |
126 | |
127 return TRUE; | |
128 } | |
129 | |
1443 | 130 static void print_text_field_set(PrintWindow *pw, TextInfo field, gboolean active) |
9 | 131 { |
132 if (active) | |
133 { | |
134 pw->text_fields |= field; | |
135 } | |
136 else | |
137 { | |
138 pw->text_fields &= ~field; | |
139 } | |
140 } | |
141 | |
142 static void print_text_cb_name(GtkWidget *widget, gpointer data) | |
143 { | |
144 PrintWindow *pw = data; | |
1443 | 145 gboolean active; |
9 | 146 |
147 active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget)); | |
148 print_text_field_set(pw, TEXT_INFO_FILENAME, active); | |
149 } | |
150 | |
266
38b962cd4f0f
Add the possibility to print file names with path.
Laurent Monin <geeqie@norz.org>
parents:
254
diff
changeset
|
151 static void print_text_cb_path(GtkWidget *widget, gpointer data) |
38b962cd4f0f
Add the possibility to print file names with path.
Laurent Monin <geeqie@norz.org>
parents:
254
diff
changeset
|
152 { |
38b962cd4f0f
Add the possibility to print file names with path.
Laurent Monin <geeqie@norz.org>
parents:
254
diff
changeset
|
153 PrintWindow *pw = data; |
1443 | 154 gboolean active; |
266
38b962cd4f0f
Add the possibility to print file names with path.
Laurent Monin <geeqie@norz.org>
parents:
254
diff
changeset
|
155 |
38b962cd4f0f
Add the possibility to print file names with path.
Laurent Monin <geeqie@norz.org>
parents:
254
diff
changeset
|
156 active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget)); |
38b962cd4f0f
Add the possibility to print file names with path.
Laurent Monin <geeqie@norz.org>
parents:
254
diff
changeset
|
157 print_text_field_set(pw, TEXT_INFO_FILEPATH, active); |
38b962cd4f0f
Add the possibility to print file names with path.
Laurent Monin <geeqie@norz.org>
parents:
254
diff
changeset
|
158 } |
38b962cd4f0f
Add the possibility to print file names with path.
Laurent Monin <geeqie@norz.org>
parents:
254
diff
changeset
|
159 |
9 | 160 static void print_text_cb_date(GtkWidget *widget, gpointer data) |
161 { | |
162 PrintWindow *pw = data; | |
1443 | 163 gboolean active; |
9 | 164 |
165 active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget)); | |
166 print_text_field_set(pw, TEXT_INFO_FILEDATE, active); | |
167 } | |
168 | |
169 static void print_text_cb_size(GtkWidget *widget, gpointer data) | |
170 { | |
171 PrintWindow *pw = data; | |
1443 | 172 gboolean active; |
9 | 173 |
174 active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget)); | |
175 print_text_field_set(pw, TEXT_INFO_FILESIZE, active); | |
176 } | |
177 | |
178 static void print_text_cb_dims(GtkWidget *widget, gpointer data) | |
179 { | |
180 PrintWindow *pw = data; | |
1443 | 181 gboolean active; |
9 | 182 |
183 active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget)); | |
184 print_text_field_set(pw, TEXT_INFO_DIMENSIONS, active); | |
185 } | |
186 | |
2830
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
187 static void print_set_font_cb(GtkWidget *widget, gpointer data) |
9 | 188 { |
2832
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
189 gpointer option; |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
190 |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
191 if (g_strcmp0(data, "Image text font") == 0) |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
192 { |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
193 option = options->printer.image_font; |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
194 } |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
195 else |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
196 { |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
197 option = options->printer.page_font; |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
198 } |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
199 |
2830
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
200 #if GTK_CHECK_VERSION(3,4,0) |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
201 GtkWidget *dialog; |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
202 char *font; |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
203 PangoFontDescription *font_desc; |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
204 |
2832
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
205 dialog = gtk_font_chooser_dialog_new(data, GTK_WINDOW(gtk_widget_get_toplevel(widget))); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
206 gtk_font_chooser_set_font(GTK_FONT_CHOOSER(dialog), option); |
9 | 207 |
2830
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
208 if (gtk_dialog_run(GTK_DIALOG(dialog)) != GTK_RESPONSE_CANCEL) |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
209 { |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
210 font_desc = gtk_font_chooser_get_font_desc(GTK_FONT_CHOOSER(dialog)); |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
211 font = pango_font_description_to_string(font_desc); |
2832
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
212 g_free(option); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
213 option = g_strdup(font); |
2830
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
214 g_free(font); |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
215 } |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
216 |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
217 gtk_widget_destroy(dialog); |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
218 #else |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
219 const char *font; |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
220 |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
221 font = gtk_font_button_get_font_name(GTK_FONT_BUTTON(widget)); |
2832
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
222 option = g_strdup(font); |
2830
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
223 #endif |
9 | 224 } |
225 | |
2832
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
226 static gint set_toggle(GSList *list, TextPosition pos) |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
227 { |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
228 GtkToggleButton *current_sel; |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
229 GtkToggleButton *new_sel; |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
230 gint new_pos = - 1; |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
231 |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
232 current_sel = g_slist_nth(list, pos)->data; |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
233 if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(current_sel))) |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
234 { |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
235 new_pos = (pos - 1); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
236 if (new_pos < 0) |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
237 { |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
238 new_pos = HEADER_1; |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
239 } |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
240 new_sel = g_slist_nth(list, new_pos)->data; |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
241 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(new_sel), TRUE); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
242 } |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
243 return new_pos; |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
244 } |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
245 |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
246 static void image_text_position_h1_cb(GtkWidget *widget, gpointer data) |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
247 { |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
248 PrintWindow *pw = data; |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
249 gint new_set; |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
250 |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
251 if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget))) |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
252 { |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
253 new_set = set_toggle(pw->page_group, HEADER_1); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
254 if (new_set >= 0) |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
255 { |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
256 options->printer.page_text_position = new_set; |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
257 } |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
258 options->printer.image_text_position = HEADER_1; |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
259 } |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
260 } |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
261 |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
262 static void image_text_position_h2_cb(GtkWidget *widget, gpointer data) |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
263 { |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
264 PrintWindow *pw = data; |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
265 gint new_set; |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
266 |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
267 if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget))) |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
268 { |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
269 new_set = set_toggle(pw->page_group, HEADER_2); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
270 if (new_set >= 0) |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
271 { |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
272 options->printer.page_text_position = new_set; |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
273 } |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
274 options->printer.image_text_position = HEADER_2; |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
275 } |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
276 } |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
277 |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
278 static void image_text_position_f1_cb(GtkWidget *widget, gpointer data) |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
279 { |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
280 PrintWindow *pw = data; |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
281 gint new_set; |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
282 |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
283 if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget))) |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
284 { |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
285 new_set = set_toggle(pw->page_group, FOOTER_1); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
286 if (new_set >= 0) |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
287 { |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
288 options->printer.page_text_position = new_set; |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
289 } |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
290 options->printer.image_text_position = FOOTER_1; |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
291 } |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
292 } |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
293 |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
294 static void image_text_position_f2_cb(GtkWidget *widget, gpointer data) |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
295 { |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
296 PrintWindow *pw = data; |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
297 gint new_set; |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
298 |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
299 if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget))) |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
300 { |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
301 new_set = set_toggle(pw->page_group, FOOTER_2); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
302 if (new_set >= 0) |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
303 { |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
304 options->printer.page_text_position = new_set; |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
305 } |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
306 options->printer.image_text_position = FOOTER_2; |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
307 } |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
308 } |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
309 |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
310 static void page_text_position_h1_cb(GtkWidget *widget, gpointer data) |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
311 { |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
312 PrintWindow *pw = data; |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
313 gint new_set; |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
314 |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
315 if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget))) |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
316 { |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
317 new_set = set_toggle(pw->image_group, HEADER_1); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
318 if (new_set >= 0) |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
319 { |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
320 options->printer.image_text_position = new_set; |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
321 } |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
322 options->printer.page_text_position = HEADER_1; |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
323 } |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
324 } |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
325 |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
326 static void page_text_position_h2_cb(GtkWidget *widget, gpointer data) |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
327 { |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
328 PrintWindow *pw = data; |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
329 gint new_set; |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
330 |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
331 if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget))) |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
332 { |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
333 new_set = set_toggle(pw->image_group, HEADER_2); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
334 if (new_set >= 0) |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
335 { |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
336 options->printer.image_text_position = new_set; |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
337 } |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
338 options->printer.page_text_position = HEADER_2; |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
339 } |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
340 } |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
341 |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
342 static void page_text_position_f1_cb(GtkWidget *widget, gpointer data) |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
343 { |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
344 PrintWindow *pw = data; |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
345 gint new_set; |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
346 |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
347 if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget))) |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
348 { |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
349 new_set = set_toggle(pw->image_group, FOOTER_1); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
350 if (new_set >= 0) |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
351 { |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
352 options->printer.image_text_position = new_set; |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
353 } |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
354 options->printer.page_text_position = FOOTER_1; |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
355 } |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
356 } |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
357 |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
358 static void page_text_position_f2_cb(GtkWidget *widget, gpointer data) |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
359 { |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
360 PrintWindow *pw = data; |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
361 gint new_set; |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
362 |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
363 if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget))) |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
364 { |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
365 new_set = set_toggle(pw->image_group, FOOTER_2); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
366 if (new_set >= 0) |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
367 { |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
368 options->printer.image_text_position = new_set; |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
369 } |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
370 options->printer.page_text_position = FOOTER_2; |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
371 } |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
372 } |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
373 |
9 | 374 static void print_text_menu(GtkWidget *box, PrintWindow *pw) |
375 { | |
376 GtkWidget *group; | |
2830
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
377 GtkWidget *hbox; |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
378 GtkWidget *button; |
2832
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
379 GtkWidget *button1; |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
380 GtkWidget *button2; |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
381 GtkWidget *image_text_button; |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
382 GtkWidget *page_text_button; |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
383 GtkWidget *subgroup; |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
384 GtkWidget *page_text_view; |
9 | 385 |
2832
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
386 group = pref_group_new(box, FALSE, _("Image text"), GTK_ORIENTATION_VERTICAL); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
387 |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
388 image_text_button = pref_checkbox_new_int(group, _("Show image text"), |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
389 options->printer.show_image_text, &options->printer.show_image_text); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
390 |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
391 subgroup = pref_box_new(group, FALSE, GTK_ORIENTATION_VERTICAL, PREF_PAD_GAP); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
392 |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
393 pref_checkbox_link_sensitivity(image_text_button, subgroup); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
394 |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
395 hbox = gtk_hbox_new(FALSE, 0); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
396 gtk_box_pack_start(GTK_BOX(subgroup), hbox, FALSE, FALSE, 0); |
9 | 397 |
2832
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
398 /* order is important */ |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
399 button1 = pref_radiobutton_new(hbox, NULL, "Header 1", |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
400 options->printer.image_text_position == HEADER_1, |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
401 G_CALLBACK(image_text_position_h1_cb), pw); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
402 button1 = pref_radiobutton_new(hbox, button1, "Header 2", |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
403 options->printer.image_text_position == HEADER_2, |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
404 G_CALLBACK(image_text_position_h2_cb), pw); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
405 button1 = pref_radiobutton_new(hbox, button1, "Footer 1", |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
406 options->printer.image_text_position == FOOTER_1, |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
407 G_CALLBACK(image_text_position_f1_cb), pw); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
408 button1 = pref_radiobutton_new(hbox, button1, "Footer 2", |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
409 options->printer.image_text_position == FOOTER_2, |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
410 G_CALLBACK(image_text_position_f2_cb), pw); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
411 gtk_widget_show(hbox); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
412 pw->image_group = (gtk_radio_button_get_group(GTK_RADIO_BUTTON(button1))); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
413 |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
414 pref_checkbox_new(subgroup, _("Name"), (pw->text_fields & TEXT_INFO_FILENAME), |
9 | 415 G_CALLBACK(print_text_cb_name), pw); |
2832
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
416 pref_checkbox_new(subgroup, _("Path"), (pw->text_fields & TEXT_INFO_FILEPATH), |
266
38b962cd4f0f
Add the possibility to print file names with path.
Laurent Monin <geeqie@norz.org>
parents:
254
diff
changeset
|
417 G_CALLBACK(print_text_cb_path), pw); |
2832
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
418 pref_checkbox_new(subgroup, _("Date"), (pw->text_fields & TEXT_INFO_FILEDATE), |
9 | 419 G_CALLBACK(print_text_cb_date), pw); |
2832
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
420 pref_checkbox_new(subgroup, _("Size"), (pw->text_fields & TEXT_INFO_FILESIZE), |
9 | 421 G_CALLBACK(print_text_cb_size), pw); |
2832
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
422 pref_checkbox_new(subgroup, _("Dimensions"), (pw->text_fields & TEXT_INFO_DIMENSIONS), |
9 | 423 G_CALLBACK(print_text_cb_dims), pw); |
424 | |
2832
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
425 hbox = pref_box_new(subgroup, FALSE, GTK_ORIENTATION_HORIZONTAL, PREF_PAD_BUTTON_GAP); |
2830
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
426 |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
427 #if GTK_CHECK_VERSION(3,4,0) |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
428 button = pref_button_new(NULL, GTK_STOCK_SELECT_FONT, _("Font"), FALSE, |
2832
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
429 G_CALLBACK(print_set_font_cb), "Image text font"); |
2830
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
430 #else |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
431 button = gtk_font_button_new(); |
2832
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
432 gtk_font_button_set_title(GTK_FONT_BUTTON(button), "Image text Font"); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
433 gtk_font_button_set_font_name(GTK_FONT_BUTTON(button), options->printer.image_font); |
2830
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
434 g_signal_connect(G_OBJECT(button), "font-set", |
2832
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
435 G_CALLBACK(print_set_font_cb), "Image text font"); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
436 #endif |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
437 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
438 gtk_widget_show(button); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
439 |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
440 pref_spacer(group, PREF_PAD_GAP); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
441 |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
442 group = pref_group_new(box, FALSE, _("Page text"), GTK_ORIENTATION_VERTICAL); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
443 |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
444 page_text_button = pref_checkbox_new_int(group, _("Show page text"), |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
445 options->printer.show_page_text, &options->printer.show_page_text); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
446 |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
447 subgroup = pref_box_new(group, FALSE, GTK_ORIENTATION_VERTICAL, PREF_PAD_GAP); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
448 pref_checkbox_link_sensitivity(page_text_button, subgroup); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
449 |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
450 hbox = gtk_hbox_new(FALSE, 0); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
451 gtk_box_pack_start(GTK_BOX(subgroup), hbox, FALSE, FALSE, 0); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
452 |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
453 /* order is important */ |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
454 button2 = pref_radiobutton_new(hbox, NULL, "Header 1", |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
455 options->printer.page_text_position == HEADER_1, |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
456 G_CALLBACK(page_text_position_h1_cb), pw); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
457 button2 = pref_radiobutton_new(hbox, button2, "Header 2", |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
458 options->printer.page_text_position == HEADER_2, |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
459 G_CALLBACK(page_text_position_h2_cb), pw); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
460 button2 = pref_radiobutton_new(hbox, button2, "Footer 1", |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
461 options->printer.page_text_position == FOOTER_1, |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
462 G_CALLBACK(page_text_position_f1_cb), pw); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
463 button2 = pref_radiobutton_new(hbox, button2, "Footer 2", |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
464 options->printer.page_text_position == FOOTER_2, |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
465 G_CALLBACK(page_text_position_f2_cb), pw); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
466 gtk_widget_show(hbox); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
467 pw->page_group = (gtk_radio_button_get_group(GTK_RADIO_BUTTON(button2))); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
468 |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
469 GtkWidget *scrolled; |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
470 |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
471 scrolled = gtk_scrolled_window_new(NULL, NULL); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
472 gtk_widget_set_size_request(scrolled, 50, 50); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
473 gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(scrolled), GTK_SHADOW_IN); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
474 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled), |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
475 GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
476 gtk_box_pack_start(GTK_BOX(subgroup), scrolled, TRUE, TRUE, 5); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
477 gtk_widget_show(scrolled); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
478 |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
479 page_text_view = gtk_text_view_new(); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
480 pw->page_text = gtk_text_view_get_buffer(GTK_TEXT_VIEW(page_text_view )); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
481 gtk_text_buffer_set_text(GTK_TEXT_BUFFER(pw->page_text), options->printer.page_text, -1); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
482 g_object_ref(pw->page_text); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
483 |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
484 gtk_widget_set_tooltip_markup(page_text_view, ("Text shown on each page of a single or multi-page print job")); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
485 gtk_container_add(GTK_CONTAINER(scrolled), page_text_view); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
486 gtk_widget_show(page_text_view); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
487 |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
488 hbox = pref_box_new(subgroup, FALSE, GTK_ORIENTATION_HORIZONTAL, PREF_PAD_BUTTON_GAP); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
489 |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
490 #if GTK_CHECK_VERSION(3,4,0) |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
491 button = pref_button_new(NULL, GTK_STOCK_SELECT_FONT, _("Font"), FALSE, |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
492 G_CALLBACK(print_set_font_cb), "Page text font"); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
493 #else |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
494 button = gtk_font_button_new(); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
495 gtk_font_button_set_title(GTK_FONT_BUTTON(button), "Page text Font"); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
496 gtk_font_button_set_font_name(GTK_FONT_BUTTON(button), options->printer.page_font); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
497 g_signal_connect(G_OBJECT(button), "font-set", |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
498 G_CALLBACK(print_set_font_cb), "Page text font"); |
2830
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
499 #endif |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
500 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0); |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
501 gtk_widget_show(button); |
9 | 502 } |
503 | |
2830
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
504 static gboolean paginate_cb(GtkPrintOperation *operation, |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
505 GtkPrintContext *context, |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
506 gpointer data) |
9 | 507 { |
508 PrintWindow *pw = data; | |
509 | |
2830
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
510 if (pw->job_render_finished) |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
511 { |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
512 return TRUE; |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
513 } |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
514 else |
9 | 515 { |
2830
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
516 return FALSE; |
9 | 517 } |
2830
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
518 } |
9 | 519 |
2830
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
520 static void draw_page(GtkPrintOperation *operation, GtkPrintContext *context, |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
521 gint page_nr, gpointer data) |
9 | 522 { |
2832
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
523 PrintWindow *pw = data; |
2830
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
524 FileData *fd; |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
525 cairo_t *cr; |
2832
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
526 gdouble context_width, context_height; |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
527 gdouble pixbuf_image_width, pixbuf_image_height; |
2830
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
528 gdouble width_offset; |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
529 gdouble height_offset; |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
530 GdkPixbuf *pixbuf; |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
531 GdkPixbuf *pixbuf_scaled; |
2837
c8cc3884bc8d
Ref #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2832
diff
changeset
|
532 GdkPixbuf *rotated = NULL; |
2832
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
533 PangoLayout *layout_image = NULL; |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
534 PangoLayout *layout_page = NULL; |
2830
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
535 PangoFontDescription *desc; |
2832
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
536 GString *image_text = g_string_new(NULL); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
537 GString *page_text = g_string_new(NULL); |
2830
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
538 PangoRectangle ink_rect, logical_rect; |
2832
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
539 gdouble w, h, scale; |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
540 gdouble image_text_width, image_text_height, page_text_width, page_text_height; |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
541 gint image_y; |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
542 gint incr_y; |
2830
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
543 gdouble pango_height; |
2832
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
544 gdouble pango_image_height; |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
545 gdouble pango_page_height; |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
546 GtkTextIter start, end; |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
547 gchar *tmp; |
9 | 548 |
2837
c8cc3884bc8d
Ref #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2832
diff
changeset
|
549 fd = g_list_nth_data(pw->source_selection, page_nr); |
c8cc3884bc8d
Ref #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2832
diff
changeset
|
550 |
2830
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
551 pixbuf = g_list_nth_data(pw->print_pixbuf_queue, page_nr); |
2837
c8cc3884bc8d
Ref #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2832
diff
changeset
|
552 if (fd->exif_orientation != EXIF_ORIENTATION_TOP_LEFT) |
c8cc3884bc8d
Ref #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2832
diff
changeset
|
553 { |
c8cc3884bc8d
Ref #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2832
diff
changeset
|
554 rotated = pixbuf_apply_orientation(pixbuf, fd->exif_orientation); |
c8cc3884bc8d
Ref #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2832
diff
changeset
|
555 pixbuf = rotated; |
c8cc3884bc8d
Ref #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2832
diff
changeset
|
556 } |
c8cc3884bc8d
Ref #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2832
diff
changeset
|
557 |
2832
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
558 pixbuf_image_width = gdk_pixbuf_get_width(pixbuf); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
559 pixbuf_image_height = gdk_pixbuf_get_height(pixbuf); |
2830
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
560 |
2832
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
561 if (options->printer.show_image_text) |
2830
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
562 { |
2832
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
563 if (pw->text_fields & TEXT_INFO_FILENAME) |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
564 { |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
565 image_text = g_string_append(image_text, g_strdup(fd->name)); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
566 image_text = g_string_append(image_text, "\n"); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
567 } |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
568 if (pw->text_fields & TEXT_INFO_FILEDATE) |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
569 { |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
570 image_text = g_string_append(image_text, g_strdup(text_from_time(fd->date))); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
571 image_text = g_string_append(image_text, "\n"); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
572 } |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
573 if (pw->text_fields & TEXT_INFO_FILESIZE) |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
574 { |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
575 image_text = g_string_append(image_text, g_strdup(text_from_size(fd->size))); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
576 image_text = g_string_append(image_text, "\n"); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
577 } |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
578 if (pw->text_fields & TEXT_INFO_DIMENSIONS) |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
579 { |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
580 g_string_append_printf(image_text, "%d x %d", (gint)pixbuf_image_width, |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
581 (gint)pixbuf_image_height); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
582 image_text = g_string_append(image_text, "\n"); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
583 } |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
584 if (pw->text_fields & TEXT_INFO_FILEPATH) |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
585 { |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
586 image_text = g_string_append(image_text, g_strdup(fd->path)); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
587 image_text = g_string_append(image_text, "\n"); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
588 } |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
589 if (image_text->len > 0) |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
590 { |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
591 image_text = g_string_truncate(image_text, image_text->len - 1); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
592 } |
2830
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
593 } |
2832
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
594 |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
595 if (options->printer.show_page_text) |
2830
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
596 { |
2832
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
597 gtk_text_buffer_get_bounds(GTK_TEXT_BUFFER(pw->page_text), &start, &end); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
598 |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
599 tmp = gtk_text_buffer_get_text(GTK_TEXT_BUFFER(pw->page_text), &start, &end, FALSE); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
600 page_text = g_string_append(page_text, tmp); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
601 |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
602 g_free(tmp); |
2830
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
603 } |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
604 |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
605 cr = gtk_print_context_get_cairo_context(context); |
2832
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
606 context_width = gtk_print_context_get_width(context); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
607 context_height = gtk_print_context_get_height(context); |
2830
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
608 |
2832
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
609 pango_image_height = 0; |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
610 pango_page_height = 0; |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
611 image_text_width = 0; |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
612 page_text_width = 0; |
2830
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
613 |
2832
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
614 if (image_text->len > 0) |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
615 { |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
616 layout_image = pango_cairo_create_layout(cr); |
2830
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
617 |
2832
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
618 pango_layout_set_text(layout_image, image_text->str, -1); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
619 desc = pango_font_description_from_string(options->printer.image_font); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
620 pango_layout_set_font_description(layout_image, desc); |
2830
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
621 |
2832
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
622 pango_layout_get_extents(layout_image, &ink_rect, &logical_rect); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
623 image_text_width = ((gdouble)logical_rect.width / PANGO_SCALE) ; |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
624 image_text_height = ((gdouble)logical_rect.height / PANGO_SCALE); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
625 |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
626 pango_layout_set_alignment(layout_image, PANGO_ALIGN_CENTER); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
627 pango_layout_set_text(layout_image, image_text->str, -1); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
628 |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
629 pango_image_height = image_text_height + PRINT_TEXT_PADDING * 2; |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
630 |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
631 pango_font_description_free(desc); |
2830
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
632 } |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
633 |
2832
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
634 if (page_text->len > 0) |
2830
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
635 { |
2832
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
636 layout_page = pango_cairo_create_layout(cr); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
637 |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
638 pango_layout_set_text(layout_page, page_text->str, -1); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
639 desc = pango_font_description_from_string(options->printer.page_font); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
640 pango_layout_set_font_description(layout_page, desc); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
641 |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
642 pango_layout_get_extents(layout_page, &ink_rect, &logical_rect); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
643 page_text_width = ((gdouble)logical_rect.width / PANGO_SCALE) ; |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
644 page_text_height = ((gdouble)logical_rect.height / PANGO_SCALE); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
645 |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
646 pango_layout_set_alignment(layout_page, PANGO_ALIGN_CENTER); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
647 pango_layout_set_text(layout_page, page_text->str, -1); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
648 |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
649 pango_page_height = page_text_height + PRINT_TEXT_PADDING * 2; |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
650 |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
651 pango_font_description_free(desc); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
652 } |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
653 |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
654 pango_height = pango_image_height + pango_page_height; |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
655 |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
656 if ((context_width / pixbuf_image_width) < ((context_height - pango_height) / pixbuf_image_height)) |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
657 { |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
658 w = context_width; |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
659 scale = context_width / pixbuf_image_width; |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
660 h = pixbuf_image_height * scale; |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
661 height_offset = (context_height - (h + pango_height)) / 2; |
2830
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
662 width_offset = 0; |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
663 } |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
664 else |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
665 { |
2832
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
666 h = context_height - pango_height ; |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
667 scale = (context_height - pango_height) / pixbuf_image_height; |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
668 w = pixbuf_image_width * scale; |
2830
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
669 height_offset = 0; |
2832
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
670 width_offset = (context_width - (pixbuf_image_width * scale)) / 2; |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
671 } |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
672 |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
673 incr_y = height_offset + PRINT_TEXT_PADDING; |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
674 |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
675 if (options->printer.page_text_position == HEADER_1 && page_text->len > 0) |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
676 { |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
677 cairo_move_to(cr, (w / 2) - (page_text_width / 2) + width_offset, incr_y); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
678 pango_cairo_show_layout(cr, layout_page); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
679 |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
680 incr_y = incr_y + PRINT_TEXT_PADDING + pango_page_height; |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
681 } |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
682 |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
683 if (options->printer.image_text_position == HEADER_1 && image_text->len > 0) |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
684 { |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
685 cairo_move_to(cr, (w / 2) - (image_text_width / 2) + width_offset, incr_y); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
686 pango_cairo_show_layout(cr, layout_image); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
687 |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
688 incr_y = incr_y + PRINT_TEXT_PADDING + pango_image_height; |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
689 } |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
690 |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
691 if (options->printer.page_text_position == HEADER_2 && page_text->len > 0) |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
692 { |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
693 cairo_move_to(cr, (w / 2) - (page_text_width / 2) + width_offset, incr_y); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
694 pango_cairo_show_layout(cr, layout_page); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
695 |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
696 incr_y = incr_y + PRINT_TEXT_PADDING + pango_page_height; |
2830
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
697 } |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
698 |
2832
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
699 if (options->printer.image_text_position == HEADER_2 && image_text->len > 0) |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
700 { |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
701 cairo_move_to(cr, (w / 2) - (image_text_width / 2) + width_offset, incr_y); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
702 pango_cairo_show_layout(cr, layout_image); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
703 |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
704 incr_y = incr_y + PRINT_TEXT_PADDING + pango_image_height; |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
705 } |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
706 |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
707 image_y = incr_y; |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
708 incr_y = incr_y + h + PRINT_TEXT_PADDING; |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
709 |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
710 if (options->printer.page_text_position == FOOTER_1 && page_text->len > 0) |
2830
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
711 { |
2832
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
712 cairo_move_to(cr, (w / 2) - (page_text_width / 2) + width_offset, incr_y); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
713 pango_cairo_show_layout(cr, layout_page); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
714 |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
715 incr_y = incr_y + PRINT_TEXT_PADDING + pango_page_height; |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
716 } |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
717 |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
718 if (options->printer.image_text_position == FOOTER_1 && image_text->len > 0) |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
719 { |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
720 cairo_move_to(cr, (w / 2) - (image_text_width / 2) + width_offset, incr_y); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
721 pango_cairo_show_layout(cr, layout_image); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
722 |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
723 incr_y = incr_y + PRINT_TEXT_PADDING + pango_image_height; |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
724 } |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
725 |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
726 if (options->printer.page_text_position == FOOTER_2 && page_text->len > 0) |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
727 { |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
728 cairo_move_to(cr, (w / 2) - (page_text_width / 2) + width_offset, incr_y); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
729 pango_cairo_show_layout(cr, layout_page); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
730 |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
731 incr_y = incr_y + PRINT_TEXT_PADDING + pango_page_height; |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
732 } |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
733 |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
734 if (options->printer.image_text_position == FOOTER_2 && image_text->len > 0) |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
735 { |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
736 cairo_move_to(cr, (w / 2) - (image_text_width / 2) + width_offset, incr_y); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
737 pango_cairo_show_layout(cr, layout_image); |
2830
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
738 } |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
739 |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
740 pixbuf_scaled = gdk_pixbuf_new(GDK_COLORSPACE_RGB, TRUE, 8, w, h); |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
741 gdk_pixbuf_scale(pixbuf, pixbuf_scaled, 0, 0, w, h, 0, 0, scale, scale, PRINT_MAX_INTERP); |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
742 |
2832
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
743 cairo_rectangle(cr, width_offset, image_y, w, h); |
2830
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
744 |
2832
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
745 gdk_cairo_set_source_pixbuf(cr, pixbuf_scaled, width_offset, image_y); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
746 |
2830
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
747 cairo_fill(cr); |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
748 |
2832
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
749 if (image_text->len > 0) |
2830
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
750 { |
2832
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
751 g_object_unref(layout_image); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
752 g_string_free(image_text, TRUE); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
753 } |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
754 if (page_text->len > 0) |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
755 { |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
756 g_object_unref(layout_page); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
757 g_string_free(page_text, TRUE); |
2830
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
758 } |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
759 |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
760 g_object_unref(pixbuf_scaled); |
2837
c8cc3884bc8d
Ref #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2832
diff
changeset
|
761 if (rotated) g_object_unref(rotated); |
2830
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
762 |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
763 return; |
9 | 764 } |
765 | |
2830
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
766 static void begin_print(GtkPrintOperation *operation, |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
767 GtkPrintContext *context, |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
768 gpointer user_data) |
9 | 769 { |
2830
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
770 PrintWindow *pw = user_data; |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
771 gint page_count; |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
772 |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
773 page_count = print_layout_page_count(pw); |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
774 gtk_print_operation_set_n_pages (operation, page_count); |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
775 |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
776 print_job_render_image(pw); |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
777 } |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
778 |
9 | 779 |
2830
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
780 GObject *option_tab_cb(GtkPrintOperation *operation, gpointer user_data) |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
781 { |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
782 PrintWindow *pw = user_data; |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
783 |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
784 return G_OBJECT(pw->vbox); |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
785 } |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
786 |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
787 static void print_pref_store(PrintWindow *pw) |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
788 { |
2832
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
789 gchar *tmp; |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
790 GtkTextIter start, end; |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
791 |
2830
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
792 options->printer.text_fields = pw->text_fields; |
2832
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
793 |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
794 gtk_text_buffer_get_bounds(GTK_TEXT_BUFFER(pw->page_text), &start, &end); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
795 tmp = gtk_text_buffer_get_text(GTK_TEXT_BUFFER(pw->page_text), &start, &end, FALSE); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
796 g_free(options->printer.page_text); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
797 options->printer.page_text = g_strdup(tmp); |
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
798 g_free(tmp); |
9 | 799 } |
800 | |
2830
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
801 static void end_print_cb(GtkPrintOperation *operation, |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
802 GtkPrintContext *context, gpointer data) |
9 | 803 { |
2830
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
804 PrintWindow *pw = data; |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
805 GList *work; |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
806 GdkPixbuf *pixbuf; |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
807 gchar *path; |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
808 GtkPrintSettings *print_settings; |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
809 GtkPageSetup *page_setup; |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
810 GError *error = NULL; |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
811 |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
812 print_settings = gtk_print_operation_get_print_settings(operation); |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
813 path = g_build_filename(get_rc_dir(), PRINT_SETTINGS, NULL); |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
814 |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
815 gtk_print_settings_to_file(print_settings, path, &error); |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
816 if (error) |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
817 { |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
818 log_printf("Error: Print settings save failed:\n%s", error->message); |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
819 g_error_free(error); |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
820 error = NULL; |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
821 } |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
822 g_free(path); |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
823 g_object_unref(print_settings); |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
824 |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
825 page_setup = gtk_print_operation_get_default_page_setup(operation); |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
826 path = g_build_filename(get_rc_dir(), PAGE_SETUP, NULL); |
9 | 827 |
2830
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
828 gtk_page_setup_to_file(page_setup, path, &error); |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
829 if (error) |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
830 { |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
831 log_printf("Error: Print page setup save failed:\n%s", error->message); |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
832 g_error_free(error); |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
833 error = NULL; |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
834 } |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
835 g_free(path); |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
836 g_object_unref(page_setup); |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
837 |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
838 print_pref_store(pw); |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
839 |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
840 work = pw->print_pixbuf_queue; |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
841 while (work) |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
842 { |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
843 pixbuf = work->data; |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
844 if (pixbuf) |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
845 { |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
846 g_object_unref(pixbuf); |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
847 } |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
848 work = work->next; |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
849 } |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
850 g_list_free(pw->print_pixbuf_queue); |
2832
ac46f4e545a4
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2831
diff
changeset
|
851 g_object_unref(pw->page_text); |
2830
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
852 g_free(pw); |
9 | 853 } |
854 | |
138
5be5d1c53016
replaced gchar* path with FileData *fd
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
121
diff
changeset
|
855 void print_window_new(FileData *fd, GList *selection, GList *list, GtkWidget *parent) |
9 | 856 { |
857 PrintWindow *pw; | |
858 GtkWidget *vbox; | |
2830
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
859 GtkPrintOperation *operation; |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
860 GtkPageSetup *page_setup; |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
861 gchar *uri; |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
862 const gchar *dir; |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
863 GError *error = NULL; |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
864 gchar *path; |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
865 GtkPrintSettings *settings; |
9 | 866 |
867 pw = g_new0(PrintWindow, 1); | |
868 | |
1729
9aea6d943ff8
improved printing of selection
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1614
diff
changeset
|
869 pw->source_selection = file_data_process_groups_in_selection(selection, FALSE, NULL); |
2830
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
870 pw->text_fields = options->printer.text_fields; |
9 | 871 |
2831
29231f01f36c
Bug fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2830
diff
changeset
|
872 if (print_layout_page_count(pw) == 0) |
29231f01f36c
Bug fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2830
diff
changeset
|
873 { |
29231f01f36c
Bug fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2830
diff
changeset
|
874 return; |
29231f01f36c
Bug fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2830
diff
changeset
|
875 } |
29231f01f36c
Bug fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2830
diff
changeset
|
876 |
9 | 877 vbox = gtk_vbox_new(FALSE, 0); |
878 gtk_container_set_border_width(GTK_CONTAINER(vbox), PREF_PAD_BORDER); | |
879 gtk_widget_show(vbox); | |
880 | |
881 print_text_menu(vbox, pw); | |
2830
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
882 pw->vbox = vbox; |
9 | 883 |
2830
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
884 pw->print_pixbuf_queue = NULL; |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
885 pw->job_render_finished = FALSE; |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
886 pw->job_page = 0; |
9 | 887 |
2830
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
888 operation = gtk_print_operation_new(); |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
889 settings = gtk_print_settings_new(); |
9 | 890 |
2830
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
891 gtk_print_operation_set_custom_tab_label(operation, "Options"); |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
892 gtk_print_operation_set_use_full_page(operation, TRUE); |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
893 gtk_print_operation_set_unit(operation, GTK_UNIT_POINTS); |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
894 gtk_print_operation_set_embed_page_setup(operation, TRUE); |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
895 gtk_print_operation_set_allow_async (operation, TRUE); |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
896 dir = g_get_user_special_dir(G_USER_DIRECTORY_DOCUMENTS); |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
897 if (dir == NULL) |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
898 { |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
899 dir = g_get_home_dir(); |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
900 } |
9 | 901 |
2830
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
902 uri = g_build_filename("file:/", dir, "geeqie-file.pdf", NULL); |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
903 gtk_print_settings_set(settings, GTK_PRINT_SETTINGS_OUTPUT_URI, uri); |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
904 g_free(uri); |
9 | 905 |
2830
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
906 path = g_build_filename(get_rc_dir(), PRINT_SETTINGS, NULL); |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
907 gtk_print_settings_load_file(settings, path, &error); |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
908 if (error) |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
909 { |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
910 log_printf("Error: Printer settings load failed:\n%s", error->message); |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
911 g_error_free(error); |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
912 error = NULL; |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
913 } |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
914 gtk_print_operation_set_print_settings(operation, settings); |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
915 g_free(path); |
9 | 916 |
2830
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
917 page_setup = gtk_page_setup_new(); |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
918 path = g_build_filename(get_rc_dir(), PAGE_SETUP, NULL); |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
919 gtk_page_setup_load_file(page_setup, path, &error); |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
920 if (error) |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
921 { |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
922 log_printf("Error: Print page setup load failed:\n%s", error->message); |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
923 g_error_free(error); |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
924 error = NULL; |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
925 } |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
926 gtk_print_operation_set_default_page_setup(operation, page_setup); |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
927 g_free(path); |
9 | 928 |
2830
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
929 g_signal_connect (G_OBJECT (operation), "begin-print", |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
930 G_CALLBACK (begin_print), pw); |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
931 g_signal_connect (G_OBJECT (operation), "draw-page", |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
932 G_CALLBACK (draw_page), pw); |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
933 g_signal_connect (G_OBJECT (operation), "end-print", |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
934 G_CALLBACK (end_print_cb), pw); |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
935 g_signal_connect (G_OBJECT (operation), "create-custom-widget", |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
936 G_CALLBACK (option_tab_cb), pw); |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
937 g_signal_connect (G_OBJECT (operation), "paginate", |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
938 G_CALLBACK (paginate_cb), pw); |
9 | 939 |
2830
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
940 gtk_print_operation_set_n_pages(operation, print_layout_page_count(pw)); |
9 | 941 |
2830
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
942 gtk_print_operation_run(operation, GTK_PRINT_OPERATION_ACTION_PRINT_DIALOG, |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
943 GTK_WINDOW (parent), &error); |
9 | 944 |
2830
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
945 if (error) |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
946 { |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
947 GtkWidget *dialog; |
9 | 948 |
2830
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
949 dialog = gtk_message_dialog_new(GTK_WINDOW (parent), |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
950 GTK_DIALOG_DESTROY_WITH_PARENT, |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
951 GTK_MESSAGE_ERROR, |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
952 GTK_BUTTONS_CLOSE, |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
953 "%s", error->message); |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
954 g_error_free (error); |
9 | 955 |
2830
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
956 g_signal_connect(dialog, "response", G_CALLBACK(gtk_widget_destroy), NULL); |
9 | 957 |
2830
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
958 gtk_widget_show (dialog); |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
959 } |
9 | 960 |
2830
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
961 g_object_unref(page_setup); |
5d88a8dfa364
Fix #160: Replace print dialog by standard GTK dialog
Colin Clark <colin.clark@cclark.uk>
parents:
2714
diff
changeset
|
962 g_object_unref(settings); |
9 | 963 } |
1055
4bbdfab3c89a
Adding a vim modeline to all files - patch by Klaus Ethgen
Vladimir Nadvornik <nadvornik@suse.cz>
parents:
1045
diff
changeset
|
964 /* vim: set shiftwidth=8 softtabstop=0 cindent cinoptions={1s: */ |