00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 #ifndef __WINDOM_GLOBAL__
00030 #define __WINDOM_GLOBAL__
00031
00032 #include <stdarg.h>
00033 #include <stddef.h>
00034 #include <assert.h>
00035
00036 #include "wportab.h"
00037 #include "options.h"
00038
00039
00040
00041
00042 #ifdef __PUREC__
00043 # include <tos.h>
00044 #else
00045 # ifdef __SOZOBONX__
00046 # include <atari.h>
00047 # endif
00048 # include <osbind.h>
00049 # include <mintbind.h>
00050 # include <fcntl.h>
00051 #endif
00052
00053
00054 #include "toserror.h"
00055
00056 #define APPRSVD struct APPprivate_struct
00057
00058
00059
00060 #ifndef __COMPILER_H__
00061 #include <compiler.h>
00062 #endif
00063
00064 #ifdef __PUREC__
00065 # include "..\include\windom\list.h"
00066 # include "..\include\mt_wndm.h"
00067 # include "..\include\windom\udlib.h"
00068 #else
00069 # undef NIL
00070 # include "../include/windom/list.h"
00071 # include "../include/mt_wndm.h"
00072 # include "../include/windom/udlib.h"
00073 #endif
00074
00075
00076
00077
00078
00079 #define SCREENMGR 1
00080
00081 #define CONF(ap) (&ap->priv->config)
00082 #define HI16(a) ((INT16)((long)(a) >> 16) & 0xFFFFL )
00083 #define LO16(a) ((INT16)(long)(a) & 0xFFFFL )
00084
00085
00086
00087
00088
00089 #define SYSMENU(app) (app->aes4 & AES4_MENUBAR) && (CONF(app)->flag & FLG_MNSYSTEM)
00090
00091
00092 #define ROOTS 0
00093 #define OUTLINED_WIDTH 3
00094
00095 typedef struct ev_msg {
00096 LINKABLE lnk;
00097
00098 short msg;
00099 func_evntdata proc;
00100 int flags;
00101 void *data;
00102 } EV_MSG;
00103
00104
00105
00106
00107 typedef struct {
00108 struct _window *list, *front, *widget;
00109 int border;
00110 int color;
00111 int flags;
00112 int line, col;
00113 } FRAME;
00114
00115 typedef struct {
00116 int line, col;
00117 int x,y,w,h;
00118 int flags;
00119 int vsldpos,vsldsize;
00120 int hsldpos,hsldsize;
00121 } FRAMEINFO;
00122
00123 #define GETFINFO(app,win) ((FRAMEINFO*)mt_DataSearch( app, win, WD_WFRI))
00124
00125
00126 #define EVM_DISABLE 0x2
00127 #define EVM_IN_USE 0x4
00128 #define EVM_DELETED 0x8
00129
00130
00131
00132 #define FCENTER 6
00133
00134 #define SYSFONT 0
00135
00136
00137 #define USERDRAW 0xFF
00138 #define XCICON 0x0D
00139 #define XSMENU 0x01
00140
00141
00142 #define _FSM 0x5F46534DUL
00143
00144
00145 static inline void grect2msg( const GRECT *grect, short buff[8]) {
00146 *(GRECT*)&buff[4] = *grect;
00147 }
00148
00149 static inline void msg2grect( const short buff[8], GRECT *grect) {
00150 *grect = *(const GRECT*)&buff[4];
00151 }
00152
00160 typedef struct _config {
00207 unsigned short flag;
00216 short wicon;
00225 short hicon;
00236 short bgcolor;
00248 short bgpatt;
00260 short bgstyle;
00276 short key_color;
00292 ATTRIB string;
00308 ATTRIB button;
00323 ATTRIB exit;
00339 ATTRIB title;
00354 ATTRIB xedit_text;
00369 ATTRIB xedit_label;
00381 short xedit_curs_color;
00396 ATTRIB xlongedit;
00404 short xlgedt_smlfnt;
00419 ATTRIB xtedinfo;
00427 short xtdinf_smlfnt;
00444 short actmono;
00454 short actcol;
00465 short menu_effect;
00476 ATTRIB bubble;
00497 short popcolor;
00509 short popborder;
00521 short popfcolor;
00537 short poppatt;
00550 short popwind;
00583 short wcenter;
00591 short weffect;
00599 short mwidget;
00607 short fwidsize;
00618 char *udlib_filenames;
00619 } CONFIG;
00620
00621 typedef struct _bind {
00622 short type;
00624 union {
00626 struct {
00627 int *var;
00628 int value;
00629 } var;
00631 struct {
00632 int *var;
00633 unsigned short bit;
00634 } bit;
00636 struct {
00637 union {
00638 func_bind form;
00639 func_bind tb;
00640 func_bindmenu menu;
00641 } f;
00642 void *data;
00643 } func;
00644 } desc;
00645 } BIND;
00646
00647
00648
00649
00650
00651
00652 typedef struct {
00653 long wp_spec;
00654 int wp_type;
00655 APPvar *wp_app;
00656 } W_PARM;
00657
00658
00659
00660
00661
00662 typedef struct {
00663 char *string;
00664 OBJECT *mn_tree;
00665 int mn_menu, mn_item, mn_scroll;
00666 APPvar *app;
00667 } SMENU;
00668
00669
00670
00671
00672
00673
00674 #include "fsel.h"
00675
00676 struct ty_obspec_dup {
00677 OBJECT * p_ob;
00678 void * p_mem;
00679 struct ty_obspec_dup * next;
00680 };
00681
00682
00683 typedef struct {
00684 WINDOW *win;
00685 func_userdraw draw;
00686 void *data;
00687 APPvar *app;
00688 } USER_DRAW;
00689
00690
00691 typedef struct __windowlist{
00692 WINDOW *win;
00693 struct __windowlist *next;
00694 } WINDOWLIST;
00695
00696
00697 typedef struct ulib_obj_struct {
00698 LINKABLE lnk;
00699 OBJECT *tree;
00700 short ob;
00701 short ob_type;
00702 } UDLIB_OBJ;
00703
00704 typedef struct udef_lib_struct {
00705 LINKABLE lnk;
00706 APPENV *env;
00707 enum { udlib_internal, udlib_ldg } type;
00708 enum { udlib_simple, udlib_freedom} mode;
00709 char filename[256];
00710 void *udlib_descriptor;
00711 long __CDECL (* libinit) ( APPENV *);
00712 void __CDECL (* udconfig) ( UDLIB_CONFIG *, APPENV *);
00713 void __CDECL (* libexit) ( APPENV *);
00714 long __CDECL (* objc_extended)( OBJECT *, long , long , APPENV *);
00715 void __CDECL (* objc_extfree) ( OBJECT *, long , APPENV *);
00716 char * __CDECL (* objc_string) ( OBJECT *, long , char *, APPENV *);
00717 long __CDECL (* objc_char) ( OBJECT *, long , long , APPENV *);
00718 long __CDECL (* objc_edit) ( OBJECT *, long , long , short* , long , long , GRECT *, APPENV *);
00719 long __CDECL (* objc_edpos) ( OBJECT *, long , long , long , APPENV *);
00720 long __CDECL (* objc_unextnd) ( OBJECT *, long , APPENV *);
00721 LIST ob_list;
00722 } UDLIB_LIB;
00723
00724 typedef struct APPprivate_struct {
00725
00726
00727
00728
00729 short xpixelbytes;
00730 short xscrn_planes;
00731
00732
00733 size_t pos ;
00734
00735
00736 char debug[255];
00737 int first;
00738
00739
00740 int init_fontsel;
00741
00742
00743 SLCT_STR *slct ;
00744 long *fsel ;
00745
00746
00747 int type_mxalloc;
00748
00749
00750 CONFIG config;
00751 int _res;
00752 WINDOWLIST *__windowlist;
00753
00754 WINDOW *desk;
00755
00756 WORD __iconlist[ MAX_ICON];
00757
00758
00759 int __bubble_quit;
00760 int _menu_disabled;
00761 struct bubble *bubble_index;
00762 char __confpath [FILE_SIZE];
00763 struct fontid *listfontid;
00764 int maxfontid;
00765 char *__confapp_buffer;
00766 int __confapp_line_top;
00767 int __confapp_line_pos;
00768 char *__confdef_buffer;
00769 int __confdef_line_top;
00770 int __confdef_line_pos;
00771 size_t __confgetline_pos;
00772 char *__av_name;
00773 char __av_server[9];
00774 INT16 __av_status[3];
00775
00776
00777 int mouse;
00778
00779
00780 struct ty_obspec_dup * __list_obspec_dup;
00781
00782
00783 char file[FILE_SIZE];
00784
00785
00786 int xrsrc_init;
00787
00788
00789
00790 OBJECT * frame_slider;
00791
00792 OBJECT * mnscroll;
00793
00794
00795
00796 LIST udef_lib;
00797 short udlib_vdih;
00798 int udlib_garbage;
00803 } APPprivate;
00804
00805
00806
00807
00808
00809 typedef struct {
00810 UWORD rsh_vrsn;
00811 UWORD rsh_extvrsn;
00812 ULONG rsh_object;
00813 ULONG rsh_tedinfo;
00814 ULONG rsh_iconblk;
00815 ULONG rsh_bitblk;
00816 ULONG rsh_frstr;
00817 ULONG rsh_string;
00818 ULONG rsh_imdata;
00819 ULONG rsh_frimg;
00820 ULONG rsh_trindex;
00821 ULONG rsh_nobs;
00822 ULONG rsh_ntree;
00823 ULONG rsh_nted;
00824 ULONG rsh_nib;
00825 ULONG rsh_nbb;
00826 ULONG rsh_nstring;
00827 ULONG rsh_nimages;
00828 ULONG rsh_rssize;
00829 } RSXHDR;
00830
00831 typedef struct {
00832 unsigned long rlen;
00833 unsigned long cicon_offset;
00834 } NRSHDR;
00835
00836 #define NRSC_CIBK 0x0004
00837 #define NRSC_LONG 0x0003
00838
00839 typedef struct {
00840 int type;
00841 USERBLK blk;
00842 long spec;
00843 unsigned user1;
00844 unsigned user2;
00845 unsigned user3;
00846 unsigned user4;
00847 long userl;
00848 } UBLK;
00849
00850 #include "cicon.h"
00851
00852 typedef struct _rsc {
00853 rscHDR head;
00854 long adr;
00855 long len;
00856 UBLK *ublk;
00857 CICON *cicon;
00858 XRSRCFIX fix;
00859 } RSC;
00860
00861 typedef
00862 struct slider {
00863 short min, max;
00864 short sinc, linc;
00865 int ori;
00866 int upd;
00867 short value;
00868 func_doslid doslid;
00869 void *data;
00870 int mode;
00871 WINDOW *win;
00872 int up, dn, sld, bsld;
00873 } SLIDER;
00874
00875
00876
00877
00878
00879 #define SLID_OFFSET 0
00880
00881 int mt_slid_newpos( APPvar *app, void *_slid);
00882
00883 typedef struct _thumb {
00884
00885 int *idxthb;
00886 int *idxbut;
00887
00888 int nbbut;
00889
00890 int selbut;
00891 } THUMB;
00892
00895 void __CDECL frm_drw ( WINDOW *win, short buff[8], APPvar *app);
00896 void __CDECL frm_mvd ( WINDOW *win, short buff[8], APPvar *app);
00897 void __CDECL frm_tpd ( WINDOW *win, short buff[8], APPvar *app);
00898 void __CDECL frm_fld ( WINDOW *win, short buff[8], APPvar *app);
00899 void __CDECL frm_click( WINDOW *win, short buff[8], APPvar *app);
00900 void __CDECL frm_keyhd( WINDOW *win, short buff[8], APPvar *app);
00901 void __CDECL frm_dstry( WINDOW *win, short buff[8], APPvar *app);
00904 void * __malloc_obspec(APPvar *app, OBJECT * p_ob, long size);
00905 void __free_obspec( APPvar *app, OBJECT * p_ob);
00906 void __freeall_obspec( APPvar *app);
00907
00908 int scrap_txt_write( APPvar *app, char *str);
00909 char *scrap_txt_read ( APPvar *app);
00910
00911
00912 int __CDECL wind_aes_get_root_handle( APPvar *app, WINDOW *win);
00913 int __CDECL wind_aes_get( APPvar *app, WINDOW *win, int mode, GRECT *clip, INT16 *x, INT16 *y, INT16 *w, INT16 *h );
00914 int __CDECL wind_aes_set( APPvar *app, WINDOW *win, int mode, int x, int y, int w, int h );
00915 int __CDECL wind_aes_calc( APPvar *app, WINDOW *wind, int type, int x, int y, int w, int h,
00916 INT16 *xout, INT16 *yout, INT16 *wout, INT16 *hout);
00917 int __CDECL wind_aes_remove( APPvar *app, WINDOW *win);
00918
00919
00920 typedef struct {
00921 int __CDECL (*get_root_handle)( APPvar *app, WINDOW *win);
00922
00923 int __CDECL (*get)( APPvar *app, WINDOW *win, int mode, GRECT *clip, INT16 *x, INT16 *y, INT16* w, INT16 *h );
00924 int __CDECL (*set)( APPvar *app, WINDOW *win, int mode, int par1, int par2, int par3, int par4);
00925 int __CDECL (*calc)( APPvar *app, WINDOW *win, int type, int x, int y, int w, int h,
00926 INT16 *xout, INT16 *yout, INT16 *wout, INT16 *hout);
00927 int __CDECL (*remove)( APPvar *app, WINDOW *win );
00928 } WIND_HANDLERS;
00929
00930
00931 extern OBJECT * get_frame_slider ( APPvar *app);
00932 extern void set_gadget_pos( APPvar *app, WINDOW *frame, GRECT *r1, int mode);
00933 extern void __frame_set_widget( APPvar *app, int parm1);
00934 extern int remove_frame_from_list( APPvar *app, WINDOW *win, WINDOW *child);
00935 #define PROPOR( mode, wmax, w) ((mode)?((int)((long)wmax * (long)(w) / 100L)):(w))
00936 #define NO_BACKGROUND 0x0002
00937
00938 extern int mt_ObjcAttach( APPvar *app, int mode, WINDOW *win, int __index, int type, ...);
00939 extern void mt_RsrcUserFree( APPvar*, OBJECT *);
00940 extern int is_modal ( APPvar *app);
00941 extern int obj_fd_flag ( OBJECT *, int, int);
00942 extern int obj_fd_xtype( OBJECT *dial, int racine, int flag);
00943 extern int obj_nb ( OBJECT *);
00944 extern int obj_root ( OBJECT *tree, int idx);
00945 extern void mt_DataClear ( APPvar *app, WINDOW *win);
00946 extern void mt_DataTrace ( APPvar *app, WINDOW *win);
00947 extern void mt_AddWindow ( APPvar *app, WINDOW *win);
00948 extern void mt_RemoveWindow ( APPvar *app, WINDOW *win);
00949 extern void add_slash ( char *path);
00950 extern void init_scroll_menu( APPvar *app);
00951 extern void exit_scroll_menu( APPvar *app);
00952 extern WORD __CDECL draw_submenu( PARMBLK *pblk);
00953 extern void GemCode2Ascii( int key, int kstate, char *txt);
00954 extern int mt_GetIndexMenu( APPvar *app, OBJECT *menu, int title);
00955
00956 extern void mt_menu_bind ( APPvar *app, WINDOW *win, int item, int title);
00957
00958 int get_next_obj ( OBJECT *tree, int __index);
00959 void objc_extended ( APPvar *app, int mode, OBJECT *tree);
00960 void objc_extfree ( APPvar *app, OBJECT *tree);
00961
00962 int objc_wform_edit( APPvar *app, WINDOW *win, W_FORM *wform, OBJECT *tree, int obj, int val, INT16 *idx, int kind);
00963
00964 int mt_vFormAlert( APPvar *app, int but, char fmt[], va_list list);
00965 int mt_vConfInquire( APPvar *app, char *keyword, char *fmt, va_list args);
00966 int mt_vConfWrite( APPvar *app, char *name, char *fmt, va_list args);
00967
00968
00969
00970
00973 void __CDECL std_apterm ( WINDOW *, short buff[8], APPvar *app);
00974 void __CDECL std_cls ( WINDOW *, short buff[8], APPvar *app);
00975 void __CDECL std_tpd ( WINDOW *, short buff[8], APPvar *app);
00976 void __CDECL std_mvd ( WINDOW *, short buff[8], APPvar *app);
00977 void __CDECL std_szd ( WINDOW *, short buff[8], APPvar *app);
00978 void __CDECL std_fld ( WINDOW *, short buff[8], APPvar *app);
00979 void __CDECL std_icn ( WINDOW *, short buff[8], APPvar *app);
00980 void __CDECL std_unicn ( WINDOW *, short buff[8], APPvar *app);
00981 void __CDECL std_allicn ( WINDOW *, short buff[8], APPvar *app);
00982 void __CDECL std_arw ( WINDOW *, short buff[8], APPvar *app);
00983 void __CDECL std_sldxy ( WINDOW *, short buff[8], APPvar *app);
00984 void __CDECL std_dnlnd ( WINDOW *, short buff[8], APPvar *app);
00985 void __CDECL std_uplnd ( WINDOW *, short buff[8], APPvar *app);
00986 void __CDECL std_lflnd ( WINDOW *, short buff[8], APPvar *app);
00987 void __CDECL std_rtlnd ( WINDOW *, short buff[8], APPvar *app);
00988 void __CDECL std_dnpgd ( WINDOW *, short buff[8], APPvar *app);
00989 void __CDECL std_uppgd ( WINDOW *, short buff[8], APPvar *app);
00990 void __CDECL std_rtpgd ( WINDOW *, short buff[8], APPvar *app);
00991 void __CDECL std_lfpgd ( WINDOW *, short buff[8], APPvar *app);
00992 void __CDECL std_vsld ( WINDOW *, short buff[8], APPvar *app);
00993 void __CDECL std_hsld ( WINDOW *, short buff[8], APPvar *app);
00994 void __CDECL std_dstry ( WINDOW *, short buff[8], APPvar *app);
00995 void __CDECL std_btm ( WINDOW *, short buff[8], APPvar *app);
00996
00997 void __CDECL std_comp_reflow ( COMPONENT *c, long buff[8], APPvar *app );
00999 void __CDECL std_fntchg ( WINDOW *win, short buff[8], APPvar *app);
01000
01001 void move_screen ( APPvar *app, int vhandle, GRECT *screen, int dx, int dy);
01002 void move_work_rect( APPvar *app, WINDOW *win, GRECT *rect, int dx, int dy);
01003 void move_work ( APPvar *app, WINDOW *win, int dx, int dy);
01004
01005 void __CDECL std_mwk ( APPvar *app, WINDOW *win);
01006
01007
01008
01009 int menu_exec_cmd( APPvar *app, WINDOW *win);
01010 void menu_draw_grect( APPvar *app, WINDOW *win, OBJECT *menu, GRECT *work, GRECT *clip);
01011 void wind_menu_draw( APPvar *app, WINDOW *win, GRECT *clip);
01012 int wind_menu_set( APPvar *app, WINDOW *win, int mode, void *v1, func_evnt handler);
01013 int frm_menu ( APPvar *app, WINDOW *win);
01014 int frm_keybd_ev ( APPvar *app, OBJECT *tree);
01015 int is_menu ( APPvar *app, WINDOW *win);
01016 int ob_istype ( APPvar *app, OBJECT *tree, int ob, int type);
01017
01018
01019 int frm_buttn_ev ( APPvar *app, WINDOW *win, int mode);
01020 void _do_update ( APPvar *app, WINDOW *win, short buff[8]);
01021
01022 void list_ev_msg ( APPvar * app, WINDOW *win, char *str);
01023
01024 void get_appname ( APPvar *app, char *name);
01025
01026 int vq_mint ( void);
01027 int vq_magx ( void);
01028 int vq_extfs ( char *);
01029
01030
01031 extern WINDOW *wlst_get_bottom ( APPvar *app);
01032 extern WINDOW *wlst_get_next ( APPvar *app, WINDOW *win);
01033 extern WINDOW *wlst_get_top ( APPvar *app);
01034 extern void wlst_remove ( APPvar *app, WINDOW *win);
01035 extern void wlst_add_bottom ( APPvar *app, WINDOW *win);
01036 extern void wlst_add_top ( APPvar *app, WINDOW *win);
01037 extern void wlst_recompute_wglb ( APPvar *app);
01038
01039
01040
01041 struct fontid {
01042 char name[44];
01043 int id;
01044 int flags;
01045 };
01046 extern int load_fontid( APPvar *app);
01047 extern void close_fontid( APPvar *app);
01048
01049
01050 struct bubble {
01051 OBJECT *tree;
01052 int index;
01053 char *help;
01054 struct bubble *next;
01055 };
01056 extern void mt_snd_mu_button( APPvar *app, int mbut, int nbclick);
01057
01058 extern long __cookieptr(void);
01059
01060 #ifdef BETAMENU
01061 extern int frm_menu_beta( APPvar *app, WINDOW *win);
01062 #endif
01063
01064 #ifdef WINDOMDEBUG
01065 #define LOGFILE "C:\\gemsys\\log\\windom.log"
01066 #endif
01067
01068
01069 int udlib_reinit ( APPvar *app);
01070 int udlib_exit ( APPvar *app);
01071 int udlib_garbage ( APPvar *app);
01072 int udlib_extended( APPvar *app, OBJECT *tree, int ob, int mode);
01073 int udlib_unextended( APPvar *app, OBJECT *tree, int ob, OBJECT *cpy);
01074 int udlib_extfree ( APPvar *app, OBJECT *tree, int ob);
01075 int udlib_add_obj( UDLIB_LIB *udlib, OBJECT *tree, int ob, int ob_type) ;
01076 int udlib_rm_obj ( UDLIB_LIB *udlib, OBJECT *tree, int ob) ;
01077 int udlib_string( APPvar *app, OBJECT *tree, int ob, char *put, char **retval);
01078 int udlib_char( APPvar *app, OBJECT *tree, int ob, int put, int *retval);
01079 int udlib_edit( APPvar *app, OBJECT *tree, int ob, int val, short *idx, int kind, int nclip, GRECT *gclip);
01080 int udlib_get_edpos( APPvar *app, OBJECT *tree, long object, long x, long y);
01081 int udlib_get_type( APPvar *app, OBJECT *tree, int object);
01082 UDLIB_OBJ * udlib_objfind( UDLIB_LIB *udlib, OBJECT *tree, int ob);
01083
01084 int udlib_ConfSetLib( APPvar *app, const char *libname);
01085 int udlib_ConfAddLib( APPvar *app, const char *libname, short head);
01086 char * udlib_ConfGetFirstLib( APPvar *app);
01087 char * udlib_ConfGetNextLib( char *prev);
01088
01089
01090 short __CDECL cdecl_draw_cicon( long vdih, OBJECT *tree, long ob, long ob_state, long ob_x, long ob_y);
01091
01092
01093
01094
01095 #define CS_FIX_FLEX 0x8000
01096
01097
01098 #define CDT_VSLID 0x455e4dUL
01099 #define CDT_HSLID 0x455e4eUL
01100
01101
01102 COMPONENT *comp_reflow( COMPONENT *c, APPvar *app );
01103
01104
01105 void comp_dfs( COMPONENT *p, long *buff, APPvar *app );
01106
01107 COMPONENT *win_comp_get( APPvar *app, WINDOW *win);
01108 void win_comp_attach( APPvar *app, WINDOW *win, COMPONENT *c);
01109 COMPONENT *win_comp_getfocus( APPvar *app, WINDOW *win );
01110 void win_comp_setfocus( APPvar *app, WINDOW *win, COMPONENT *f );
01111
01112
01113 #define CDT_OBJECT 0x004f424aUL
01114 int comp_slider_set( APPvar *app, WINDOW *win, COMPONENT *wgtc, int mode, int par1, int par2, int par3, int par4);
01115 COMPONENT *comp_objc_create( APPvar *app, OBJECT *o, short type, long size, short flex );
01116
01117
01118 COMPONENT *comp_wind_create( APPvar *app, WINDOW *w, short type, long size, short flex );
01119
01120
01121 int comp_widget_set( APPvar *app, WINDOW *win, COMPONENT *wgtc, int mode, int par1, int par2, int par3, int par4);
01122 COMPONENT *comp_widget_create( APPvar *app, WINDOW *win, int size, int flex );
01123
01124
01125 COMPONENT *comp_slider_create( APPvar *app, int mode, int width, int sz, int flex );
01126 void comp_slider_link( APPvar *app, COMPONENT *c, COMPONENT *s, int mode );
01127
01128
01129 COMPONENT *comp_split_create( APPvar *app, int mode, int sz );
01130
01131
01132 extern void mt_CompDataClear( APPvar *app, COMPONENT *c);
01133 extern void mt_CompDataTrace( APPvar *app, COMPONENT *c);
01134
01135
01136
01137 extern APPvar * __mt_ApplInit( short *global);
01138 extern int __mt_ApplExit( APPvar *app);
01139
01140 #endif