home *** CD-ROM | disk | FTP | other *** search
/ Atari FTP / ATARI_FTP_0693.zip / ATARI_FTP_0693 / Tex / td187src.lzh / MAGICAES.D < prev    next >
Text File  |  1991-06-08  |  21KB  |  627 lines

  1. (*######################################################################
  2.                                                                         
  3.   MAGIC         Modula's  All purpose  GEM  Interface  Cadre
  4.                                                         
  5. ########################################################################
  6.  
  7.   AES   Application Environment Services        Interface for Modula-2
  8.  
  9. ########################################################################
  10.   V2.00  17.10.90  Peter Hellinger      Anpassung an neues MagicSys
  11.   V1.03  26.09.90  Peter Hellinger      Parameter überarbeitet
  12.   V1.02  28.06.90  Peter Hellinger      Bug in OBJECT-Deklaration gefixt
  13.   V1.01  18.06.90  Peter Hellinger      Xgrf-Aufrufe ergänzt 
  14.   V1.00  (C) by    Peter Hellinger
  15. ######################################################################*)
  16.  
  17. DEFINITION MODULE MagicAES;
  18.  
  19. FROM SYSTEM     IMPORT  ADDRESS;
  20. FROM MagicSys   IMPORT  Nil, Null,
  21.                         Bit0, Bit1, Bit2, Bit3, Bit4, Bit5, Bit6, Bit7,
  22.                         Bit8, Bit9, Bit10, Bit11, Bit12, Bit13, Bit14, Bit15,
  23.                         LOC, Byte, ByteSet, sWORD, sINTEGER, sCARDINAL, sBITSET,
  24.                         lWORD, lINTEGER, lCARDINAL, lBITSET;
  25.  
  26. CONST   MouseLeft =     Bit0;   (* Maustasten *)
  27.         MouseRight =    Bit1;
  28.  
  29.  
  30. TYPE    AESGLOBAL =     RECORD
  31.                          apVersion:     sCARDINAL;
  32.                          apCount:       sCARDINAL;
  33.                          apId:          sCARDINAL;
  34.                          apPprivate:    lCARDINAL;
  35.                          apPtree:       ADDRESS;
  36.                          apPmem:        ADDRESS;
  37.                          apLmem:        sCARDINAL;
  38.                          apNplanes:     sCARDINAL;
  39.                          Reserved1:     sCARDINAL;
  40.                          Reserved2:     sCARDINAL;
  41.                          apBvdisk:      sBITSET;
  42.                          apBvhard:      sBITSET;
  43.                         END;
  44.  
  45. TYPE    tControl =      RECORD
  46.                          opcode:        sINTEGER;
  47.                          sizeIntIn:     sINTEGER;
  48.                          sizeIntOut:    sINTEGER;
  49.                          sizeAddrIn:    sINTEGER;
  50.                          sizeAddrOut:   sINTEGER;
  51.                         END;
  52.  
  53. TYPE    tIntIn =        ARRAY [0..16] OF sINTEGER;
  54.         tIntOut =       ARRAY [0.. 7] OF sINTEGER;
  55.         tAddrIn =       ARRAY [0.. 2] OF ADDRESS;
  56.         tAddrOut =      ARRAY [0.. 1] OF ADDRESS;
  57.  
  58. VAR     AESControl:     tControl;
  59.         AESGlobal:      AESGLOBAL;
  60.         AESIntIn:       tIntIn;
  61.         AESIntOut:      tIntOut;
  62.         AESAddrIn:      tAddrIn;
  63.         AESAddrOut:     tAddrOut;
  64.  
  65. VAR     AESPB:          RECORD
  66.                          cbControl:     POINTER TO tControl;
  67.                          cbPglobal:     POINTER TO AESGLOBAL;
  68.                          cbPintin:      POINTER TO tIntIn;
  69.                          cbPintout:     POINTER TO tIntOut;
  70.                          cbPadrin:      POINTER TO tAddrIn;
  71.                          cbPadrout:     POINTER TO tAddrOut;
  72.                         END;
  73.  
  74.  
  75. VAR     CallResult:  sINTEGER;
  76.  
  77.  
  78. PROCEDURE AESCall (op, c1, c2, c3, c4: sINTEGER): sINTEGER;
  79.  
  80.  
  81. (*-- AES-Objc --------------------------------------------------------*)
  82.  
  83. CONST   GBOX =          20;
  84.         GTEXT =         21;
  85.         GBOXTEXT =      22;
  86.         GIMAGE =        23;
  87.         GPROGDEF =      24;
  88.         GIBOX =         25;
  89.         GBUTTON =       26;
  90.         GBOXCHAR =      27;
  91.         GSTRING =       28;
  92.         GFTEXT =        29;
  93.         GFBOXTEXT =     30;
  94.         GICON =         31;
  95.         GTITLE =        32;
  96.  
  97. CONST   SELECTABLE =    Bit0;
  98.         DEFAULT =       Bit1;
  99.         Exit =          Bit2;   (* EXIT ist reserviertes Wort... *)
  100.         EDITABLE =      Bit3;
  101.         RBUTTON =       Bit4;
  102.         LASTOB =        Bit5;
  103.         TOUCHEXIT =     Bit6;
  104.         HIDETREE =      Bit7;
  105.         INDIRECT =      Bit8;
  106.  
  107. CONST   SELECTED =      Bit0;
  108.         CROSSED =       Bit1;
  109.         CHECKED =       Bit2;
  110.         DISABLED =      Bit3;
  111.         OUTLINED =      Bit4;
  112.         SHADOWED =      Bit5;
  113.         DRAW3D =        Bit6;
  114.         WHITEBAK =      Bit7;
  115.                         
  116. CONST   WHITE =          0;     (* Farben *)
  117.         BLACK =          1;
  118.         RED =            2;
  119.         GREEN  =         3;
  120.         BLUE  =          4;
  121.         CYAN  =          5;
  122.         YELLOW  =        6;
  123.         MAGENTA  =       7;
  124.         LWITHE =         8;
  125.         LBLACK  =        9;
  126.         LRED =          10;
  127.         LGREEN =        11;
  128.         LBLUE =         12;
  129.         LCYAN =         13;
  130.         LYELLOW =       14;
  131.         LMAGENTA =      15;
  132.  
  133.  
  134. TYPE    BoxInfo =       RECORD
  135.                          char:  CHAR;   (* Bit 24..31 *)
  136.                          frame: CHAR;   (* Bit 16..23 *)
  137.                          flags: sBITSET; (* Bit 0..15  *)
  138.                         END;           
  139.  
  140. TYPE    TEDINFO =       RECORD
  141.                          tePtext:       POINTER TO ARRAY [0..255] OF CHAR;
  142.                          tePtmplt:      POINTER TO ARRAY [0..255] OF CHAR;
  143.                          tePvalid:      POINTER TO ARRAY [0..255] OF CHAR;
  144.                          teFont:        sINTEGER;
  145.                          teResvd1:      sINTEGER;
  146.                          teJust:        sINTEGER;
  147.                          teColor:       sINTEGER;
  148.                          teResvd2:      sINTEGER;
  149.                          teThickness:   sINTEGER;
  150.                          teTxtlen:      sINTEGER;
  151.                          teTmplen:      sINTEGER;
  152.                         END;
  153.  
  154. TYPE    BITBLK =        RECORD
  155.                          biData:        ADDRESS;
  156.                          biWb:          sINTEGER;
  157.                          biHl:          sINTEGER;
  158.                          biX:           sINTEGER;
  159.                          biY:           sINTEGER;
  160.                          biColor:       sINTEGER;
  161.                         END;    
  162.  
  163. TYPE    PtrPARMBLK =    POINTER TO PARMBLK;
  164.         PARMBLK =       RECORD
  165.                          pbTree:        ADDRESS;
  166.                          pbObj:         sINTEGER;
  167.                          prPrevstate:   sBITSET;
  168.                          prCurrstate:   sBITSET;
  169.                          pbX:           sINTEGER;
  170.                          pbY:           sINTEGER;
  171.                          pbW:           sINTEGER;
  172.                          pbH:           sINTEGER;
  173.                          pbXc:          sINTEGER;
  174.                          pbYc:          sINTEGER;
  175.                          pbWc:          sINTEGER;
  176.                          pbHc:          sINTEGER;
  177.                          pbParm:        ADDRESS;
  178.                         END;
  179.  
  180. TYPE    USERBLK =       RECORD
  181.                          ubCode:        PROC;
  182.                          ubPara:        PtrPARMBLK;
  183.                         END;
  184.  
  185.  
  186. TYPE    ICONBLK =       RECORD
  187.                          ibPmask:       ADDRESS;
  188.                          ibPdata:       ADDRESS;
  189.                          ibPtext:       ADDRESS;
  190.                          ibChar:        sINTEGER;
  191.                          ibXchar:       sINTEGER;
  192.                          ibYchar:       sINTEGER;
  193.                          ibXicon:       sINTEGER;
  194.                          ibYicon:       sINTEGER;
  195.                          ibWicon:       sINTEGER;
  196.                          ibHicon:       sINTEGER;
  197.                          ibXtext:       sINTEGER;
  198.                          ibYtext:       sINTEGER;
  199.                          ibWtext:       sINTEGER;
  200.                          ibHtext:       sINTEGER;
  201.                          ibResvd:       sINTEGER;
  202.                         END;
  203.  
  204.  
  205. TYPE    OBJECT = RECORD
  206.                   obNext:       sINTEGER;
  207.                   obHead:       sINTEGER;
  208.                   obTail:       sINTEGER;
  209.                   obType:       sINTEGER;
  210.                   obFlags:      sBITSET;
  211.                   obState:      sBITSET;
  212.                   CASE : sCARDINAL OF
  213.                    0: obSpec:     ADDRESS;|
  214.                    1: Box:        BoxInfo;|  (* Kein Pointer, steht direkt im Langwort! *)
  215.                    2: TedPtr:     POINTER TO TEDINFO;|
  216.                    3: StringPtr:  POINTER TO ARRAY [0..255] OF CHAR;|
  217.                    4: ImagePtr:   POINTER TO BITBLK;|
  218.                    5: UserDefPtr: POINTER TO USERBLK;|
  219.                    6: IconPtr:    POINTER TO ICONBLK;|
  220.                   END;
  221.                   obX:          sINTEGER;
  222.                   obY:          sINTEGER;
  223.                   obWidth:      sINTEGER;
  224.                   obHeight:     sINTEGER;
  225.                  END;
  226.  
  227.  
  228. PROCEDURE ObjcAdd    (tree: ADDRESS; parent, child: sINTEGER);
  229.  
  230. PROCEDURE ObjcDelete (tree: ADDRESS; object: sINTEGER);
  231.  
  232. PROCEDURE ObjcDraw   (tree: ADDRESS; start, depth: sINTEGER; pxy: ARRAY OF LOC);
  233.  
  234. PROCEDURE ObjcFind   (tree: ADDRESS; start, depth, x, y: sINTEGER): sINTEGER;
  235.  
  236. PROCEDURE ObjcOffset (tree: ADDRESS; object: sINTEGER; VAR x, y: sINTEGER);
  237.  
  238. PROCEDURE ObjcOrder  (tree: ADDRESS; object, newpos: sINTEGER);
  239.  
  240. CONST   EDSTART =       0;
  241.         EDINIT =        1;
  242.         EDCHAR =        2;
  243.         EDEND =         3;
  244.  
  245. PROCEDURE ObjcEdit (tree: ADDRESS; object: sINTEGER; VAR pos: sINTEGER;
  246.                   char, kind: sINTEGER);
  247.  
  248. PROCEDURE ObjcChange (tree: ADDRESS; object: sINTEGER; pxy: ARRAY OF LOC;
  249.                   state: sBITSET; mode: sINTEGER);
  250.  
  251.  
  252. (*-- AES-Appl --------------------------------------------------------*)
  253.  
  254. CONST   Timer   =       Bit0;
  255.         Button =        Bit1;
  256.         Mouse =         Bit2;
  257.         Keyboard =      Bit3;
  258.  
  259.  
  260. TYPE    RecordEntry =   RECORD
  261.                          kind:  lBITSET;     (* Siehe Timer .. Keyboard *)
  262.                          event: lCARDINAL;
  263.                         END;
  264.                           
  265.  
  266. PROCEDURE ApplInit    (): sINTEGER;
  267.  
  268. PROCEDURE ApplRead    (id, len: sINTEGER; VAR pipe: ARRAY OF LOC);
  269.  
  270. PROCEDURE ApplWrite   (id, len: sINTEGER; VAR pipe: ARRAY OF LOC);
  271.  
  272. PROCEDURE ApplFind    (name: ARRAY OF CHAR): sINTEGER;
  273.  
  274. PROCEDURE ApplTplay   (num, speed: sINTEGER; VAR buffer: ARRAY OF LOC);
  275.  
  276. PROCEDURE ApplTrecord (count: sINTEGER; VAR buffer: ARRAY OF LOC): sINTEGER;
  277.  
  278. PROCEDURE ApplBvset   (disk, hard: sBITSET);
  279.  
  280. PROCEDURE ApplYield;
  281.  
  282. PROCEDURE ApplExit;
  283.  
  284.  
  285. (*-- AES-Evnt --------------------------------------------------------*)
  286.  
  287.  
  288. CONST   KRSHIFT =       Bit0;   (* Tastatur-Status *)
  289.         KLSHIFT =       Bit1;
  290.         KCTRL =         Bit2;
  291.         KALT =          Bit3;
  292.         KCAPS =         Bit4;   (* Für AES undokumentiert! *)
  293.  
  294.  
  295. PROCEDURE EvntKeybd (VAR taste, scan: sINTEGER; VAR ascii: CHAR);
  296.  
  297. PROCEDURE EvntButton (maxclicks: sINTEGER;
  298.                       mask, state: sBITSET;
  299.                       VAR x, y: sINTEGER;
  300.                       VAR button, kbshift: sBITSET): sINTEGER;
  301.  
  302.  
  303. CONST   EnterRect =     0;
  304.         LeaveRect =     1;
  305.  
  306. PROCEDURE EvntMouse  (mode: sINTEGER;  VAR m1rect: ARRAY OF LOC;
  307.                       VAR x, y: sINTEGER;  VAR button, kbshift: sBITSET);
  308.  
  309.  
  310. CONST   MNSELECTED =    10;    (* Eventmessages *)
  311.         WMREDRAW =      20;
  312.         WMTOPPED =      21;
  313.         WMCLOSED =      22;
  314.         WMFULLED =      23;
  315.         WMARROWED =     24;
  316.         WAUPPAGE =      0;
  317.         WADNPAGE =      1;
  318.         WAUPLINE =      2;
  319.         WADNLINE =      3;
  320.         WALFPAGE =      4;
  321.         WARTPAGE =      5;
  322.         WALFLINE =      6;
  323.         WARTLINE =      7;
  324.         WMHSLID =       25;
  325.         WMVSLID =       26;
  326.         WMSIZED =       27;
  327.         WMMOVED =       28;
  328.         WMNEWTOP =      29;
  329.         WMUNTOPPED =    30;
  330.         ACOPEN =        40;
  331.         ACCLOSE =       41;
  332.         CTUPDATE =      50;
  333.         CTMOVE =        51;
  334.         CTNEWTOP =      52;
  335.  
  336. PROCEDURE EvntMesag (VAR buffer: ARRAY OF LOC);
  337.  
  338. PROCEDURE EvntTimer (count: lCARDINAL);
  339.  
  340.  
  341. CONST   MUKEYBD =       Bit0;      (* Event-Typen *)
  342.         MUBUTTON =      Bit1;
  343.         MUM1 =          Bit2;
  344.         MUM2 =          Bit3;
  345.         MUMESAG =       Bit4;
  346.         MUTIMER =       Bit5;
  347.  
  348. PROCEDURE EvntMulti (wich: sBITSET;
  349.                      maxclicks: sINTEGER;
  350.                      mask, state: sBITSET;
  351.                      m1mode: sINTEGER;
  352.                      m1rect: ARRAY OF LOC;
  353.                      m2mode: sINTEGER;
  354.                      m2rect: ARRAY OF LOC;
  355.                      VAR msgBuff: ARRAY OF LOC;
  356.                      loTimer, hiTimer: sINTEGER;
  357.                      VAR x, y: sINTEGER;
  358.                      VAR button: sBITSET;
  359.                      VAR taste: sINTEGER;
  360.                      VAR kbshift: sBITSET;
  361.                      VAR scan: sINTEGER;
  362.                      VAR ascii: CHAR;
  363.                      VAR clicks: sINTEGER): sBITSET;
  364.  
  365. PROCEDURE EvntPmulti (): sBITSET;
  366. (* Gemä₧ der Anregung im Profibuch wird dieses zusätzliche Binding angeboten.
  367.  * Dabei mu₧ man selbst die benötigten Parameter in die IntIn- und AddrIn-
  368.  * Array schreiben und nach Aufruf der Funktion auch den IntOut-Array
  369.  * auswerten.  Dieses Vorgehen spart in der Regel Zeit, da die ganzen Para-
  370.  * meter von EvntMulti gar nicht erst auf den Stack gepackt werden müssen.
  371.  *
  372.  * Ein undokumentiertes Feature ist, da₧ man nicht alle Parameter setzen mu₧,
  373.  * wenn man nur auf zwei oder drei Events wartet.
  374.  *)
  375.  
  376. PROCEDURE EvntDclicks (new: sINTEGER; set: BOOLEAN): sINTEGER;
  377.  
  378.  
  379. (*-- AES-Form -----------------------------------------------------------*)
  380.  
  381.  
  382. PROCEDURE FormDo (tree: ADDRESS; start: sINTEGER): sINTEGER;
  383.  
  384.  
  385. CONST   FMDSTART =      0;
  386.         FMDGROW =       1;
  387.         FMDSHRINK =     2;
  388.         FMDFINISH =     3;
  389.  
  390. PROCEDURE FormDial   (flag: sINTEGER; small, big: ARRAY OF LOC);
  391.  
  392. PROCEDURE FormAlert  (button: sINTEGER; string: ARRAY OF CHAR): sINTEGER;
  393.  
  394. PROCEDURE FormError  (errNum: sINTEGER);
  395.  
  396. PROCEDURE FormCenter (tree: ADDRESS; VAR rect: ARRAY OF LOC);
  397.  
  398. PROCEDURE FormKeybd  (tree: ADDRESS; object, chin: sINTEGER;
  399.                       VAR nextObj, chout: sINTEGER): sINTEGER;
  400.  
  401. PROCEDURE FormButton (tree: ADDRESS; object, clicks: sINTEGER; 
  402.                       VAR next: sINTEGER): sINTEGER;
  403.  
  404.  
  405. (*-- AES-FSel -----------------------------------------------------------*)
  406.  
  407. PROCEDURE FselInput   (VAR pfad, name: ARRAY OF CHAR): BOOLEAN;
  408.  
  409. PROCEDURE FselExinput (VAR info, pfad, name: ARRAY OF CHAR): BOOLEAN;
  410.  
  411.  
  412. (*-- AES-Graf -----------------------------------------------------------*)
  413.  
  414.  
  415. PROCEDURE GrafRubberbox (x, y, mw, mh: sINTEGER; VAR lw, lh: sINTEGER);
  416.  
  417. PROCEDURE GrafDragbox   (moving, boundary: ARRAY OF LOC; VAR x, y: sINTEGER);
  418.  
  419. PROCEDURE GrafMovebox   (rect: ARRAY OF LOC; dx, dy: sINTEGER);
  420.  
  421. PROCEDURE GrafGrowbox   (source, dest: ARRAY OF LOC);
  422.  
  423. PROCEDURE GrafShrinkbox (source, dest: ARRAY OF LOC);
  424.  
  425. PROCEDURE GrafWatchbox  (tree: ADDRESS; item: sINTEGER;
  426.                          in, out: sBITSET): sINTEGER;
  427.  
  428. CONST   Horizontal =    0;
  429.         Vertical =      1;
  430.  
  431. PROCEDURE GrafSlidebox (tree: ADDRESS; parent, object: sINTEGER; 
  432.                         dir: sINTEGER): sINTEGER;
  433.  
  434. PROCEDURE GrafHandle (VAR handle, wCh, hCh, wbox, hbox: sINTEGER);
  435.  
  436. CONST   ARROW =         0;
  437.         TEXTCRSR =      1;
  438.         BUSYBEE =       2;
  439.         POINTHAND =     3;
  440.         FLATHAND =      4;
  441.         THINCROSS =     5;
  442.         THICKCROSS =    6;
  443.         OUTLCROSS =     7;
  444.         USERDEF =     255;
  445.         MOFF =        256;
  446.         MON =         257;
  447.  
  448. PROCEDURE GrafMouse   (form: sINTEGER; user: ADDRESS);
  449.  
  450. PROCEDURE GrafMkstate (VAR x, y: sINTEGER; VAR button, kbshift: sBITSET);
  451.  
  452.  
  453. (*-- AES-Menu -----------------------------------------------------------*)
  454.  
  455. CONST   Reset = 0;
  456.         Set =   1;
  457.  
  458. PROCEDURE MenuBar        (tree: ADDRESS; action: sINTEGER);
  459.  
  460. PROCEDURE MenuIcheck     (tree: ADDRESS; item, action: sINTEGER);
  461.  
  462. PROCEDURE MenuIenable    (tree: ADDRESS; item, action: sINTEGER);
  463.  
  464. PROCEDURE MenuTnormal    (tree: ADDRESS; item, action: sINTEGER);
  465. (* Aus welchen Gründen auch immer: Bei action sind reset und set vertauscht *)
  466.  
  467. PROCEDURE MenuText       (tree: ADDRESS; item: sINTEGER; str: ARRAY OF CHAR);
  468.  
  469. PROCEDURE MenuRegister   (apid: sINTEGER; str: ARRAY OF CHAR);
  470.  
  471. PROCEDURE MenuUnregister (apid: sINTEGER);
  472.  
  473.  
  474. (*-- AES-Rsrc -----------------------------------------------------------*)
  475.  
  476. PROCEDURE RsrcLoad (name: ARRAY OF CHAR): BOOLEAN;
  477.  
  478. PROCEDURE RsrcFree;
  479.  
  480. CONST   RTREE =         0;
  481.         ROBJECT =       1;
  482.         RTEDINFO =      2;
  483.         RICONBLK =      3;
  484.         RBITBLK =       4;
  485.         RSTRING =       5;
  486.         RIMAGEDATA =    6;
  487.         ROBSPEC =       7;
  488.         RTEPTEXT =      8;
  489.         RTEPTMPLT =     9;
  490.         RTEPVALID =     10;
  491.         RIBPMASK =      11;
  492.         RIBPDATA =      12;
  493.         RIBPTEXT =      13;
  494.         RBIDATA =       14;
  495.         RFRSTR =        15;
  496.         RFRIMG =        16;
  497.  
  498. PROCEDURE RsrcGaddr (type, item: sINTEGER): ADDRESS;
  499.  
  500. PROCEDURE RsrcSaddr (type, item: sINTEGER; tree: ADDRESS);
  501.  
  502. PROCEDURE RsrcObfix (tree: ADDRESS; object: sINTEGER);
  503.  
  504.  
  505. (*-- AES-Scrp -----------------------------------------------------------*)
  506.  
  507. CONST   scCSV =         Bit0;
  508.         scTXT =         Bit1;
  509.         scGEM =         Bit2;
  510.         scIMG =         Bit3;
  511.         scDCA =         Bit4;
  512.         scUSR =         Bit5;
  513.  
  514. PROCEDURE ScrpRead  (VAR pfad: ARRAY OF CHAR): sBITSET;
  515. (* Funktioniert nicht mit GEM 1.0, maybe auf dem TT??? *)
  516.  
  517. PROCEDURE ScrpWrite (pfad: ARRAY OF CHAR);
  518.  
  519. PROCEDURE ScrpClear; 
  520.  
  521.  
  522. (*-- AES-Shel -----------------------------------------------------------*)
  523.  
  524. PROCEDURE ShelRead (VAR command, path: ARRAY OF CHAR);
  525.  
  526. CONST   NoProg =        0;
  527.         NewProg =       1;
  528.  
  529. CONST   NoGraphic =     0;
  530.         Graphic =       1;
  531.  
  532. CONST   Now =           0;
  533.         End =           1;
  534.  
  535.  
  536. PROCEDURE ShelWrite (exec, appl, start: sINTEGER; command, path: ARRAY OF CHAR);
  537.  
  538. PROCEDURE ShelGet   (len: sINTEGER; VAR buffer: ARRAY OF LOC);
  539.  
  540. PROCEDURE ShelPut   (len: sINTEGER; VAR buffer: ARRAY OF LOC);
  541.  
  542. PROCEDURE ShelFind  (VAR name: ARRAY OF CHAR);
  543.  
  544. PROCEDURE ShelEnvrn (VAR param: ARRAY OF CHAR; name: ARRAY OF CHAR);
  545.  
  546. PROCEDURE ShelRdef  (command, path: ARRAY OF CHAR);
  547.  
  548. PROCEDURE ShelWdef  (command, path: ARRAY OF CHAR);
  549.  
  550.  
  551. (*-- AES-Wind -----------------------------------------------------------*)
  552.  
  553. CONST   NAME =          Bit0;
  554.         CLOSER =        Bit1;
  555.         FULL =          Bit2;
  556.         MOVE =          Bit3;
  557.         INFO =          Bit4;
  558.         Size =          Bit5;   (* SIZE ist reserviertes Wort *)
  559.         UPARROW =       Bit6;
  560.         DNARROW =       Bit7;
  561.         VSLIDE =        Bit8;
  562.         LFARROW =       Bit9;
  563.         RTARROW =       Bit10;
  564.         HSLIDE =        Bit11;
  565.         HOTCLOSEBOX =   Bit12;  (* Was immer das auch ist... *)
  566.  
  567. PROCEDURE WindCreate (comp: sBITSET; size: ARRAY OF LOC): sINTEGER;
  568.  
  569. PROCEDURE WindOpen   (handle: sINTEGER; size: ARRAY OF LOC);
  570.  
  571. PROCEDURE WindClose  (handle: sINTEGER);
  572.  
  573. PROCEDURE WindDelete (handle: sINTEGER);
  574.  
  575. CONST   WFRESVD1 =      1;
  576.         WFNAME =        2;
  577.         WFINFO =        3;
  578.         WFWORKXYWH =    4;
  579.         WFCURRXYWH =    5;
  580.         WFPREVXYWH =    6;
  581.         WFFULLXYWH =    7;
  582.         WFHSLIDE =      8;
  583.         WFVSLIDE =      9;
  584.         WFTOP =         10;
  585.         WFFIRSTXYWH =   11;
  586.         WFNEXTXYWH =    12;
  587.         WFRESVD13 =     13;
  588.         WFNEWDESK =     14;
  589.         WFHSLSIZE =     15;
  590.         WFVSLSIZE =     16;
  591.         WFSCREEN =      17;
  592.         WFATTRIB =      18;
  593.         WFSIZTOP =      19;
  594.  
  595.  
  596. PROCEDURE WindGet  (handle, typ: sINTEGER; VAR para: ARRAY OF LOC);
  597.  
  598. PROCEDURE WindSet  (handle, typ: sINTEGER; para: ARRAY OF LOC);
  599.  
  600. PROCEDURE WindFind (x, y: sINTEGER): sINTEGER;
  601.  
  602. CONST   ENDUPDATE =     0;
  603.         BEGUPDATE =     1;
  604.         ENDMCTRL =      2;
  605.         BEGMCTRL =      3;
  606.  
  607. PROCEDURE WindUpdate (mode: sINTEGER);
  608.  
  609. CONST   WCBORDER =      0;
  610.         WCWORK =        1;
  611.  
  612. PROCEDURE WindCalc   (mode: sINTEGER; comp: sBITSET; VAR in, out: ARRAY OF LOC);
  613.  
  614. PROCEDURE WindNew;
  615.  
  616.  
  617. (*--- AES-XGraf ---------------------------------------------------------*)
  618.  
  619. PROCEDURE XgrfStepcalc (ow, oh, x, y, w, h: sINTEGER;
  620.                         VAR cx, cy, count, xstep, ystep: sINTEGER);
  621.  
  622. PROCEDURE Xgrf2box (xc, yc, wc, hc, corners, count, xstep, ystep, doubled: sINTEGER);
  623.  
  624.  
  625. END MagicAES.
  626.  
  627.