1 /********************************************************************
2 This file is part of the abs 0.907 distribution. abs is a spreadsheet
3 with graphical user interface.
4
5 Copyright (C) 1998-2001 Andr� Bertin (Andre.Bertin@ping.be)
6
7 This program is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation; either version 2 of the License, or
10 (at your option) any later version if in the same spirit as version 2.
11
12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
16
17 You should have received a copy of the GNU General Public License
18 along with this program; if not, write to the Free Software
19 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
20
21 Concact: abs@pi.be
22 http://home.pi.be/bertin/abs.shtml
23
24 *********************************************************************/
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80 #include "printdialog.h"
81 #include "inputbox.h"
82 #include "entrypop.h"
83 #include "main.h"
84 #include "button.h"
85 #include "print.h"
86
87 Widget tofile, center, portrait;
88 Entry_Pop *magnifpop, *copiespop, *paperpop;
89
90 static char *printpane[] =
91 {
92 "Print",
93 "Page",
94 "Margin",
95 "Top/Bottom",
96 "Worksheet",
97 };
98
99 void
X11m_print()100 X11m_print ()
101 {
102 display_prompt (td3, gettop ());
103 }
104
105 void
doprint()106 doprint ()
107 {
108 printparam.print2file = getcheck (tofile);
109
110 printparam.language = "ps";
111
112 if (getcheck (portrait))
113 printparam.print2file = PORTRAIT;
114 else
115 printparam.print2file = LANDSCAPE;
116
117 if (getcheck (center))
118 printparam.center = CENTER;
119 else
120 printparam.center = FLUSH_TOP_LEFT;
121
122 printparam.magnification = entrypop_getvalue (magnifpop);
123
124 printparam.copies = entrypop_getvalue (copiespop);
125
126 printparam.papertype = entrypop_gettext (paperpop);
127
128 printparam.xshift = 0;
129 printparam.yshift = 0;
130
131 printparam.multiplepage = 0;
132
133 printparam.filename = NULL;
134
135 if (printparam.print2file)
136 printparam.filename = inputbox ("File name:", "Print to File", "output.fig");
137
138 printfile (printparam);
139 }
140
141 void
initprintdial()142 initprintdial ()
143 {
144
145 }
146
147 int
make_print_dial()148 make_print_dial ()
149 {
150 Widget /*viewport, viewport2, viewport3, viewport4, list, label1, */ sel
151 /*,wks,wkb */ ;
152 Widget landscape;
153 Widget /*adjust, */ reduce;
154 Widget flushtl;
155 Widget base;
156 Entry_Pop *pop;
157
158 td3 =
159 CreateThumbDialog (gettop (), XtNumber (printpane), printpane, doprint,
160 initprintdial);
161
162 base = get_base (td3);
163
164 addpanechild (td3, 0, CreateLabel (base, "Printer:", 20, 55, 60, 20));
165
166 pop = newentrypop (base, "printerpop", popdown, 200, 20);
167 w_n = 0;
168 w_rel (NULL, 100, 55);
169 w_set (pop->baseform);
170 addpanechild (td3, 0, pop->baseform);
171 entrypop_add_item (pop, "default postscript");
172 entrypop_add_item (pop, "fig format file");
173 entrypop_init_val (pop, "fig format file");
174
175 addpanechild (td3, 0, CreateLabel (base, "Print to File", 20, 95, 100, 20));
176 w_n = 0;
177 w_rel (NULL, 120, 95);
178 tofile = (Widget) make_check (base, "to file", NULL, (caddr_t) td3);
179 w_set (tofile);
180 setcheck (tofile, 1);
181 addpanechild (td3, 0, tofile);
182
183 addpanechild (td3, 0, CreateLabel (base, "Print", 20, 120, 100, 20));
184
185 addpanechild (td3, 0, CreateLabel (base, "Selection", 50, 145, 80, 20));
186 sel = (Widget) make_radio (base, "selection", NULL, NULL, NULL);
187 w_n = 0;
188 w_rel (NULL, 20, 145);
189 XtSetValues (sel, w_args, w_n);
190 addpanechild (td3, 0, sel);
191
192 addpanechild (td3, 0,
193 CreateLabel (base, "Number of copies:", 175, 145, 120, 20));
194 copiespop = newentrypop (base, "copiespop", roll, 50, 20);
195 entrypop_setrange (copiespop, 1, 1, 1, 32000);
196 w_n = 0;
197 w_rel (NULL, 305, 145);
198 w_set (copiespop->baseform);
199 addpanechild (td3, 0, copiespop->baseform);
200
201 addpanechild (td3, 1, CreateLabel (base, "Orientation", 20, 35, 80, 20));
202
203 addpanechild (td3, 1, CreateLabel (base, "Portrait", 50, 70, 80, 20));
204 portrait = (Widget) make_radio (base, "portrait", NULL, NULL, NULL);
205 w_n = 0;
206 w_rel (NULL, 30, 70);
207 XtSetValues (portrait, w_args, w_n);
208 addpanechild (td3, 1, portrait);
209
210 addpanechild (td3, 1, CreateLabel (base, "Landscape", 250, 70, 80, 20));
211 landscape = (Widget) make_radio (base, "landscape", portrait, NULL, NULL);
212 w_n = 0;
213 w_rel (NULL, 230, 70);
214 XtSetValues (landscape, w_args, w_n);
215 addpanechild (td3, 1, landscape);
216
217 addpanechild (td3, 1, CreateLabel (base, "Scale", 20, 100, 80, 20));
218
219 reduce = (Widget) make_radio (base, "reduce", NULL, NULL, NULL);
220 w_n = 0;
221 w_rel (NULL, 40, 125);
222 XtSetValues (reduce, w_args, w_n);
223 addpanechild (td3, 1, reduce);
224 addpanechild (td3, 1,
225 CreateLabel (base, "Reduce/enlarge to:", 60, 125, 140, 20));
226 magnifpop = newentrypop (base, "scalepop", roll, 50, 20);
227 entrypop_setrange (magnifpop, 100, 5, 1, 4000);
228 w_n = 0;
229 w_rel (NULL, 190, 125);
230 w_set (magnifpop->baseform);
231 addpanechild (td3, 1, magnifpop->baseform);
232 addpanechild (td3, 1,
233 CreateLabel (base, "% of the normal size", 260, 125, 180,
234 20));
235
236 addpanechild (td3, 1, CreateLabel (base, "Paper size:", 20, 190, 80, 20));
237 paperpop = newentrypop (base, "papersize", popdown, 200, 20);
238 entrypop_add_item (paperpop, "A0 (84.1cm x 118.9cm)");
239 entrypop_add_item (paperpop, "A1 (59.4cm x 84.1cm)");
240 entrypop_add_item (paperpop, "A2 (42 cm x 59.4cm)");
241 entrypop_add_item (paperpop, "A3 (29.7cm x 42 cm)");
242 entrypop_add_item (paperpop, "A4 (21cm x 29.7cm)");
243 entrypop_add_item (paperpop, "B5 (18.2cm x 25.7cm)");
244 entrypop_add_item (paperpop, "Ledger (11\" x 17\")");
245 entrypop_add_item (paperpop, "Legal (11\" x 14\")");
246 entrypop_add_item (paperpop, "Letter (8.5\" x 11\")");
247 entrypop_init_val (paperpop, "A4 (21cm x 29.7cm)");
248 w_n = 0;
249 w_rel (NULL, 120, 190);
250 w_set (paperpop->baseform);
251 addpanechild (td3, 1, paperpop->baseform);
252
253 addpanechild (td3, 2, CreateLabel (base, "Position", 20, 35, 80, 20));
254
255 addpanechild (td3, 2,
256 CreateLabel (base, "Center on page", 50, 70, 130, 20));
257 center = (Widget) make_radio (base, "center", NULL, NULL, NULL);
258 w_n = 0;
259 w_rel (NULL, 30, 70);
260 XtSetValues (center, w_args, w_n);
261 addpanechild (td3, 2, center);
262
263 addpanechild (td3, 2,
264 CreateLabel (base, "Flush top/left", 250, 70, 120, 20));
265 flushtl = (Widget) make_radio (base, "flush", center, NULL, NULL);
266 w_n = 0;
267 w_rel (NULL, 230, 70);
268 XtSetValues (flushtl, w_args, w_n);
269 addpanechild (td3, 2, flushtl);
270
271 activepane (td3, 0);
272
273 return 0;
274
275 }
276