mt_gem.h

Go to the documentation of this file.
00001 /*
00002  *  $Id: mt_gem.h.in,v 1.70 2005/12/08 19:19:42 a_bercegeay Exp $
00003  */
00004 
00009 #ifndef _MT_GEMLIB_H_
00010 # define _MT_GEMLIB_H_
00011 
00012 # include <compiler.h>
00013 
00014 #ifndef INT16  /* keep compatibility with Mgemlib */
00015 #define INT16 short  
00016 #endif
00017 
00018 # ifdef __GEMLIB_OLDBIND        /* Backward-compatibility */
00019 #  undef _MT_GEMLIB_H_      /* For old bindings, these header had to be multi-included. */
00020 
00021 #  ifndef __GEMLIB_HAVE_DEFS    /* first include via aesbind/vdibind/gemfast */
00022 #   define __GEMLIB_HAVE_DEFS
00023 #  else
00024 #   undef __GEMLIB_DEFS
00025 #  endif
00026 
00027 # else              /* New include scheme: one header defines all */
00028 #  define __GEMLIB_DEFS  
00029 #  ifndef _GEM_VDI_P_
00030 #   define __GEMLIB_AES  
00031 #  endif
00032 #  ifndef _GEM_AES_P_
00033 #   define __GEMLIB_VDI  
00034 #  endif
00035 # endif
00036 
00037 __BEGIN_DECLS
00038 
00039 
00040 /*******************************************************************************
00041  * The version of the gem-lib
00042  */
00043 
00044 /* Major and minor version number of the GEMLib package.  Use these macros 
00045    to test for features in specific releases.  */
00046 #define __GEMLIB__           __GEMLIB_MAJOR__       
00047 #define __GEMLIB_MAJOR__     0              
00048 #define __GEMLIB_MINOR__     43             
00049 #define __GEMLIB_REVISION__  6              
00050 #define __GEMLIB_BETATAG__   ""             
00052 /* the other name of this release is MGEMLIB 42 */
00053 #define MGEMLIB             42                      
00054 #define __MGEMLIB__         42                      
00057 #ifdef __GEMLIB_DEFS
00058 
00059 /*******************************************************************************
00060  * The AES specific stuff from old gemfast.h
00061  */
00062 
00063 #define NIL                 0                   
00064 #define DESKTOP_HANDLE      0                   
00065 #define DESK                DESKTOP_HANDLE      
00067 /* mt_appl_control() mode */
00068 #define APC_HIDE            10  
00069 #define APC_SHOW            11  
00070 #define APC_TOP             12  
00071 #define APC_HIDENOT         13  
00072 #define APC_INFO            14  
00073 #define APC_MENU            15  
00074 #define APC_WIDGETS         16  
00076 /* APC_INFO bits */
00077 #define APCI_HIDDEN         0x01  
00078 #define APCI_HASMBAR        0x02  
00079 #define APCI_HASDESK        0x04  
00081 /* appl_getinfo modes */
00082 #define AES_LARGEFONT       0   
00083 #define AES_SMALLFONT       1   
00084 #define AES_SYSTEM          2   
00085 #define AES_LANGUAGE        3   
00086 #define AES_PROCESS         4   
00087 #define AES_PCGEM           5   
00088 #define AES_INQUIRE         6   
00089 #define AES_MOUSE           8   
00090 #define AES_MENU            9   
00091 #define AES_SHELL           10  
00092 #define AES_WINDOW          11  
00093 #define AES_MESSAGE         12  
00094 #define AES_OBJECT          13  
00095 #define AES_FORM            14  
00096 #define AES_EXTENDED        64  
00097 #define AES_NAES            65  
00098 #define AES_VERSION         96  
00099 #define AES_WOPTS           97  
00101 /* appl_getinfo return values (AES_LARGEFONT, AES_SMALLFONT) */
00102 #define SYSTEM_FONT         0   
00103 #define OUTLINE_FONT        1   
00105 /* appl_getinfo return values (AES_LANGUAGE) */
00106 #define AESLANG_ENGLISH     0   
00107 #define AESLANG_GERMAN      1   
00108 #define AESLANG_FRENCH      2   
00109 #define AESLANG_SPANISH     4   
00110 #define AESLANG_ITALIAN     5   
00111 #define AESLANG_SWEDISH     6   
00113 /* appl_read modes */
00114 #define APR_NOWAIT          -1  
00116 /* appl_search modes */
00117 #define APP_FIRST           0   
00118 #define APP_NEXT            1   
00119 #define APP_DESK            2   
00121 /* appl_search return values*/
00122 #define APP_SYSTEM          0x01    
00123 #define APP_APPLICATION     0x02    
00124 #define APP_ACCESSORY       0x04    
00125 #define APP_SHELL           0x08    
00127 /* appl_trecord types */
00128 #define APPEVNT_TIMER       0   
00129 #define APPEVNT_BUTTON      1   
00130 #define APPEVNT_MOUSE       2   
00131 #define APPEVNT_KEYBOARD    3   
00147 typedef struct pEvntrec
00148 {
00149     long ap_event;      
00150     long ap_value;      
00151 } EVNTREC;
00152 
00153 /* evnt_button flags */
00154 #define LEFT_BUTTON     0x0001  
00155 #define RIGHT_BUTTON    0x0002  
00156 #define MIDDLE_BUTTON   0x0004  
00158 #define K_RSHIFT        0x0001  
00159 #define K_LSHIFT        0x0002  
00160 #define K_CTRL          0x0004  
00161 #define K_ALT           0x0008  
00163 /* evnt_dclick flags */
00164 #define EDC_INQUIRE     0   
00165 #define EDC_SET         1   
00167 /* event message values */
00168 
00184 #define MN_SELECTED     10
00185 
00201 #define WM_REDRAW       20
00202 
00218 #define WM_TOPPED       21
00219 
00234 #define WM_CLOSED       22
00235 
00253 #define WM_FULLED       23
00254 
00298 #define WM_ARROWED      24
00299 
00313 #define WM_HSLID        25
00314 
00328 #define WM_VSLID        26
00329 
00346 #define WM_SIZED        27
00347 
00365 #define WM_MOVED        28
00366 
00379 #define WM_NEWTOP       29
00380 
00399 #define WM_UNTOPPED     30
00400 
00419 #define WM_ONTOP        31
00420 
00442 #define WM_BOTTOM       33
00443 #define WM_BOTTOMED     WM_BOTTOM   
00463 #define WM_ICONIFY      34
00464 
00483 #define WM_UNICONIFY    35
00484 
00503 #define WM_ALLICONIFY   36
00504 
00520 #define WM_TOOLBAR      37
00521 
00541 #define WM_REPOSED      38
00542 
00555 #define AC_OPEN         40
00556 
00574 #define AC_CLOSE        41
00575 
00605 #define AP_TERM         50
00606 
00620 #define AP_TFAIL        51
00621 
00622 #define AP_RESCHG       57  
00624 /* Xcontrol messages */
00625 #define CT_UPDATE       50  
00626 #define CT_MOVE         51  
00627 #define CT_NEWTOP       52  
00628 #define CT_KEY          53  
00645 #define SHUT_COMPLETED      60
00646 
00665 #define RESCHG_COMPLETED    61
00666 
00668 #define RESCH_COMPLETED     RESCHG_COMPLETED
00669 
00687 #define AP_DRAGDROP         63
00688 
00702 #define SH_WDRAW            72
00703 
00704 #define SC_CHANGED          80  
00705 #define PRN_CHANGED         82  
00706 #define FNT_CHANGED         83  
00724 #define THR_EXIT            88
00725 
00726 #define PA_EXIT             89  
00743 #define CH_EXIT             90
00744 
00745 #define WM_M_BDROPPED       100     /* KAOS 1.4  */ 
00767 #define SM_M_SPECIAL        101
00768 #define SM_M_RES2           102     
00769 #define SM_M_RES3           103     
00770 #define SM_M_RES4           104     
00771 #define SM_M_RES5           105     
00772 #define SM_M_RES6           106     
00773 #define SM_M_RES7           107     
00774 #define SM_M_RES8           108     
00775 #define SM_M_RES9           109     
00776 #define WM_SHADED           22360   
00777 #define WM_UNSHADED         22361   
00779 /* SM_M_SPECIAL sub-opcode */
00780 #define SMC_TIDY_UP     0    /* MagiC 2  */      
00781 #define SMC_TERMINATE   1    /* MagiC 2  */      
00782 #define SMC_SWITCH      2    /* MagiC 2  */      
00783 #define SMC_FREEZE      3    /* MagiC 2  */      
00784 #define SMC_UNFREEZE    4    /* MagiC 2  */      
00785 #define SMC_RES5        5    /* MagiC 2  */      
00786 #define SMC_UNHIDEALL   6    /* MagiC 3.1   */   
00787 #define SMC_HIDEOTHERS  7    /* MagiC 3.1   */   
00788 #define SMC_HIDEACT     8    /* MagiC 3.1   */   
00818 #define WM_WHEEL        345
00819 
00820 /* evnt_mouse modes */
00821 #define MO_ENTER        0   
00822 #define MO_LEAVE        1   
00824 /* evnt_multi flags */
00825 #define MU_KEYBD            0x0001  
00826 #define MU_BUTTON           0x0002  
00827 #define MU_M1               0x0004  
00828 #define MU_M2               0x0008  
00829 #define MU_MESAG            0x0010  
00830 #define MU_TIMER            0x0020  
00831 #define MU_WHEEL            0x0040  
00832 #define MU_MX               0x0080  
00833 #define MU_NORM_KEYBD       0x0100  
00834 #define MU_DYNAMIC_KEYBD    0x0200  
00836 /* constants for form_alert */
00837 #define FA_NOICON   "[0]"   
00838 #define FA_ERROR    "[1]"   
00839 #define FA_QUESTION "[2]"   
00840 #define FA_STOP     "[3]"   
00841 #define FA_INFO     "[4]"   
00842 #define FA_DISK     "[5]"   
00844 /* form_dial opcodes */
00845 #define FMD_START           0   
00846 #define FMD_GROW            1   
00847 #define FMD_SHRINK          2   
00848 #define FMD_FINISH          3   
00850 /* form_error modes */
00851 #define FERR_FILENOTFOUND    2  
00852 #define FERR_PATHNOTFOUND    3  
00853 #define FERR_NOHANDLES       4  
00854 #define FERR_ACCESSDENIED    5  
00855 #define FERR_LOWMEM          8  
00856 #define FERR_BADENVIRON     10  
00857 #define FERR_BADFORMAT      11  
00858 #define FERR_BADDRIVE       15  
00859 #define FERR_DELETEDIR      16  
00860 #define FERR_NOFILES        18  
00862 /* fsel_(ex)input return values */
00863 #define FSEL_CANCEL      0  
00864 #define FSEL_OK          1  
00866 /* menu_attach modes */
00867 #define ME_INQUIRE      0   
00868 #define ME_ATTACH       1   
00869 #define ME_REMOVE       2   
00871 /* menu_attach attributes */
00872 #define SCROLL_NO       0   
00873 #define SCROLL_YES      1   
00875 /* menu_bar modes */
00876 #define MENU_INQUIRE    -1  
00877 #define MENU_REMOVE     0   
00878 #define MENU_INSTALL    1   
00879 #define MENU_GETMODE    3      
00880 #define MENU_SETMODE    4      
00881 #define MENU_UPDATE     5      
00882 #define MENU_INSTL      100    
00885 /* MENU_GETMODE and MENU_SETMODE bits */
00886 #define  MENU_HIDDEN    0x0001 
00887 #define  MENU_PULLDOWN  0x0002 
00888 #define  MENU_SHADOWED  0x0004 
00890 /* menu_icheck modes */
00891 #define UNCHECK         0   
00892 #define CHECK           1   
00894 /* menu_ienable modes */
00895 #define DISABLE         0   
00896 #define ENABLE          1   
00898 /* menu_istart modes */
00899 #define MIS_GETALIGN        0   
00900 #define MIS_SETALIGN        1   
00902 /* menu_popup modes */
00903 #define SCROLL_LISTBOX      -1  
00905 /* menu_register modes */
00906 #define REG_NEWNAME     -1  
00908 /* menu_settings modes */
00909 #define MN_INQUIRE      0  
00910 #define MN_CHANGE       1  
00912 /* menu_tnormal modes */
00913 #define HIGHLIGHT       0   
00914 #define UNHIGHLIGHT     1   
00918 typedef struct _mn_set 
00919 {
00920     long  display;      
00921     long  drag;         
00922     long  delay;        
00923     long  speed;        
00924     short height;       
00925 } MN_SET;
00926 
00927 /* shel_get modes */
00928 #define SHEL_BUFSIZE (-1)   
00930 /* shel_help mode */
00931 #define SHP_HELP 0      
00934 typedef struct
00935 {
00939     char *newcmd;
00943     long psetlimit;
00947     long prenice;
00952     char *defdir;
00956     char *env;
00960     short uid;
00964     short gid;
00965 } SHELW;
00966 
00968 typedef struct
00969 {
00970     char    *command;   
00971     long    limit;      
00972     long    nice;       
00973     char    *defdir;    
00974     char    *env;       
00975     long    flags;      
00976 } XSHW_COMMAND;
00977 
00979 typedef struct
00980 {
00981     long            __CDECL (*proc)(void *par); 
00986     void            *user_stack;
00992     unsigned long   stacksize;
00993     short           mode;                       
00994     long            res1;                       
00995 } THREADINFO;
00996 
00998 typedef  struct
00999 {
01000     short   dummy;      
01001     long    magic;      
01007     short   isfirst;
01015     long    lasterr;
01016     short   wasgr;      
01017 } SHELTAIL;
01018 
01019 
01020 /* shel_write modes */
01024 #define SWM_LAUNCH          0
01027 #define SWM_LAUNCHNOW       1
01028 #define SWM_LAUNCHACC       3   
01029 #define SWM_SHUTDOWN        4   
01030 #define SWM_REZCHANGE       5   
01031 #define SWM_BROADCAST       7   
01032 #define SWM_ENVIRON         8   
01036 #define SWM_NEWMSG          9   
01037 #define SWM_AESMSG          10  
01038 #define SWM_THRCREATE       20  
01039 #define SWM_THREXIT         21  
01040 #define SWM_THRKILL         22  
01042 /* other names for shel_write modes */
01043 #define SHW_NOEXEC          SWM_LAUNCH      
01044 #define SHW_EXEC            SWM_LAUNCHNOW   
01045 #define SHW_EXEC_ACC        SWM_LAUNCHACC   
01046 #define SHW_SHUTDOWN        SWM_SHUTDOWN    
01047 #define SHW_RESCHNG         SWM_REZCHANGE   
01048 #define SHW_BROADCAST       SWM_BROADCAST   
01049 #define SHW_INFRECGN        SWM_NEWMSG      
01050 #define SHW_AESSEND         SWM_AESMSG      
01051 #define SHW_THR_CREATE      SWM_THRCREATE   
01052 #define SHW_THR_EXIT        SWM_THREXIT     
01053 #define SHW_THR_KILL        SWM_THRKILL     
01055 /* shel_write, parameter wisgr */
01056 #define TOSAPP              0  
01057 #define GEMAPP              1  
01059 /* shel_write, parameter wiscr when wodex=1 (SWM_LAUNCHNOW) */
01060 #define SHW_IMMED           0   
01061 #define SHW_CHAIN           1   
01062 #define SHW_DOS             2   
01063 #define SHW_PARALLEL        100 
01064 #define SHW_SINGLE          101 
01066 /* command line parser (shel_write: parameter "wiscr") */
01067 #define CL_NORMAL       0   
01068 #define CL_PARSE        1   
01070 /* shutdown action (shel_write: mode SWM_SHUTDOWN, parameter "wiscr") */
01071 #define SD_ABORT        0       
01072 #define SD_PARTIAL      1       
01073 #define SD_COMPLETE     2       
01075 /* shel_write: mode SWM_ENVIRON, parameter 'wisgr' */
01076 #define ENVIRON_SIZE    0   
01077 #define ENVIRON_CHANGE  1   
01078 #define ENVIRON_COPY    2   
01080 /* shel_write: mode SWM_NEWMSG, parameter 'wisgr' */
01081 #define NM_APTERM       0x0001  
01082 #define NM_INHIBIT_HIDE 0x0002  
01084 /* Werte fr Modus SWM_AESMSG (fr shel_write) */
01085 #define AP_AESTERM      52     /* Mode 10: N.AES komplett terminieren. */   
01087 /* extended shel_write() modes */
01088 #define SW_PSETLIMIT    0x0100  
01089 #define SW_PRENICE      0x0200  
01090 #define SW_DEFDIR       0x0400  
01091 #define SW_ENVIRON      0x0800  
01093 /* XaAES extensions for shel_write() extended modes*/
01094 #define SW_UID          0x1000  
01095 #define SW_GID          0x2000  
01097 /* MagiC 6 extensions for shel_write() extended modes*/
01098 #define SHW_XMDFLAGS    0x1000  
01100 /* other names... */
01101 #define SHW_XMDLIMIT    SW_PSETLIMIT    
01102 #define SHW_XMDNICE     SW_PRENICE      
01103 #define SHW_XMDDEFDIR   SW_DEFDIR       
01104 #define SHW_XMDENV      SW_ENVIRON      
01106 /* rsrc_gaddr structure types */
01107 #define R_TREE          0   
01108 #define R_OBJECT        1   
01109 #define R_TEDINFO       2   
01110 #define R_ICONBLK       3   
01111 #define R_BITBLK        4   
01112 #define R_STRING        5   
01113 #define R_IMAGEDATA     6   
01114 #define R_OBSPEC        7   
01115 #define R_TEPTEXT       8   
01116 #define R_TEPTMPLT      9   
01117 #define R_TEPVALID      10  
01118 #define R_IBPMASK       11  
01119 #define R_IBPDATA       12  
01120 #define R_IBPTEXT       13  
01121 #define R_BIPDATA       14  
01122 #define R_FRSTR         15  
01123 #define R_FRIMG         16  
01125 /* scrap_read return values */
01126 #define SCRAP_CSV       0x0001  
01127 #define SCRAP_TXT       0x0002  
01128 #define SCRAP_GEM       0x0004  
01129 #define SCRAP_IMG       0x0008  
01130 #define SCRAP_DCA       0x0010  
01131 #define SCRAP_DIF       0x0020  
01132 #define SCRAP_USR       0x8000  
01134 /* Window Attributes */
01135 #define NAME            0x0001  
01136 #define CLOSER          0x0002  
01137 #define FULLER          0x0004  
01138 #define MOVER           0x0008  
01139 #define INFO            0x0010  
01140 #define SIZER           0x0020  
01141 #define UPARROW         0x0040  
01142 #define DNARROW         0x0080  
01143 #define VSLIDE          0x0100  
01144 #define LFARROW         0x0200  
01145 #define RTARROW         0x0400  
01146 #define HSLIDE          0x0800  
01147 #define HOTCLOSEBOX     0x1000  
01148 #define MENUBAR         0x1000  
01149 #define BACKDROP        0x2000  
01150 #define SMALLER         0x4000  
01151 #define BORDER          0x8000  
01152 #define ICONIFIER       SMALLER 
01154 /* wind_create flags */
01155 #define WC_BORDER       0   
01156 #define WC_WORK         1   
01158 /* wind_get flags */
01159 #define WF_KIND           1     
01160 #define WF_NAME           2     
01161 #define WF_INFO           3     
01162 #define WF_WORKXYWH       4     
01163 #define WF_CURRXYWH       5     
01164 #define WF_PREVXYWH       6     
01165 #define WF_FULLXYWH       7     
01166 #define WF_HSLIDE         8     
01167 #define WF_VSLIDE         9     
01168 #define WF_TOP           10     
01169 #define WF_FIRSTXYWH     11     
01170 #define WF_NEXTXYWH      12     
01171 #define WF_FIRSTAREAXYWH 13     
01172 #define WF_NEWDESK       14     
01173 #define WF_HSLSIZE       15     
01174 #define WF_VSLSIZE       16     
01175 #define WF_SCREEN        17     
01176 #define WF_COLOR         18     
01177 #define WF_DCOLOR        19     
01178 #define WF_OWNER         20     
01179 #define WF_BEVENT        24     
01180 #define WF_BOTTOM        25     
01181 #define WF_ICONIFY       26     
01182 #define WF_UNICONIFY     27     
01183 #define WF_UNICONIFYXYWH 28     
01184 #define WF_TOOLBAR       30     
01185 #define WF_FTOOLBAR      31     
01186 #define WF_NTOOLBAR      32     
01187 #define WF_MENU          33     
01188 #define WF_WHEEL         40     
01189 #define WF_OPTS          41     
01190 #define WF_CALCF2W       42 
01191 #define WF_CALCW2F       43 
01192 #define WF_CALCF2U       44 
01193 #define WF_CALCU2F       45 
01194 #define WF_MAXWORKXYWH       46 
01195 #define WF_M_BACKDROP   100     
01196 #define WF_M_OWNER      101     
01197 #define WF_M_WINDLIST   102     
01198 #define WF_MINXYWH      103     
01199 #define WF_INFOXYWH     104     
01200 #define WF_WIDGETS      200     
01201 #define WF_WINX         22360   
01202 #define WF_WINXCFG      22361   
01203 #define WF_SHADE        22365   
01204 #define WF_STACK        22366   
01205 #define WF_TOPALL       22367   
01206 #define WF_BOTTOMALL    22368   
01207 #define WF_XAAES        0x5841  
01209 /* wind_set(WF_BEVENT) */
01210 #define BEVENT_WORK     0x0001    
01211 #define BEVENT_INFO     0x0002    
01213 /* wind_set(WF_OPTS) bitmask flags */
01214 #define WO0_WHEEL       0x0001  
01215 #define WO0_FULLREDRAW  0x0002  
01216 #define WO0_NOBLITW     0x0004  
01217 #define WO0_NOBLITH     0x0008  
01218 #define WO0_SENDREPOS   0x0010  
01219 #define WO1_NONE        0x0000  
01220 #define WO2_NONE        0x0000  
01222 /* wind_set(WF_WHEEL) modes */
01223 #define WHEEL_MESAG     0   
01224 #define WHEEL_ARROWED   1   
01225 #define WHEEL_SLIDER    2   
01227 /* window elements */
01228 #define W_BOX           0   
01229 #define W_TITLE         1   
01230 #define W_CLOSER        2   
01231 #define W_NAME          3   
01232 #define W_FULLER        4   
01233 #define W_INFO          5   
01234 #define W_DATA          6   
01235 #define W_WORK          7   
01236 #define W_SIZER         8   
01237 #define W_VBAR          9   
01238 #define W_UPARROW       10  
01239 #define W_DNARROW       11  
01240 #define W_VSLIDE        12  
01241 #define W_VELEV         13  
01242 #define W_HBAR          14  
01243 #define W_LFARROW       15  
01244 #define W_RTARROW       16  
01245 #define W_HSLIDE        17  
01246 #define W_HELEV         18  
01247 #define W_SMALLER       19  
01248 #define W_BOTTOMER      20  
01249 #define W_HIDER         30  
01251 /* arrow message */
01252 #define WA_UPPAGE       0   
01253 #define WA_DNPAGE       1   
01254 #define WA_UPLINE       2   
01255 #define WA_DNLINE       3   
01256 #define WA_LFPAGE       4   
01257 #define WA_RTPAGE       5   
01258 #define WA_LFLINE       6   
01259 #define WA_RTLINE       7   
01260 #define WA_WHEEL        8   
01262 /* wind_update flags */
01263 #define END_UPDATE      0   
01264 #define BEG_UPDATE      1   
01265 #define END_MCTRL       2   
01266 #define BEG_MCTRL       3   
01267 #define NO_BLOCK        0x100  
01269 /* graf_mouse mouse types */
01270 #define ARROW            0  
01271 #define TEXT_CRSR        1  
01272 #define BEE              2  
01273 #define BUSY_BEE      BEE   
01274 #define BUSYBEE       BEE   
01275 #define HOURGLASS        2  
01276 #define POINT_HAND       3  
01277 #define FLAT_HAND        4  
01278 #define THIN_CROSS       5  
01279 #define THICK_CROSS      6  
01280 #define OUTLN_CROSS      7  
01281 #define USER_DEF          255   
01282 #define M_OFF             256   
01283 #define M_ON              257   
01284 #define M_SAVE            258   
01285 #define M_RESTORE         259   
01286 #define M_LAST            260   
01287 #define M_PREVIOUS        M_LAST 
01288 #define M_FORCE         0x8000  
01290 /* objects - general */
01291 #define ROOT            0    
01292 #define MAX_LEN         81   /* max string length */    
01293 #define MAX_DEPTH       8    /* max depth of search or draw */  
01295 /* inside fill patterns */
01296 #define IP_HOLLOW       0   
01297 #define IP_1PATT        1   
01298 #define IP_2PATT        2   
01299 #define IP_3PATT        3   
01300 #define IP_4PATT        4   
01301 #define IP_5PATT        5   
01302 #define IP_6PATT        6   
01303 #define IP_SOLID        7   
01305 /* font types */
01306 #define GDOS_PROP       0   
01307 #define GDOS_MONO       1   
01308 #define GDOS_BITM       2   
01309 #define IBM             3   
01310 #define SMALL           5   
01312 /* object types */
01313 #define G_BOX           20  
01314 #define G_TEXT          21  
01315 #define G_BOXTEXT       22  
01316 #define G_IMAGE         23  
01317 #define G_USERDEF       24  
01318 #define G_PROGDEF       G_USERDEF   
01319 #define G_IBOX          25  
01320 #define G_BUTTON        26  
01321 #define G_BOXCHAR       27  
01322 #define G_STRING        28  
01323 #define G_FTEXT         29  
01324 #define G_FBOXTEXT      30  
01325 #define G_ICON          31  
01326 #define G_TITLE         32  
01327 #define G_CICON         33  
01329 /* extended object types, MagiC only */
01330 #define G_SWBUTTON      34  
01331 #define G_POPUP         35  
01332 #define G_WINTITLE      36  
01333 #define G_EDIT          37  
01334 #define G_SHORTCUT      38  
01337 /* object flags */
01338 #define OF_NONE         0x0000  
01339 #define OF_SELECTABLE   0x0001  
01340 #define OF_DEFAULT      0x0002  
01341 #define OF_EXIT         0x0004  
01342 #define OF_EDITABLE     0x0008  
01343 #define OF_RBUTTON      0x0010  
01344 #define OF_LASTOB       0x0020  
01345 #define OF_TOUCHEXIT    0x0040  
01346 #define OF_HIDETREE     0x0080  
01347 #define OF_INDIRECT     0x0100  
01348 #define OF_FL3DIND      0x0200  /* bit 9 */ 
01349 #define OF_FL3DBAK      0x0400  /* bit 10 */    
01350 #define OF_FL3DACT      0x0600  
01351 #define OF_SUBMENU      0x0800  /* bit 11 */    
01352 #define OF_FLAG11       OF_SUBMENU  
01353 #define OF_FLAG12       0x1000  
01354 #define OF_FLAG13       0x2000  
01355 #define OF_FLAG14       0x4000  
01356 #define OF_FLAG15       0x8000  
01358 /* Object states */
01359 #define OS_NORMAL       0x0000  
01360 #define OS_SELECTED     0x0001  
01361 #define OS_CROSSED      0x0002  
01362 #define OS_CHECKED      0x0004  
01363 #define OS_DISABLED     0x0008  
01364 #define OS_OUTLINED     0x0010  
01365 #define OS_SHADOWED     0x0020  
01366 #define OS_WHITEBAK     0x0040  
01367 #define OS_DRAW3D       0x0080  
01368 #define OS_STATE08      0x0100  
01369 #define OS_STATE09      0x0200  
01370 #define OS_STATE10      0x0400  
01371 #define OS_STATE11      0x0800  
01372 #define OS_STATE12      0x1000  
01373 #define OS_STATE13      0x2000  
01374 #define OS_STATE14      0x4000  
01375 #define OS_STATE15      0x8000  
01377 /* Object colors - default pall. */
01378 #define G_WHITE         0   
01379 #define G_BLACK         1   
01380 #define G_RED           2   
01381 #define G_GREEN         3   
01382 #define G_BLUE          4   
01383 #define G_CYAN          5   
01384 #define G_YELLOW        6   
01385 #define G_MAGENTA       7   
01386 #define G_LWHITE        8   
01387 #define G_LBLACK        9   
01388 #define G_LRED          10  
01389 #define G_LGREEN        11  
01390 #define G_LBLUE         12  
01391 #define G_LCYAN         13  
01392 #define G_LYELLOW       14  
01393 #define G_LMAGENTA      15  
01396 #ifdef __GEMLIB_OLDNAMES
01397 
01398 /* object flags */
01399 #define NONE            0x0000  
01400 #define SELECTABLE      0x0001  
01401 #define DEFAULT         0x0002  
01402 #define EXIT            0x0004  
01403 #define EDITABLE        0x0008  
01404 #define RBUTTON         0x0010  
01405 #define LASTOB          0x0020  
01406 #define TOUCHEXIT       0x0040  
01407 #define HIDETREE        0x0080  
01408 #define INDIRECT        0x0100  
01409 #define FL3DIND         0x0200  /* bit 9 */ 
01410 #define FL3DBAK         0x0400  /* bit 10 */    
01411 #define FL3DACT         0x0600  
01412 #define SUBMENU         0x0800  /* bit 11 */    
01413 #define FLAG11          SUBMENU 
01414 #define FLAG12          0x1000  
01415 #define FLAG13          0x2000  
01416 #define FLAG14          0x4000  
01417 #define FLAG15          0x8000  
01419 /* Object states */
01420 #define NORMAL          0x0000  
01421 #define SELECTED        0x0001  
01422 #define CROSSED         0x0002  
01423 #define CHECKED         0x0004  
01424 #define DISABLED        0x0008  
01425 #define OUTLINED        0x0010  
01426 #define SHADOWED        0x0020  
01427 #define WHITEBAK        0x0040  
01428 #define DRAW3D          0x0080  
01429 #define STATE08         0x0100  
01430 #define STATE09         0x0200  
01431 #define STATE10         0x0400  
01432 #define STATE11         0x0800  
01433 #define STATE12         0x1000  
01434 #define STATE13         0x2000  
01435 #define STATE14         0x4000  
01436 #define STATE15         0x8000  
01438 /* Object colors - default pall. */
01439 #define WHITE           0   
01440 #define BLACK           1   
01441 #define RED             2   
01442 #define GREEN           3   
01443 #define BLUE            4   
01444 #define CYAN            5   
01445 #define YELLOW          6   
01446 #define MAGENTA         7   
01447 #define LWHITE          8   
01448 #define LBLACK          9   
01449 #define LRED            10  
01450 #define LGREEN          11  
01451 #define LBLUE           12  
01452 #define LCYAN           13  
01453 #define LYELLOW         14  
01454 #define LMAGENTA        15  
01456 #endif
01457 
01458 
01459 /* editable text field definitions */
01460 #define ED_START        0   
01461 #define ED_INIT         1   
01462 #define ED_CHAR         2   
01463 #define ED_END          3   
01465 #define EDSTART         ED_START    
01466 #define EDINIT          ED_INIT     
01467 #define EDCHAR          ED_CHAR     
01468 #define EDEND           ED_END      
01470 #define ED_CRSR         100 
01471 #define ED_DRAW         103 
01473 /* editable text justification */
01474 #define TE_LEFT         0   
01475 #define TE_RIGHT        1   
01476 #define TE_CNTR         2   
01478 /* objc_change modes */
01479 #define NO_DRAW         0   
01480 #define REDRAW          1   
01482 /* objc_order modes */
01483 #define OO_LAST         -1  
01484 #define OO_FIRST        0   
01486 /* objc_sysvar modes */
01487 #define SV_INQUIRE      0   
01488 #define SV_SET          1   
01490 /* objc_sysvar values */
01491 #define LK3DIND         1   
01492 #define LK3DACT         2   
01493 #define INDBUTCOL       3   
01494 #define ACTBUTCOL       4   
01495 #define BACKGRCOL       5   
01496 #define AD3DVAL         6   
01497 #define MX_ENABLE3D     10  
01498 #define MENUCOL         11  
01501 typedef struct mouse_form
01502 {
01507     short       mf_xhot;
01508 
01513     short       mf_yhot;
01514     
01518     short       mf_nplanes;
01519     
01523     short       mf_fg;
01524     
01528     short       mf_bg;
01529     
01533     short       mf_mask[16];
01534     
01538     short       mf_data[16];
01539 } MFORM;
01540 
01541 #ifndef __PXY
01542 # define __PXY  
01544 typedef struct point_coord
01545 {
01546     short p_x;          
01547     short p_y;          
01548 } PXY;
01549 #endif
01550 
01551 #ifndef __GRECT
01552 # define __GRECT    
01554 typedef struct graphic_rectangle
01555 {
01556     short g_x;          
01557     short g_y;          
01558     short g_w;          
01559     short g_h;          
01560 } GRECT;
01561 #endif
01562 
01564 typedef struct objc_colorword 
01565 {
01566     unsigned    borderc : 4;            
01567     unsigned    textc   : 4;            
01568     unsigned    opaque  : 1;            
01569     unsigned    pattern : 3;            
01570     unsigned    fillc   : 4;            
01571 } OBJC_COLORWORD;
01572 
01574 typedef struct text_edinfo
01575 {
01576     char        *te_ptext;      
01577     char        *te_ptmplt;     
01578     char        *te_pvalid;     
01579     short       te_font;        
01580     short       te_fontid;      
01581     short       te_just;        
01582     short       te_color;       
01583     short       te_fontsize;    
01584     short       te_thickness;   
01585     short       te_txtlen;      
01586     short       te_tmplen;      
01587 } TEDINFO;
01588 
01590 typedef struct icon_block
01591 {
01592     short       *ib_pmask;          
01593     short       *ib_pdata;          
01594     char        *ib_ptext;          
01595     short       ib_char;            
01596     short       ib_xchar;           
01597     short       ib_ychar;           
01598     short       ib_xicon;           
01599     short       ib_yicon;           
01600     short       ib_wicon;           
01601     short       ib_hicon;           
01602     short       ib_xtext;           
01603     short       ib_ytext;           
01604     short       ib_wtext;           
01605     short       ib_htext;           
01606 } ICONBLK;
01607 
01609 typedef struct bit_block
01610 {
01611     short       *bi_pdata;  
01612     short       bi_wb;      
01613     short       bi_hl;      
01614     short       bi_x;       
01615     short       bi_y;       
01616     short       bi_color;   
01617 } BITBLK;
01618 
01620 typedef struct cicon_data
01621 {
01622     short       num_planes;         
01623     short       *col_data;          
01624     short       *col_mask;          
01625     short       *sel_data;          
01626     short       *sel_mask;          
01627     struct cicon_data *next_res;    
01628 } CICON;
01629 
01631 typedef struct cicon_blk
01632 {
01633     ICONBLK     monoblk;            
01634     CICON       *mainlist;          
01635 } CICONBLK;
01636 
01638 typedef struct
01639 {
01640      unsigned   character   :  8;           
01641      signed     framesize   :  8;           
01642      unsigned   framecol    :  4;           
01643      unsigned   textcol     :  4;           
01644      unsigned   textmode    :  1;           
01645      unsigned   fillpattern :  3;           
01646      unsigned   interiorcol :  4;           
01647 } BFOBSPEC;
01648 
01650 struct user_block;  /* forward declaration */
01651 
01653 typedef union obspecptr
01654 {
01655     long        index;              
01656     union obspecptr *indirect;      
01657     BFOBSPEC    obspec;             
01658     TEDINFO     *tedinfo;           
01659     BITBLK      *bitblk;            
01660     ICONBLK     *iconblk;           
01661     CICONBLK    *ciconblk;          
01662     struct user_block *userblk;     
01663     char        *free_string;       
01664 } OBSPEC;
01665 
01667 typedef struct object
01668 {
01669     short       ob_next;        
01670     short       ob_head;        
01671     short       ob_tail;        
01672     unsigned short  ob_type;    
01673     unsigned short  ob_flags;   
01674     unsigned short  ob_state;   
01675     OBSPEC      ob_spec;        
01676     short       ob_x;           
01677     short       ob_y;           
01678     short       ob_width;       
01679     short       ob_height;      
01680 } OBJECT;
01681 
01683 typedef struct parm_block
01684 {
01685     OBJECT  *pb_tree;       
01686     short   pb_obj;         
01687     short   pb_prevstate;   
01688     short   pb_currstate;   
01689     short   pb_x;           
01690     short   pb_y;           
01691     short   pb_w;           
01692     short   pb_h;           
01693     short   pb_xc;          
01694     short   pb_yc;          
01695     short   pb_wc;          
01696     short   pb_hc;          
01697     long    pb_parm;        
01698 } PARMBLK;
01699 
01701 typedef struct user_block
01702 {
01703     short __CDECL (*ub_code)(PARMBLK *parmblock);   
01704     long ub_parm;                                   
01705 } USERBLK;
01706 
01708 typedef struct rshdr
01709 {
01710     short           rsh_vrsn;           
01711     unsigned short  rsh_object;         
01712     unsigned short  rsh_tedinfo;        
01713     unsigned short  rsh_iconblk;        
01714     unsigned short  rsh_bitblk;         
01715     unsigned short  rsh_frstr;          
01716     unsigned short  rsh_string;         
01717     unsigned short  rsh_imdata;         
01718     unsigned short  rsh_frimg;          
01719     unsigned short  rsh_trindex;        
01720     short           rsh_nobs;           
01721     short           rsh_ntree;          
01722     short           rsh_nted;           
01723     short           rsh_nib;            
01724     short           rsh_nbb;            
01725     short           rsh_nstring;        
01726     short           rsh_nimages;        
01727     unsigned short  rsh_rssize;         
01728 } RSHDR;
01729 
01731 typedef struct _menu
01732 {
01733     OBJECT *mn_tree;    
01734     short  mn_menu;     
01735     short  mn_item;     
01736     short  mn_scroll;   
01744     short  mn_keystate; 
01745 } MENU;
01746 
01748 typedef struct
01749 {
01750     short m_out;    
01751     short m_x;      
01752     short m_y;      
01753     short m_w;      
01754     short m_h;      
01755 } MOBLK;
01756 
01758 typedef struct mouse_event_type
01759 {
01760     short *x;   
01761     short *y;   
01762     short *b;   
01763     short *k;   
01764 } MOUSE_EVENT;
01765 
01768 typedef struct {
01769     short emi_flags;          
01770     short emi_bclicks;        
01771     short emi_bmask;          
01772     short emi_bstate;         
01773     short emi_m1leave;        
01774     GRECT emi_m1;             
01775     short emi_m2leave;        
01776     GRECT emi_m2;             
01777     short emi_tlow;           
01778     short emi_thigh;          
01779 } EVMULT_IN;
01780 
01785 typedef struct {
01786     short emo_events;   
01787     PXY   emo_mouse;    
01788     short emo_mbutton;  
01789     short emo_kmeta;    
01790     short emo_kreturn;  
01791     short emo_mclicks;  
01792 } EVMULT_OUT;
01793 
01794 #endif
01795 
01796 #ifdef __GEMLIB_AES
01797 
01798 /*******************************************************************************
01799  * The AES bindings from old aesbind.h
01800  */
01801 
01805 short   mt_appl_bvset   (short bvdisk, short bvhard, short *global_aes);
01806 short   mt_appl_control (short ap_cid, short ap_cwhat, void *ap_cout, short *global_aes);
01807 short   mt_appl_exit    (short *global_aes);
01808 short   mt_appl_find    (const char *name, short *global_aes);
01809 short   mt_appl_getinfo (short type,
01810                          short *out1, short *out2, short *out3, short *out4, short *global_aes);
01811 short   mt_appl_getinfo_str (short type,
01812                          char *out1, char *out2, char *out3, char *out4, short *global_aes);
01813 short   mt_appl_init    (short *global_aes);
01814 short   mt_appl_read    (short ap_id, short length, void *ap_pbuff, short *global_aes);
01815 short   mt_appl_search  (short mode, char *fname, short *type, short *ap_id, short *global_aes);
01816 short   mt_appl_tplay   (void *mem, short num, short scale, short *global_aes);
01817 short   mt_appl_trecord (void *mem, short count, short *global_aes);
01818 short   mt_appl_write   (short ap_id, short length, void *ap_pbuff, short *global_aes);
01819 short   mt_appl_yield   (short *global_aes);
01825 short   mt_evnt_button (short Clicks, short WhichButton, short WhichState,
01826                         short *Mx, short *My, short *ButtonState, short *KeyState, short *global_aes);
01827 short   mt_evnt_dclick (short ToSet, short SetGet, short *global_aes);
01828 short   mt_evnt_keybd  (short *global_aes);
01829 short   mt_evnt_mesag  (short MesagBuf[], short *global_aes);
01830 short   mt_evnt_mouse  (short EnterExit, short InX, short InY, short InW, short InH,
01831                         short *OutX, short *OutY, short *ButtonState, short *KeyState, short *global_aes);
01832 short   mt_evnt_multi  (short Type, short Clicks, short WhichButton, short WhichState,
01833                         short EnterExit1, short In1X, short In1Y, short In1W, short In1H,
01834                         short EnterExit2, short In2X, short In2Y, short In2W, short In2H,
01835                         short MesagBuf[], unsigned long Interval, short *OutX, short *OutY,
01836                         short *ButtonState, short *KeyState, short *Key, short *ReturnCount, short *global_aes);
01837 short   mt_evnt_multi_fast (const EVMULT_IN * em_i,
01838                             short MesagBuf[], EVMULT_OUT * em_o, short *global_aes);
01839 short   mt_evnt_timer  (unsigned long Interval, short *global_aes);
01845 short mt_form_alert  (short DefButton, const char *Str, short *global_aes);
01846 short mt_form_button (OBJECT *, short Bobject, short Bclicks, short *Bnxtobj, short *global_aes);
01847 short mt_form_center (OBJECT *, short *Cx, short *Cy, short *Cw, short *Ch, short *global_aes);
01848 short mt_form_center_grect (OBJECT *, GRECT *r, short *global_aes);
01849 short mt_form_dial   (short Flag, short Sx, short Sy, short Sw, short Sh,
01850                                short Bx, short By, short Bw, short Bh, short *global_aes);
01851 short mt_form_do     (OBJECT *, short StartObj, short *global_aes);
01852 short mt_form_error  (short ErrorCode, short *global_aes);
01853 short mt_form_keybd  (OBJECT *, short Kobject, short Kobnext, short Kchar,
01854                              short *Knxtobject, short *Knxtchar, short *global_aes);
01862 typedef void __CDECL (* FSEL_CALLBACK)( short *msg);
01863 
01864 short   mt_fsel_exinput (char *path, char *file, short *exit_button, const char *title, short *global);
01865 short   mt_fsel_input   (char *path, char *file, short *exit_button, short *global);
01866 short   mt_fsel_boxinput(char *path, char *file, short *exit_button, const char *title, FSEL_CALLBACK callback, short *global);
01872 short   mt_graf_dragbox (short Sw, short Sh, short Sx, short Sy, short Bx, short By, short Bw, short Bh, short *Fw, short *Fh, short *global_aes);
01873 short   mt_graf_growbox (short Sx, short Sy, short Sw, short Sh, short Fx, short Fy, short Fw, short Fh, short *global_aes);
01874 short   mt_graf_growbox_grect   (const GRECT *in, const GRECT *out, short *global_aes);
01875 short   mt_graf_handle  (short *Wchar, short *Hchar, short *Wbox, short *Hbox, short *global_aes);
01876 short   mt_graf_xhandle (short *Wchar, short *Hchar, short *Wbox, short *Hbox, short * device, short *global_aes);
01877 short   mt_graf_mbox    (short Sw, short Sh, short Sx, short Sy, short Dx, short Dy, short *global_aes);
01878 short   mt_graf_mkstate (short *Mx, short *My, short *ButtonState, short *KeyState, short *global_aes);
01879 short   mt_graf_mouse   (short Form, const MFORM *FormAddress, short *global_aes);
01880 short   mt_graf_rubberbox   (short Ix, short Iy, short Iw, short Ih, short *Fw, short *Fh, short *global_aes);
01881 short   mt_graf_multirubber (short bx, short by, short mw, short mh, GRECT *rec, short *rw, short *rh, short *global_aes);
01882 short   mt_graf_shrinkbox   (short Fx, short Fy, short Fw, short Fh, short Sx, short Sy, short Sw, short Sh, short *global_aes);
01883 short   mt_graf_shrinkbox_grect (const GRECT *in, const GRECT *out, short *global_aes);
01884 short   mt_graf_slidebox    (OBJECT *, short Parent, short Object, short Direction, short *global_aes);
01885 short   mt_graf_watchbox    (OBJECT *, short Object, short InState, short OutState, short *global_aes);
01886 short   mt_graf_wwatchbox   (OBJECT *, short Object, short InState, short OutState, short whandle, short *global_aes);
01892 short   mt_menu_attach         (short me_flag, OBJECT *me_tree, short me_item, MENU *me_mdata, short *global);
01893 short   mt_menu_bar            (OBJECT *me_tree, short me_mode, short *global);
01894 short   mt_menu_click          (short click, short setit, short *global);
01895 short   mt_menu_icheck         (OBJECT *me_tree, short me_item, short me_check, short *global);
01896 short   mt_menu_ienable        (OBJECT *me_tree, short me_item, short me_enable, short *global);
01897 short   mt_menu_istart         (short me_flag, OBJECT *me_tree, short me_imenu, short me_item, short *global);
01898 short   mt_menu_popup          (MENU *me_menu, short me_xpos, short me_ypos, MENU *me_mdata, short *global);
01899 short   mt_menu_register       (short ap_id, char *me_text, short *global);
01900 short   mt_menu_settings       (short me_flag, MN_SET *me_values, short *global);
01901 short   mt_menu_text           (OBJECT *me_tree, short me_item, char *me_text, short *global);
01902 short   mt_menu_tnormal        (OBJECT *me_tree, short me_item, short me_normal, short *global);
01903 short   mt_menu_unregister     (short id, short *global);
01909 short   mt_objc_add     (OBJECT *, short Parent, short Child, short *global);
01910 short   mt_objc_change  (OBJECT *, short Object, short Res,
01911                          short Cx, short Cy, short Cw, short Ch,
01912                          short NewState,short Redraw, short *global_aes);
01913 short   mt_objc_delete  (OBJECT *, short Object, short *global_aes);
01914 short   mt_objc_draw    (OBJECT *, short Start, short Depth,
01915                          short Cx, short Cy, short Cw, short Ch, short *global_aes);
01916 short   mt_objc_draw_grect  (OBJECT *, short Start, short Depth, const GRECT *r, short *global_aes);
01917 short   mt_objc_edit    (OBJECT *, short Object, short Char, short *Index, short Kind, short *global_aes); 
01918 short   mt_objc_find    (OBJECT *, short Start, short Depth, short Mx, short My, short *global_aes);
01919 short   mt_objc_xfind   (OBJECT *, short Start, short Depth, short Mx, short My, short *global_aes);
01920 short   mt_objc_offset  (OBJECT *, short Object, short *X, short *Y, short *global_aes);
01921 short   mt_objc_order   (OBJECT *, short Object, short NewPos, short *global_aes);
01922 short   mt_objc_sysvar  (short mode, short which, short in1, short in2, short *out1, short *out2, short *global_aes);
01928 short   mt_rsrc_free    (short *global_aes);
01929 short   mt_rsrc_gaddr   (short Type, short Index, void *Address, short *global_aes);
01930 short   mt_rsrc_load    (const char *Name, short *global_aes);
01931 short   mt_rsrc_obfix   (OBJECT *, short Index, short *global_aes);
01932 short   mt_rsrc_rcfix   (void *rc_header, short *global_aes);
01933 short   mt_rsrc_saddr   (short Type, short Index, void *Address, short *global_aes);
01939 short   mt_scrp_clear   (short *global_aes);
01940 short   mt_scrp_read    (char *Scrappath, short *global_aes);
01941 short   mt_scrp_write   (const char *Scrappath, short *global_aes);
01947 short   mt_shel_envrn   (char **result, const char *param, short *global_aes);
01948 short   mt_shel_find    (char *buf, short *global_aes);
01949 short   mt_shel_get     (char *Buf, short Len, short *global_aes);
01950 short   mt_shel_help    (short sh_hmode, const char *sh_hfile, const char *sh_hkey, short *global_aes);
01951 short   mt_shel_put     (const char *Buf, short Len, short *global_aes);
01952 short   mt_shel_rdef    (char *lpcmd, char *lpdir, short *global_aes);
01953 short   mt_shel_read    (char *Command, char *Tail, short *global_aes);
01954 short   mt_shel_wdef    (const char *lpcmd, const char *lpdir, short *global_aes);
01955 short   mt_shel_write   (short Exit, short Graphic, short Aes, void *Command, char *Tail, short *global_aes);
01961 short   mt_wind_calc    (short Type, short Parts, short InX, short InY, short InW, short InH, short *OutX, short *OutY, short *OutW, short *OutH, short *global_aes);
01962 short   mt_wind_close   (short WindowHandle, short *global_aes);
01963 short   mt_wind_create  (short Parts, short Wx, short Wy, short Ww, short Wh, short *global_aes); 
01964 short   mt_wind_xcreate (short Parts, short Wx, short Wy, short Ww, short Wh, short *OutX, short *OutY, short *OutW, short *OutH, short *global_aes);
01965 short   mt_wind_delete  (short WindowHandle, short *global_aes);
01966 short   mt_wind_draw    (short WindowHandle, short startob, short *global_aes);
01967 short   mt_wind_find    (short X, short Y, short *global_aes);
01968 short   mt_wind_get     (short WindowHandle, short What, short *W1, short *W2, short *W3, short *W4, short *global_aes);
01969 short   mt_wind_new     (short *global_aes);
01970 short   mt_wind_open    (short WindowHandle, short Wx, short Wy, short Ww, short Wh, short *global_aes);
01971 short   mt_wind_set     (short WindowHandle, short What, short W1, short W2, short W3, short W4, short *global_aes);
01972 short   mt_wind_update  (short Code, short *global_aes);
01973 
01974 /*
01975  * Some useful extensions
01976  */
01977 short   mt_wind_calc_grect   (short Type, short Parts, const GRECT *In, GRECT *Out, short *global_aes);  
01978 short   mt_wind_create_grect (short Parts, const GRECT *r, short *global_aes);
01979 short   mt_wind_xcreate_grect (short Parts, const GRECT *r, GRECT *ret, short *global_aes);
01980 short   mt_wind_get_grect    (short WindowHandle, short What, GRECT *r, short *global_aes);
01981 short   mt_wind_xget_grect   (short WindowHandle, short What, const GRECT *clip, GRECT *r, short *global_aes);
01982 short   mt_wind_open_grect   (short WindowHandle, const GRECT *r, short *global_aes);
01983 short   mt_wind_set_grect    (short WindowHandle, short What, const GRECT *r, short *global_aes);
01984 short   mt_wind_xset_grect   (short WindowHandle, short What, const GRECT *s, GRECT *r, short *global_aes);
01985 short   mt_wind_set_str      (short WindowHandle, short What, const char *str, short *global_aes);
01991 short   rc_copy        (const GRECT *src, GRECT *dst);
01992 short   rc_equal       (const GRECT *r1,  const GRECT *r2);
01993 short   rc_intersect   (const GRECT *src, GRECT *dst);
01994 GRECT * array_to_grect (const short *array, GRECT *area);
01995 short * grect_to_array (const GRECT *area, short *array);
02003 /*
02004  * aes trap interface
02005  */
02006 
02007 /* Array sizes in aes control block */
02008 
02010 #define AES_CTRLMAX     5
02011 
02012 #define AES_GLOBMAX     16
02013 
02014 #define AES_INTINMAX        16
02015 
02016 #define AES_INTOUTMAX       16
02017 
02018 #define AES_ADDRINMAX       16
02019 
02020 #define AES_ADDROUTMAX      16
02021 
02023 #define mt_AESversion(aes_global)   (aes_global[0])
02024 
02027 #define mt_AESnumapps(aes_global)   (aes_global[1])
02028 
02030 #define mt_AESapid(aes_global)          (aes_global[2])
02031 
02033 #define mt_AESappglobal(aes_global) (*((long *)&aes_global[3]))
02034 
02036 #define mt_AESrscfile(aes_global)   ((OBJECT **)(*((long *)&aes_global[5])))
02037 
02040 #define mt_AESmaxchar(aes_global)   (aes_global[13])
02041 
02044 #define mt_AESminchar(aes_global)   (aes_global[14])
02045 
02047 typedef struct
02048 {
02049     short       *control;   
02050     short       *global;    
02051     const short *intin;     
02052     short       *intout;    
02053     const long  *addrin;    
02054     long        *addrout;   
02055 } AESPB;
02056 
02058 extern void aes (AESPB *pb);
02059 
02062 #endif /* AES */
02063 
02064 
02065 
02066 #ifdef __GEMLIB_DEFS
02067 
02068 /*******************************************************************************
02069  * The VDI specific stuff from old gemfast.h
02070  */
02071 
02072 /* normal graphics drawing modes */
02073 #define MD_REPLACE      1   
02074 #define MD_TRANS        2   
02075 #define MD_XOR          3   
02076 #define MD_ERASE        4   
02078 /* bit blt rules */
02079 #define ALL_WHITE       0   
02080 #define S_AND_D         1   
02081 #define S_AND_NOTD      2   
02082 #define S_ONLY          3   
02083 #define NOTS_AND_D      4   
02084 #define D_ONLY          5   
02085 #define S_XOR_D         6   
02086 #define S_OR_D          7   
02087 #define NOT_SORD        8   
02088 #define NOT_SXORD       9   
02089 #define D_INVERT        10  
02090 #define NOT_D           10  
02091 #define S_OR_NOTD       11  
02092 #define NOT_S           12  
02093 #define NOTS_OR_D       13  
02094 #define NOT_SANDD       14  
02095 #define ALL_BLACK       15  
02097 /* v_bez modes */
02098 #define BEZ_BEZIER      0x01    
02099 #define BEZ_POLYLINE    0x00    
02100 #define BEZ_NODRAW      0x02    
02102 /* v_bit_image modes */
02103 #define IMAGE_LEFT      0   
02104 #define IMAGE_CENTER    1   
02105 #define IMAGE_RIGHT     2   
02106 #define IMAGE_TOP       0   
02107 #define IMAGE_BOTTOM    2   
02109 /* v_justified modes */
02110 #define NOJUSTIFY       0   
02111 #define JUSTIFY         1   
02113 /* vq_color modes */
02114 #define COLOR_REQUESTED     0   
02115 #define COLOR_ACTUAL        1   
02117 /* return values for vq_vgdos() inquiry */
02118 #define GDOS_NONE       (-2L)        /* no GDOS installed */    
02119 #define GDOS_FSM        0x5F46534DL /* '_FSM' */    
02120 #define GDOS_FNT        0x5F464E54L /* '_FNT' */    
02122 /* vqin_mode & vsin_mode modes */
02123 #define VINMODE_LOCATOR     1   
02124 #define VINMODE_VALUATOR    2   
02125 #define VINMODE_CHOICE      3   
02126 #define VINMODE_STRING      4   
02128 #ifdef __GEMLIB_OLDNAMES
02129 #define LOCATOR         1   
02130 #define VALUATOR        2   
02131 #define CHOICE          3   
02132 #define STRING          4   
02133 #endif
02134 
02135 /* vqt_cachesize modes */
02136 #define CACHE_CHAR      0   
02137 #define CACHE_MISC      1   
02139 /* vqt_devinfo return values */
02140 #define DEV_MISSING     0   
02141 #define DEV_INSTALLED       1   
02143 /* vqt_name return values */
02144 #define BITMAP_FONT     0   
02146 /* vsf_interior modes */
02147 #define FIS_HOLLOW      0   
02148 #define FIS_SOLID       1   
02149 #define FIS_PATTERN     2   
02150 #define FIS_HATCH       3   
02151 #define FIS_USER        4   
02153 /* vsf_perimeter modes */
02154 #define PERIMETER_OFF       0   
02155 #define PERIMETER_ON        1   
02157 /* vsl_ends modes */
02158 #define SQUARE          0   
02159 #define ARROWED         1   
02160 #define ROUND           2   
02162 /* other names */
02163 #define LE_SQUARED  SQUARE  
02164 #define LE_ARROWED  ARROWED 
02165 #define LE_ROUNDED  ROUND   
02167 /* vsl_type modes */
02168 #define SOLID           1   
02169 #define LDASHED         2   
02170 #define DOTTED          3   
02171 #define DASHDOT         4   
02172 #define DASH            5   
02173 #define DASHDOTDOT      6   
02174 #define USERLINE        7   
02176 /* other names */
02177 #define LT_SOLID        SOLID       
02178 #define LT_LONGDASH     LDASHED     
02179 #define LT_DOTTED       DOTTED      
02180 #define LT_DASHDOT      DASHDOT     
02181 #define LT_DASHED       DASH        
02182 #define LT_DASHDOTDOT   DASHDOTDOT  
02183 #define LT_USERDEF      USERLINE    
02184 #define LONGDASH        LDASHED     
02185 #define DOT             DOTTED      
02186 #define DASH2DOT        DASHDOTDOT  
02188 /* vsm_type modes */
02189 #define MRKR_DOT        1   
02190 #define MRKR_PLUS       2   
02191 #define MRKR_ASTERISK   3   
02192 #define MRKR_BOX        4   
02193 #define MRKR_CROSS      5   
02194 #define MRKR_DIAMOND    6   
02196 /* other names */
02197 #define MT_DOT      MRKR_DOT        
02198 #define MT_PLUS     MRKR_PLUS       
02199 #define MT_ASTERISK MRKR_ASTERISK   
02200 #define MT_SQUARE   MRKR_BOX        
02201 #define MT_DCROSS   MRKR_CROSS      
02202 #define MT_DIAMOND  MRKR_DIAMOND    
02204 /* vst_alignment modes */
02205 #define TA_LEFT             0 /* horizontal */  
02206 #define TA_CENTER           1   
02207 #define TA_RIGHT            2   
02208 #define TA_BASE             0 /* vertical */    
02209 #define TA_HALF             1   
02210 #define TA_ASCENT           2   
02211 #define TA_BOTTOM           3   
02212 #define TA_DESCENT          4   
02213 #define TA_TOP              5   
02215 /* vst_charmap modes */
02216 #define MAP_BITSTREAM   0   
02217 #define MAP_ATARI       1   
02218 #define MAP_UNICODE     2 /* for vst_map_mode, NVDI 4 */    
02220 /* vst_effects modes */
02221 #define TXT_NORMAL      0x0000  
02222 #define TXT_THICKENED   0x0001  
02223 #define TXT_LIGHT       0x0002  
02224 #define TXT_SKEWED      0x0004  
02225 #define TXT_UNDERLINED  0x0008  
02226 #define TXT_OUTLINED    0x0010  
02227 #define TXT_SHADOWED    0x0020  
02229 /* other names */
02230 #define TF_NORMAL       TXT_NORMAL      
02231 #define TF_THICKENED    TXT_THICKENED   
02232 #define TF_LIGHTENED    TXT_LIGHT       
02233 #define TF_SLANTED      TXT_SKEWED      
02234 #define TF_UNDERLINED   TXT_UNDERLINED  
02235 #define TF_OUTLINED     TXT_OUTLINED    
02236 #define TF_SHADOWED     TXT_SHADOWED    
02239 /* vst_error modes */
02240 #define APP_ERROR       0   
02241 #define SCREEN_ERROR    1   
02243 /* vst_error return values */
02244 #define NO_ERROR        0       
02245 #define CHAR_NOT_FOUND  1       
02246 #define FILE_READERR    8       
02247 #define FILE_OPENERR    9       
02248 #define BAD_FORMAT      10      
02249 #define CACHE_FULL      11      
02250 #define MISC_ERROR      (-1)    
02252 /* vst_kern tmodes */
02253 #define TRACK_NONE      0   
02254 #define TRACK_NORMAL    1   
02255 #define TRACK_TIGHT     2   
02256 #define TRACK_VERYTIGHT 3   
02258 /* vst_kern pmodes */
02259 #define PAIR_OFF        0   
02260 #define PAIR_ON         1   
02262 /* vst_scratch modes */
02263 #define SCRATCH_BOTH        0   
02264 #define SCRATCH_BITMAP      1   
02265 #define SCRATCH_NONE        2   
02267 /* v_updwk return values */
02268 #define SLM_OK          0x00    
02269 #define SLM_ERROR       0x02    
02270 #define SLM_NOTONER     0x03    
02271 #define SLM_NOPAPER     0x04    
02274 typedef struct memory_form
02275 {
02276     void    *fd_addr;   
02277     short   fd_w;       
02278     short   fd_h;       
02279     short   fd_wdwidth; 
02280     short   fd_stand;   
02281     short   fd_nplanes; 
02282     short   fd_r1;      
02283     short   fd_r2;      
02284     short   fd_r3;      
02285 } MFDB;
02286 
02288 typedef struct rgb_1000
02289 { 
02290     short  red;    
02291     short  green;  
02292     short  blue;   
02293 } RGB1000;
02294 
02295 #endif 
02296 
02297 #ifdef __GEMLIB_VDI
02298 
02299 /*******************************************************************************
02300  * The VDI bindings from old vdibind.h
02301  */
02302 
02303 typedef short VdiHdl;   
02306 /*
02307  * attribute functions 
02308  */
02309 
02313 void  vs_color  (VdiHdl , short color_idx, short rgb[]);
02314 short vswr_mode (VdiHdl , short mode);
02315 
02316 short vsf_color     (VdiHdl , short color_idx);
02317 short vsf_interior  (VdiHdl , short style);
02318 short vsf_perimeter (VdiHdl , short vis);
02319 short vsf_xperimeter(VdiHdl , short vis, short style);
02320 short vsf_style     (VdiHdl , short style);
02321 void  vsf_udpat     (VdiHdl , short pat[], short planes);
02322 
02323 short vsl_color (VdiHdl , short color_idx);
02324 void  vsl_ends  (VdiHdl , short begstyle, short endstyle);
02325 short vsl_type  (VdiHdl , short style);
02326 void  vsl_udsty (VdiHdl , short pat);
02327 short vsl_width (VdiHdl , short width);
02328 
02329 short vsm_color  (VdiHdl , short color_idx);
02330 short vsm_height (VdiHdl , short height);
02331 short vsm_type   (VdiHdl , short symbol);
02332 
02333 void  vst_alignment (VdiHdl , short hin, short vin, short *hout, short *vout);
02334 short vst_color     (VdiHdl , short color_idx);
02335 short vst_effects   (VdiHdl , short effects);
02336 void  vst_error     (VdiHdl , short mode, short *errorvar);
02337 short vst_font      (VdiHdl , short font);
02338 void  vst_height    (VdiHdl , short height, short *charw, short *charh,
02339                                             short *cellw, short *cellh);
02340 short vst_point     (VdiHdl , short point, short *charw, short *charh,
02341                                            short *cellw, short *cellh);
02342 short vst_rotation  (VdiHdl , short ang);
02343 void  vst_scratch   (VdiHdl , short mode);
02346 /*
02347  * control functions
02348  */
02349 
02353 void  v_clrwk          (VdiHdl );
02354 void  v_clsvwk         (VdiHdl );
02355 void  v_clswk          (VdiHdl );
02356 short v_flushcache     (VdiHdl );
02357 short v_loadcache      (VdiHdl , const char *filename, short mode);
02358 void  v_opnvwk         (short work_in[], VdiHdl *, short work_out[]);
02359 void  v_opnwk          (short work_in[], VdiHdl *, short work_out[]);
02360 short v_savecache      (VdiHdl , const char *filename);
02361 void  v_set_app_buff   (VdiHdl , void *buf_p, short size);
02362 void  v_updwk          (VdiHdl );
02363 void  vs_clip          (VdiHdl , short clip_flag, short pxy[]);
02364 void  vs_clip_pxy      (VdiHdl , PXY pxy[]);
02365 void  vs_clip_off      (VdiHdl );
02366 short vst_load_fonts   (VdiHdl , short /* select */);
02367 void  vst_unload_fonts (VdiHdl , short /* select */);
02370 /*
02371  * escape functions
02372  */
02373 
02377 void  v_bit_image       (VdiHdl , const char *filename, short aspect,
02378                                   short x_scale, short y_scale,
02379                                   short h_align, short v_align, short *pxy);
02380 void  v_clear_disp_list (VdiHdl );
02381 short v_copies          (VdiHdl , short count);
02382 void  v_dspcur          (VdiHdl , short x, short y);
02383 void  v_form_adv        (VdiHdl );
02384 void  v_hardcopy        (VdiHdl );
02385 short v_orient          (VdiHdl , short orientation);
02386 void  v_output_window   (VdiHdl , short *pxy);
02387 short v_page_size       (VdiHdl , short page_id);
02388 void  v_rmcur           (VdiHdl );
02389 short v_trays           (VdiHdl , short input, short output,
02390                                   short *set_input, short *set_output);
02391 short vq_calibrate      (VdiHdl , short *flag);
02392 short vq_page_name      (VdiHdl , short page_id, char *page_name,
02393                                   long *page_width, long *page_height);
02394 void  vq_scan           (VdiHdl , short *g_slice, short *g_page,
02395                                   short *a_slice, short *a_page, short *div_fac);
02396 short vq_tabstatus      (VdiHdl );
02397 short vq_tray_names     (VdiHdl , char *input_name, char *output_name,
02398                                   short *input, short *output);
02399 short vs_calibrate      (VdiHdl , short flag, short *rgb);
02400 short vs_palette        (VdiHdl , short palette);
02401 
02402 void  v_sound       (VdiHdl, short freq, short duration);
02403 short vs_mute       (VdiHdl, short action);
02404 
02405 void vq_tdimensions (VdiHdl , short *xdimension, short *ydimension);
02406 void vt_alignment   (VdiHdl , short dx, short dy);
02407 void vt_axis        (VdiHdl , short xres, short yres, short *xset, short *yset);
02408 void vt_origin      (VdiHdl , short xorigin, short yorigin);
02409 void vt_resolution  (VdiHdl , short xres, short yres, short *xset, short *yset);
02410 
02411 void v_meta_extents (VdiHdl , short min_x, short min_y,
02412                               short max_x, short max_y);
02413 void v_write_meta   (VdiHdl , short numvdi_intin, short *avdi_intin,
02414                               short num_ptsin, short *a_ptsin);
02415 void vm_coords      (VdiHdl , short llx, short lly, short urx, short ury);
02416 void vm_filename    (VdiHdl , const char *filename);
02417 void vm_pagesize    (VdiHdl , short pgwidth, short pgheight);
02418 
02419 void  vsc_expose    (VdiHdl , short state);
02420 void  vsp_film      (VdiHdl , short color_idx, short lightness);
02421 short vqp_filmname  (VdiHdl , short _index, char * name);
02422 
02423 void v_offset       (VdiHdl , short offset);
02424 void v_fontinit     (VdiHdl , const void * font_header);
02425 
02426 void v_escape2000 (VdiHdl , short times);
02427 
02428 void v_alpha_text  (VdiHdl , const char *str);
02429 void v_curdown     (VdiHdl );
02430 void v_curhome     (VdiHdl );
02431 void v_curleft     (VdiHdl );
02432 void v_curright    (VdiHdl );
02433 void v_curtext     (VdiHdl , const char *str);
02434 void v_curup       (VdiHdl );
02435 void v_eeol        (VdiHdl );
02436 void v_eeos        (VdiHdl );
02437 void v_enter_cur   (VdiHdl );
02438 void v_exit_cur    (VdiHdl );
02439 void v_rvoff       (VdiHdl );
02440 void v_rvon        (VdiHdl );
02441 void vq_chcells    (VdiHdl , short *n_rows, short *n_cols);
02442 void vq_curaddress (VdiHdl , short *cur_row, short *cur_col);
02443 void vs_curaddress (VdiHdl , short row, short col);
02445 #define v_curaddress vs_curaddress
02446 
02449 /*
02450  * inquiry functions
02451  */
02452 
02456 void  vq_cellarray   (VdiHdl , short pxy[], short row_len, short nrows,
02457                                short *el_used, short *rows_used,
02458                                short *status, short color[]);
02459 short vq_color       (VdiHdl , short color_idx, short flag, short rgb[]);
02460 void  vq_extnd       (VdiHdl , short flag, short work_out[]);
02461 void  vqf_attributes (VdiHdl , short atrib[]);
02462 void  vqin_mode      (VdiHdl , short dev, short *mode);
02463 void  vql_attributes (VdiHdl , short atrib[]);
02464 void  vqm_attributes (VdiHdl , short atrib[]);
02465 void  vqt_attributes (VdiHdl , short atrib[]);
02466 void  vqt_cachesize  (VdiHdl , short which_cache, long *size);
02467 void  vqt_extent     (VdiHdl , const char *str, short extent[]);
02468 void  vqt_extent16   (VdiHdl , const short *wstr, short extent[]);
02469 void  vqt_extent16n  (VdiHdl , const short *wstr, short num, short extent[]);
02470 void  vqt_fontinfo   (VdiHdl , short *minade, short *maxade, short distances[],
02471                                short *maxwidth, short effects[]);
02472 void  vqt_get_table  (VdiHdl , short **map);
02473 short vqt_name       (VdiHdl , short element, char *name);
02474 short vqt_width      (VdiHdl , short chr, short *cw,
02475                                short *ldelta, short *rdelta);
02477 short vq_gdos  (void);
02478 
02480 long  vq_vgdos (void);
02484 /*
02485  * input function
02486  */
02487 
02491 void  v_hide_c     (VdiHdl );
02492 void  v_show_c     (VdiHdl , short reset);
02493 void  vex_butv     (VdiHdl , void *pusrcode, void **psavcode);
02494 void  vex_curv     (VdiHdl , void *pusrcode, void **psavcode);
02495 void  vex_motv     (VdiHdl , void *pusrcode, void **psavcode);
02496 void  vex_wheelv   (VdiHdl , void *pusrcode, void **psavcode);
02497 void  vex_timv     (VdiHdl , void *time_addr,
02498                              void **otime_addr, short *time_conv);
02499 void  vq_key_s     (VdiHdl , short *state);
02500 void  vq_mouse     (VdiHdl , short *pstatus, short *x, short *y);
02501 void  vrq_choice   (VdiHdl , short cin, short *cout);
02502 void  vrq_locator  (VdiHdl , short x, short y,
02503                              short *xout, short *yout, short *term);
02504 void  vrq_string   (VdiHdl , short len, short echo, short echoxy[], char *str);
02505 void  vrq_valuator (VdiHdl , short in, short *out, short *term);
02506 void  vsc_form     (VdiHdl , short form[]);
02507 short vsin_mode    (VdiHdl , short dev, short mode);
02508 short vsm_choice   (VdiHdl , short *choice);
02509 short vsm_locator  (VdiHdl , short x, short y,
02510                              short *xout, short *yout, short *term);
02511 short vsm_string   (VdiHdl , short len, short echo, short echoxy[], char *str);
02512 void  vsm_valuator (VdiHdl , short in, short *out, short *term, short *status);
02516 /*
02517  * output functions
02518  */
02519 
02523 void v_arc         (VdiHdl , short x, short y,
02524                              short radius, short begang, short endang);
02525 void v_bar         (VdiHdl , short pxy[]);
02526 void v_cellarray   (VdiHdl , short pxy[], short row_length, short elements,
02527                              short nrows, short write_mode, short colarray[]);
02528 void v_circle      (VdiHdl , short x, short y, short radius);
02529 void v_contourfill (VdiHdl , short x, short y, short color_idx);
02530 void v_ellarc      (VdiHdl , short x, short y, short xrad, short yrad,
02531                              short begang, short endang);
02532 void v_ellipse     (VdiHdl , short x, short y, short xrad, short yrad);
02533 void v_ellpie      (VdiHdl , short x, short y, short xrad, short yrad,
02534                              short begang, short endang);
02535 void v_fillarea    (VdiHdl , short count, short pxy[]);
02536 void v_gtext       (VdiHdl , short x, short y, const char *str);
02537 void v_gtext16     (VdiHdl , short x, short y, const short *wstr);
02538 void v_gtext16n    (VdiHdl , PXY pos, const short *wstr, short num);
02539 void v_justified   (VdiHdl , short x, short y, const char *str,
02540                              short len, short word_space, short char_space);
02541 void v_pieslice    (VdiHdl , short x, short y,
02542                              short radius, short begang, short endang);
02543 void v_pline       (VdiHdl , short count, short pxy[]);
02544 void v_pmarker     (VdiHdl , short count, short pxy[]);
02545 void v_rbox        (VdiHdl , short pxy[]);
02546 void v_rfbox       (VdiHdl , short pxy[]);
02547 void vr_recfl      (VdiHdl , short pxy[]);
02550 /*
02551  * raster functions
02552  */
02553 
02557 void v_get_pixel (VdiHdl , short x, short y, short *pel, short *color_idx);
02558 void vr_trnfm    (VdiHdl , MFDB *src, MFDB *dst);
02559 void vro_cpyfm   (VdiHdl , short mode, short pxy[], MFDB *src, MFDB *dst);
02560 void vrt_cpyfm   (VdiHdl , short mode, short pxy[], MFDB *src, MFDB *dst,
02561                            short color[]);
02565 /*
02566  * Some usefull extensions.
02567  */
02568 
02572 void  vdi_array2str (const short *src, char  *des, short len);
02573 short vdi_str2array (const char  *src, short *des);
02574 short vdi_wstrlen   (const short *wstr);
02577 /*
02578  * vdi trap interface
02579  */
02580 
02585 /* Array sizes in vdi control block */
02586 #define VDI_CNTRLMAX     15     
02587 #define VDI_INTINMAX   1024     
02588 #define VDI_INTOUTMAX   256     
02589 #define VDI_PTSINMAX    256     
02590 #define VDI_PTSOUTMAX   256     
02593 typedef struct
02594 {
02595     short       *control;   
02596     const short *intin;     
02597     const short *ptsin;     
02598     short       *intout;    
02599     short       *ptsout;    
02600 } VDIPB;
02601 
02603 void vdi (VDIPB *pb);
02606 #endif /* VDI */
02607 
02608 
02609 __END_DECLS
02610 
02611 #endif /* _MT_GEMLIB_H_ */

Generated on Mon Dec 19 21:11:27 2005 for GEMLIB by  doxygen 1.4.5-20051127