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