/* * XCONTROL.H * * Author: Arvin Schnell */ #define CPX_MESSAGE -1 #define CPX_OKBUTTON 1 #define CPX_8x16 3 typedef struct { int flags; int x, y, w, h; } MOUSE_EVENT; typedef struct { int x; int y; int mbutton; int kbstate; } MOUSE_RET; typedef struct { int magic; struct { unsigned reserved : 13; unsigned resident : 1; unsigned boot_init : 1; unsigned set_only : 1; } flags; char cpx_id[4]; int cpx_version; char icon_name[14]; int icon_data[48]; int icon_info; char cpx_name[18]; int obj_state; char reserved[370]; } CPX_HEADER; typedef struct { void *text_start; long text_len; void *data_start; long data_len; void *bbs_start; long bbs_len; } CPX_SEGMENTS; typedef struct cpxblock { char filename[14]; int ok; int valid; CPX_SEGMENTS *segments; struct cpxblock *next; CPX_HEADER header; } CPX_BLOCK; typedef struct { int (*cpx_call)( GRECT *work ); void (*cpx_draw)( GRECT *clip ); void (*cpx_wmove)( GRECT *work ); void (*cpx_timer)( int *event ); void (*cpx_key)( int kbstate, int key, int *event ); void (*cpx_button)( MOUSE_RET *mrets, int nclicks, int *event ); void (*cpx_m1)( MOUSE_RET *mrets, int *event ); void (*cpx_m2)( MOUSE_RET *mrets, int *event ); int (*cpx_evhook)( int event, int *msgbuff, MOUSE_RET *mrets, int *key, int *nclicks ); void (*cpx_close)( int app_term ); } CPX_INFO; typedef struct { int vdi_handle; int booting; int reserved; int rsc_init; CPX_BLOCK* (*get_rootblock)( void ); int (*write_header)( CPX_BLOCK *header ); void (*rsh_fix)( int num_obs, int num_frstr, int num_fring, int num_tree, OBJECT *rs_object, TEDINFO *rs_tedinfo, char *rs_strings[], ICONBLK *rs_iconblk, BITBLK *rs_bitblk, long *rs_frstr, long *rs_frimg, long *rs_trindex, struct foobar *rs_imdope ); void (*rsh_obfix)( OBJECT *tree, int ob_index ); int (*popup_do)( char *items[], int num_items, int default_item, int font_size, GRECT *button, GRECT *world ); void (*sl_size)( OBJECT *tree, int base, int slider, int num_items, int visible, int direction, int min_size ); void (*sl_x)( OBJECT *tree, int base, int slider, int value, int num_min, int mun_max, void (*foo)(void) ); void (*sl_y)( OBJECT *tree, int base, int slider, int value, int num_min, int mun_max, void (*foo)(void) ); void (*sl_arrow)( OBJECT *tree, int base, int slider, int obj, int inc, int min, int max, int *numvar, int direction, void (*foo)(void) ); void (*sl_dragx)( OBJECT *tree, int base, int slider, int min, int max, int *numvar, void (*foo)(void) ); void (*sl_dragy)( OBJECT *tree, int base, int slider, int min, int max, int *numvar, void (*foo)(void) ); int (*form_do)( OBJECT *tree, int start_field, int puntmsg[] ); GRECT* (*firstrect)( GRECT *prect ); GRECT* (*nextrect)( void ); void (*set_evntmask)( int mask, MOUSE_EVENT *m1, MOUSE_EVENT *m2, long time ); int (*alert_do)( int id ); int (*cpx_save)( void *ptr, long num ); void* (*get_buffer)( void ); int (*getcookie)( long cookie, long *p_value ); int country_code; void (*mfsave)( int saveit, MFORM *mf ); } CPX_PARAMS;