/* * This file is part of XForms. * * 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 Lesser General Public License * along with XForms. If not, see . */ /** * \file fd2ps.h */ #ifndef FD2PS_H #define FD2PS_H #include "include/forms.h" /* configuration infomation */ typedef struct { FILE * fp; float xdpi, /* screen resolution */ ydpi; int colorps; /* false if grayscale */ int eps; /* true for EPS */ float paper_w, /* default paper size */ paper_h; const char * paper_name; int bw; /* current border width */ int user_bw; /* bw specified on cmdline */ int verbose; int inverted; /* take care of coord switch */ int landscape; /* print version */ int unit; /* unit of measure */ int pages; /* how many pages */ int page; /* current page */ int epsf_import; /* true if importing EPS */ float xscale, yscale; float gamma; /* color adjustment */ int pack, len, lastc, literal; char * rgbfile; int xpmtops_direct; /* internal stuff */ const char * poly_name; /* PS poly name */ } PSInfo; typedef struct { float x, y; } Point; #define MAX_CONTENT 64 /* max browser initialization lines */ #define rgb2gray( r, g, b ) \ ( 0.299 * ( r ) + 0.587 * ( g ) + 0.114 * ( b ) + 0.4 ) /* since we never take interactions with PS device, we can use a * common SPEC to hold all attributes of all types of objects * that have effect on the drawings. */ typedef struct { float ax, /* mapping factor */ bx, ay, by; float xval, yval; float xmin, ymin; float xmax, ymax; float xstep, /* positioner */ ystep; float lstep, /* counter */ sstep; float slsize; /* sliders */ float val; /* */ float max, min; int prec; int int_val; float thetai, thetaf; float origin; int direction; /* pixmap/bitmap stuff */ char * file; int dx, /* alignment margin */ dy; int align; int show_focus; /* slider spec */ int right; float xsl, ysl, wsl, hsl, sbw; int has_sb; int lines, screenlines; char ** content; /* for input & browser */ short * mode; int fontstyle, fontsize; int v_pref, h_pref; } ALLSPEC; #define SPEC ALLSPEC extern PSInfo psinfo, *flps; extern void ps_color(long); /* basic drawing of simple geomtric figures */ extern void ps_draw_init( void ); extern void ps_rectangle( int, float, float, float, float, long ); extern void ps_roundrectangle( int, float, float, float, float, long ); extern void ps_lines( Point *, int, long ); extern void ps_line( float, float, float, float, long ); extern void ps_poly( int, Point *, int, long ); extern int ps_draw_symbol( const char *, float, float, float, float, long ); extern void ps_oval( int, float, float, float, float, long ); extern void ps_pieslice( int fill, float x, float y, float w, float h, int t1, int t2, long col ); extern void ps_circ( int, float, float, float, long ); extern void ps_arc( int fill, float x, float y, float r, int t1, int t2, long col ); extern void ps_set_clipping( int, int, int, int ); extern void ps_unset_clipping( void ); #define ps_rectf( x, y, w, h, c ) ps_rectangle( 1, x, y, w, h, c ) #define ps_rect( x, y, w, h, c ) ps_rectangle( 0, x, y, w, h, c ) extern void ps_draw_box( int, float, float, float, float, long, float ); extern void ps_draw_tbox( int, float, float, float, float, long, float ); extern void ps_draw_frame( int, float, float, float, float, long, int ); extern void ps_draw_checkbox( int, float, float, float, float, long, int ); /* basic text drawing routines */ extern void ps_draw_text( int, float, float, float, float, long, int, int, const char * ); extern void ps_draw_text_beside( int, float, float, float, float, long, int, int, const char * ); extern void ps_text_init( void ); /* FL Object drawing routine */ extern void ps_show_form( FL_FORM * ); extern int load_form_definiation( const char * ); extern char *ul_magic_char; extern char *fl_strdup( const char * ); extern int find_type_val( int, const char * ); extern void ps_invalidate_color_cache( void ); extern void ps_set_linewidth( float, float ); extern void ps_get_linewidth( float *, float * ); extern void ps_reset_linewidth( void ); #define ps_start_lw ps_set_linewidth #define ps_end_lw ps_reset_linewidth extern void set_object_modifier( void ( * )( FL_OBJECT * ) ); extern int fl_get_namedcolor( const char *s ); extern void flps_set_object_shortcut( FL_OBJECT *, const char *, int ); extern void print_version( int ); extern const char *get_version( void ); extern int unit_val(const char *); extern const char *unit_name( int ); extern void ps_log( const char *s ); extern void apply_gamma( float ); extern const char *ascii_date( void ); extern const char *whoami( void ); extern const char *find_class_name( int ); extern int find_class_val( const char * ); extern void ps_set_font( int, int ); extern int load_form_definition( const char * ); int fl_is_inside_lalign( int align ); extern int fl_is_outside_lalign( int align ); extern int fl_is_center_lalign( int align ); extern int fl_to_inside_lalign( int align ); extern int fl_to_outside_lalign( int align ); extern void fl_get_outside_align( int align, int x, int y, int w, int h, int *new_align, int *newx, int *newy ); extern void fl_get_hv_align( int, int *, int * ); extern void draw_bitmap( const char *, float, float, float, float, long, long ); extern int get_gray255( long ); extern void get_scale_unit( int, float *, float * ); extern void draw_xpm( FL_OBJECT * ); extern void fl_query_imap( long col, int *r, int *g, int *b ); extern void get_paper_size( const char *, float *, float * ); extern void list_papers( const char * ); extern void ps_invalidate_font_cache( void ); extern void emit_epsf_import_command( void ); extern FL_OBJECT *flps_make_object( int, int, int, int, int, int, const char *, void * ); #define PS_SPECIAL( c ) ( c == '(' || c == ')' \ || c == '[' || c == ']' \ || c == ' ' || c == '<' \ || c == '>' || c == '%' \ || c == '#' || c == '/' ) extern void ps_output( const char *, ... ); extern void ps_verbatim( const char *, ... ); #define ISBUTTON( cls ) \ ( cls == FL_BUTTON || cls == FL_LIGHTBUTTON \ || cls == FL_CHECKBUTTON || cls == FL_ROUNDBUTTON \ || cls == FL_ROUND3DBUTTON || cls == FL_PIXMAPBUTTON \ || cls == FL_BITMAPBUTTON || cls == FL_SCROLLBUTTON \ || cls == FL_LABELBUTTON ) #define ISCHOICE( cls ) \ ( cls == FL_CHOICE || cls == FL_MENU || cls == FL_BROWSER ) extern int xpmtops_direct( const char *, int, int, long ); typedef struct { int red, green, blue, alpha; char key[ 4 ]; char name[ 32 ]; } fd2psCMAP; extern int image2colorps( short *, int, int, fd2psCMAP *, int, const char * ); extern int image2grayps( short *, int, int, fd2psCMAP *, int, const char * ); extern char *ps_literal( const char * ); #endif /* * Local variables: * tab-width: 4 * indent-tabs-mode: nil * End: */

AltStyle によって変換されたページ (->オリジナル) /