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 + -
显示快捷键?