home *** CD-ROM | disk | FTP | other *** search
-
- /**************************************************************************
- *
- * GEMFAST.H - Header file for common VDI and AES symbols.
- *
- * This header file contains items compatible with both GEMDEFS and OBDEFS
- * from the Alcyon system. Note that there are no 'extern' definitions
- * for the GEM functions, because they all return a signed int and work
- * fine as autodefined functions.
- *
- * If you have a lot of source already coded for #include <gemdefs.h>,
- * you can create a dummy (empty) obdefs.h file, and code a new gemdefs.h
- * file which contains only #include <gemfast.h>. YOU CAN NO LONGER USE
- * GEMDEFS AND OBDEFS WITH THE GEMFAST BINDINGS! For the bindings libs
- * to work correctly, this header file must be used.
- *
- * Credits dept:
- * This file bears an amazing similarity to the original Alcyon GEMDEFS
- * and OBDEFS header files, which are copyrighted by Atari. What can I
- * say? Copyrighted or not, these are the names and values that every-
- * body uses, so OF COURSE the files look *awful* similar...
- *
- * Maintenance:
- * 12/03/89 - v1.3
- * Renamed a lot of functions, a name compatibility block was
- * added at the end of this file to smooth the transition.
- * Added NO_OBJECT, MU_MENTRY, MU_MEXIT to defines.
- * Added XMULTI structure, even though it really belongs to v1.4.
- *************************************************************************/
-
- #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 */
-
- /* VDI inside fill styles - new names */
- #define VIS_HOLLOW 0 /* these names will be phased out soon... */
- #define VIS_SOLID 1
- #define VIS_PATTERN 2
- #define VIS_HATCH 3
- #define VIS_UDPTRN 4
- /* VDI inside fill patterns - new names */
- #define VIP_HOLLOW 0 /* these names will be phased out soon... */
- #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
- /* VDI inside fill patterns */
- #define IS_HOLLOW 0
- #define IS_SOLID 1
- #define IS_PATTERN 2
- #define IS_HATCH 3
- #define IS_UDPTRN 4
- /* VDI inside fill patterns */
- #define IP_HOLLOW 0
- #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
- /* VDI normal graphics drawing modes */
- #define MD_REPLACE 1
- #define MD_TRANS 2
- #define MD_XOR 3
- #define MD_ERASE 4
- /* VDI bit blt rules */
- #define ALL_WHITE 0
- #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
- /* font types */
- #define IBM 3
- #define SMALL 5
- /* evnt_multi flags */
- #define MU_KEYBD 0x0001
- #define MU_BUTTON 0x0002
- #define MU_M1 0x0004
- #define MU_M2 0x0008
- #define MU_MESAG 0x0010
- #define MU_TIMER 0x0020
- /* evnt_mouse flags */
- #define MU_MENTRY 0x0000
- #define MU_MEXIT 0x0001
- /* keyboard states */
- #define K_RSHIFT 0x0001
- #define K_LSHIFT 0x0002
- #define K_CTRL 0x0004
- #define K_ALT 0x0008
- /* event message values */
- #define MN_SELECTED 10
- #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 AC_OPEN 40
- #define AC_CLOSE 41
- /* form_dial opcodes */
- #define FMD_START 0
- #define FMD_GROW 1
- #define FMD_SHRINK 2
- #define FMD_FINISH 3
- /* rsrc_gaddr structure types */
- #define ROOT 0 /* this name used by MWC */
- #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
- /* Window Attributes */
- #define NAME 0x0001
- #define CLOSER 0x0002
- #define FULLER 0x0004
- #define MOVER 0x0008
- #define INFO 0x0010
- #define SIZER 0x0020
- #define UPARROW 0x0040
- #define DNARROW 0x0080
- #define VSLIDE 0x0100
- #define LFARROW 0x0200
- #define RTARROW 0x0400
- #define HSLIDE 0x0800
- /* wind_calc flags */
- #define WC_BORDER 0
- #define WC_WORK 1
- /* wind_get flags */
- #define WF_KIND 1
- #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
- /* wind_update flags */
- #define END_UPDATE 0
- #define BEG_UPDATE 1
- #define END_MCTRL 2
- #define BEG_MCTRL 3
- /* graf_mouse mouse types*/
- #define ARROW 0
- #define TEXT_CRSR 1
- #define HOURGLASS 2 /* this name used by MWC (why?) */
- #define BUSY_BEE 2
- #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
- /* max depth of search or draw */
- #define MAX_DEPTH 8
- /* value returned by objc_find(), et. al. */
- #define NO_OBJECT -1
- /* object types */
- #define G_BOX 20
- #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
- /* object flags */
- #define NONE 0x0000
- #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
- /* Object states */
- #define NORMAL 0x0000
- #define SELECTED 0x0001
- #define CROSSED 0x0002
- #define CHECKED 0x0004
- #define DISABLED 0x0008
- #define OUTLINED 0x0010
- #define SHADOWED 0x0020
- /* Object colors */
- #define WHITE 0
- #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
- /* editable text field definitions */
- #define EDSTART 0
- #define EDINIT 1
- #define EDCHAR 2
- #define EDEND 3
- /* editable text justification */
- #define TE_LEFT 0
- #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 fdbstr {
- 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 */
-
- /* Mouse Form Definition Block */
- typedef struct mfstr {
- 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 object {
- int ob_next; /* -> object's next sibling */
- int ob_head; /* -> head of object's children */
- int ob_tail; /* -> tail of object's children */
- unsigned int ob_type; /* type of object */
- unsigned int ob_flags; /* flags */
- unsigned int ob_state; /* state */
- unsigned long ob_spec;
- int ob_x; /* upper left corner of object */
- int ob_y; /* upper left corner of object */
- int ob_width; /* width of obj */
- int ob_height; /* height of obj */
- } OBJECT;
-
- typedef struct grect {
- int g_x;
- int g_y;
- int g_w;
- int g_h;
- } GRECT;
-
- typedef struct vrect {
- int v_x1;
- int v_y1;
- int v_x2;
- int v_y2;
- } VRECT;
-
- typedef struct text_edinfo {
- char *te_ptext; /* ptr to text */
- char *te_ptmplt; /* ptr to template */
- char *te_pvalid; /* ptr to validation chrs. */
- int te_font; /* font */
- int te_junk1; /* junk word */
- int te_just; /* justification */
- int te_color; /* color information word */
- int te_junk2; /* junk word */
- int te_thickness; /* border thickness */
- int te_txtlen; /* length of text string */
- int te_tmplen; /* length of template string */
- } TEDINFO;
-
- typedef struct icon_block {
- 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 bit_block {
- int *bi_pdata; /* ptr to bit forms data */
- int bi_wb; /* width of form in bytes */
- int bi_hl; /* height in lines */
- int bi_x; /* source x in bit form */
- int bi_y; /* source y in bit form */
- int bi_color; /* fg color of blt */
- } 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;
-
- /* ignore following structures, they're being set up for GEMFAST v2.0 - Ian */
-
- typedef struct xmouse {
- int retval;
- int bclicks;
- int mask;
- int state;
- int status;
- int mousex;
- int mousey;
- int mouseb;
- int keystate;
- } XMOUSE;
-
- typedef struct xmulti {
- int msgbuf[8];
- int mflags,
- mbclicks,
- mbmask,
- mbstate,
- mm1flags;
- GRECT mm1rect;
- int mm2flags;
- GRECT mm2rect;
- int mtlocount,
- mthicount;
- int mwhich,
- mmox,
- mmoy,
- mmobutton,
- mmokstate,
- mkreturn,
- mbreturn;
- } XMULTI;
-
- /**************************************************************************
- *
- * Name compatibility stuff.
- *
- * 08/28/89 - v1.3
- * In v1.3, a big push has been made to make a consistant
- * naming standard for the AES utilities. To avoid breaking
- * a lot of existing code, the following block will direct
- * the old names to the new routines.
- *
- *************************************************************************/
-
- #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 */
-
-