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