#line 1/*ACE 4 0473 */ #ifndef GEMFAST_H #define GEMFAST_H 1 /* Tell the world GEMFAST is available */ #define GEMFAST_VERSION 0x0130 /* Tell the world what version we're on */ typedef struct { int contrl[11]; int global[80]; int intin[128]; int ptsin[128]; int intout[45]; int ptsout[128]; void *addrin[128]; void *addrout[128]; } GEMPARBLK; typedef struct { unsigned int rsh_vrsn; unsigned int rsh_object; unsigned int rsh_tedinfo; unsigned int rsh_iconblk; unsigned int rsh_bitblk; unsigned int rsh_frstr; unsigned int rsh_string; unsigned int rsh_imdata; unsigned int rsh_frimg; unsigned int rsh_trindex; unsigned int rsh_nobs; unsigned int rsh_ntree; unsigned int rsh_nted; unsigned int rsh_nib; unsigned int rsh_nbb; unsigned int rsh_nstring; unsigned int rsh_nimages; unsigned int rsh_rssize; } RSHDR; #define MAX_LEN 81 /* max string length */ /* types for form_alert() */ #define FO_NOTE 1 #define FO_WAIT 2 #define FO_STOP 3 #define NO_ICON 0 /* (j)ens */ #define NOTE 1 #define WAIT 2 #define STOP 3 #define WA_UPPAGE 0 #define WA_DNPAGE 1 #define WA_UPLINE 2 #define WA_DNLINE 3 #define WA_LFPAGE 4 #define WA_RTPAGE 5 #define WA_LFLINE 6 #define WA_RTLINE 7 typedef struct _AESPB { long cb_pcontrol; long cb_pglobal; long cb_pintin; long cb_pintout; long cb_padrin; long cb_padout; } AESPB; extern int global[]; extern int gl_apversion; /* = global[0] */ extern int gl_apcount; /* = global[1] */ extern int gl_apid; /* = global[2] */ extern long gl_apprivate; /* = global[3,4]*/ extern long gl_apptree; /* = global[5,6]*/ extern AESPB aespb; #define VIS_HOLLOW 0 /* VDI inside fill styles - new names */ #define VIS_SOLID 1 #define VIS_PATTERN 2 #define VIS_HATCH 3 #define VIS_UDPTRN 4 #define VIP_HOLLOW 0 /* VDI inside fill patterns - new names */ #define VIP_1PTRN 1 #define VIP_2PTRN 2 #define VIP_3PTRN 3 #define VIP_4PTRN 4 #define VIP_5PTRN 5 #define VIP_6PTRN 6 #define VIP_SOLID 7 #define IS_HOLLOW 0 /* VDI inside fill patterns */ #define IS_SOLID 1 #define IS_PATTERN 2 #define IS_HATCH 3 #define IS_UDPTRN 4 #define IP_HOLLOW 0 /* VDI inside fill patterns */ #define IP_1PTRN 1 #define IP_2PTRN 2 #define IP_3PTRN 3 #define IP_4PTRN 4 #define IP_5PTRN 5 #define IP_6PTRN 6 #define IP_SOLID 7 #define MD_REPLACE 1 /* VDI normal graphics drawing modes */ #define MD_TRANS 2 #define MD_XOR 3 #define MD_ERASE 4 #define ALL_WHITE 0 /* VDI bit blt rules */ #define S_AND_D 1 #define S_AND_NOTD 2 #define S_ONLY 3 #define NOTS_AND_D 4 #define D_ONLY 5 #define S_XOR_D 6 #define S_OR_D 7 #define NOT_SORD 8 #define NOT_SXORD 9 #define D_INVERT 10 #define NOT_D 10 #define S_OR_NOTD 11 #define NOT_S 12 #define NOTS_OR_D 13 #define NOT_SANDD 14 #define ALL_BLACK 15 #define IBM 3 /* font types */ #define SMALL 5 #define MU_KEYBD 0x0001 /* evnt_multi flags */ #define MU_BUTTON 0x0002 #define MU_M1 0x0004 #define MU_M2 0x0008 #define MU_MESAG 0x0010 #define MU_TIMER 0x0020 #define MU_MENTRY 0x0000 /* evnt_mouse flags */ #define MU_MEXIT 0x0001 #define K_RSHIFT 0x0001 /* keyboard states */ #define K_LSHIFT 0x0002 #define K_CTRL 0x0004 #define K_ALT 0x0008 #define K_ALTERNATE 0x0008 /* added by --Holger */ #define MN_SELECTED 10 /* event message values */ #define WM_REDRAW 20 #define WM_TOPPED 21 #define WM_CLOSED 22 #define WM_FULLED 23 #define WM_ARROWED 24 #define WM_HSLID 25 #define WM_VSLID 26 #define WM_SIZED 27 #define WM_MOVED 28 #define WM_NEWTOP 29 #define WM_UNTOPPED 30 /* AES 3.3 */ #define WM_ONTOP 31 /* AES 3.3 */ #define AC_OPEN 40 #define AC_CLOSE 41 #define AP_TERM 50 /* AES 4.0 */ #define AP_TFAIL 51 /* AES 4.0 */ #define AP_RESCHG 57 /* AES 4.0 */ #define SHUT_COMPLETED 60 /* AES 4.0 */ #define RESCH_COMPLETED 61 /* AES 4.0 */ #define AP_DRAGDROP 63 /* AES 4.0 */ #define SH_WDRAW 72 /* AES 4.0 */ #define CH_EXIT 80 /* AES 4.0 */ #define FMD_START 0 /* form_dial opcodes */ #define FMD_GROW 1 #define FMD_SHRINK 2 #define FMD_FINISH 3 #define ROOT 0 /* rsrc_gaddr structure types */ #define R_TREE 0 #define R_OBJECT 1 #define R_TEDINFO 2 #define R_ICONBLK 3 #define R_BITBLK 4 #define R_STRING 5 #define R_IMAGEDATA 6 #define R_OBSPEC 7 #define R_TEPTEXT 8 #define R_TEPTMPLT 9 #define R_TEPVALID 10 #define R_IBPMASK 11 #define R_IBPDATA 12 #define R_IBPTEXT 13 #define R_BIPDATA 14 #define R_FRSTR 15 #define R_FRIMG 16 #define NAME 0x0001 /* Window Attributes */ #define CLOSER 0x0002 #define CLOSE 0x0002 /* (j)ens */ #define FULLER 0x0004 #define FULL 0x0004 /* (j)ens */ #define MOVER 0x0008 #define MOVE 0x0008 /* (j)ens */ #define INFO 0x0010 #define SIZER 0x0020 #define SIZE 0x0020 /* (j)ens */ #define UPARROW 0x0040 #define DNARROW 0x0080 #define VSLIDE 0x0100 #define LFARROW 0x0200 #define RTARROW 0x0400 #define HSLIDE 0x0800 #define WC_BORDER 0 /* wind_calc flags */ #define WC_WORK 1 #define WF_KIND 1 /* wind_get flags */ #define WF_NAME 2 #define WF_INFO 3 #define WF_WORKXYWH 4 #define WF_CURRXYWH 5 #define WF_PREVXYWH 6 #define WF_FULLXYWH 7 #define WF_HSLIDE 8 #define WF_VSLIDE 9 #define WF_TOP 10 #define WF_FIRSTXYWH 11 #define WF_NEXTXYWH 12 #define WF_RESVD 13 #define WF_NEWDESK 14 #define WF_HSLSIZE 15 #define WF_VSLSIZE 16 #define WF_SCREEN 17 #define WF_COLOR 18 /* AES 3.3 */ #define WF_DCOLOR 19 /* AES 3.3 */ #define WF_OWNER 20 /* AES 3.3 */ #define WF_BEVENT 24 /* AES 3.31 */ #define WF_BOTTOM 25 /* AES 3.31 */ #define END_UPDATE 0 /* wind_update flags */ #define BEG_UPDATE 1 #define END_MCTRL 2 #define BEG_MCTRL 3 #define ARROW 0 /* graf_mouse mouse types */ #define TEXT_CRSR 1 #define HOURGLASS 2 #define BUSY_BEE 2 #define BUSYBEE 2 /* (j)ens */ #define BEE 2 #define POINT_HAND 3 #define FLAT_HAND 4 #define THIN_CROSS 5 #define THICK_CROSS 6 #define OUTLN_CROSS 7 #define USER_DEF 255 #define M_OFF 256 #define M_ON 257 #define M_SAVE 258 /* MultiTOS */ #define M_RESTORE 259 /* MultiTOS */ #define M_PREV 260 /* MultiTOS */ #define MAX_DEPTH 8 /* max depth of search or draw */ #define NO_OBJECT -1 /* value returned by objc_find(), et. al. */ #define G_BOX 20 /* object types */ #define G_TEXT 21 #define G_BOXTEXT 22 #define G_IMAGE 23 #define G_USERDEF 24 #define G_PROGDEF 24 #define G_IBOX 25 #define G_BUTTON 26 #define G_BOXCHAR 27 #define G_STRING 28 #define G_FTEXT 29 #define G_FBOXTEXT 30 #define G_ICON 31 #define G_TITLE 32 #define G_CICON 33 /* MultoTOS */ #define NONE 0x0000 /* object flags */ #define SELECTABLE 0x0001 #define DEFAULT 0x0002 #define EXIT 0x0004 #define EDITABLE 0x0008 #define RBUTTON 0x0010 #define LASTOB 0x0020 #define TOUCHEXIT 0x0040 #define HIDETREE 0x0080 #define INDIRECT 0x0100 #define FL3DIND 0x0200 /* MultiTOS */ #define FL3DBAK 0x0400 /* MultiTOS */ #define FL3DACT 0x0600 /* MultiTOS: Mask only */ #define NORMAL 0x0000 /* Object states */ #define SELECTED 0x0001 #define CROSSED 0x0002 #define CHECKED 0x0004 #define DISABLED 0x0008 #define OUTLINED 0x0010 #define SHADOWED 0x0020 #define WHITE 0 /* Object colors */ #define BLACK 1 #define RED 2 #define GREEN 3 #define BLUE 4 #define CYAN 5 #define YELLOW 6 #define MAGENTA 7 #define LWHITE 8 #define LBLACK 9 #define LRED 10 #define LGREEN 11 #define LBLUE 12 #define LCYAN 13 #define LYELLOW 14 #define LMAGENTA 15 #define ED_START 0 /* types for objc_edit() */ #define EDSTART 0 #define ED_INIT 1 #define EDINIT 1 #define ED_CHAR 2 #define EDCHAR 2 #define ED_END 3 #define EDEND 3 #define TE_LEFT 0 /* editable text justification */ #define TE_RIGHT 1 #define TE_CNTR 2 /* VDI Memory Form Definition Block */ #ifndef FDADDR /* v1.3: this typedef has been added to */ typedef char *FDADDR; /* help provide compatibility between */ #endif /* bindings systems. */ typedef struct { FDADDR fd_addr; int fd_w; int fd_h; int fd_wdwidth; int fd_stand; int fd_nplanes; int fd_r1; int fd_r2; int fd_r3; } FDB; #define MFDB FDB /* MFDB added for Laser compatibily */ typedef struct { /* Mouse Form Definition Block */ int mf_xhot; int mf_yhot; int mf_nplanes; int mf_fg; int mf_bg; int mf_mask[16]; int mf_data[16]; } MFORM; typedef struct cicon_data { int num_planes; /* number of planes */ int *col_data; /* pointer to data bitmap */ int *col_mask; /* pointer to mask bitmap */ int *sel_data; /* pointer to selected bitmap */ int *sel_mask; struct cicon_data *next_res; } CICON; typedef struct { int ob_next; int ob_head; int ob_tail; int ob_type; int ob_flags; int ob_state; char *ob_spec; int ob_x; int ob_y; int ob_width; int ob_height; } OBJECT; typedef struct { /* MultiTOS */ OBJECT *mn_tree; int mn_menu; int mn_item; int mn_scroll; int mn_keystate; } MENU; typedef struct { /* MultiTOS */ long display; long drag; long delay; long speed; long height; } MN_SET; typedef struct { int g_x; int g_y; int g_w; int g_h; } GRECT; typedef struct { int v_x1; int v_y1; int v_x2; int v_y2; } VRECT; typedef struct { char *te_ptext; char *te_ptmplt; char *te_pvalid; int te_font; #ifdef OLDTEDNAMES int junk1; #else int te_resvd1; #endif int te_just; int te_color; #ifdef OLDTEDNAMES int junk2; #else int te_resvd2; #endif int te_thickness; int te_txtlen; int te_tmplen; } TEDINFO; typedef struct { int *ib_pmask; int *ib_pdata; char *ib_ptext; int ib_char; int ib_xchar; int ib_ychar; int ib_xicon; int ib_yicon; int ib_wicon; int ib_hicon; int ib_xtext; int ib_ytext; int ib_wtext; int ib_htext; } ICONBLK; typedef struct { ICONBLK monoblk; /* default monochrome icon */ CICON *mainlist; } CICONBLK; typedef struct { int *bi_pdata; int bi_wb; int bi_hl; int bi_x; int bi_y; int bi_color; } BITBLK; typedef struct user_blk { long ub_code; long ub_parm; } USERBLK; #define appl_blk user_blk #define APPLBLK USERBLK typedef struct parm_blk { OBJECT *pb_tree; int pb_obj; int pb_prevstate; int pb_currstate; int pb_x, pb_y, pb_w, pb_h; int pb_xc, pb_yc, pb_wc, pb_hc; long pb_parm; } PARMBLK; typedef struct { int (*ub_code)(struct __parmblk *parmblock); char *ub_spec; /* old ob_spec */ int ub_type; /* old ob_type */ } EXAPPLBLK; /************************************************************************** * Name compatibility stuff. *************************************************************************/ #define objclg_adjust rc_gadjust #define objclv_adjust rc_vadjust #define objrb_which(a,b) obj_rbfind((a),(b),SELECTED) #define obj_rbwhich(a,b) obj_rbfind((a),(b),SELECTED) #define objxrb_which obj_rbfind #define objc_xywh obj_xywh #define objst_change obj_stchange #define objfl_change obj_flchange #define graqon_mouse gra_qonmouse #define graqof_mouse gra_qofmouse #define graq_mstate gra_qmstate #endif /* end of GEMFAST.H */