forms.h

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

H
2,195
字号
struct forms_;struct fl_pixmap;typedef struct flobjs_{    struct forms_ *form;	/* the form this object belong        */    struct flobjs_ *prev;	/* prev. obj in form                  */    struct flobjs_ *next;	/* next. obj in form                  */    int objclass;		/* class of object, button, slider etc */    int type;			/* type within the class              */    int boxtype;		/* what kind of box type              */    FL_Coord x, y, w, h;	/* obj. location and size             */    FL_Coord bw;    FL_COLOR col1, col2;	/* colors of obj                      */    char *label;		/* object label                       */    FL_COLOR lcol;		/* label color                        */    int align;    int lsize, lstyle;		/* label size and style               */    long *shortcut;    int (*prehandle) (struct flobjs_ *, int, FL_Coord, FL_Coord, int, void *);    int (*handle) (struct flobjs_ *, int, FL_Coord, FL_Coord, int, void *);    int (*posthandle) (struct flobjs_ *, int, FL_Coord, FL_Coord, int, void *);    void (*object_callback) (struct flobjs_ *, long);    long argument;    void *spec;			/* instantiation                      */    void *flpixmap;		/* pixmap double buffering stateinfo  */    int use_pixmap;		/* true to use pixmap double buffering */    int double_buffer;		/* only used by mesa/gl canvas        */    /* re-configure preference */    unsigned int resize;	/* what to do if WM resizes the FORM     */    unsigned int nwgravity;	/* how to re-position top-left corner    */    unsigned int segravity;	/* how to re-position lower-right corner */    /* some interaction flags */    int pushed;    int focus;    int belowmouse;    int active;			/* if accept event */    int input;    int wantkey;    int radio;    int automatic;    int redraw;    int visible;    int clip;    unsigned long click_timeout;    void *c_vdata;		/* for class use */    long c_ldata;		/* for class use */    /* the following are for application programs */    void *u_vdata;		/* anything user likes                */    long u_ldata;		/* anything user lines                */} FL_OBJECT;/* callback function for an entire form */typedef void (*FL_FORMCALLBACKPTR) (struct flobjs_ *, void *);/* object callback function      */typedef void (*FL_CALLBACKPTR) (FL_OBJECT *, long);/* preemptive callback function  */typedef int (*FL_RAW_CALLBACK) (struct forms_ *, void *);/* at close (WM menu delete/close etc.) */typedef int (*FL_FORM_ATCLOSE) (struct forms_ *, void *);/* deactivate/activate callback */typedef void (*FL_FORM_ATDEACTIVATE) (struct forms_ *, void *);typedef void (*FL_FORM_ATACTIVATE) (struct forms_ *, void *);typedef int (*FL_HANDLEPTR) (FL_OBJECT *, int, FL_Coord, FL_Coord, int, void *);extern FL_OBJECT *FL_EVENT;/*** FORM ****/typedef struct forms_{    char *label;		/* window title            */    unsigned long window;	/* X resource ID for window */    FL_Coord x, y, w, h;	/* current geometry info   */    FL_Coord hotx, hoty;	/* hot-spot of the form    */    struct flobjs_ *first;    struct flobjs_ *last;    struct flobjs_ *focusobj;    FL_FORMCALLBACKPTR form_callback;    FL_FORM_ATACTIVATE activate_callback;    FL_FORM_ATDEACTIVATE deactivate_callback;    void *form_cb_data, *activate_data, *deactivate_data;    FL_RAW_CALLBACK key_callback;    FL_RAW_CALLBACK push_callback;    FL_RAW_CALLBACK crossing_callback;    FL_RAW_CALLBACK motion_callback;    FL_RAW_CALLBACK all_callback;    unsigned long compress_mask;    unsigned long evmask;    /* WM_DELETE_WINDOW message handler */    FL_FORM_ATCLOSE close_callback;    void *close_data;    void *u_vdata;		/* for application         */    void *flpixmap;		/* back buffer             */    unsigned long icon_pixmap;    unsigned long icon_mask;    /* interaction and other flags */    int vmode;			/* current X visual class  */    int deactivated;		/* true if sensitive       */    int use_pixmap;		/* true if dbl buffering   */    int frozen;			/* true if sync change     */    int visible;		/* true if mapped          */    int wm_border;		/* window manager info     */    unsigned int prop;		/* other attributes        */    int has_auto;    int top;} FL_FORM;/* * Async IO stuff */enum{    FL_READ = 1,    FL_WRITE = 2,    FL_EXCEPT = 4};/* IO other than XEvent Q */typedef void (*FL_IO_CALLBACK) (int, void *);extern void fl_add_io_callback(int, unsigned, FL_IO_CALLBACK, void *);extern void fl_remove_io_callback(int, unsigned, FL_IO_CALLBACK);/* signals */typedef void (*FL_SIGNAL_HANDLER) (int, void *);extern void fl_add_signal_callback(int, FL_SIGNAL_HANDLER, void *);extern void fl_remove_signal_callback(int);extern void fl_signal_caught(int);extern void fl_app_signal_direct(int);/*  Some utility stuff */typedef struct{    int val;    const char *name;} FL_VN_PAIR;extern int fl_get_vn_value(FL_VN_PAIR *, const char *);extern const char *fl_get_vn_name(FL_VN_PAIR *, int);extern unsigned long fl_msleep(unsigned long);/* *  Basic public routine prototypes */extern int fl_library_version(int *, int *);/** Generic routines that deal with FORMS **/extern FL_FORM *fl_bgn_form(int, FL_Coord, FL_Coord);extern void fl_end_form(void);extern FL_OBJECT *fl_do_forms(void);extern FL_OBJECT *fl_check_forms(void);extern FL_OBJECT *fl_do_only_forms(void);extern FL_OBJECT *fl_check_only_forms(void);extern void fl_freeze_form(FL_FORM *);extern void fl_set_focus_object(FL_FORM *, FL_OBJECT *);#define fl_set_object_focus   fl_set_focus_objectextern FL_FORM_ATCLOSE fl_set_form_atclose(FL_FORM *, FL_FORM_ATCLOSE, void *);extern FL_FORM_ATCLOSE fl_set_atclose(FL_FORM_ATCLOSE, void *);extern FL_FORM_ATACTIVATE fl_set_form_atactivate(FL_FORM *,						 FL_FORM_ATACTIVATE, void *);extern FL_FORM_ATDEACTIVATE fl_set_form_atdeactivate(FL_FORM *,					      FL_FORM_ATDEACTIVATE, void *);extern void fl_unfreeze_form(FL_FORM *);extern void fl_deactivate_form(FL_FORM *);extern void fl_activate_form(FL_FORM *);extern void fl_deactivate_all_forms(void);extern void fl_activate_all_forms(void);extern void fl_freeze_all_forms(void);extern void fl_unfreeze_all_forms(void);extern void fl_scale_form(FL_FORM *, double, double);extern void fl_set_form_position(FL_FORM *, FL_Coord, FL_Coord);extern void fl_set_form_title(FL_FORM *, const char *);extern void fl_set_form_property(FL_FORM *, unsigned);extern void fl_set_app_mainform(FL_FORM *);extern FL_FORM *fl_get_app_mainform(void);extern void fl_set_app_nomainform(int);extern void fl_set_form_callback(FL_FORM *, FL_FORMCALLBACKPTR, void *);#define  fl_set_form_call_back    fl_set_form_callbackextern void fl_set_form_size(FL_FORM *, FL_Coord, FL_Coord);extern void fl_set_form_hotspot(FL_FORM *, FL_Coord, FL_Coord);extern void fl_set_form_hotobject(FL_FORM *, FL_OBJECT *);extern void fl_set_form_minsize(FL_FORM *, FL_Coord, FL_Coord);extern void fl_set_form_maxsize(FL_FORM *, FL_Coord, FL_Coord);extern void fl_set_form_event_cmask(FL_FORM *, unsigned long);extern unsigned long fl_get_form_event_cmask(FL_FORM *);extern void fl_set_form_geometry(FL_FORM *, FL_Coord, FL_Coord,				 FL_Coord, FL_Coord);#define fl_set_initial_placement fl_set_form_geometryextern long fl_show_form(FL_FORM *, int, int, const char *);extern void fl_hide_form(FL_FORM *);extern void fl_free_form(FL_FORM *);extern void fl_redraw_form(FL_FORM *);extern void fl_set_form_dblbuffer(FL_FORM *, int);extern long fl_prepare_form_window(FL_FORM *, int, int, const char *);extern long fl_show_form_window(FL_FORM *);extern FL_RAW_CALLBACK fl_register_raw_callback(FL_FORM *, unsigned long,						FL_RAW_CALLBACK);#define fl_register_call_back fl_register_raw_callbackextern FL_OBJECT *fl_bgn_group(void);extern FL_OBJECT *fl_end_group(void);extern void fl_addto_group(FL_OBJECT *);/****** Routines that deal with FL_OBJECTS ********/extern void fl_set_object_boxtype(FL_OBJECT *, int);extern void fl_set_object_bw(FL_OBJECT *, int);extern void fl_set_object_resize(FL_OBJECT *, unsigned);extern void fl_set_object_gravity(FL_OBJECT *, unsigned, unsigned);extern void fl_set_object_lsize(FL_OBJECT *, int);extern void fl_set_object_lstyle(FL_OBJECT *, int);extern void fl_set_object_lcol(FL_OBJECT *, FL_COLOR);extern void fl_set_object_return(FL_OBJECT *, int);extern void fl_set_object_lalign(FL_OBJECT *, int);	/* to be removed */extern void fl_set_object_shortcut(FL_OBJECT *, const char *, int);extern void fl_set_object_shortcutkey(FL_OBJECT *, unsigned int);extern void fl_set_object_dblbuffer(FL_OBJECT *, int);extern void fl_set_object_color(FL_OBJECT *, FL_COLOR, FL_COLOR);extern void fl_set_object_label(FL_OBJECT *, const char *);extern void fl_set_object_position(FL_OBJECT *, FL_Coord, FL_Coord);extern void fl_set_object_size(FL_OBJECT *, FL_Coord, FL_Coord);extern void fl_set_object_automatic(FL_OBJECT *, int);extern void fl_draw_object_label(FL_OBJECT *);#define  fl_set_object_dblclick(ob, timeout)  (ob)->click_timeout = (timeout);extern void fl_set_object_geometry(FL_OBJECT *, FL_Coord, FL_Coord,				   FL_Coord, FL_Coord);extern void fl_fit_object_label(FL_OBJECT *, FL_Coord, FL_Coord);/* no much get (yet ?) */extern void fl_get_object_geometry(FL_OBJECT * ob, FL_Coord *, FL_Coord *,				   FL_Coord *, FL_Coord *);extern void fl_get_object_position(FL_OBJECT *, FL_Coord *, FL_Coord *);/* this one takes into account the label */extern void fl_compute_object_geometry(FL_OBJECT *, FL_Coord *, FL_Coord *,				       FL_Coord *, FL_Coord *);extern void fl_call_object_callback(FL_OBJECT *);extern FL_HANDLEPTR fl_set_object_prehandler(FL_OBJECT *, FL_HANDLEPTR);extern FL_HANDLEPTR fl_set_object_posthandler(FL_OBJECT *, FL_HANDLEPTR);extern FL_CALLBACKPTR fl_set_object_callback(FL_OBJECT *, FL_CALLBACKPTR, long);#define fl_set_object_align   fl_set_object_lalign#define fl_set_call_back      fl_set_object_callbackextern void fl_redraw_object(FL_OBJECT *);extern void fl_scale_object(FL_OBJECT *, double, double);extern void fl_show_object(FL_OBJECT *);extern void fl_hide_object(FL_OBJECT *);extern void fl_free_object(FL_OBJECT *);extern void fl_delete_object(FL_OBJECT *);extern void fl_trigger_object(FL_OBJECT *);extern void fl_activate_object(FL_OBJECT *);extern void fl_deactivate_object(FL_OBJECT *);extern int fl_enumerate_fonts(void (*)(const char *s), int);extern void fl_set_font_name(int, const char *);extern void fl_set_font(int, int);/* routines that facilitate free object */extern int fl_get_char_height(int, int, int *, int *);extern int fl_get_char_width(int, int);extern int fl_get_string_height(int, int, const char *, int, int *, int *);extern int fl_get_string_width(int, int, const char *, int);extern int fl_get_string_widthTAB(int, int, const char *, int);extern void fl_get_string_dimension(int, int, const char *, int, int *, int *);#define fl_get_string_size  fl_get_string_dimensionextern void fl_get_align_xy(int, int, int, int, int, int, int,			    int, int, int *, int *);extern void fl_drw_text(int, FL_Coord, FL_Coord, FL_Coord, FL_Coord,			FL_COLOR, int, int, char *);extern void fl_drw_text_beside(int, FL_Coord, FL_Coord, FL_Coord, FL_Coord,			       FL_COLOR, int, int, char *);#define fl_draw_text(a,x,y,w,h,c,st,sz,s)    \      (((a) & FL_ALIGN_INSIDE) ? fl_drw_text:fl_drw_text_beside)\      (a,x,y,w,h,c,st,sz,s)extern void fl_drw_text_cursor(int, FL_Coord, FL_Coord, FL_Coord, FL_Coord,			       int, int, int, char *, int, int);extern void fl_drw_box(int, FL_Coord, FL_Coord, FL_Coord, FL_Coord,		       FL_COLOR, int);typedef void (*FL_DRAWPTR) (FL_Coord x, FL_Coord y, FL_Coord w, FL_Coord h,			    int, FL_COLOR);extern int fl_add_symbol(const char *, FL_DRAWPTR, int);extern int fl_draw_symbol(const char *, FL_Coord, FL_Coord, FL_Coord, FL_Coord,			  FL_COLOR);extern unsigned long fl_mapcolor(FL_COLOR, int, int, int);extern long fl_mapcolorname(FL_COLOR, const char *);#define fl_mapcolor_name  fl_mapcolornameextern unsigned long fl_getmcolor(FL_COLOR, int *, int *, int *);extern void fl_free_colors(FL_COLOR *, int);extern void fl_free_pixels(unsigned long *, int);extern void fl_set_color_leak(int);extern unsigned long fl_get_pixel(FL_COLOR);#define fl_get_flcolor   fl_get_pixelextern void fl_get_icm_color(FL_COLOR, int *, int *, int *);extern void fl_set_icm_color(FL_COLOR, int, int, int);extern void fl_color(FL_COLOR);extern void fl_bk_color(FL_COLOR);extern void fl_textcolor(FL_COLOR);extern void fl_bk_textcolor(FL_COLOR);extern void fl_set_gamma(double, double, double);extern void fl_show_errors(int);/* Some macros */#define FL_max(a,b)      ( (a) > (b) ? (a):(b) )#define FL_min(a,b)      ( (a) < (b) ? (a):(b) )#define FL_abs(a)        ( (a) > 0 ? (a):(-(a)))#define FL_nint(a)       ( (a) > 0 ? ((a) + 0.5):((a) - 0.5))typedef int (*FL_FSCB) (const char *, void *);/* utilities for new objects */extern FL_FORM *fl_current_form;extern void fl_add_object(FL_FORM *, FL_OBJECT *);extern void fl_addto_form(FL_FORM *);extern FL_OBJECT *fl_make_object(int, int, FL_Coord, FL_Coord,			    FL_Coord, FL_Coord, const char *, FL_HANDLEPTR);extern void fl_set_coordunit(int);extern int fl_get_coordunit(void);extern void fl_set_border_width(int);extern int fl_get_border_width(void);extern void fl_flip_yorigin(void);/* this gives more flexibility for future changes */#define fl_free       free#define fl_malloc     malloc#define fl_calloc     calloc#define fl_realloc    realloc#endif /* Basic.h *} *//* * $Id: XBasic.h,v 0.81 1996/06/28 04:23:12 zhao Beta $ * *  X Window dependent stuff * */#ifndef FL_XBASIC_H#define FL_XBASIC_H		/* { */#include <X11/Xlib.h>#include <X11/Xutil.h>#include <X11/Xatom.h>#include <X11/keysym.h>#include <X11/Xresource.h>#define FL_MINDEPTH  1/* FL_xxx does not do anything anymore, but kept for compatibility */enum{    FL_illegalVisual = -1,    FL_StaticGray = StaticGray,    FL_GrayScale = GrayScale,    FL_StaticColor = StaticColor,    FL_PseudoColor = PseudoColor,    FL_TrueColor = TrueColor,    FL_DirectColor = DirectColor,    FL_DefaultVisual = 10	/* special request */};enum{    FL_North = NorthGravity,    FL_NorthEast = NorthEastGravity,    FL_NorthWest = NorthWestGravity,    FL_South = SouthGravity,    FL_SouthEast = SouthEastGravity,    FL_SouthWest = SouthWestGravity,    FL_East = EastGravity,    FL_West = WestGravity,    FL_NoGravity = ForgetGravity,    FL_ForgetGravity = ForgetGravity};#ifndef GreyScale#  define GreyScale   GrayScale#  define StaticGrey  StaticGray#endif#define FL_is_gray(v)  (v==GrayScale || v==StaticGray)#define FL_is_rgb(v)   (v==TrueColor || v==DirectColor)

⌨️ 快捷键说明

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