forms.h

来自「Genetic Programing of music」· C头文件 代码 · 共 2,195 行 · 第 1/5 页

H
2,195
字号
/* * Internal colormap size. Not really very meaningful as fl_mapcolor * and company allow color "leakage", that is, although only FL_MAX_COLS * are kept in the internal colormap, the server might have substantially * more colors allocated */#define FL_MAX_COLS   1024/* * FL graphics state information. Some are redundant. */typedef struct{    XVisualInfo *xvinfo;    XFontStruct *cur_fnt;	/* current font in default GC       */    Colormap colormap;		/* colormap valid for xvinfo        */    Window trailblazer;		/* a valid window for xvinfo        */    int vclass, depth;		/* visual class and color depth     */    int rgb_bits;		/* primary color resolution         */    int dithered;		/* true if dithered color           */    int pcm;			/* true if colormap is not shared   */    GC gc[16];			/* working GC                       */    GC textgc[16];		/* GC used exclusively for text     */    GC dimmedGC;		/* A GC having a checkboard stipple */    unsigned long lut[FL_MAX_COLS];	/* secondary lookup table         */    unsigned int rshift, rmask, rbits;    unsigned int gshift, gmask, gbits;    unsigned int bshift, bmask, bbits;} FL_STATE;#define FL_State FL_STATE	/* for compatibility *//***** Global variables ******/extern Display *fl_display;extern int fl_screen;extern Window fl_root;		/* root window                */extern Window fl_vroot;		/* virtual root window        */extern int fl_scrh, fl_scrw;	/* screen dimension in pixels */extern int fl_vmode;/* current version only runs in single visual mode */#define  fl_get_vclass()        fl_vmode#define  fl_get_form_vclass(a)  fl_vmodeextern FL_State fl_state[];extern char *fl_ul_magic_char;extern int fl_mode_capable(int /* mode */ , int /* warn */ );#define fl_default_win()       (fl_state[fl_vmode].trailblazer)#define fl_default_window()    (fl_state[fl_vmode].trailblazer)/* * All pixmaps used by FL_OBJECT to simulate double buffering have the * following entries in the structure. FL_Coord x,y are used to shift * the origin of the drawing routines */typedef struct{    Pixmap pixmap;    Window win;    Visual *visual;    FL_Coord x, y;    unsigned int w, h;    int depth;} FL_pixmap;/* fonts related */#define FL_MAX_FONTSIZES   10typedef struct{    XFontStruct *fs[FL_MAX_FONTSIZES];	/* cached fontstruct */    short size[FL_MAX_FONTSIZES];	/* cached sizes      */    short nsize;		/* cached so far     */    char fname[80];		/* without size info     */} FL_FONT;/* * Some basic drawing routines */typedef XPoint FL_POINT;/* rectangles */extern void fl_rectangle(int, FL_Coord, FL_Coord, FL_Coord, FL_Coord, FL_COLOR);extern void fl_rectbound(FL_Coord, FL_Coord, FL_Coord, FL_Coord, FL_COLOR);#define fl_rectf(x,y,w,h,c)   fl_rectangle(1, x,y,w,h,c)#define fl_rect(x,y,w,h,c)    fl_rectangle(0, x,y,w,h,c)/* rectangle with rounded-corners */extern void fl_roundrectangle(int, FL_Coord, FL_Coord, FL_Coord, FL_Coord, FL_COLOR);#define fl_roundrectf(x,y,w,h,c) fl_roundrectangle(1,x,y,w,h,c)#define fl_roundrect(x,y,w,h,c) fl_roundrectangle(0,x,y,w,h,c)/* general polygon and polylines */extern void fl_polygon(int, FL_POINT *, int n, FL_COLOR);#define fl_polyf(p,n,c)  fl_polygon(1, p, n, c)#define fl_polyl(p,n,c)  fl_polygon(0, p, n, c)#define fl_polybound(p,n,c) do {fl_polyf(p,n,c);fl_polyl(p,n,FL_BLACK);}while(0)extern void fl_lines(FL_POINT *, int n, FL_COLOR);extern void fl_line(FL_Coord, FL_Coord, FL_Coord, FL_Coord, FL_COLOR);#define fl_simple_line fl_lineextern void fl_dashedlinestyle(const char *, int);extern void fl_drawmode(int);#define fl_diagline(x,y,w,h,c) fl_line(x,y,(x)+(w)-1,(y)+(h)-1,c)/* line attributes */extern void fl_linewidth(int);extern void fl_linestyle(int);/** ellipses **/extern void fl_oval(int, FL_Coord, FL_Coord, FL_Coord, FL_Coord, FL_COLOR);extern void fl_ovalbound(FL_Coord, FL_Coord, FL_Coord, FL_Coord, FL_COLOR);#define fl_ovalf(x,y,w,h,c)     fl_oval(1,x,y,w,h,c)#define fl_ovall(x,y,w,h,c)     fl_oval(0,x,y,w,h,c)#define fl_oval_bound           fl_ovalbound#define fl_circf(x,y,r,col)  fl_oval(1,(x)-(r),(y)-(r),2*(r),2*(r),col)#define fl_circ(x,y,r,col)   fl_oval(0,(x)-(r),(y)-(r),2*(r),2*(r),col)/* arcs */extern void fl_pieslice(int, FL_Coord, FL_Coord, FL_Coord, FL_Coord,			int, int, FL_COLOR);#define fl_arcf(x,y,r,a1,a2,c)  fl_pieslice(1,(x)-(r),(y)-(r),\                                (2*(r)),(2*(r)), a1,a2,c)#define fl_arc(x,y,r,a1,a2,c)  fl_pieslice(0,(x)-(r),(y)-(r), \                               (2*(r)),(2*(r)), a1,a2,c)/* misc. stuff */extern void fl_add_vertex(FL_Coord, FL_Coord);extern void fl_add_float_vertex(float, float);extern void fl_reset_vertex(void);extern void fl_endline(void), fl_endpolygon(void), fl_endclosedline(void);#define fl_bgnline       fl_reset_vertex#define fl_bgnclosedline fl_reset_vertex#define fl_bgnpolygon    fl_reset_vertex#define fl_v2s(v)        fl_add_vertex(v[0], v[1])#define fl_v2i(v)        fl_add_vertex(v[0], v[1])#define fl_v2f(v)        fl_add_float_vertex(v[0], v[1])#define fl_v2d(v)        fl_add_float_vertex(v[0], v[1])/* high level drawing routines */extern void fl_drw_frame(int, FL_Coord, FL_Coord, FL_Coord, FL_Coord,			 FL_COLOR, int);extern void fl_drw_checkbox(int, FL_Coord, FL_Coord, FL_Coord, FL_Coord,			    FL_COLOR, int);/* * Interfaces */extern XFontStruct *fl_get_fontstruct(int, int);#define fl_get_font_struct fl_get_fontstruct#define fl_get_fntstruct fl_get_font_structextern Window fl_get_mouse(FL_Coord *, FL_Coord *, unsigned int *);extern void fl_set_mouse(FL_Coord, FL_Coord);extern Window fl_get_win_mouse(Window, FL_Coord *, FL_Coord *, unsigned *);extern Window fl_get_form_mouse(FL_FORM *, FL_Coord *, FL_Coord *, unsigned *);extern FL_FORM *fl_win_to_form(Window);extern void fl_set_form_icon(FL_FORM *, Pixmap, Pixmap);#define fl_raise_form(f) if(f->window) XRaiseWindow(fl_display,f->window)#define fl_lower_form(f) if(f->window) XLowerWindow(fl_display,f->window)#define fl_set_foreground(gc,c) XSetForeground(fl_display,gc,fl_get_pixel(c))#define fl_set_background(gc,c) XSetBackground(fl_display,gc,fl_get_pixel(c))/* General windowing support */extern Window fl_wincreate(const char *);extern Window fl_winshow(Window);extern Window fl_winopen(const char *);extern void fl_winhide(Window);extern void fl_winclose(Window);extern void fl_winset(Window);extern Window fl_winget(void);extern void fl_winresize(Window, FL_Coord, FL_Coord);extern void fl_winmove(Window, FL_Coord, FL_Coord);extern void fl_winreshape(Window, FL_Coord, FL_Coord, FL_Coord, FL_Coord);extern void fl_winicon(Window, Pixmap, Pixmap);extern void fl_winbackground(Window, unsigned long);extern void fl_winstepunit(Window, FL_Coord, FL_Coord);extern int fl_winisvalid(Window);extern void fl_wintitle(Window, const char *);extern void fl_winposition(FL_Coord, FL_Coord);#define fl_pref_winposition fl_winposition#define fl_win_background     fl_winbackground#define fl_set_winstepunit    fl_winstepunitextern void fl_winminsize(Window, FL_Coord, FL_Coord);extern void fl_winmaxsize(Window, FL_Coord, FL_Coord);extern void fl_winaspect(Window, FL_Coord, FL_Coord);extern void fl_reset_winconstraints(Window);extern void fl_winsize(FL_Coord, FL_Coord);extern void fl_initial_winsize(FL_Coord, FL_Coord);#define fl_pref_winsize  fl_winsizeextern void fl_initial_winstate(int);extern Colormap fl_create_colormap(XVisualInfo *, int);extern void fl_wingeometry(FL_Coord, FL_Coord, FL_Coord, FL_Coord);#define fl_pref_wingeometry  fl_wingeometryextern void fl_initial_wingeometry(FL_Coord, FL_Coord, FL_Coord, FL_Coord);extern void fl_noborder(void);extern void fl_transient(void);extern void fl_get_winsize(Window, FL_Coord *, FL_Coord *);extern void fl_get_winorigin(Window, FL_Coord *, FL_Coord *);extern void fl_get_wingeometry(Window, FL_Coord *, FL_Coord *,			       FL_Coord *, FL_Coord *);/* for compatibility */#define fl_get_win_size          fl_get_winsize#define fl_get_win_origin        fl_get_winorigin#define fl_get_win_geometry      fl_get_wingeometry#define fl_initial_winposition   fl_pref_winposition#define fl_get_display()           fl_display#define FL_FormDisplay(form)       fl_display#define FL_ObjectDisplay(object)   fl_display/* the window an object belongs */#define FL_ObjWin(o)   (o->objclass != FL_CANVAS ? \                        o->form->window : fl_get_canvas_id(o))#define FL_OBJECT_WID  FL_ObjWin/*  all registerable events, including Client Message */#define FL_ALL_EVENT  (KeyPressMask|KeyReleaseMask|      \                      ButtonPressMask|ButtonReleaseMask|\                      EnterWindowMask|LeaveWindowMask|    \                      ButtonMotionMask|PointerMotionMask)/* Timer related */#define FL_TIMER_EVENT 0x40000000Lextern int fl_XNextEvent(XEvent *);extern int fl_XPeekEvent(XEvent *);extern int fl_XEventsQueued(int);extern void fl_XPutBackEvent(XEvent *);extern const XEvent *fl_last_event(void);typedef int (*FL_APPEVENT_CB) (XEvent *, void *);extern FL_APPEVENT_CB fl_set_event_callback(FL_APPEVENT_CB, void *);extern FL_APPEVENT_CB fl_set_idle_callback(FL_APPEVENT_CB, void *);extern long fl_addto_selected_xevent(Window, long);extern long fl_remove_selected_xevent(Window, long);#define fl_add_selected_xevent  fl_addto_selected_xevent/* * Group some WM stuff into a structure for easy maintainance */enum{    FL_WM_SHIFT = 1,    FL_WM_NORMAL = 2};typedef struct{    int rpx, rpy;		/* reparenting offset for full border */    int trpx, trpy;		/* reparenting offset for transient   */    int bw;			/* additional border                  */    int rep_method;		/* 1 for shifting, 2 for normal       */    unsigned pos_request;	/* USPOSITION or PPOSITION            */} FL_WM_STUFF;extern FL_APPEVENT_CB fl_add_event_callback(Window, int,					    FL_APPEVENT_CB, void *);extern void fl_remove_event_callback(Window, int);extern void fl_activate_event_callbacks(Window);extern XEvent *fl_print_xevent_name(const char *, const XEvent *);#define metakey_down(mask)     ((mask) & Mod1Mask)#define shiftkey_down(mask)    ((mask) & ShiftMask)#define controlkey_down(mask)  ((mask) & ControlMask)#define button_down(mask)      (((mask) & Button1Mask) || \                               ((mask) & Button2Mask) || \			       ((mask) & Button3Mask))#define fl_keypressed          fl_keysym_pressed/****************** Resources ***************//* bool is int. FL_NONE is defined elsewhere */typedef enum{    FL_SHORT = 10, FL_BOOL, FL_INT, FL_LONG, FL_FLOAT, FL_STRING} FL_RTYPE;typedef struct{    const char *res_name;	/* resource name                        */    const char *res_class;	/* resource class                       */    FL_RTYPE type;		/* FL_INT, FL_FLOAT, FL_BOOL,FL_STRING  */    void *var;			/* address for the variable             */    const char *defval;		/* default setting in string form       */    int nbytes;			/* used only for strings                */} FL_RESOURCE;#define FL_resource FL_RESOURCE#define FL_CMD_OPT   XrmOptionDescRecextern Display *fl_initialize(int *, char *[], const char *,			      FL_CMD_OPT *, int);extern void fl_finish(void);extern const char *fl_get_resource(const char *, const char *,				   FL_RTYPE, const char *, void *, int);extern void fl_set_resource(const char *str, const char *val);extern void fl_get_app_resources(FL_resource *, int n);extern void fl_set_graphics_mode(int, int);extern void fl_set_visualID(long);extern int fl_keysym_pressed(KeySym);#define buttonLabelSize  buttonFontSize#define sliderLabelSize  sliderFontSize#define inputLabelSize   inputFontSize/* All Form control variables. Named closely as its resource name */typedef struct{    float rgamma, ggamma, bgamma;    int debug, sync;    int depth, vclass, doubleBuffer;    int ulPropWidth, ulThickness;	/* underline stuff       */    int buttonFontSize;    int sliderFontSize;    int inputFontSize;    int browserFontSize;    int menuFontSize;    int choiceFontSize;    int labelFontSize;		/* all other labels fonts */    int pupFontSize, pupFontStyle;	/* font for pop-up menus  */    int privateColormap;    int sharedColormap;    int standardColormap;    int leftScrollBar;    int backingStore;    int coordUnit;    int borderWidth;    int safe;    int xFirst;    char *rgbfile;		/* where RGB file is     */    char vname[24];} FL_IOPT;#define FL_SBIT(n)   (1<<(n))#define FL_PDButtonLabelSize FL_PDButtonFontSize#define FL_PDSliderLabelSize FL_PDSliderFontSize#define FL_PDInputLabelSize  FL_PDInputFontSize/* program default masks */enum{    FL_PDDepth = FL_SBIT(1),    FL_PDClass = FL_SBIT(2),    FL_PDDouble = FL_SBIT(3),    FL_PDSync = FL_SBIT(4),    FL_PDPrivateMap = FL_SBIT(5),    FL_PDLeftScrollBar = FL_SBIT(6),    FL_PDPupFontSize = FL_SBIT(7),    FL_PDButtonFontSize = FL_SBIT(8),    FL_PDInputFontSize = FL_SBIT(9),    FL_PDSliderFontSize = FL_SBIT(10),    FL_PDVisual = FL_SBIT(11),    FL_PDULThickness = FL_SBIT(12),    FL_PDULPropWidth = FL_SBIT(13),    FL_PDBS = FL_SBIT(14),    FL_PDCoordUnit = FL_SBIT(15),    FL_PDDebug = FL_SBIT(16),    FL_PDSharedMap = FL_SBIT(17),    FL_PDStandardMap = FL_SBIT(18),    FL_PDBorderWidth = FL_SBIT(19),    FL_PDSafe = FL_SBIT(20),    FL_PDMenuFontSize = FL_SBIT(21),    FL_PDBrowserFontSize = FL_SBIT(22),    FL_PDChoiceFontSize = FL_SBIT(23),    FL_PDLabelFontSize = FL_SBIT(24)};#define FL_PDButtonLabel   FL_PDButtonLabelSizeextern void fl_set_defaults(unsigned long, FL_IOPT *);extern void fl_set_tabstop(const char *s);extern void fl_get_defaults(FL_IOPT *);extern int fl_get_visual_depth(void);extern const char *fl_vclass_name(int);extern int fl_vclass_val(const char *);extern void fl_set_ul_property(int, int);extern void fl_set_clipping(FL_Coord, FL_Coord, FL_Coord, FL_Coord);extern void fl_set_gc_clipping(GC, FL_Coord, FL_Coord, FL_Coord, FL_Coord);extern void fl_unset_gc_clipping(GC);extern void fl_set_clippings(XRectangle *, int);extern void fl_unset_clipping(void);extern GC fl_textgc;#define fl_set_text_clipping(a,b,c,d)   fl_set_gc_clipping(fl_textgc,a,b,c,d)#define fl_unset_text_clipping() fl_unset_gc_clipping(fl_textgc)#endif /* XBasic.h *} *//* * $Id: bitmap.h,v 0.81 1996/06/28 04:23:12 zhao Beta $ * *   Object Class: Bitmap */#ifndef FL_BITMAP_H#define FL_BITMAP_H		/* { */#define    FL_NORMAL_BITMAP      0/***** Defaults *****/

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?