Files
FireBee_Setup/devtools/ahcccf.bin/sinclude/aes.h
2022-10-02 10:09:40 +02:00

1058 lines
28 KiB
C
Raw Blame History

/* Copyright (c) 1990 - 2008 by H. Robbers. ANSI upgrade.
*
* This file is part of AHCC.
*
* AHCC is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* AHCC is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with AHCC; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#if !defined __AES__
#define __AES__
/****** GEMparams *******************************************************/
#include <gempb.h> /* These hold the basics used in the lib itself */
typedef enum
{
GAI_WDLG = 0x0001, /* wdlg_xx()-Funktionen vorhanden */
GAI_LBOX = 0x0002, /* lbox_xx()-Funktionen vorhanden */
GAI_FNTS = 0x0004, /* fnts_xx()-Funktionen vorhanden */
GAI_FSEL = 0x0008, /* neue Dateiauswahl vorhanden */
GAI_MAGIC= 0x0100, /* MagiC-AES vorhanden */
GAI_INFO = 0x0200, /* appl_getinfo() vorhanden */
GAI_3D = 0x0400, /* 3D-Look vorhanden */
GAI_CICN = 0x0800, /* Color-Icons vorhanden */
GAI_APTERM = 0x1000, /* AP_TERM wird unterst<73>tzt */
GAI_GSHORTCUT = 0x2000, /* Objekttyp G_SHORTCUT wird unterst<73>tzt */
GAI_WHITEBAK = 0x4000 /* WHITEBAK objects */
} GAI;
typedef struct
{
long magic; /* muž $87654321 sein */
void * membot; /* Ende der AES-Variablen */
void * aes_start; /* Startadresse */
long magic2; /* ist 'MAGX' */
long date; /* Erstelldatum: ttmmjjjj */
void (*chgres)( short res, short txt ); /* Aufl”sung „ndern */
long (**shel_vector)(void); /* ROM-Desktop */
char * aes_bootdrv; /* Hierhin kommt DESKTOP.INF */
short * vdi_device; /* vom AES benutzter Treiber */
void * reservd1;
void * reservd2;
void * reservd3;
short version, /* Versionsnummer */
release; /* Release-Status */
} AESVARS;
typedef void *DOSVARS; /* wird in diesem Source nicht benutzt */
typedef struct
{
long config_status;
DOSVARS * dosvars;
AESVARS * aesvars;
} MAGX_COOKIE;
/* MultiTOS Drag&Drop definitions */
typedef enum
{
DD_OK,
DD_NAK,
DD_EXT,
DD_LEN,
DD_TIMEOUT = 4000, /* Timeout in ms */
DD_EXTSIZE = 32, /* L„nge des Formatfelds */
DD_NAMEMAX = 128, /* maximale L„nge eines Formatnamens */
DD_NUMEXTS = 8, /* Anzahl der Formate */
DD_HDRMIN = 9, /* minimale L„nge des Drag&Drop-Headers */
DD_HDRMAX = ( 8 + DD_NAMEMAX ) /* maximale L„nge */
} DD_S;
#define DD_FNAME "u:/pipe/dragdrop.aa"
/****** Application definitions *****************************************/
typedef struct
{
short dst_apid;
short unique_flg;
void * attached_mem;
short * msgbuf;
} XAESMSG;
short G_decl appl_init ( void );
short G_decl appl_read ( short ap_rid, short ap_rlength, void *ap_rpbuff);
short G_decl appl_write ( short ap_wid, short ap_wlength, void *ap_wpbuff);
short G_decl appl_find ( const char *ap_fpname);
short G_decl appl_tplay ( void *ap_tpmem, short ap_tpnum, short ap_tpscale);
short G_decl appl_trecord ( void *ap_trmem, short ap_trcount);
short G_decl appl_exit ( void );
short G_decl appl_search ( short ap_smode, char *ap_sname, short *ap_stype,
short *ap_sid);
short G_decl appl_getinfo ( short ap_gtype, short *ap_gout1, short *ap_gout2,
short *ap_gout3, short *ap_gout4);
short G_decl appl_control ( short ap_id, short what, void *out);
#define appl_bvset( disks, harddisks ) /* Funktion ignorieren (GEM f<>r Dose): void appl_bvset( short disks, short harddisks ); */
/*
#define vq_aes() ( appl_init() >= 0 ) /* WORD vq_aes( void ); */
*/
/****** Event definitions ***********************************************/
typedef enum
{
MN_SELECTED =10,
WM_REDRAW =20,
WM_TOPPED,
WM_CLOSED,
WM_FULLED,
WM_ARROWED,
WM_HSLID,
WM_VSLID,
WM_SIZED,
WM_MOVED,
WM_NEWTOP,
WM_UNTOPPED =30, /* GEM 2.x */
WM_ONTOP, /* AES 4.0 */
WM_UNKNOWN, /* AES 4.1 */
WM_BACK, /* WINX */
WM_BOTTOMED = WM_BACK, /* AES 4.1 */
WM_ICONIFY, /* AES 4.1 */
WM_UNICONIFY, /* AES 4.1 */
WM_ALLICONIFY, /* AES 4.1 */
WM_TOOLBAR, /* AES 4.1 */
AC_OPEN =40,
AC_CLOSE,
CT_UPDATE =50,
CT_MOVE,
CT_NEWTOP,
CT_KEY,
AP_TERM =50,
AP_TFAIL,
AP_RESCHG =57,
SHUT_COMPLETED =60,
RESCH_COMPLETED,
AP_DRAGDROP =63,
SH_WDRAW =72, /* MultiTOS */
SC_CHANGED =80, /* MultiTOS */
PRN_CHANGED =82,
FNT_CHANGED,
THR_EXIT =88, /* MagiC 4.5 */
PA_EXIT, /* MagiC 3 */
CH_EXIT =90, /* MultiTOS */
WM_M_BDROPPED =100, /* KAOS 1.4 */
SM_M_SPECIAL, /* MAG!X */
SM_M_RES2, /* MAG!X */
SM_M_RES3, /* MAG!X */
SM_M_RES4, /* MAG!X */
SM_M_RES5, /* MAG!X */
SM_M_RES6, /* MAG!X */
SM_M_RES7, /* MAG!X */
SM_M_RES8, /* MAG!X */
SM_M_RES9, /* MAG!X */
WM_SHADED =22360, /* [WM_SHADED apid 0 win 0 0 0 0] */
WM_UNSHADED =22361 /* [WM_UNSHADED apid 0 win 0 0 0 0] */
} MESAG_TY;
/* SM_M_SPECIAL codes */
#define SMC_TIDY_UP 0 /* MagiC 2 */
#define SMC_TERMINATE 1 /* MagiC 2 */
#define SMC_SWITCH 2 /* MagiC 2 */
#define SMC_FREEZE 3 /* MagiC 2 */
#define SMC_UNFREEZE 4 /* MagiC 2 */
#define SMC_RES5 5 /* MagiC 2 */
#define SMC_UNHIDEALL 6 /* MagiC 3.1 */
#define SMC_HIDEOTHERS 7 /* MagiC 3.1 */
#define SMC_HIDEACT 8 /* MagiC 3.1 */
/* Keybord states */
typedef enum
{
K_RSHIFT=0x0001,
K_LSHIFT=0x0002,
K_CTRL =0x0004,
K_ALT =0x0008
} K_STATE;
short G_decl evnt_keybd ( void );
short G_decl evnt_button ( short ev_bclicks, short ev_bmask, short ev_bstate,
short *ev_bmx, short *ev_bmy, short *ev_bbutton,
short *ev_bkstate);
short G_decl evnt_mouse ( short ev_moflags, short ev_mox, short ev_moy,
short ev_mowidth, short ev_moheight, short *ev_momx,
short *ev_momy, short *ev_mobutton,
short *ev_mokstate);
short G_decl evnt_mesag ( short *ev_mgpbuff);
short G_decl evnt_timer ( short ev_tlocount, short ev_thicount);
short G_decl evnt_multi ( short ev_mflags, short ev_mbclicks, short ev_mbmask,
short ev_mbstate, short ev_mm1flags, short ev_mm1x,
short ev_mm1y, short ev_mm1width, short ev_mm1height,
short ev_mm2flags, short ev_mm2x, short ev_mm2y,
short ev_mm2width, short ev_mm2height,
short *ev_mmgpbuff, short ev_mtlocount,
short ev_mthicount, short *ev_mmox, short *ev_mmoy,
short *ev_mmbutton, short *ev_mmokstate,
short *ev_mkreturn, short *ev_mbreturn);
short G_decl evnt_dclick ( short ev_dnew, short ev_dgetset);
void EVNT_multi ( short evtypes, short nclicks, short bmask, short bstate,
MOBLK *m1, MOBLK *m2, unsigned long ms,
EVNT *event);
/* this is our special invention to increase evnt_multi performance */
typedef struct /* Special type for EventMulti */
{
/* input parameters */
short flags, bclicks, bmask, bstate, m1flags;
m1x, m1y,
m1width, m1height, m2flags,
m2x, m2y,
m2width, m2height,
tlocount, thicount;
/* output parameters */
short wich,
mox, moy,
mobutton, mokstate,
kreturn, breturn;
/* message buffer */
short mgpbuf[8];
} EVENT;
short G_decl EvntMulti ( EVENT *evnt_struct);
/****** Object definitions **********************************************/
typedef enum
{
G_BOX=20,
G_TEXT,
G_BOXTEXT,
G_IMAGE,
G_USERDEF,
G_IBOX,
G_BUTTON,
G_BOXCHAR,
G_STRING,
G_FTEXT,
G_FBOXTEXT,
G_ICON,
G_TITLE,
G_CICON,
/* HR: for completeness */
G_SWBUTTON, /* MAG!X */
G_POPUP, /* MAG!X */
G_WINTITLE, /* MagiC 3.1 */
G_EDIT,
G_SHORTCUT, /* MagiC 6 */
G_SLIST, /* XaAES extended object - scrolling list */
G_UNKNOWN,
G_MAX /* Maximum number of object types */
} OBJECT_TY;
/* Object flags */
typedef enum
{
NONE =0x0000,
SELECTABLE=0x0001,
DEFAULT =0x0002,
EXIT =0x0004,
EDITABLE =0x0008,
RBUTTON =0x0010,
LASTOB =0x0020,
TOUCHEXIT =0x0040,
HIDETREE =0x0080,
INDIRECT =0x0100,
FL3DNONE =0x0000,
FL3DIND =0x0200, /* 3D Indicator AES 4.0 */
FL3DBAK =0x0400, /* 3D Background AES 4.0 */
FL3DACT =0x0600, /* 3D Activator AES 4.0 */
FL3DMASK =0x0600,
SUBMENU =0x0800
} OBJECT_FLAG;
/* Object states */
typedef enum
{
NORMAL =0x00,
SELECTED=0x01,
CROSSED =0x02,
CHECKED =0x04,
DISABLED=0x08,
OUTLINED=0x10,
SHADOWED=0x20,
WHITEBAK=0x40, /* TOS & MagiC */
DRAW3D =0x80 /* GEM 2.x */
} OBJECT_STATE;
/* objc_sysvar */
typedef enum
{
LK3DIND =1, /* AES 4.0 */
LK3DACT, /* AES 4.0 */
INDBUTCOL, /* AES 4.0 */
ACTBUTCOL, /* AES 4.0 */
BACKGRCOL, /* AES 4.0 */
AD3DVALUE, /* AES 4.0 */
MX_ENABLE3D =10 /* MagiC 3.0 */
} OB_SYSVAR;
/* Object colors */
#if !defined __COLORS
#define __COLORS /* using AES-colors and BGI-colors
is not possible */
typedef enum
{
WHITE,
BLACK,
RED,
GREEN,
BLUE,
CYAN,
YELLOW,
MAGENTA,
LWHITE,
LBLACK,
LRED,
LGREEN,
LBLUE,
LCYAN,
LYELLOW,
LMAGENTA
} AES_COLOR;
#endif
#define ROOT 0
#define MAX_LEN 81 /* max string length */
#define MAX_DEPTH 8 /* max depth of search or draw */
#define IBM 3 /* font types */
#define SMALL 5
typedef enum
{
ED_START, /* editable text field definitions */
ED_INIT,
ED_CHAR,
ED_END
} EDOB_TY;
typedef enum
{
TE_LEFT, /* editable text justification */
TE_RIGHT,
TE_CNTR
} TE_JUST;
typedef struct orect
{
struct orect *o_link;
short o_x,o_y,o_w,o_h;
} ORECT;
typedef struct grect
{
short g_x,g_y,g_w,g_h;
} GRECT;
typedef struct vrect
{
short x,y,jx,jy; /* VDI rectangle */
} VRECT;
typedef struct rect
{
short x,y,w,h;
} RECT;
/* Object structures */
typedef struct
{
char *te_ptext,
*te_ptmplt,
*te_pvalid;
short te_font,
te_junk1,
te_just,
te_color,
te_junk2,
te_thickness,
te_txtlen,
te_tmplen;
} TEDINFO;
typedef struct
{
short *ib_pmask,
*ib_pdata;
char *ib_ptext;
short ib_char,
ib_xchar,
ib_ychar,
ib_xicon,
ib_yicon,
ib_wicon,
ib_hicon,
ib_xtext,
ib_ytext,
ib_wtext,
ib_htext;
} ICONBLK;
typedef struct cicon_data
{
short num_planes;
short *col_data;
short *col_mask;
short *sel_data;
short *sel_mask;
struct cicon_data *next_res;
} CICON;
typedef struct cicon_blk
{
ICONBLK monoblk;
CICON *mainlist;
} CICONBLK;
typedef struct
{
short
*bi_pdata, /* ptr to bit forms data */
bi_wb, /* width of form in bytes */
bi_hl, /* height in lines */
bi_x, /* source x in bit form */
bi_y, /* source y in bit form */
bi_color; /* foreground color */
} BITBLK;
struct __parmblk;
#if !((defined __STDC__) && CDECL)
/* using this structure is not possible
* if ANSI keywords only is ON, and __Cdecl is non empty
*/
typedef struct
{
short __Cdecl (*ub_code)(struct __parmblk *parmblock);
long ub_parm;
} USERBLK;
#endif
typedef struct
{
unsigned character : 8;
signed framesize : 8;
unsigned framecol : 4,
textcol : 4,
textmode : 1,
fillpattern : 3,
interiorcol : 4;
} bfobspec;
typedef union obspecptr
{
long index;
union obspecptr *indirect;
bfobspec obspec;
TEDINFO * tedinfo;
ICONBLK * iconblk;
CICONBLK * ciconblk;
BITBLK * bitblk;
#if !((defined __STDC__) && CDECL)
/* using this structure is not possible
* if ANSI keywords only is ON, and __Cdecl is non empty
*/
USERBLK * userblk;
#endif
char * free_string;
} OBSPEC;
typedef struct
{
short ob_next, /* -> object's next sibling */
ob_head, /* -> head of object's children */
ob_tail; /* -> tail of object's children */
unsigned
short ob_type, /* object type: BOX, CHAR,... */
ob_flags, /* object flags */
ob_state; /* state: SELECTED, OPEN, ... */
OBSPEC ob_spec; /* "out": -> anything else */
short ob_x, /* upper left corner of object */
ob_y, /* upper left corner of object */
ob_width, /* object width */
ob_height; /* object height */
} OBJECT;
typedef struct __parmblk
{
OBJECT *pb_tree;
short pb_obj,
pb_prevstate,
pb_currstate;
short pb_x, pb_y, pb_w, pb_h;
short pb_xc, pb_yc, pb_wc, pb_hc;
unsigned long
pb_parm;
} PARMBLK;
typedef struct
{
OBJECT *mn_tree;
short mn_menu;
short mn_item;
short mn_scroll;
short mn_keystate;
} MENU;
typedef struct
{
long Display;
long Drag;
long Delay;
long Speed;
short Height;
} MN_SET;
typedef struct
{
char * string; /* etwa "TOS|KAOS|MAG!X" */
short num, /* Nr. der aktuellen Zeichenkette */
maxnum; /* maximal erlaubtes <num> */
} SWINFO;
typedef struct
{
OBJECT *tree; /* Popup- Men<65> */
short obnum; /* aktuelles Objekt von <tree> */
} POPINFO;
#define FORM_MAX 15
typedef struct
{
short ty, /* type: 's', 'r', 'd' or 'l' */
l; /* l = max lengte reply or default if zero */
char *pr; /* prompt */
void *rep; /* reply */
} FORM_INPUT;
/****** Menu definitions ************************************************/
/* menu_bar modes */
typedef enum
{
MENU_HIDE, /* TOS */
MENU_SHOW, /* TOS */
MENU_INSTL = 100 /* MAG!X */
} MBAR_DO;
short G_decl menu_bar ( OBJECT *me_btree, MBAR_DO me_bshow);
short G_decl menu_icheck ( OBJECT *me_ctree, short me_citem, short me_ccheck);
short G_decl menu_ienable ( OBJECT *me_etree, short me_eitem, short me_eenable);
short G_decl menu_tnormal ( OBJECT *me_ntree, short me_ntitle, short me_nnormal);
short G_decl menu_text ( OBJECT *me_ttree, short me_titem, const char *me_ttext);
short G_decl menu_register ( short me_rapid, const char *me_rpstring);
short G_decl menu_popup ( MENU *me_menu, short me_xpos, short me_ypos, MENU *me_mdata);
short G_decl form_popup ( OBJECT *tree, short x, short y);
short G_decl form_menu ( char *title, char **mt);
short G_decl form_input ( char *title, FORM_INPUT *r);
short G_decl menu_click ( short val, short setflag);
short G_decl menu_attach ( short me_flag, OBJECT *me_tree, short me_item, MENU *me_mdata);
short G_decl menu_istart ( short me_flag, OBJECT *me_tree, short me_imenu, short me_item);
short G_decl menu_settings ( short me_flag, MN_SET *me_values);
/* Object prototypes */
short G_decl objc_add ( OBJECT *ob_atree, short ob_aparent, short ob_achild);
short G_decl objc_delete ( OBJECT *ob_dltree, short ob_dlobject);
short G_decl objc_draw ( OBJECT *ob_drtree, short ob_drstartob,
short ob_drdepth, short ob_drxclip, short ob_dryclip,
short ob_drwclip, short ob_drhclip);
short G_decl objc_find ( OBJECT *ob_ftree, short ob_fstartob, short ob_fdepth,
short ob_fmx, short ob_fmy);
short G_decl objc_offset ( OBJECT *ob_oftree, short ob_ofobject,
short *ob_ofxoff, short *ob_ofyoff);
short G_decl objc_order ( OBJECT *ob_ortree, short ob_orobject,
short ob_ornewpos);
short G_decl objc_edit ( OBJECT *ob_edtree, short ob_edobject,
short ob_edchar, short *ob_edidx, short ob_edkind);
short G_decl objc_xedit (void *tree,short item,short edchar,short *idx,short kind,
GRECT *r);
short G_decl objc_change ( OBJECT *ob_ctree, short ob_cobject,
short ob_cresvd, short ob_cxclip, short ob_cyclip,
short ob_cwclip, short ob_chclip,
short ob_cnewstate, short ob_credraw);
short G_decl objc_sysvar (short mo, short which, short ival1,
short ival2, short *oval1, short *oval2);
/****** Form definitions ************************************************/
typedef enum
{
FMD_START,
FMD_GROW,
FMD_SHRINK,
FMD_FINISH
} FMD_TY;
typedef struct /* form_xdo definitions */
{
char scancode;
char nclicks;
short objnr;
} SCANX;
typedef struct
{
SCANX *unsh;
SCANX *shift;
SCANX *ctrl;
SCANX *alt;
void *resvd;
} XDO_INF;
typedef struct _xted /* scrollable textedit objects */
{
char *xte_ptmplt;
char *xte_pvalid;
short xte_vislen;
short xte_scroll;
} XTED;
short G_decl form_do ( OBJECT *fo_dotree, short fo_dostartob);
short G_decl form_xdo ( OBJECT *tree, short item, short *curob, XDO_INF *scantab, void *flyinf);
short G_decl form_xdial ( short subfn, GRECT *lg, GRECT *bg, void **flyinf);
short G_decl form_dial ( short flag,short lx,short ly,short lw,short lh,
short bx,short by,short bw,short bh);
short G_decl form_xdial ( short subfn, GRECT *lg, GRECT *bg, void **flyinf);
short G_decl form_alert ( short fo_adefbttn, const char *fo_astring);
short G_decl form_error ( short fo_enum);
short G_decl form_center ( OBJECT *fo_ctree, short *fo_cx, short *fo_cy,
short *fo_cw, short *fo_ch);
short G_decl form_keybd ( OBJECT *fo_ktree, short fo_kobject, short fo_kobnext,
short fo_kchar, short *fo_knxtobject, short *fo_knxtchar);
short G_decl form_button ( OBJECT *fo_btree, short fo_bobject, short fo_bclicks,
short *fo_bnxtobj);
/****** Graph definitions ************************************************/
/* Mouse forms */
typedef enum
{
ARROW,
TEXT_CRSR,
BUSYBEE,
BEE = BUSYBEE,
HOURGLASS = BUSYBEE,
POINT_HAND,
FLAT_HAND,
THIN_CROSS,
THICK_CROSS,
OUTLN_CROSS,
USER_DEF = 255,
M_OFF,
M_ON,
M_SAVE,
M_LAST,
M_RESTORE
} MOUSE_TY;
/* Mouse form definition block */
typedef struct mfstr
{
short mf_xhot,
mf_yhot,
mf_nplanes,
mf_fg,
mf_bg,
mf_mask[16],
mf_data[16];
} MFORM;
short G_decl graf_rubberbox ( short gr_rx, short gr_ry, short gr_minwidth,
short gr_minheight, short *gr_rlastwidth,
short *gr_rlastheight);
short G_decl graf_rubbox ( short gr_rx, short gr_ry, short gr_minwidth,
short gr_minheight, short *gr_rlastwidth,
short *gr_rlastheight);
short G_decl graf_dragbox ( short dw,short dh,short dx,short dy, GRECT *g,
short *ex,short *ey);
short G_decl graf_movebox ( short gr_mwidth, short gr_mheight,
short gr_msourcex, short gr_msourcey,
short gr_mdestx, short gr_mdesty);
short G_decl graf_mbox ( short gr_mwidth, short gr_mheight,
short gr_msourcex, short gr_msourcey,
short gr_mdestx, short gr_mdesty);
short G_decl graf_growbox ( short gr_gstx, short gr_gsty,
short gr_gstwidth, short gr_gstheight,
short gr_gfinx, short gr_gfiny,
short gr_gfinwidth, short gr_gfinheight);
short G_decl graf_shrinkbox ( short gr_sfinx, short gr_sfiny,
short gr_sfinwidth, short gr_sfinheight,
short gr_sstx, short gr_ssty,
short gr_sstwidth, short gr_sstheight);
short G_decl graf_watchbox ( OBJECT *gr_wptree, short gr_wobject,
short gr_winstate, short gr_woutstate);
short G_decl graf_slidebox ( OBJECT *gr_slptree, short gr_slparent,
short gr_slobject, short gr_slvh);
short G_decl graf_handle ( short *gr_hwchar, short *gr_hhchar,
short *gr_hwbox, short *gr_hhbox);
short G_decl graf_xhandle ( short *wchar,short *hchar,short *wbox,short *hbox,short *device);
short G_decl graf_mouse ( short gr_monumber, MFORM *gr_mofaddr);
short G_decl graf_mkstate ( short *gr_mkmx, short *gr_mkmy,
short *gr_mkmstate, short *gr_mkkstate);
/****** Scrap definitions ***********************************************/
short G_decl scrp_read ( char *sc_rpscrap );
short G_decl scrp_write ( char *sc_wpscrap );
/****** File selector definitions ***************************************/
short G_decl fsel_input ( char *fs_iinpath, char *fs_iinsel, short *fs_iexbutton);
short G_decl fsel_exinput ( char *fs_einpath, char *fs_einsel, short *fs_eexbutton, char *fs_elabel);
short G_decl fsel_boxinput ( char *path, char *sel, short *button, char *label, void *callback);
/****** Window definitions **********************************************/
typedef enum
{
NAME =0x0001,
CLOSER =0x0002,
FULLER =0x0004,
MOVER =0x0008,
INFO =0x0010,
SIZER =0x0020,
UPARROW =0x0040,
DNARROW =0x0080,
VSLIDE =0x0100,
LFARROW =0x0200,
RTARROW =0x0400,
HSLIDE =0x0800,
MENUBAR =0x1000, /* XaAES */
BACKDROP =0x2000, /* KAOS 1.4 */
ICONIFIER=0x4000, /* AES 4.1 */
SMALLER =ICONIFIER,
} WIND_ATTR;
typedef enum
{
WF_KIND=1,
WF_NAME,
WF_INFO,
WF_WORKXYWH,
WF_CURRXYWH,
WF_PREVXYWH,
WF_FULLXYWH,
WF_HSLIDE,
WF_VSLIDE,
WF_TOP,
WF_FIRSTXYWH,
WF_NEXTXYWH,
WF_RESVD,
WF_NEWDESK,
WF_HSLSIZE,
WF_VSLSIZE,
WF_SCREEN,
WF_COLOR,
WF_DCOLOR,
WF_OWNER, /* AES 4 */
WF_BEVENT = 24,
WF_BOTTOM,
WF_ICONIFY, /* AES 4.1 */
WF_UNICONIFY, /* AES 4.1 */
WF_UNICONIFYXYWH, /* AES 4.1 */
WF_TOOLBAR = 30, /* compatible */
WF_FTOOLBAR,
WF_NTOOLBAR,
WF_MENU,
WF_WIDGET,
WF_WHEEL = 40,
WF_M_BACKDROP = 100, /* KAOS 1.4 */
WF_M_OWNER, /* KAOS 1.4 */
WF_M_WINDLIST, /* KAOS 1.4 */
WF_SHADE =0x575d, /* WINX 2.3 */
WF_STACK =0x575e, /* WINX 2.3 */
WF_TOPALL =0x575f, /* WINX 2.3 */
WF_BOTTOMALL =0x5760 /* WINX 2.3 */
} WIND_CODE;
typedef enum
{
W_BOX ,
W_TITLE,
W_CLOSER,
W_NAME,
W_FULLER,
W_INFO,
W_DATA,
W_WORK,
W_SIZER,
W_VBAR,
W_UPARROW,
W_DNARROW,
W_VSLIDE,
W_VELEV,
W_HBAR,
W_LFARROW,
W_RTARROW,
W_HSLIDE,
W_HELEV,
W_SMALLER, /* AES 4.1 */
W_BOTTOMER /* MagiC 3 */
} WIND_COMP;
/* wind_set(WF_BEVENT) */
typedef enum
{
BEVENT_WORK=1, /* AES 4.0 */
BEVENT_INFO, /* MagiC 6 */
} BEVENT;
typedef enum
{
WA_UPPAGE,
WA_DNPAGE,
WA_UPLINE,
WA_DNLINE,
WA_LFPAGE,
WA_RTPAGE,
WA_LFLINE,
WA_RTLINE,
WA_WHEEL
} WIND_ARROW;
typedef enum
{
WC_BORDER, /* wind calc flags */
WC_WORK
} WIND_CALC_C;
typedef enum
{
END_UPDATE, /* update flags */
BEG_UPDATE,
END_MCTRL,
BEG_MCTRL
} WIND_UPD_FL;
short G_decl wind_create ( short wi_crkind, short wi_crwx, short wi_crwy,
short wi_crww, short wi_crwh);
short G_decl wind_open ( short wi_ohandle, short wi_owx, short wi_owy,
short wi_oww, short wi_owh);
short G_decl wind_calc ( short wi_ctype, short wi_ckind, short wi_cinx,
short wi_ciny, short wi_cinw, short wi_cinh,
short *coutx, short *couty, short *coutw,
short *couth);
short G_decl wind_close ( short wi_clhandle);
short G_decl wind_delete ( short wi_dhandle);
#if __WGS_ELLIPSISD__
short wind_get ( short wi_ghandle, short wi_gfield, ... );
short wind_set ( short wi_shandle, short wi_sfield, ... );
#else
short G_decl wind_get ( short wi_ghandle, short wi_gfield, short, short, short, short);
short G_decl wind_set ( short wi_shandle, short wi_sfield, short *, short *, short *, short *);
#endif
short G_decl wind_get_grect ( short whl, short srt, GRECT *g);
short G_decl wind_get_int ( short whl, short srt, short *g1);
short G_decl wind_get_ptr ( short whl, short srt, void **v);
short G_decl wind_set_string( short whl, short srt, char *s);
short G_decl wind_set_grect ( short whl, short srt, GRECT *r);
short G_decl wind_set_int ( short whl, short srt, short i);
short G_decl wind_set_ptr_int(short whl,short srt, void *s, short g);
short G_decl wind_find ( short wi_fmx, short wi_fmy);
short G_decl wind_update ( short wi_ubegend);
void G_decl wind_new ( void );
short G_decl wind_get_nargs(short field);
/****** Resource definitions ********************************************/
typedef enum /* data structure types */
{
R_TREE,
R_OBJECT,
R_TEDINFO,
R_ICONBLK,
R_BITBLK,
R_STRING, /* gets pointer to free strings */
R_IMAGEDATA, /* gets pointer to free images */
R_OBSPEC,
R_TEPTEXT, /* sub ptrs in TEDINFO */
R_TEPTMPLT,
R_TEPVALID,
R_IBPMASK, /* sub ptrs in ICONBLK */
R_IBPDATA,
R_IPBTEXT,
R_BIPDATA, /* sub ptrs in BITBLK */
R_FRSTR, /* gets addr of ptr to free strings */
R_FRIMG, /* gets addr of ptr to free images */
} RSH_THING;
typedef struct rshdr
{
short rsh_vrsn,
rsh_object,
rsh_tedinfo,
rsh_iconblk, /* list of ICONBLKS */
rsh_bitblk,
rsh_frstr,
rsh_string,
rsh_imdata, /* image data */
rsh_frimg,
rsh_trindex,
rsh_nobs, /* counts of various structs */
rsh_ntree,
rsh_nted,
rsh_nib,
rsh_nbb,
rsh_nstring,
rsh_nimages,
rsh_rssize; /* total bytes in resource */
} RSHDR;
short G_decl rsrc_load ( const char *re_lpfname);
short G_decl rsrc_free ( void );
short G_decl rsrc_gaddr ( short re_gtype, short re_gindex, void *gaddr);
short G_decl rsrc_saddr ( short re_stype, short re_sindex, void *saddr);
short G_decl rsrc_obfix ( OBJECT *re_otree, short re_oobject);
short G_decl rsrc_rcfix ( RSHDR *rc_header);
/****** Shell definitions ***********************************************/
/* tail for default shell */
typedef struct
{
short dummy; /* ein Nullwort */
long magic; /* 'SHEL', wenn ist Shell */
short isfirst; /* erster Aufruf der Shell */
long lasterr; /* letzter Fehler */
short wasgr; /* Programm war Grafikapp. */
} SHELTAIL;
/* shel_write modes for parameter "isover" */
typedef enum
{
SHW_IMMED, /* PC-GEM 2.x */
SHW_CHAIN, /* TOS */
SHW_DOS, /* PC-GEM 2.x */
SHW_PARALLEL=100, /* MAG!X */
SHW_SINGLE /* MAG!X */
} SHW_ISOVER;
/* shel_write modes for parameter "doex" */
typedef enum
{
SHW_NOEXEC,
SHW_EXEC,
SHW_EXEC_ACC =3, /* AES 3.3 */
SHW_SHUTDOWN, /* AES 3.3 */
SHW_RESCHNG, /* AES 3.3 */
SHW_BROADCAST=7, /* AES 4.0 */
SHW_INFRECGN =9, /* AES 4.0 */
SHW_AESSEND, /* AES 4.0 */
SHW_THR_CREATE=20 /* MagiC 4.5 */
} SHW_DOEX;
/* extended shel_write() modes and parameter structure */
typedef enum
{
SHW_XMDLIMIT = 256,
SHW_XMDNICE = 512,
SHW_XMDDEFDIR=1024,
SHW_XMDENV =2048,
SHW_XMDFLAGS =4096
} SHW_XMD;
typedef struct {
char *command;
long limit;
long nice;
char *defdir;
char *env;
long flags; /* ab MagiC 6 */
} XSHW_COMMAND;
#if !((defined __STDC__) && CDECL)
/* using this structure is not possible
* if ANSI keywords only is ON, and __Cdecl is non empty
*/
typedef struct {
long __Cdecl (*procedure)(void *par);
void * user_stack;
unsigned long
stacksize;
short mo; /* immer auf 0 setzen! */
long res1; /* immer auf 0L setzen! */
} THREADINFO;
#endif
short G_decl shel_read ( char *sh_rpcmd, char *sh_rptail);
short G_decl shel_write ( short sh_wdoex, short sh_wisgr, short sh_wiscr,
char *sh_wpcmd, char *sh_wptail);
short G_decl shel_get ( char *sh_gaddr, ushort sh_glen);
short G_decl shel_put ( char *sh_paddr, ushort sh_plen);
short G_decl shel_find ( char *sh_fpbuff);
short G_decl shel_envrn ( char **sh_epvalue, char *sh_eparm);
short G_decl shel_rdef ( char *fname, char *dir);
short G_decl shel_wdef ( char *fname, char *dir);
extern short aes_handle,MagX_version,radio_bgcol;
extern bool MagX,MiNT;
extern MAGX_COOKIE *magic;
void adapt3d_rsrc ( OBJECT *objs, short no_objs, short hor_3d, short ver_3d );
void no3d_rsrc ( OBJECT *objs, short no_objs, short ftext_to_fboxtext );
char * is_userdef_title ( OBJECT *obj );
short get_aes_info ( short version, short *font_id, short *font_height, short *hor_3d, short *ver_3d );
void substitute_objects ( OBJECT *objs, short no_objs, short aes_flags, OBJECT *rslct, OBJECT *rdeslct );
void substitute_free ( void );
#endif