00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef RESOURCES_H
00019 #define RESOURCES_H
00020
00021 #include "paintop.h"
00022
00023 #define NUMSHADEPATS 21
00024 #define NUMTINTPATS 20
00025 #define NUMPATTERNS 22
00026 #define NUMFILLPATS NUMSHADEPATS+NUMTINTPATS+NUMPATTERNS
00027
00028
00029 #define LETTER_WIDTH 10200
00030 #define LETTER_HEIGHT 13200
00031 #define A4_WIDTH 9921
00032 #define A4_HEIGHT 14031
00033
00034
00035 #define MIN_ZOOM 0.01
00036 #define MAX_ZOOM 100
00037
00038
00039 #define DEF_DEPTH 50
00040 #define MIN_DEPTH 0
00041 #define MAX_DEPTH 999
00042
00043
00044 #define MIN_FONT_SIZE 1
00045 #define MAX_FONT_SIZE 500
00046
00047
00048
00049
00050 #define MIN_X_FONT_SIZE 5
00051 #define MAX_X_FONT_SIZE MAX_FONT_SIZE
00052
00053
00054 #define MAX_LINE_WIDTH 500
00055
00056
00057 #define MIN_POLY_SIDES 3
00058 #define MAX_POLY_SIDES 200
00059
00060
00061 #define MIN_TEXT_STEP 0
00062 #define MAX_TEXT_STEP 100
00063
00064
00065 #define MIN_BOX_RADIUS 2
00066 #define MAX_BOX_RADIUS 1000
00067
00068
00069 #define NUM_STD_COLS 32
00070
00071 #define MAX_USR_COLS 512
00072
00073
00074 #define NUMPAPERSIZES 29
00075
00076
00077 #define PAPER_LETTER 0
00078 #define PAPER_A4 13
00079
00080 #define Color int
00081
00082
00083
00084 #define DEF_MAX_IMAGE_COLS 64
00085
00086
00087 #define MAX_RECENT_FILES 9
00088 #define DEF_RECENT_FILES 5
00089
00090
00091 #define MAX_COLORMAP_SIZE MAX_USR_COLS
00092
00093
00094 #define DEF_JPEG_QUALITY 75
00095
00096
00097 #define DEF_EXPORT_MARGIN 0
00098
00099
00100
00101 #define IMAGE_PALETTE 0
00102 #define IMAGE_RGB 1
00103
00104 struct Cmap {
00105 unsigned short red, green, blue;
00106 unsigned long pixel;
00107 };
00108
00109 typedef struct {
00110 char *name,
00111 *rgb;
00112 } fig_colors ;
00113
00114
00115 extern Pixmap fig_icon;
00116
00117
00118 extern char xfig_version[];
00119
00120
00121
00122
00123 extern XColor black_color, white_color;
00124
00125
00126 extern char orig_dir[PATH_MAX+2];
00127
00128
00129 extern Boolean update_figs;
00130
00131 #ifdef USE_XPM
00132 #include <xpm.h>
00133 extern XpmAttributes xfig_icon_attr;
00134 #endif
00135 extern fig_colors colorNames[NUM_STD_COLS + 1];
00136 extern char *short_clrNames[NUM_STD_COLS + 1];
00137 extern Pixel colors[NUM_STD_COLS+MAX_USR_COLS];
00138 extern XColor user_colors[MAX_USR_COLS];
00139 extern XColor undel_user_color;
00140 extern XColor n_user_colors[MAX_USR_COLS];
00141 extern XColor save_colors[MAX_USR_COLS];
00142 extern int num_usr_cols, n_num_usr_cols;
00143 extern int current_memory;
00144 extern Boolean colorUsed[MAX_USR_COLS];
00145 extern Boolean colorFree[MAX_USR_COLS];
00146 extern Boolean n_colorFree[MAX_USR_COLS];
00147 extern Boolean all_colors_available;
00148 extern Pixel dark_gray_color, med_gray_color, lt_gray_color;
00149 extern Pixel pageborder_color;
00150 extern Pixel zero_lines_color;
00151 extern int max_depth, min_depth;
00152 extern char tool_name[200];
00153 extern int export_background_color;
00154 extern Boolean display_fractions;
00155 extern char *userhome;
00156 extern struct _pics *pictures;
00157 extern float scale_factor;
00158
00159
00160 extern int avail_image_cols;
00161
00162 extern XColor image_cells[MAX_COLORMAP_SIZE];
00163
00164
00165
00166 typedef struct _appres {
00167 Boolean allownegcoords;
00168 int balloon_delay;
00169 char *boldFont;
00170 char *browser;
00171 int but_per_row;
00172 char *buttonFont;
00173 char *canvasbackground;
00174 char *canvasforeground;
00175 Boolean DEBUG;
00176 Boolean dontswitchcmap;
00177 Boolean installowncmap;
00178 Boolean drawzerolines;
00179 char *exportLanguage;
00180 Boolean flushleft;
00181 char *geometry;
00182 char *iconGeometry;
00183 char *image_editor;
00184 Boolean INCHES;
00185 int internalborderwidth;
00186 int jpeg_quality;
00187 char *keyFile;
00188 Boolean landscape;
00189 Boolean latexfonts;
00190 char *library_dir;
00191 float magnification;
00192 int max_image_colors;
00193 Boolean monochrome;
00194 Boolean multiple;
00195 char *normalFont;
00196 char *pageborder;
00197 char *paper_size;
00198 int papersize;
00199 Boolean RHS_PANEL;
00200 char *pdf_viewer;
00201 int rulerthick;
00202 Boolean scalablefonts;
00203 Boolean ShowAllButtons;
00204 Boolean showballoons;
00205 Boolean showlengths;
00206 Boolean shownums;
00207 Boolean show_pageborder;
00208 Boolean specialtext;
00209 char *spellcheckcommand;
00210
00211 int spinner_delay;
00212 int spinner_rate;
00213 int startfillstyle;
00214 float startfontsize;
00215 int startgridmode;
00216 char *startlatexFont;
00217 int startlinewidth;
00218 int startposnmode;
00219 char *startpsFont;
00220 float starttextstep;
00221 Boolean tablet;
00222 float tmp_height;
00223 float tmp_width;
00224 Boolean tracking;
00225 int transparent;
00226
00227 float userscale;
00228 char *userunit;
00229 float zoom;
00230 char *version;
00231
00232 int export_margin;
00233 Boolean flipvisualhints;
00234 Boolean rigidtext;
00235 Boolean hiddentext;
00236 Boolean showdepthmanager;
00237 char *grid_color;
00238 int smooth_factor;
00239 Boolean icon_view;
00240 int library_icon_size;
00241 Boolean splash;
00242 char *zerolines;
00243 int freehand_resolution;
00244 char *tgrid_unit;
00245 Boolean overlap;
00246 char *ghostscript;
00247 Boolean correct_font_size;
00248 int encoding;
00249 #ifdef I18N
00250 Boolean international;
00251 String font_menu_language;
00252 Boolean euc_encoding;
00253 Boolean latin_keyboard;
00254 Boolean always_use_fontset;
00255 XFontSet fixed_fontset;
00256 XFontSet normal_fontset;
00257 XFontSet bold_fontset;
00258 int fontset_size;
00259 String xim_input_style;
00260 String fig2dev_localize_option;
00261 #ifdef I18N_USE_PREEDIT
00262 String text_preedit;
00263 #endif
00264 #endif
00265
00266 } appresStruct, *appresPtr;
00267 extern appresStruct appres;
00268
00269 typedef struct {
00270 int length, ascent, descent;
00271 } pr_size;
00272
00273 typedef struct {
00274 unsigned int r_width, r_height, r_left, r_top;
00275 } RectRec;
00276
00277 typedef struct {
00278 int type;
00279 char *label;
00280 caddr_t info;
00281 } MenuItemRec;
00282
00283 struct Menu {
00284 int m_imagetype;
00285 #define MENU_IMAGESTRING 0x00
00286 #define MENU_GRAPHIC 0x01
00287 caddr_t m_imagedata;
00288 int m_itemcount;
00289 MenuItemRec *m_items;
00290 struct Menu *m_next;
00291 caddr_t m_data;
00292 };
00293
00294
00295 struct paper_def {
00296 char *sname;
00297 char *fname;
00298 int width,height;
00299 };
00300
00301 typedef struct Menu MenuRec;
00302
00303 typedef XImage *PIXRECT;
00304 typedef pr_size PR_SIZE;
00305 typedef RectRec RECT;
00306
00307 extern float ZOOM_FACTOR;
00308 extern float PIC_FACTOR;
00309
00310 extern Window main_canvas;
00311 extern Window canvas_win;
00312 extern Window msg_win, sideruler_win, topruler_win;
00313
00314 extern Cursor cur_cursor;
00315 extern Cursor arrow_cursor, bull_cursor, buster_cursor, crosshair_cursor,
00316 null_cursor, text_cursor, pick15_cursor, pick9_cursor,
00317 panel_cursor, l_arrow_cursor, lr_arrow_cursor, r_arrow_cursor,
00318 u_arrow_cursor, ud_arrow_cursor, d_arrow_cursor, wait_cursor,
00319 magnify_cursor;
00320
00321 extern Widget tool;
00322 extern XtAppContext tool_app;
00323
00324 extern Widget canvas_sw, ps_fontmenu,
00325 latex_fontmenu,
00326 msg_form, msg_panel, name_panel, cmd_form, mode_panel,
00327 d_label, e_label, mousefun,
00328 ind_panel, ind_box, upd_ctrl,
00329 unitbox_sw, sideruler_sw, topruler_sw;
00330
00331 extern Display *tool_d;
00332 extern Screen *tool_s;
00333 extern Window tool_w;
00334 extern Widget tool_form;
00335 extern int tool_sn;
00336 extern int tool_vclass;
00337 extern Visual *tool_v;
00338 extern int tool_dpth;
00339 extern int tool_cells;
00340 extern int image_bpp;
00341 extern int screen_wd, screen_ht;
00342 extern Colormap tool_cm, newcmap;
00343 extern Boolean swapped_cmap;
00344 extern Atom wm_delete_window;
00345 extern int num_recent_files;
00346 extern int max_recent_files;
00347 extern int splash_onscreen;
00348
00349 extern GC gc, button_gc, ind_button_gc, mouse_button_gc,
00350 fill_color_gc, pen_color_gc, blank_gc, ind_blank_gc,
00351 mouse_blank_gc, gccache[NUMOPS], grid_gc,
00352 fillgc, fill_gc[NUMFILLPATS],
00353 tr_gc, tr_xor_gc, tr_erase_gc,
00354 sr_gc, sr_xor_gc, sr_erase_gc;
00355
00356 extern Color grid_color;
00357 extern Pixmap fill_pm[NUMFILLPATS],fill_but_pm[NUMPATTERNS];
00358 extern float fill_pm_zoom[NUMFILLPATS],fill_but_pm_zoom[NUMFILLPATS];
00359 extern XColor x_fg_color, x_bg_color;
00360 extern unsigned long but_fg, but_bg;
00361 extern unsigned long ind_but_fg, ind_but_bg;
00362 extern unsigned long mouse_but_fg, mouse_but_bg;
00363
00364
00365 extern char *TMPDIR;
00366
00367
00368 extern char *fig2dev_path;
00369 extern char fig2dev_cmd[PATH_MAX];
00370
00371 extern String text_translations;
00372
00373
00374
00375 extern char *orient_items[2];
00376 extern char *just_items[2];
00377 extern struct paper_def paper_sizes[NUMPAPERSIZES];
00378 extern char *multiple_pages[2], *overlap_pages[2];
00379
00380
00381
00382 extern char *offset_unit_items[3];
00383 #endif
00384
00385 extern int RULER_WD;
00386
00387
00388
00389 #define XFIG_ENV_GIF_EDITOR getenv("XFIG_GIF_EDITOR")
00390
00391
00392
00393
00394 extern Boolean pic_obj_read;
00395
00396 typedef struct _recent_file_struct {
00397 char *name;
00398 Widget menu;
00399 } _recent_files;
00400
00401 extern _recent_files recent_files[];
00402