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 #ifndef __MT_WINDOM__
00028 #define __MT_WINDOM__
00029
00030 #define __GEMLIB_OLDNAMES
00031 #include <mt_gem.h>
00032 #include <mt_gemx.h>
00033
00034 #ifdef __PUREC__
00035 # define __MSHORT__
00036 # include <stddef.h>
00037 #endif
00038
00039 #ifndef __WINDOM_LIST__
00040 #include <windom/list.h>
00041 #endif
00042
00043 __BEGIN_DECLS
00044
00045
00046
00047
00048
00049
00050
00054 #define mt_AppAESversion(ap) ((ap)->aes_global[0])
00055
00056 #define mt_AppAESnumapps(ap) ((ap)->aes_global[1])
00057
00058 #define mt_AppAESapid(ap) ((ap)->aes_global[2])
00059 #define mt_AppId(ap) ((ap)->aes_global[2])
00061 #define mt_AppAESappglobal(ap) (*((long *)&((ap)->aes_global[3])))
00062
00063 #define mt_AppAESrscfile(ap) ((OBJECT **)(*((long *)&((ap)->aes_global[5]))))
00064
00065 #define mt_AppAESmaxchar(ap) ((ap)->aes_global[13])
00066
00067 #define mt_AppAESminchar(ap) ((ap)->aes_global[14])
00068
00069 #ifndef MIN
00070
00071 #define MAX(a,b) ((a)>(b)?(a):(b))
00072
00073 #define MIN(a,b) ((a)<(b)?(a):(b))
00074 #endif
00075
00077 #define UNUSED( a) ((void )(a))
00078
00079 #define IS_IN( xp, yp, x, y, w, h) (xp>=x && yp>=y && xp<x+w && yp<y+h)
00080
00081 #define FORM(app,win) (((W_FORM*)mt_DataSearch( app, win, WD_WFRM))->root)
00082
00083 #define TOOL( win) ((win)->tool.root)
00084
00085 #ifndef ADR
00086
00087 # define ADR(c) (int)((long)(c)>>16), (int)(long)(c)
00088 #endif
00089
00090 #define SET_BIT(field,bit,val) field = (val)?((field)|(bit)):((field) & ~(bit))
00091
00093 #ifndef TRUE
00094 # define TRUE 1
00095 # define FALSE 0
00096 #endif
00097
00098
00099
00100
00101
00102
00103 #define __WINDOM_MAJOR__ 2
00104 #define __WINDOM_MINOR__ 0
00105 #define __WINDOM_REVISION__ 1
00106 #define __WINDOM_BETATAG__ ""
00107
00108 struct w_version {
00109 short patchlevel;
00110 short release;
00111 char *date;
00112 char *time;
00113 char *cc_name;
00114 short cc_version;
00115 };
00116
00117
00118
00119 typedef INT16 W_COLOR[3];
00120
00121 #ifdef __GNUC__
00122 struct _window;
00123 struct _appvar;
00124 #endif
00125
00126
00127
00128
00129 #ifndef __LGRECT
00130 # define __LGRECT
00131 typedef struct long_graphic_rectangle
00132 {
00133 long g_x;
00134 long g_y;
00135 long g_w;
00136 long g_h;
00137 } LGRECT;
00138 #endif
00139
00140 #ifdef __WINDOM__
00141 typedef void __CDECL (* func_evntdata)(struct _window *, short buff[8], void *);
00142 typedef void __CDECL (* func_evnt )(struct _window *, short buff[8]);
00143 typedef void __CDECL (* func_bind )(struct _window *, int, int, void *);
00144 typedef void __CDECL (* func_bindmenu)(struct _window *, int, int, void *);
00145 typedef void __CDECL (* func_doslid )(struct _window *, int, short, void *);
00146 typedef void __CDECL (* func_userdraw)(struct _window *, PARMBLK *, void *);
00147 #else
00148 typedef void __CDECL (* func_evntdata)(struct _window *, short buff[8], void *, struct _appvar *);
00149 typedef void __CDECL (* func_evnt )(struct _window *, short buff[8], struct _appvar *);
00150 typedef void __CDECL (* func_bind )(struct _window *, int, int, void *, struct _appvar *);
00158 typedef void __CDECL (* func_bindmenu)(struct _window *win, int item, int title, void *data, struct _appvar *ap);
00159 typedef void __CDECL (* func_doslid )(struct _window *, int, short, void *, struct _appvar *);
00178 typedef void __CDECL (* func_userdraw)(struct _window *win, PARMBLK *pblk, void *data, struct _appvar *ap);
00179 #endif
00180
00187 typedef struct {
00188 INT16 handle;
00189 W_COLOR *palette;
00190 GRECT clip;
00191 } W_GRAFPORT;
00192
00198 typedef struct {
00199 OBJECT *root;
00200 OBJECT *real;
00201 int scroll;
00202 void *bind;
00203 void (*hilight)( struct _appvar *app, struct _window *win, int title, int item);
00204 #ifdef BETAMENU
00205
00206 int ac_title, ac_item;
00207 #endif
00208 } W_MENU;
00209
00215 typedef struct {
00216 OBJECT *root;
00217 OBJECT *real;
00218 int *save;
00219 void *bind;
00220 int edit, nb_ob;
00221 INT16 cursor;
00222 } W_FORM;
00223
00228 typedef struct {
00229 char *name;
00230 INT16 x, y, w, h;
00231 } W_ICON;
00232
00237 struct _window {
00238 int handle;
00239 int attrib;
00240 long status;
00241 W_GRAFPORT *graf;
00242 W_MENU menu;
00243 W_FORM tool;
00244 W_ICON icon;
00245 GRECT createsize;
00246 int __rsvd[11];
00247 char *name, *info;
00248 INT16 w_max, h_max;
00249 INT16 w_min, h_min;
00250 long xpos, ypos;
00251 long xpos_max, ypos_max;
00252 INT16 w_u, h_u;
00253 struct _window *next;
00254 int type;
00255 LIST data;
00256 LIST binding;
00257 };
00258
00263 typedef struct _window WINDOW;
00264
00269 typedef struct {
00270 WINDOW *first;
00271 WINDOW *front;
00273 WINDOW *appfront;
00275 } WINvar;
00290 typedef struct {
00291 long timer;
00292 int bclick;
00293 int bmask;
00298 int bstate;
00304 int m1_flag;
00308 int m1_x, m1_y, m1_w, m1_h;
00309 int m2_flag;
00313 int m2_x, m2_y, m2_w, m2_h;
00314 INT16 mx, my;
00315 INT16 mbut;
00316 INT16 mkstate;
00322 INT16 keybd;
00326 INT16 nb_click;
00327 } EVNTvar;
00330 #ifndef APPRSVD
00331 #define APPRSVD void
00332 #endif
00333
00357 typedef struct _appvar {
00358
00359
00360 short *aes_global;
00361 INT16 aeshdl;
00362 INT16 x,y,w,h;
00364 short color;
00365 short nplanes;
00366 OBJECT *menu;
00367 INT16 work_in[11];
00368 INT16 work_out[57];
00369 long aes4;
00371 short avid;
00372 short ntree;
00373 char *pipe;
00383 int error;
00385 W_GRAFPORT graf;
00386 EVNTvar evnt;
00387 WINvar wglb;
00389 APPRSVD *priv;
00393 short gdos;
00394 } APPvar;
00402 typedef struct {
00403 long nobs;
00404 long ntree;
00405 long nted;
00406 long ncib;
00407 long nib;
00408 long nbb;
00409 long nfstr;
00410 long nfimg;
00411 OBJECT *object ;
00412 TEDINFO *tedinfo;
00413 ICONBLK *iconblk;
00414 BITBLK *bitblk;
00415 CICON *cicon;
00416 CICONBLK *ciconblk;
00417 char **frstr;
00418 BITBLK **frimg;
00419 OBJECT **trindex;
00420 } rscHDR;
00421
00422
00423
00424
00425 typedef struct {
00426 unsigned short delay;
00427 unsigned short flag ;
00428 } BHLP;
00429
00430
00431
00432 typedef struct {
00433 short font;
00434 short size;
00435 short color;
00436 } ATTRIB;
00437
00438
00439
00440
00441
00445 #define AES4_BOTTOM 0x000001L
00446
00447 #define AES4_ICONIFY 0x000002L
00448
00449 #define AES4_ICONIFYXYWH 0x000004L
00450
00451 #define AES4_SMALLER 0x000008L
00452
00453 #define AES4_BOTTOMER 0x000010L
00454
00455 #define AES4_APPSEARCH 0x000020L
00456
00457 #define AES4_FSLX 0x000040L
00458
00459 #define AES4_BEVENT 0x000080L
00460
00461 #define AES4_UNTOPPED 0x000100L
00462
00463 #define AES4_TOOLBAR 0x000200L
00464
00465 #define AES4_APPLCONTROL 0x000400L
00466
00467 #define AES4_XGMOUSE 0x000800L
00468
00469 #define AES4_MNSELECTED 0x001000L
00470
00471 #define AES4_MENUBAR 0x002000L
00472
00473 #define AES4_FIRSTAREAXYWH 0x004000L
00474
00475 #define AES4_SETWORKXYWH 0x010000L
00476
00477
00478
00479
00480
00481 #define APS_ICONSIZE 0
00482 #define APS_FLAG 1
00483 #define APS_WINBG 2
00484 #define APS_KEYCOLOR 3
00485 #define APS_STRSTYLE 4
00486 #define APS_BUTSTYLE 5
00487 #define APS_EXITSTYLE 6
00488 #define APS_TITLESTYLE 7
00489 #define APS_3DEFFECT 8
00490 #define APS_MENUEFFECT 9
00491 #define APS_BUBBLESTYLE 10
00492 #define APS_POPUPSTYLE 11
00493 #define APS_POPUPWIND 12
00494 #define APS_WINDOWS 13
00495 #define APS_XTEDINFOSTYLE 14
00496 #define APS_XLONGEDITSTYLE 15
00497 #define APS_XEDITTEXTSTYLE 16
00498 #define APS_XEDITLABELSTYLE 17
00499 #define APS_FRAMEWIDGETSIZE 18
00500
00501
00502 #define DEFVAL -1
00503 #define CENTER 0
00504 #define WMOUSE 1
00505 #define UP_RIGHT 2
00506 #define UP_LEFT 3
00507 #define DN_RIGHT 4
00508 #define DN_LEFT 5
00509 #define WFORM 6
00510
00511
00512 #define FLG_KEYMOUSE 0x0001
00513 #define FLG_BUTMOUSE 0x0002
00514 #define FLG_NOPAL 0x0004
00515 #define FLG_MNSCRL 0x0010
00516 #define FLG_NOKEYMENU 0x0020
00517 #define FLG_NOMGXFSEL 0x0040
00518 #define FLG_MNSYSTEM 0x0080
00519
00520
00521 #define LTMFLY_COLOR 0x0010
00522
00523
00524 #ifndef __MYDIAL__
00525 #define DIALMOVER 0x11
00526 #define DCRBUTTON 0x12
00527 #define UNDERLINE 0x13
00528 #define TITLEBOX 0x14
00529 #define HELPBUT 0x15
00530 #define CIRCLEBUT 0x16
00531 #define POPUPSTRG 0x17
00532 #define KPOPUPSTRG 0x18
00533 #define SLIDEPART 0x19
00534 #define LONGINPUT 0x1A
00535 #define UNDOBUT 0x1F
00536 #endif
00537 #define XBOXLONGTEXT 0x09
00538 #define ONGLET 0x10
00539 #define MENUTITLE 0x0F
00540 #define XEDIT 0x0E
00541
00542
00543 #define ED_CURS 10
00544 #define ED_BLC_OFF 11
00545 #define ED_BLC_START 12
00546 #define ED_BLC_END 13
00547
00548
00549 #define RSRC_XTYPE 0x01
00550 #define RSRC_X3D 0x02
00551 #define RSRC_XALL 0xFF
00552
00553
00554 #define WDF_NAME 0
00555 #define WDF_INFO 1
00556 #define WDF_ID 2
00557 #define WDF_MENU 3
00558 #define WDF_FORM 4
00559 #define WDF_TOOL 5
00560 #define WDF_DATA 6
00561
00562
00563 #define WAT_ALL 0x4FFF
00564 #define WAT_NOINFO 0x4FEF
00565 #define WAT_FORM 0x400F
00566 #define WAT_MFORM 0x400D
00567
00568
00572 #define WS_OPEN 0x0001
00573
00574 #define WS_ICONIFY 0x0002
00575
00576 #define WS_MENU 0x0004
00577
00578 #define WS_TOOLBAR 0x0008L
00579
00580 #define WS_GROW 0x0010
00581
00582 #define WS_UNTOPPABLE 0x0020
00583
00584 #define WS_FORM 0x0040
00585
00586 #define WS_FORMDUP 0x0080
00587
00588 #define WS_MODAL 0x0100
00589
00591 #define WS_FRAME_ROOT 0x0200
00592
00594 #define WS_FRAME 0x0400
00595
00596 #define WS_CUSTOM 0x0400
00597
00598 #define WS_ALLICNF 0x0800
00599
00600 #define WS_FULLSIZE 0x1000
00601
00602 #define WS_PEXEC 0x2000
00603
00604 #define WS_FOREIGN 0x4000
00605
00606 #define WS_WIN_IN_USE 0x00008000
00607
00608 #define WS_DESTROYED 0x00010000
00609
00611
00612 #define BEVENT_MODAL 0x1000
00613 #define WF_ICONTITLE 1001
00614 #define WF_ICONDRAW 1002
00615 #define WF_HILIGHT 1003
00616 #define WF_VWORK 1004
00617 #define WF_SLIDXYWH 1005
00618 #define WF_WORKCLIPXYWH 1006
00619 #define WF_COMPONENT 1007
00620 #define WF_MENUTNORMAL 1008
00621
00622
00623 #define FORM_EVNT 0x8000
00624
00625
00626 #define HSLIDER 0x0001
00627 #define VSLIDER 0x0002
00628
00629
00630 #define WM_DESTROY 0x4400
00631
00632
00644 #define WM_FORM 0x4402
00645 #define AP_LOADCONF 0x4403
00646
00657 #define AP_BUTTON 0x4404
00658
00669 #define AP_KEYBD 0x4405
00670 #define AP_DEBUG 0x4410
00671 #define WM_UPLINE 0x4411
00672 #define WM_DNLINE 0x4412
00673 #define WM_LFLINE 0x4413
00674 #define WM_RTLINE 0x4414
00675 #define WM_UPPAGE 0x4415
00676 #define WM_DNPAGE 0x4416
00677 #define WM_LFPAGE 0x4417
00678 #define WM_RTPAGE 0x4418
00679 #define WM_PREREDRAW 0x4419
00680 #define WM_ICONDRAW 0x441a
00681 #define WM_SLIDEXY 0x441b
00682
00683 #define WM_XTIMER 1
00684
00695 #define WM_XKEYBD 2
00696
00707 #define WM_XBUTTON 3
00708 #define WM_XM1 4
00709 #define WM_XM2 5
00710
00711
00712 #define EV_BOT 0
00713 #define EV_TOP 1
00714
00715
00716 #define WD_WFRM 0x5746524DL
00717 #define WD_WFRA 0x57465241L
00718 #define WD_WFRI 0x57465249L
00719 #define WD_WHLR 0x57484c52L
00720
00721
00722
00723 #define P_RDRW 0x0100
00724 #define P_WNDW 0x0200
00725 #define P_LIST 0x0400
00726 #define P_CHCK 0x0800
00727
00728
00729 #define OC_TOOLBAR 0
00730 #define OC_FORM 1
00731 #define OC_OBJC 2
00732 #define OC_MENU 3
00733 #define OC_MSG 0x1000
00734
00735
00736 #define BIND_NONE 0
00737 #define BIND_VAR 1
00738 #define BIND_FUNC 2
00739 #define BIND_BIT 3
00740
00741
00742 #define SLD_HORI 0
00743 #define SLD_VERT 1
00744 #define SLD_DIFF 0
00745 #define SLD_IMME 1
00746
00747
00748 #define VSTHEIGHT 0x01
00749 #define BITMAP 0x02
00750 #define MONOSPACED 0x04
00751
00752
00753
00754 #define FRAME_BORDER 1
00755 #define FRAME_COLOR 2
00756 #define FRAME_KEYBD 3
00757 #define FRAME_SIZE 4
00758 #define FRAME_FLAGS 5
00759 #define FRAME_NOBG 6
00760 #define FRAME_ACTIV 7
00761 #define FRAME_TOPPED_ACTIV 8
00762
00763
00764
00765 #define FRAME_CELL 10
00766
00767
00768
00769 #define FRAME_WSCALE 0x0001
00770 #define FRAME_HSCALE 0x0002
00771 #define FRAME_WFIX 0x0004
00772 #define FRAME_HFIX 0x0008
00773 #define FRAME_NOBORDER 0x0010
00774 #define FRAME_SELECT 0x0020
00775
00776
00777 #define BGC_FONTCHANGED 0x01
00778 #define BGC_NOWINSTYLE 0x02
00779 #define BGC_SENDKEY 0x04
00780 #define BGC_DEMONACTIVE 0x08
00781 #define BGC_TOPONLY 0x10
00782
00783
00784 #define V_SENDKEY 0x0001
00785 #define V_ASKFILEFONT 0x0002
00786 #define V_ASKCONFONT 0x0004
00787 #define V_ASKOBJECT 0x0008
00788 #define V_OPENWIND 0x0010
00789 #define V_STARTPROG 0x0020
00790 #define V_ACCWINDOPEN 0x0040
00791 #define V_STATUS 0x0080
00792 #define V_COPY_DRAGGED 0x0100
00793 #define V_PATH_UPDATE 0x0200
00794 #define V_EXIT 0x0400
00795 #define V_XWIND 0x0800
00796 #define V_FONTCHANGED 0x1000
00797 #define V_STARTED 0x2000
00798 #define V_QUOTE 0x4000
00799 #define V_FILEINFO 0x8000
00800
00801
00802
00803
00804
00805 #define V_COPYFILE 0x0001
00806 #define V_DELFILE 0x0002
00807 #define V_VIEW 0x0004
00808 #define V_SETWINDPOS 0x0008
00809
00810
00811 #define A_SETSTATUS 0x0001
00812 #define A_START 0x0002
00813 #define A_STARTED 0x0004
00814 #define A_FONTCHANGED 0x0008
00815 #define A_QUOTE 0x0010
00816 #define A_PATH_UPDATE 0x0020
00817
00818
00819 #define FNT_OUTLINE 0x1
00820 #define FNT_MONO 0x2
00821 #define FNT_SPEEDO 0x4
00822 #define FNT_TRUETYPE 0x8
00823 #define FNT_TYPE1 0x10
00824
00825
00826 #define XFNT_NAME 0x1
00827 #define XFNT_FAMILLY 0x2
00828 #define XFNT_STYLE 0x4
00829 #define XFNT_FILE 0x8
00830 #define XFNT_NBPTS 0x100
00831 #define XFNT_LISTPTS 0x200
00832
00833
00834
00835
00836 extern struct w_version WinDom;
00837
00838
00839
00840
00841
00842
00843
00844
00845
00846
00847
00848
00851 APPvar* mt_ApplInit ( void);
00852 int mt_ApplExit ( APPvar *app);
00853 int mt_ApplGet ( APPvar *app, int mode, short *v1, short *v2, short *v3, short *v4);
00854 int mt_ApplSet ( APPvar *app, int mode, short v1, short v2, short v3, short v4);
00855 int mt_ApplName ( APPvar *app, char *name, int handle);
00856 int mt_ApplWrite ( APPvar *app, int to, int msg, int b3, int b4, int b5, int b6, int b7);
00857 int mt_ApplControl ( APPvar *app, int ap_cid, int ap_cwhat, void *ap_cout);
00860
00863 int mt_AvInit ( APPvar *app, char *name, int status, long idle);
00864 void mt_AvExit ( APPvar *app);
00865 INT16* mt_AvStatus ( APPvar *app);
00866 char* mt_AvServer ( APPvar *app);
00867 int mt_AvWaitfor ( APPvar *app, int, INT16 *, long);
00868
00869 char* AvStrfmt (int mode, char *src);
00870 #define mt_AvStrfmt(a,b,c) AvStrfmt(b,c)
00875 int get_cookie (long cookie, long *value);
00876
00877
00880 int mt_BubbleCall ( APPvar *app, char *help, int x, int y);
00881 int mt_BubbleModal ( APPvar *app, char *help, int x, int y);
00882 int mt_BubbleDo ( APPvar *app, OBJECT *tree, int __index);
00883 int mt_BubbleAttach( APPvar *app, OBJECT *tree, int __index, char *help);
00884 void mt_BubbleFree ( APPvar *app);
00885 int mt_BubbleFind ( APPvar *app, OBJECT *tree, int __index, char **help);
00886 int mt_BubbleEvnt ( APPvar *app);
00887 int mt_BubbleGet ( APPvar *app);
00890
00893 int mt_ConfRead ( APPvar *app);
00894 int mt_ConfInquire ( APPvar *app, char *keyword, char *fmt, ...);
00895 int mt_ConfGetLine ( APPvar *app, char *line);
00896 int mt_ConfWrite ( APPvar *app, char *keyword, char *fmt, ...);
00897 int mt_ConfWindom ( APPvar *app);
00900
00903 int mt_DataAttach ( APPvar *app, WINDOW *win, long magic, void *data);
00904 int mt_DataDelete ( APPvar *app, WINDOW *win, long magic);
00905 void* mt_DataSearch ( APPvar *app, WINDOW *win, long magic);
00908
00911 int mt_EvntWindom ( APPvar *app, int __evnt);
00912 int mt_EvntWindomBuff( APPvar *app, int __evnt, short buff[8]);
00913 int mt_EvntAdd ( APPvar *app, WINDOW *win, int msg, func_evnt proc, int mode);
00914 int mt_EvntAttach ( APPvar *app, WINDOW *win, int msg, func_evnt proc);
00915 int mt_EvntDataAdd ( APPvar *app, WINDOW *win, int msg, func_evntdata proc, void *data, int mode);
00916 int mt_EvntDataAttach( APPvar *app, WINDOW *win, int msg, func_evntdata proc, void *data);
00917 int mt_EvntDelete ( APPvar *app, WINDOW *win, int msg);
00918 void* mt_EvntFind ( APPvar *app, WINDOW *win, int msg);
00919 int mt_EvntExec ( APPvar *app, WINDOW *win, short buff[8]);
00920 void mt_EvntClear ( APPvar *app, WINDOW *win);
00921 int mt_EvntRemove ( APPvar *app, WINDOW *win, int msg, void *proc);
00922 void mt_EvntDisable ( APPvar *app, WINDOW *win, int msg);
00923 void mt_EvntEnable ( APPvar *app, WINDOW *win, int msg);
00924 void mt_EvntRedraw ( APPvar *app, WINDOW *win);
00925 void mt_EvntRedrawGrect( APPvar *app, WINDOW *win, GRECT *work);
00928
00931 WINDOW* mt_FormWindBegin( APPvar *app, OBJECT *dial, char *nom);
00932 void mt_FormWindEnd ( APPvar *app);
00933 int mt_FormWindDo ( APPvar *app, int __evnt);
00934 int mt_FormWindDoBuff( APPvar *app, int __evnt, short buff[8]);
00935
00936 int mt_FormAttach ( APPvar *app, WINDOW *win, OBJECT *tree, func_evnt func);
00937 void mt_FormResize ( APPvar *app, WINDOW *win, INT16 *x, INT16 *y, INT16 *w, INT16 *h);
00938 WINDOW* mt_FormCreate ( APPvar *app, OBJECT *tree, int attrib, func_evnt func, char *name, GRECT *coord, int grow, int dup);
00939 int mt_FormSave ( APPvar *app, WINDOW *win, int mode);
00940 int mt_FormRestore ( APPvar *app, WINDOW *win, int mode);
00941 void mt_FormBegin ( APPvar *app, OBJECT *tree, MFDB *bckgrnd);
00942 void mt_FormEnd ( APPvar *app, OBJECT *tree, MFDB *bckgrnd);
00946 #define mt_FormDo(a,b,c) mt_form_do(b,c,a->aes_global)
00947 int mt_FormAlert ( APPvar *app, int but, char fmt[], ...);
00948 void* mt_FormThumb ( APPvar *app, WINDOW *win, int *idxthb, int *idxbut, int nb);
00949 void mt_FormThbSet ( APPvar *app, WINDOW *win, int but);
00950 int mt_FormThbGet ( APPvar *app, void *thb, int mode);
00951
00952 void __CDECL mt_stdFormClose(WINDOW *win, int ind, int mode, void *data, APPvar *app);
00955
00958 void mt_MouseObjc ( APPvar *app, OBJECT *tree, int __index);
00959 void mt_MouseWork ( APPvar *app);
00960 void mt_MouseSprite ( APPvar *app, OBJECT *tree, int __index);
00963
00966 void mt_FrameInit ( APPvar *app);
00967 void mt_FrameExit ( APPvar *app);
00968 WINDOW* mt_FrameCreate ( APPvar *app, int attrib);
00969 void mt_FrameAttach ( APPvar *app, WINDOW *win, WINDOW *src, int line, int col, int w, int h, int mode);
00970 WINDOW* mt_FrameRemove ( APPvar *app, WINDOW *win, WINDOW *child, int line, int col);
00971 void mt_FrameSet ( APPvar *app, WINDOW *win, int mode, ...);
00972 void mt_FrameGet ( APPvar *app, WINDOW *win, int mode, ...);
00973 WINDOW* mt_FrameFind ( APPvar *app, WINDOW *win, int x, int y);
00974 WINDOW* mt_FrameSearch ( APPvar *app, WINDOW *win, int line, int col);
00975 int mt_FrameCalc ( APPvar *app, WINDOW *win, int mode, INT16 *x, INT16 *y, INT16 *w, INT16 *h);
00978
00981 int mt_FontName2Id ( APPvar *app, char *name);
00982 int mt_FontId2Name ( APPvar *app, int id, char *name);
00983 int mt_VstLoadFonts ( APPvar *app, int res);
00984 void mt_VstUnloadFonts( APPvar *app, int res);
00985 int mt_VstFont ( APPvar *app, int id) ;
00986 int mt_VqtName ( APPvar *app, int elem, char *name) ;
00987 int mt_VqtXname ( APPvar *app, int id, int __index, char *name, int *fl);
00988 int vqt_extname ( int handle, int __index, char *name, int *speedo, INT16 *format, INT16 *flags);
00991
00994 int mt_FselInput ( APPvar *app, char *path, char *fname, char *ext, char *title, char *lpath, char *lext);
00995 int mt_FontSel ( APPvar *app, char *title, char *example, int flags, int *id, int *size, char *name);
00998
01001 int mt_MenuBar ( APPvar *app, OBJECT *menu, int mode);
01002 int mt_MenuTnormal ( APPvar *app, WINDOW *win, int title, int mode);
01003 int mt_MenuIcheck ( APPvar *app, WINDOW *win, int title, int mode);
01004 int mt_MenuText ( APPvar *app, WINDOW *win, int title, char *txt);
01005 int mt_MenuDisable ( APPvar *app);
01006 int mt_MenuEnable ( APPvar *app);
01007 int mt_MenuPopUp ( APPvar *app, void *data, int x, int y, int max, int size, int item, int mode);
01008 void mt_MenuScroll ( APPvar *app, WINDOW *win, int dir);
01010
01011 int mt_MenuAttach ( APPvar *app, int flag, OBJECT *tree, short item, MENU *mdata);
01012
01013
01016
01017 int mt_ObjcChange ( APPvar *app, int mode, void *data, int __index, int state, int redraw);
01018 int mt_ObjcChar ( APPvar *app, OBJECT *tree, int idx, int put);
01019 int mt_ObjcDrawParent ( APPvar *app, int mode, void *win, int __index, int parent_depth, int child_depth);
01020 #define mt_ObjcDraw(a,b,c,d,e) mt_ObjcDrawParent(a,b,c,d,0,e)
01021 int mt_ObjcIsHidden ( APPvar *app, int mode, void *win, int __index);
01022 OBJECT* mt_ObjcDup ( APPvar *app, OBJECT *tree, WINDOW *win);
01023 OBJECT *mt_ObjcNDup ( APPvar *app, OBJECT *src, WINDOW *win, int nb);
01024 OBJECT *mt_ObjcNDupAtAddr ( APPvar *app, OBJECT *src, WINDOW *win, int nb, OBJECT *dest);
01025 int mt_ObjcEdit ( APPvar *app, int mode, WINDOW *win, int obj, int val, INT16 *idx, int kind);
01026 void mt_ObjcFree ( APPvar *app, OBJECT *tree);
01027 void mt_ObjcNFreeAtAddr ( APPvar *app, OBJECT *tree, int nb);
01028 char* mt_ObjcString ( APPvar *app, OBJECT *tree, int __index, char *put);
01030 #define mt_ObjcStrCpy(a,tree,index,str) strcpy(mt_ObjcString(a,tree,index,NULL),str)
01031 void mt_ObjcStr3d ( APPvar *app, OBJECT *tree);
01032 int mt_ObjcWindDraw ( APPvar *app, WINDOW *win, OBJECT *tree, int __index, int depth, int xclip, int yclip, int wclip, int hclip);
01033 int mt_ObjcWindDrawParent( APPvar *app, WINDOW *win, OBJECT *tree, int __index, int parent_depth, int child_depth, int xclip, int yclip, int wclip, int hclip);
01034 int mt_ObjcWindChange ( APPvar *app, WINDOW *win, OBJECT *tree, int __index, int xclip, int yclip, int wclip, int hclip, int state);
01035 OBJECT *mt_ObjcTree ( APPvar *app, int mode, WINDOW *win);
01036
01037 void ObjcStrFmt ( char *dest, char *src, int size);
01039 #define mt_ObjcStrFmt(a,b,c,d) ObjcStrFmt(b,c,d)
01040
01041
01057 static inline int mt_ObjcAttachVar( APPvar *app, int mode, WINDOW *win, int __index, int *var, int value_when_selected ) {
01058 int mt_ObjcAttach ( APPvar *, int, WINDOW *, int, int, ...);
01059 return mt_ObjcAttach( app, mode, win, __index, BIND_VAR, var, value_when_selected);
01060 }
01061
01062 static inline int mt_ObjcAttachBit( APPvar *app, int mode, WINDOW *win, int __index, int *var, int bit ) {
01063 int mt_ObjcAttach ( APPvar *, int, WINDOW *, int, int, ...);
01064 return mt_ObjcAttach( app, mode, win, __index, BIND_BIT, var, bit);
01065 }
01066
01067 static inline int mt_ObjcAttachFormFunc( APPvar *app, WINDOW *win, int __index, func_bind fn, void *data ) {
01068 int mt_ObjcAttach ( APPvar *, int, WINDOW *, int, int, ...);
01069 return mt_ObjcAttach( app, OC_FORM, win, __index, BIND_FUNC, fn, data);
01070 }
01071
01072 static inline int mt_ObjcAttachTBFunc( APPvar *app, WINDOW *win, int __index, func_bind fn, void *data ) {
01073 int mt_ObjcAttach ( APPvar *, int, WINDOW *, int, int, ...);
01074 return mt_ObjcAttach( app, OC_TOOLBAR, win, __index, BIND_FUNC, fn, data);
01075 }
01076
01077 static inline int mt_ObjcAttachMenuFunc( APPvar *app, WINDOW *win, int __index, func_bindmenu fn, void *data ) {
01078 int mt_ObjcAttach ( APPvar *, int, WINDOW *, int, int, ...);
01079 return mt_ObjcAttach( app, OC_MENU, win, __index, BIND_FUNC, fn, data);
01080 }
01081
01084
01087 WINDOW* mt_WindCreate ( APPvar *app, int GemAttrib, int x, int y, int w, int h);
01088 int mt_WindOpen ( APPvar *app, WINDOW *win, int x, int y, int w, int h);
01089 int mt_WindClose ( APPvar *app, WINDOW *win);
01090 int mt_WindDelete ( APPvar *app, WINDOW *win);
01091 WINDOW* mt_WindHandle ( APPvar *app, int handle);
01092 int mt_WindGet ( APPvar *app, WINDOW *win, int mode, INT16* par1, INT16* par2, INT16* par3, INT16* par4);
01093 #define mt_WindGetGrect( app, win, mode, grect ) mt_WindGet( app, win, mode, &((grect)->g_x), &((grect)->g_y), &((grect)->g_w), &((grect)->g_h) )
01094 int mt_WindXGet ( APPvar *app, WINDOW *win, int mode, GRECT *clip, INT16* par1, INT16* par2, INT16* par3, INT16* par4);
01095 #define mt_WindXGetGrect( app, win, mode, clip, grect ) mt_WindXGet( app, win, mode, clip, &((grect)->g_x), &((grect)->g_y), &((grect)->g_w), &((grect)->g_h) )
01096 void* mt_WindGetPtr ( APPvar *app, WINDOW *win, int mode);
01097 int mt_WindSet ( APPvar *app, WINDOW *win, int mode, int par1, int par2, int par3, int par4);
01098 #define mt_WindSetGrect( app, win, mode, grect ) mt_WindSet( app, win, mode, (grect)->g_x, (grect)->g_y, (grect)->g_w, (grect)->g_h )
01099 int mt_WindSetStr ( APPvar *app, WINDOW *win, int mode, char *str);
01100 int mt_WindSetPtr ( APPvar *app, WINDOW *win, int mode, void *par1, void *par2);
01101 int mt_WindCalc ( APPvar *app, int type, WINDOW *wind, int xin, int yin, int win, int hin,
01102 INT16 *xout, INT16 *yout, INT16 *wout, INT16 *hout);
01103 #define mt_WindCalcGrect( app, mode, win, inrect, outrect ) \
01104 mt_WindCalc( app, mode, win, \
01105 (inrect)->g_x, (inrect)->g_y, (inrect)->g_w, (inrect)->g_h, \
01106 &(outrect)->g_x, &(outrect)->g_y, &(outrect)->g_w, &(outrect)->g_h )
01107 void mt_WindSlider ( APPvar *app, WINDOW *win, int mode);
01108 WINDOW* mt_WindAttach ( APPvar *app, int handle);
01109 WINDOW* mt_WindFind ( APPvar *app, int mode, ...);
01110 void mt_WindTop ( APPvar *app, WINDOW *win);
01111 void mt_WindNew ( APPvar *app);
01112 void mt_WindClear ( APPvar *app, WINDOW *win);
01113
01114 void __CDECL mt_stdWindClear( WINDOW *win, short buff[8], APPvar *app);
01117
01120 void* mt_SlidCreate ( APPvar *app, short min, short max, short sinc, short linc, short value, int ori, int upd);
01121 void mt_SlidDelete ( APPvar *app, void *slid);
01122 void mt_SlidAttach ( APPvar *app, void *slid, int mode, WINDOW *win, int up, int bsld, int sld, int dn);
01123 short mt_SlidGetValue( APPvar *app, void *slid);
01124 void mt_SlidSetFunc ( APPvar *app, void *slid, func_doslid func, void *data);
01125 void mt_SlidSetSize ( APPvar *app, void *slid, int size);
01126 void mt_SlidSetValue( APPvar *app, void *slid, short value);
01127 void mt_SlidSetUpdat( APPvar *app, void *slid, int upd);
01130
01133 int mt_RsrcLoad ( APPvar *app, const char *name);
01134 void mt_RsrcXtype ( APPvar *app, int mode, OBJECT **rs_trindex, int num_tree);
01135 void mt_RsrcFixCicon ( APPvar *app, OBJECT *object, int num_obs, int num_cib, INT16 palette[][4], void *fix);
01136 void mt_RsrcFreeCicon ( APPvar *app, void *fix);
01137 int mt_RsrcUserDraw ( APPvar *app, int mode, WINDOW *win, int __index, func_userdraw draw, void *data);
01139 #define mt_RsrcFree(app) mt_rsrc_free(app->aes_global)
01140 void* mt_RsrcXload ( APPvar *app, const char *name);
01141 void mt_RsrcXfree ( APPvar *app, void *rsc);
01142 int mt_RsrcGaddr ( APPvar *app, void *rsc, int type, int __index, void *addr);
01143 rscHDR* mt_RsrcGhdr ( APPvar *app, void *rsc);
01146
01149 void mt_give_iconifyxywh
01150 ( APPvar *app, INT16 *x, INT16 *y, INT16 *w, INT16 *h);
01151 void mt_snd_rdw ( APPvar *app, WINDOW *win);
01152 void mt_snd_arrw ( APPvar *app, WINDOW *win, int msg);
01153 void mt_snd_msg ( APPvar *app, WINDOW *win, int msg, int par1, int par2, int par3, int par4);
01154 void rc_set ( GRECT *, int, int, int, int);
01155 void rc_lset ( LGRECT *, long, long, long, long);
01156 void w_getpal ( APPvar *app, WINDOW *win);
01157 void w_setpal ( APPvar *app, WINDOW *win);
01158 int w_get_hndl ( APPvar *app, WINDOW *win);
01159 void w_get_bkgr ( APPvar *app, int of_x, int of_y, int of_w, int of_h, MFDB *img);
01160 void w_put_bkgr ( APPvar *app, int of_x, int of_y, int of_w, int of_h, MFDB *img);
01161 int keybd2ascii ( int keybd, int shift);
01162 char* conv_path ( char *);
01163
01164 int mt_ShelHelp ( APPvar *app, char *file, char *chapter);
01165 int mt_ShelWrite ( APPvar *app, char *prg, char *cmd, void *env, int av, int single);
01166 void mt_DebugWindom ( APPvar *app, const char *format, ...);
01167 void* Galloc ( long size);
01168 void mt_GrectCenter ( APPvar *app, int w, int h, INT16 *x, INT16 *y );
01169
01170 void mt_ClipOn ( APPvar *app, W_GRAFPORT *graf, GRECT *r);
01171 void mt_ClipOff ( APPvar *app, W_GRAFPORT *graf);
01172
01173 void rc_lgrect2grect ( GRECT *, const LGRECT *);
01174 void rc_grect2lgrect ( LGRECT *, const GRECT *);
01175 short rc_lintersect (const LGRECT * r1, LGRECT * r2);
01176
01181
01185
01186
01187
01188 #define CPNT_MAXSIZE (LONG_MAX)
01189
01193 #define CLT_VERTICAL 0
01194 #define CLT_HORIZONTAL 1
01195 #define CLT_STACK 2
01196
01200 #define CS_INTERACTIVE 0x0010
01201 #define CS_HSLIDE 0x0020
01202 #define CS_VSLIDE 0x0040
01203 #define CS_HIDDEN 0x0080
01204 #define CS_CLIP 0x0100
01205 #define CS_PROPORTIONAL 0x0200
01207 #define CS_RESERVED 0x00010000UL
01208 #define CS_FOCUSED 0x00020000UL
01209 #define CS_IN_USE 0x00080000UL
01210 #define CS_DESTROYED 0x00040000UL
01215 #define CM_GETFOCUS 0x44c0
01216 #define CM_LOSEFOCUS 0x44c1
01217 #define CM_REFLOW 0x44c2
01218 #define CM_REPOSED 0x44c3
01224 #define CF_WINDOW 0x44e0
01225 #define CF_MAXSIZE 0x44e1
01226 #define CF_HSLIDE 0x44d0
01227 #define CF_VSLIDE 0x44d1
01228 #define CF_FOCUS 0x44d2
01233 #define WD_CCRT 0x43435254L
01234 #define WD_CCWD 0x43435744L
01235 #define WD_CWGT 0x43573743L
01242 typedef struct _component {
01243 LINKABLE item;
01245 short type;
01246 unsigned long status;
01247 short flex;
01248 short size;
01249 LGRECT rect;
01250 W_GRAFPORT *graf;
01253 struct {
01254 unsigned long min_width;
01255 unsigned long max_width;
01256 unsigned long min_height;
01257 unsigned long max_height;
01258 } bounds;
01259
01260 struct _component *parent;
01261 LIST *children;
01262 LIST binding;
01263 LIST data;
01264 } COMPONENT;
01265
01266
01267 #define FOR_EACH_CHILD( i, list ) \
01268 listForEach( COMPONENT *, i, list ) \
01269 if ( !(((COMPONENT*)(i))->status & CS_HIDDEN) )
01270
01271
01272
01273 #define CDT_SLIDER_POS 0x455f4dUL
01274 #define CDT_SLIDER_SIZE 0x455f4eUL
01275 #define CDT_SLIDER_CONTROL 0x455f4fUL
01276
01277
01278
01279 COMPONENT *mt_CompCreate( APPvar *app, short type, long size, short flex );
01280 COMPONENT *mt_CompFind( APPvar *app, COMPONENT *p, short mx, short my);
01281 int mt_CompDelete( APPvar *app, COMPONENT *p );
01282 void mt_CompAttach( APPvar *app, COMPONENT *p, COMPONENT *c);
01283
01284
01285 int mt_CompDataAttach( APPvar *app, COMPONENT *c, long magic, void *data);
01286 int mt_CompDataDelete( APPvar *app, COMPONENT *c, long magic);
01287 void *mt_CompDataSearch( APPvar *app, COMPONENT *c, long magic);
01288
01289 #if 0
01290
01291 void mt_CompGet( APPvar *app, COMPONENT *c, short mode, long *par1, long *par2, long *par3, long *par4 );
01292 #define mt_CompGetLGrect( app, win, mode, grect ) mt_CompGet( app, win, mode, (grect)->g_x, (grect)->g_y, (grect)->g_w, (grect)->g_h )
01293 #endif
01294
01295 int mt_CompSet( APPvar *app, COMPONENT *c, short type, long par1, long par2, long par3, long par4 );
01296 int mt_CompSetPtr( APPvar *app, COMPONENT *c, short mode, void *par1, void *par2);
01297 int mt_CompGetLGrect( APPvar *app, COMPONENT *c, short type, LGRECT *rect);
01298 void* mt_CompGetPtr( APPvar *app, COMPONENT *c, short type);
01299
01300
01301 #ifdef __WINDOM__
01302 typedef void __CDECL (* func_comp_evntdata)(COMPONENT *, long buff[8], void *);
01303 typedef void __CDECL (* func_comp_evnt )(COMPONENT *, long buff[8]);
01304 #else
01305 typedef void __CDECL (* func_comp_evntdata)(COMPONENT *, long buff[8], void *, APPvar *app);
01306 typedef void __CDECL (* func_comp_evnt )(COMPONENT *, long buff[8], APPvar *app);
01307 #endif
01308
01309 int mt_CompEvntAdd( APPvar *app, COMPONENT *p, short msg, func_comp_evnt proc, int mode);
01310 int mt_CompEvntDataAdd( APPvar *app, COMPONENT *c, short msg, func_comp_evntdata proc, void* data, int mode);
01311 int mt_CompEvntAttach( APPvar *app, COMPONENT *p, short msg, func_comp_evnt proc);
01312 int mt_CompEvntDataAttach( APPvar *app, COMPONENT *c, short msg, func_comp_evntdata proc, void* data);
01313 int mt_CompEvntExec ( APPvar *app, COMPONENT *p, long buff[8]);
01314 void mt_CompEvntClear( APPvar *app, COMPONENT *c);
01315 int mt_CompEvntRemove( APPvar *app, COMPONENT *c, int msg, void *proc);
01316 int mt_CompEvntDelete( APPvar *app, COMPONENT *c, int msg);
01317 void mt_CompEvntEnable( APPvar *app, COMPONENT *c, int msg);
01318 void mt_CompEvntDisable( APPvar *app, COMPONENT *c, int msg);
01319 void mt_CompEvntRedraw( APPvar *app, COMPONENT *c);
01320 void mt_CompEvntRedrawLGrect( APPvar *app, COMPONENT *c, LGRECT *rdraw);
01321
01325 #define WD_CPNT_HSLIDE_INFO 0x43485349L
01326 #define WD_CPNT_VSLIDE_INFO 0x43565349L
01327
01328 #ifndef VSLIDERINFO
01329 #define VSLIDERINFO(app,c) ((C_SLIDERINFO*)mt_CompDataSearch( app, c, WD_CPNT_VSLIDE_INFO))
01330 #endif
01331 #ifndef HSLIDERINFO
01332 #define HSLIDERINFO(app,c) ((C_SLIDERINFO*)mt_CompDataSearch( app, c, WD_CPNT_HSLIDE_INFO))
01333 #endif
01334
01335 typedef struct _sliderinfo {
01336 long pos;
01337 long max;
01338 short unit;
01339 } C_SLIDERINFO;
01340
01341
01342
01343 int mt_CompSliderAttach(APPvar *app, COMPONENT *p, short type);
01344
01347 __END_DECLS
01348
01349 #endif