File: pflps.h

package info (click to toggle)
libforms 1.2.4-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 11,192 kB
  • sloc: ansic: 98,419; sh: 11,156; makefile: 959
file content (334 lines) | stat: -rw-r--r-- 9,427 bytes parent folder | download | duplicates (7)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
/*
 *  This file is part of the XForms library package.
 *
 *  XForms is free software; you can redistribute it and/or modify it
 *  under the terms of the GNU Lesser General Public License as
 *  published by the Free Software Foundation; either version 2.1, or
 *  (at your option) any later version.
 *
 *  XForms is distributed in the hope that it will be useful, but
 *  WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 *  Lesser General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public License
 *  along with XForms.  If not, see <http://www.gnu.org/licenses/>.
 */


/**
 * \file pflps.h
 *
 * private headers of postscript support. Must come
 * after forms.h
 */

#ifndef PFLPS_H
#define PFLPS_H

#include "include/forms.h"

/* configuration infomation. contains all information needed for
 * both regular gui postscript and image_postscript members
 */

typedef struct {
    /* The first entries must be identical to the ones of a FLPS_CONTROL
       structure defined in flps.h */

    int          ps_color;
    int          orientation;
    int          auto_fit;
    int          drawbox;
    int          eps;
    float        xdpi,
                 ydpi;
    float        paper_w,
                 paper_h;
    float        gamma;
    const char * tmpdir;
    int          printer_dpi;
    float        hm,
                 vm;
    float        xscale,
                 yscale;
    int          scale_text;
    int          first_page_only;
    int          clip;

    /* Now follow elements not from the FLPS_CONTROL structure */

    FILE       * fp;
    int          lastc,
                 literal,
                 len;
    int          pack;
    int          verbose;

    /* cache */

    int          cur_lw,            /* line width                */
                 last_lw;
    int          cur_style,         /* font style and size       */
                 cur_size;
    FL_COLOR     cur_color;         /* color cache               */
    int          landscape;
    float        final_xscale,
                 final_yscale;

    /* private fields for regular flps  */

    int          unit;              /* unit of measure           */
    int          pages;             /* how many pages            */
    int          page;              /* current page              */
    int          epsf_import;       /* true if importing EPS     */
    int          inverted;          /* take care of coord switch */
    int          user_bw;           /* bw specified on cmdline   */
    int          bw;                /* current border width      */
    const char * poly_name;         /* PS poly name              */

    /* private field for image postscript */

    char       * prefix;            /* output file prefix        */
    int          misct,             /* misc. margins         */
                 miscl,
                 miscb,
                 miscr;
    int          lastr,
                 lastg,
                 lastb;
    int          comment;
    int          isRGBColor;
    int          rotation;
    float        s2px;             /* screen to paper scaling        */
    float        s2py;             /* screen to paper scaling        */
} FLPSInfo;

extern FLPSInfo *flps;

extern void flps_color( FL_COLOR );

extern void flps_rgbcolor( int,
                           int,
                           int );

extern int flps_get_gray255( FL_COLOR );

extern void flps_emit_prolog( void );

extern void flps_emit_header( const char *,
                              int,
                              int,
                              int,
                              int,
                              int );

extern void flps_switch_flps( FLPSInfo * );

extern void flps_restore_flps( void );


/* basic drawing of simple geomtric figures */

extern void flps_draw_init( void );

extern void flps_rectangle( int,
                            int,
                            int,
                            int,
                            int,
                            FL_COLOR );

extern void flps_roundrectangle( int,
                                 int,
                                 int,
                                 int,
                                 int,
                                 FL_COLOR );

extern void flps_lines( FL_POINT *,
                        int,
                        FL_COLOR );

extern void flps_line( int,
                       int,
                       int,
                       int,
                       FL_COLOR );

extern void flps_poly( int,
                       FL_POINT *,
                       int,
                       FL_COLOR );

extern int flps_draw_symbol( const char *,
                             int,
                             int,
                             int,
                             int,
                             FL_COLOR );

extern void flps_oval( int,
                       int,
                       int,
                       int,
                       int,
                       FL_COLOR );

extern void flps_pieslice( int,
                           int,
                           int,
                           int,
                           int,
                           int,
                           int,
                           FL_COLOR );

extern void flps_circ( int,
                       int,
                       int,
                       int,
                       FL_COLOR );

extern void flps_arc( int,
                      int,
                      int,
                      int,
                      int,
                      int,
                      FL_COLOR );


#define flps_rectf( x, y, w, h, c )   flps_rectangle( 1, x, y, w, h, c )
#define flps_rect( x, y, w, h, c )    flps_rectangle( 0, x, y, w, h, c )


extern void flps_draw_box( int,
                           int,
                           int,
                           int,
                           int,
                           FL_COLOR,
                           int );

extern void flps_draw_tbox( int,
                            int,
                            int,
                            int,
                            int,
                            FL_COLOR,
                            int );

extern void flps_draw_frame( int,
                             int,
                             int,
                             int,
                             int,
                             FL_COLOR,
                             int );

extern void flps_draw_checkbox( int,
                                int,
                                int,
                                int,
                                int,
                                FL_COLOR,
                                int );


/* basic text drawing routines */

extern void flps_draw_text( int,
                            int,
                            int,
                            int,
                            int,
                            FL_COLOR,
                            int,
                            int,
                            const char * );

extern void flps_draw_text_beside( int,
                                   int,
                                   int,
                                   int,
                                   int,
                                   FL_COLOR,
                                   int,
                                   int,
                                   const char * );

extern void flps_text_init( void );

extern int find_type_val( int,
                          const char * );

extern void flps_reset_cache( void );

extern void flps_invalidate_color_cache( void );

extern void flps_invalidate_font_cache( void );

extern void flps_invalidate_linewidth_cache( void );

extern void flps_invalidate_symbol_cache( void );

extern void flps_linewidth( int );

extern int flps_get_linewidth( void );

extern void flps_reset_linewidth( void );

extern void flps_linestyle( int );

extern int flps_get_linestyle( void );

extern void flps_log( const char * );

extern void flps_output( const char *,
                         ... );

extern void flps_set_font( int,
                           int );

extern int get_gray255( FL_COLOR );

extern void get_scale_unit( int,
                            float *,
                            float * );

extern void ps_invalidate_font_cache(void);

extern char *ps_literal( const char * );

extern void flps_set_clipping( int,
                               int,
                               int,
                               int);

extern void flps_unset_clipping( void );

extern void flps_apply_gamma( float );

extern FL_COLOR flps_get_namedcolor( const char * );


#define PS_SPECIAL( c )  (    ( c ) == '('   \
                           || ( c ) == ')'   \
                           || ( c ) == '['   \
                           || ( c ) == ']'   \
                           || ( c ) == '<'   \
                           || ( c ) == '>'   \
                           || ( c ) == '%'   \
                           || ( c ) == '#'   \
                           || ( c ) == '/' )

#endif  /* ifndef PFLPS_H */


/*
 * Local variables:
 * tab-width: 4
 * indent-tabs-mode: nil
 * End:
 */