1 /*
2 **
3 ** main_globals.h
4 **
5 ** Copyright (C) 1995, 1996, 1997 Johannes Plass
6 ** Copyright (C) 2004 Jose E. Marchesi
7 **
8 ** This program is free software; you can redistribute it and/or modify
9 ** it under the terms of the GNU General Public License as published by
10 ** the Free Software Foundation; either version 3 of the License, or
11 ** (at your option) any later version.
12 **
13 ** This program is distributed in the hope that it will be useful,
14 ** but WITHOUT ANY WARRANTY; without even the implied warranty of
15 ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 ** GNU General Public License for more details.
17 **
18 ** You should have received a copy of the GNU General Public License
19 ** along with GNU gv; see the file COPYING.  If not, write to
20 ** the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
21 ** Boston, MA 02111-1307, USA.
22 **
23 ** Author:   Johannes Plass (plass@thep.physik.uni-mainz.de)
24 **           Department of Physics
25 **           Johannes Gutenberg-University
26 **           Mainz, Germany
27 **
28 **           Jose E. Marchesi (jemarch@gnu.org)
29 **           GNU Project
30 **
31 */
32 
33 #ifndef _GV_MAIN_GLOBALS_H_
34 #define _GV_MAIN_GLOBALS_H_
35 
36 #ifndef EXTERN
37 #  ifdef _GV_MAIN_C_
38 #    define EXTERN
39 #  else
40 #    define EXTERN extern
41 #  endif
42 #endif
43 
44 EXTERN char* gv_bin;
45 
46 EXTERN Bool			show_date;
47 EXTERN Bool			show_locator;
48 EXTERN Bool			show_title;
49 EXTERN Bool			show_nextPage;
50 EXTERN Bool			show_prevPage;
51 EXTERN Bool			show_toggleCurrentPage;
52 EXTERN Bool			show_toggleEvenPages;
53 EXTERN Bool			show_toggleOddPages;
54 EXTERN Bool			show_unmarkAllPages;
55 EXTERN Bool			show_saveMarkedPages;
56 EXTERN Bool			show_saveAllPages;
57 EXTERN Bool			show_printMarkedPages;
58 EXTERN Bool			show_printAllPages;
59 EXTERN Bool			show_openFile;
60 EXTERN Bool			show_autoResize;
61 EXTERN Bool			show_showThisPage;
62 EXTERN Bool			show_updateFile;
63 EXTERN Bool			show_checkFile;
64 EXTERN Bool			show_panner;
65 
66 EXTERN String                  gv_safe_gs_workdir;
67 EXTERN int                     gv_safe_gs_tempdir;
68 
69 EXTERN float                   default_xdpi;           /* default xdpi from ghostview widget */
70 EXTERN float                   default_ydpi;           /* default ydpi from ghostview widget */
71 EXTERN float                   gv_real_xdpi;
72 EXTERN float                   gv_real_ydpi;
73 EXTERN float                   gv_pixel_xdpi;
74 EXTERN float                   gv_pixel_ydpi;
75 EXTERN int                     num_ghosts;             /* number of ghostview widgets active */
76 EXTERN FILE                    *gv_psfile;             /* file to display */
77 EXTERN char                    gv_savepos_filename[GV_MAX_FILENAME_LENGTH];    /* filename used for savepos */
78 EXTERN String                  gv_filename;            /* its filename */
79 EXTERN String                  gv_filename_old;        /* previous filename */
80 EXTERN String                  gv_filename_dsc;        /* file resulting from PDF->DSC conversion */
81 EXTERN String                  gv_filename_unc;        /* name of uncompressed file */
82 EXTERN String                  gv_filename_raw;        /* some useful filename derived from gv_filename */
83 EXTERN int                     current_page;           /* current page being displayed */
84 EXTERN int                     current_llx;            /* current bounding box */
85 EXTERN int                     current_lly;
86 EXTERN int                     current_urx;
87 EXTERN int                     current_ury;
88 EXTERN String                  toc_text;               /* page labels (Table of Contents) */
89 EXTERN int                     toc_entry_length;       /* length of one entry */
90 EXTERN int                     gv_print_mode;          /* printing mode */
91 EXTERN int                     gv_save_mode;           /* saving mode */
92 EXTERN int                     gv_scanstyle;           /* how to scan ps files */
93 EXTERN time_t                  mtime;                  /* last modified time of input file */
94 EXTERN struct document         *doc;                   /* document structure */
95 EXTERN struct document         *olddoc;                /* document structure */
96 EXTERN Atom                    wm_delete_window;       /* Atom sent to destroy a window */
97 EXTERN XErrorHandler           old_Xerror;             /* standard error handler */
98 EXTERN Boolean                 dying;                  /* whether an X error caused our exit */
99 EXTERN XErrorEvent             bomb;                   /* what the error was */
100 
101 EXTERN int			gv_scroll_mode;
102 
103 EXTERN char*			gv_miscmenu_entries_res;
104 EXTERN MiscMenuEntry*		gv_miscmenu_entries;
105 EXTERN char*			gv_magmenu_entries_res;
106 EXTERN MagMenuEntry*		gv_magmenu_entries;
107 EXTERN char*			gv_scales_res;
108 EXTERN Scale*			gv_scales;
109 EXTERN int			gv_scale;
110 EXTERN float			gv_ascale;
111 EXTERN int			gv_scale_base;
112 EXTERN int			gv_scale_base_current;
113 EXTERN int			gv_scale_current;
114 EXTERN int			gv_screen_width;
115 EXTERN int			gv_screen_height;
116 EXTERN char*			gv_medias_res;
117 EXTERN Media*			gv_medias;
118 EXTERN int			gv_pagemedia;
119 EXTERN int			gv_pagemedia_old;
120 EXTERN int			gv_pagemedia_auto;
121 EXTERN int			gv_pagemedia_auto_old;
122 EXTERN int			gv_default_pagemedia;
123 EXTERN int			gv_fallback_pagemedia;
124 EXTERN int			gv_num_std_pagemedia;
125 
126 EXTERN int			gv_orientation;
127 EXTERN int			gv_orientation_old;
128 EXTERN int			gv_orientation_auto;
129 EXTERN int			gv_orientation_auto_old;
130 EXTERN int			gv_fallback_orientation;
131 EXTERN int			gv_swap_landscape;
132 EXTERN int			gv_swap_landscape_old;
133 
134 EXTERN Display			*gv_display;
135 EXTERN Screen			*gv_screen;
136 EXTERN XrmDatabase		gv_database;
137 EXTERN String			gv_class;
138 EXTERN String			gv_name;
139 EXTERN String			gv_user_defaults_file;
140 EXTERN String			gv_print_command;	/* command used to print doc, usually "lpr" */
141 EXTERN String			gv_uncompress_command;	/* command used to uncompress a file */
142 EXTERN int			gv_print_kills_file;	/* whether the print symbiont removes the file after printing */
143 EXTERN int			gv_exiting;		/* flag set when exiting gv */
144 EXTERN String                   gv_dirs;
145 EXTERN String                   gv_filters;
146 EXTERN String                   gv_filter;
147 
148 EXTERN String			gv_gs_interpreter;
149 EXTERN String			gv_gs_x11_device;
150 EXTERN String			gv_gs_x11_alpha_device;
151 EXTERN String			gv_gs_cmd_scan_pdf;	/* command used to extract DSC outlines from a pdf file */
152 EXTERN String			gv_gs_cmd_conv_pdf;	/* command used to convert a pdf file to ps  */
153 EXTERN int			gv_gs_safeDir;
154 EXTERN int			gv_gs_safer;
155 EXTERN int                      gv_gs_quiet;
156 EXTERN int			gv_infoVerbose;
157 EXTERN int			gv_infoSkipErrors;
158 EXTERN int			gv_xinerama;
159 EXTERN String                   gv_gs_arguments;
160 EXTERN String                   gv_pdf_password;
161 
162 /* if a page is requested but gv is busy the following variable
163 holds the number of the requested page.
164 As soon as gv is notified that rendering a page is complete
165 this variable is checked and the corresponding page
166 will be displayed if necessary
167 */
168 EXTERN int			gv_pending_page_request;
169 
170 EXTERN XtAppContext 		app_con;
171 EXTERN AppResources 		app_res;
172 
173 /* Widgets */
174 EXTERN Widget   toplevel;
175 EXTERN Widget      main_control;
176 EXTERN Widget         titlebutton;
177 EXTERN Widget            titlemenu;
178 EXTERN Widget         datebutton;
179 EXTERN Widget            datemenu;
180 EXTERN Widget         locator;
181 EXTERN Widget         fileButton;
182 EXTERN Widget            fileMenu;
183 EXTERN Widget               openEntry;
184 EXTERN Widget               reopenEntry;
185 EXTERN Widget               saveposEntry;
186 EXTERN Widget               updateEntry;
187 EXTERN Widget               printAllEntry;
188 EXTERN Widget               printMarkedEntry;
189 EXTERN Widget               saveAllEntry;
190 EXTERN Widget               saveMarkedEntry;
191 EXTERN Widget               copyrightEntry;
192 EXTERN Widget               quitEntry;
193 EXTERN Widget         stateButton;
194 EXTERN Widget            stateMenu;
195 EXTERN Widget               stopEntry;
196 EXTERN Widget               antialiasEntry;
197 EXTERN Widget               dscEntry;
198 EXTERN Widget               eofEntry;
199 EXTERN Widget               watchFileEntry;
200 EXTERN Widget               sizeEntry;
201 EXTERN Widget               optiongvEntry;
202 EXTERN Widget               optiongsEntry;
203 EXTERN Widget               optionfsEntry;
204 EXTERN Widget               optionsetupEntry;
205 EXTERN Widget               presentationEntry;
206 EXTERN Widget         pageButton;
207 EXTERN Widget            pageMenu;
208 EXTERN Widget               nextEntry;
209 EXTERN Widget               redisplayEntry;
210 EXTERN Widget               prevEntry;
211 EXTERN Widget               centerEntry;
212 EXTERN Widget               currentEntry;
213 EXTERN Widget               oddEntry;
214 EXTERN Widget               evenEntry;
215 EXTERN Widget               unmarkEntry;
216 EXTERN Widget         scaleButton;
217 EXTERN Widget            scaleMenu;
218 EXTERN Widget               *scaleEntry;
219 EXTERN Widget         orientationButton;
220 EXTERN Widget            orientationMenu;
221 EXTERN Widget               autoOrientEntry;
222 EXTERN Widget               portraitEntry;
223 EXTERN Widget               landscapeEntry;
224 EXTERN Widget               upsidedownEntry;
225 EXTERN Widget               seascapeEntry;
226 EXTERN Widget               swapEntry;
227 EXTERN Widget         processButton;
228 EXTERN Widget            processMenu;
229 EXTERN Widget         pagemediaButton;
230 EXTERN Widget		 pagemediaMenu;
231 EXTERN Widget               autoMediaEntry;
232 EXTERN Widget		    *pagemediaEntry;
233 
234 EXTERN Widget         newtocFrame;
235 EXTERN Widget            newtocClip;
236 EXTERN Widget               newtocControl;
237 EXTERN Widget                  newtoc;
238 EXTERN Widget         newtocScroll;
239 
240 EXTERN Widget         w_toggleCurrentPage;
241 EXTERN Widget         w_toggleAllPages;
242 EXTERN Widget         w_toggleEvenPages;
243 EXTERN Widget         w_toggleOddPages;
244 EXTERN Widget         w_unmarkAllPages;
245 EXTERN Widget         w_saveMarkedPages;
246 EXTERN Widget         w_saveAllPages;
247 EXTERN Widget         w_printMarkedPages;
248 EXTERN Widget         w_printAllPages;
249 EXTERN Widget         w_openFile;
250 EXTERN Widget         w_autoResize;
251 EXTERN Widget         w_showThisPage;
252 EXTERN Widget         w_checkFile;
253 EXTERN Widget         w_updateFile;
254 EXTERN Widget         w_nextPage;
255 EXTERN Widget         w_prevPage;
256 
257 EXTERN Widget         pannerFrame;
258 EXTERN Widget            panner;
259 EXTERN Widget            slider;
260 
261 EXTERN Widget         viewFrame;
262 EXTERN Widget            viewClip;
263 EXTERN Widget               viewControl;
264 EXTERN Widget                  page;
265 
266 /* Popup widgets */
267 EXTERN Widget	infopopup;
268 extern OptionPopup gv_options_fs;
269 extern OptionPopup gv_options_gs;
270 extern OptionPopup gv_options_gv;
271 extern OptionPopup gv_options_setup;
272 EXTERN Widget	confirmpopup;
273 EXTERN Widget	dialogpopup;
274 EXTERN Widget	notepopup;
275 EXTERN Widget	versionpopup;
276 
277 EXTERN Widget	FileSel_popup;
278 EXTERN Widget		FileSel;
279 
280 /*
281  * Command line flags
282  *
283  */
284 
285 EXTERN int antialias_p;
286 EXTERN int noantialias_p;
287 EXTERN int safer_p;
288 EXTERN int nosafer_p;
289 EXTERN int safedir_p;
290 EXTERN int nosafedir_p;
291 EXTERN int color_p;
292 EXTERN int grayscale_p;
293 EXTERN int spartan_p;
294 EXTERN int widgetless_p;
295 EXTERN int fullscreen_p;
296 EXTERN int quiet_p;
297 EXTERN int infoverbose_p;
298 EXTERN int debug_p;
299 EXTERN int monochrome_p;
300 EXTERN int media_p;
301 EXTERN char *media_value;
302 EXTERN int orientation_p;
303 EXTERN char *orientation_value;
304 EXTERN int page_p;
305 EXTERN char *page_value;
306 EXTERN int noquiet_p;
307 EXTERN int pixmap_p;
308 EXTERN int nopixmap_p;
309 EXTERN int center_p;
310 EXTERN int nocenter_p;
311 EXTERN int scale_p;
312 EXTERN char *scale_value;
313 EXTERN int magstep_p;
314 EXTERN char *magstep_value;
315 EXTERN int scalebase_p;
316 EXTERN char *scalebase_value;
317 EXTERN int resize_p;
318 EXTERN int noresize_p;
319 EXTERN int swap_p;
320 EXTERN int noswap_p;
321 EXTERN int dsc_p;
322 EXTERN int nodsc_p;
323 EXTERN int eof_p;
324 EXTERN int noeof_p;
325 EXTERN int watch_p;
326 EXTERN int nowatch_p;
327 EXTERN int ad_p;
328 EXTERN char *ad_value;
329 EXTERN int style_p;
330 EXTERN char *style_value;
331 EXTERN int arguments_p;
332 EXTERN float ascale_p;
333 EXTERN char *arguments_value;
334 
335 #undef EXTERN
336 #endif /* _GV_MAIN_GLOBALS_H_ */
337