home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD1.iso / EGS / egssys71.lha / EGSClusterInc.lha / EGSIntui.def < prev    next >
Encoding:
Text File  |  1994-12-13  |  66.4 KB  |  1,568 lines

  1. |##########|
  2. |#MAGIC   #|DBGFEKBF
  3. |#PROJECT #|""
  4. |#PATHS   #|"EGSProject"
  5. |#FLAGS   #|xx---x--x---xxx-----------------
  6. |#USERSW  #|--------------------------------
  7. |#USERMASK#|--------------------------------
  8. |#SWITCHES#|---x-x----------
  9. |##########|
  10. DEFINITION MODULE EGSIntui;
  11. |
  12. |  5. 8.91 : MasterGadget, TextGadget bekommt "font" Feld
  13. |  9. 8.91 : GadgetFlagSet erhält "callOnElseKey"
  14. | 17. 8.91 : WindowFlagSet erhält "windowSize..."
  15. | 31. 8.91 : MenuItem hat BitMapPtr statt BitMap
  16. |  2. 9.91 : MenuItem hat LONGINT als id
  17. | 20.10.91 : Neue WindowFlags, UserStyle
  18. |            ScreenFlagSet (oh wie peinlich)
  19. |  5. 1.92 : RealGagdet als Flag und Struktur
  20. | 31. 1.92 : Pref Gruppe
  21. |  4. 6.92 : Window Sleep...
  22. |
  23. |  +---------------------------------------------------------------------+
  24. |  |                                                                     |##
  25. |  |                egsintui.library v1.1, © '91,'92 StoneWare           |##
  26. |  |                    EXTENDED - GRAPHICS - STANDARD                   |##
  27. |  |                                                                     |##
  28. |  +---------------------------------------------------------------------+##
  29. |    #######################################################################
  30. |
  31. |
  32. | Diese Library implementiert ein vollständiges Fenstersystem mit Menues,
  33. | Gadgets etc. Sie setzt vollständig auf den anderen egs..-Libraries auf, ist
  34. | also problemlos für andere Graphikkarten implementierbar. Es wurde versucht
  35. | möglichst unabhängig vom aktuellen Graphikmodus zu arbeiten.
  36. |
  37. | Die zugrundelegende Struktur des Systems ist durch die intuition.library
  38. | gegeben. Die meisten Namen und Strukturen sind dort entliehen, allerdings
  39. | teilweise stark verändert.
  40. |
  41. | Die Library benutzt einen zur egs.library erweiterten Screentyp, um dem
  42. | Programmierer die Benutzung des Fenstersystems völlig freizustellen.
  43. |
  44. | Die gesamte Graphiken der Strukturen (Windows, Gadgets und Menüs) läuft
  45. | über IntuiGfx-Porgramme (siehe dort). Dies ist der wohl größte Unterschied
  46. | zur Commodore Library. Der Grund liegt in der ungschickten implementierung
  47. | der Intui-Graphilen der Commo-Library (drei Listen, keine mehrfachbenutzbar-
  48. | keit der Strukturen, Speicherverschwendung durch überladene Strukturen sowie
  49. | mangelnde Flexibilität). Die IntuiGfx-Lösung ist so flexibel, daß sogar
  50. | die Schieberegler eines PropGadgets über ein derartiges Programm realisiert
  51. | werden, selbst die Graphik für den Fensterrahmen ist darüber definiert.
  52. |
  53. | Die Verwendung von 'GimmeZeroZero'-Fenstern ist durchaus zu empfehlen, da
  54. | der Overhead im gegensatz zur Commo-Implementierung nicht so gigantisch ist.
  55. | Lediglich für einfache Requester-Windows empfehlen sich einfache Fenster.
  56. |
  57. | Requester sind in der Library nicht implementiert, da fast alle Requester
  58. | in Wirklichkeit Windows sind, und sich der Aufwand für eine extra Struktur
  59. | nicht lohnt.
  60. |
  61. | Menüs verfügen über zwei erweiterte Funktionen, sie können am Fensterrahmen
  62. | sitzen und 'abgerissen' werden. Dies hat die Vorteile, das der Menü-Weg nicht
  63. | zu weit ist. Ausserdem bleiben häufig benötigte Funktionen im direkten
  64. | Zugriff.
  65. |
  66. FROM EGSLayers       IMPORT LayerPtr,LayerInfoPtr;
  67. FROM EGS             IMPORT EScreenPtr,EBitMap,CLUPtr,EBitMapPtr,
  68.                             EMouse,EMousePtr,HardMouse,SoftMouse;
  69. FROM EGSGfx          IMPORT RastPortPtr,EFontPtr;
  70. FROM IntuiGfx  AS ig IMPORT IntuiGfxPtr,IntuiGfx,WinColors;
  71. FROM Exec            IMPORT MsgPortPtr,LibraryPtr;
  72. FROM Input           IMPORT QualifierSet,lButton,rButton,upPrefix,Qualifiers;
  73. FROM System          IMPORT LONGSET,SysStringPtr,Regs;
  74. FROM EGSBlit         IMPORT ColorTable;
  75. FROM Graphics        IMPORT TextAttrPtr;
  76. |
  77. |
  78. |
  79. |
  80. |
  81. | ... moment der single Pass schlägt zu
  82. |
  83. TYPE
  84.   EIDCMPFlags   = (iMouseButtons,iMouseMove,iRawKey,iActivate,
  85.                    iWindowRefresh,iWindowClose,iWindowSize,iMenu,iGadget,
  86.                    iMenueVerify,iVanillaKey,iSizeVerify,iInactive,
  87.                    iTimeTicks,iDiskInserted,iDiskRemoved,iNewPrefs,
  88.                    iWindowMove,iDrop,iMigrateVerify,iMigrate,iEnter,
  89.                    iWindowIcon,
  90.                    iWBObjectCall = 29,
  91.                    iApplication  = 30,
  92.                    iForward      = 31
  93.                    );
  94.   EIDCMPFlagSet = SET OF EIDCMPFlags;
  95. |
  96. |
  97. | Werte für code Feld
  98. |
  99. CONST
  100.   selectUp     = lButton+upPrefix;
  101.   selectDown   = lButton;
  102.   menuUp       = rButton+upPrefix;
  103.   menuDown     = rButton;
  104.  
  105.   menuHot      = 1;
  106.   menuCancel   = 2;
  107.   menuWaiting  = 3;
  108.  
  109.   dropFiles    = 0;
  110.   dropFile     = 1;
  111.   dropClip     = 2;
  112.   dropData     = 3;
  113.   dropWBObject = 4;
  114.   dropBitMap   = 5;
  115.  
  116.  
  117. TYPE
  118.   CharPtr       = POINTER TO CHAR;
  119.  
  120.   WindowPtr     = POINTER TO Window;
  121.   EIntuiMsgPtr  = POINTER TO EIntuiMsg;
  122. |
  123. |###############################################################################
  124. |
  125. | Menüs:
  126. |
  127. | Menüs dienen dazu eine Aktion oder einen Zustand aufzurufen bzw. zu ändern.
  128. | Menüs werden durch betätigen des rechten Mausknopfes ausgelöst, und erscheinen
  129. | am Bildschirm oder Fenstertitel. Ein Punkt wird ausgewählt, indem die Maus
  130. | mit gedrücktem rechten Knopf angefahren wird, und der Knopf dann losgelassen
  131. | wird. (Alternativ können in 'toggleSelect' - Menüpunkten diese auch durch
  132. | kurzes betätigen der linken Maustaste gekippt werden.)
  133. |
  134. | Menüpunkte können über Untermenüs verfügen, die bei erreichen des Menüpunktes
  135. | aufpoppen, und ausgewählt werden können. Diese Staffelung kann beliebig tief
  136. | sein, sollte allerdings nicht übertrieben werden.
  137. |
  138. | Menüs, können abgerissen werden, d.h. sie
  139. | bleiben offen, auch nachdem der rechte Knopf losgelassen wurde. Dies
  140. | geschieht über einen speziellen Menüpunkt. Diese offenen Menüs können mit der
  141. | rechetn Maustaste benutzt oder mit der linken verschoben werden.
  142. |
  143. |-------------------------------------------------------------------------------
  144. |
  145. | Strukturen:
  146. |
  147. | Menu, MenuPtr...
  148. |
  149. |   .itemMaster : Zeiger auf Menüpunkt, dem dieses Menü untergeordnet ist,
  150. |                 NIL falls es sich um das Hauptmenü handelt.
  151. |   .menuMaster : Zeiger aufMenü, dem dieses Menü untergeordnet ist, NIL falls
  152. |                 es sich um das Hauptmenü handelt.
  153. |   .firstItem  : Zeiger auf ersten Menüpunkt dieses Menüs.
  154. |   .leftEdge,
  155. |   .topEdge    : relative Koordinaten des Menüs zum übergeordneten Menüpunkt
  156. |                 oder der Titelzeile
  157. |   .width,
  158. |   .height     : Ausmaße des Menüs. Anhand dieser Koordinaten wird der Hinter-
  159. |                 grund gerettet. Sie sollten also mindestens so groß sein wie
  160. |                 das Menü mit allen Menüpunkten, möglichst aber auch nicht
  161. |                 größer um Speicher zu sparen
  162. |   .border     : Render-routine für die grundlegende Menüstruktur ohne Menü-
  163. |                 punkte. Diese Routine erhält die Breite und Höhe des Menüs
  164. |                 übergeben, so daß sie für jedes Menü verwendet werden kann.
  165. |
  166. |  MenuItem, MenuItemPtr...
  167. |
  168. |   .prev,
  169. |   .next          : Menüpunktverkettung, der erste und letzte menüpunkt
  170. |                    enthalen jeweils NIL im entsprechenden Feld.
  171. |   .leftEdge,
  172. |   .topEgde       : Koordinaten der linken oberen Ecke des Menüpunktes
  173. |   .width,
  174. |   .height        : Ausmaße des Menüpunktes
  175. |   .active        : Zeichenroutine, falls der Menüpunkt aktiv ist
  176. |   .passive       : Zeichenroutine, falls der Menüpunkt passiv ist
  177. |   .checkMark     : Zeichenroutine, falls der Menüpunkt bei einem
  178. |                    'ToggleSelect' ausgewählt ist.
  179. |   .select        : Routine die ausgeführt wird, wenn der Menüpunkt aktiv ist
  180. |                    und die Maus darüber bewegt wird. Diese Routine erhält
  181. |                    die Ausmaße des Menüpunktes übergeben, so daß für jeden
  182. |                    Punkt die selbe benutzt werden kann.
  183. |   .release       : Routine die aufgerufen wird, wenn die Maus vom Menüpunkt
  184. |                    wieder weggefahren wird. Diese Routine erhält ebenfalls die
  185. |                    Ausmaße übergeben. Sie wird auch aufgerufen, wenn das Menü
  186. |                    gezeichnet wird, so daß die normalen Render-Routinen die
  187. |                    Graphik für nicht ausgewählt nicht zeichnen müssen.
  188. |   .flags         : Flags des Menüpunktes:
  189. |
  190. |     - menuActive     : Der Menüpunkt ist aktiv und auswählbar.
  191. |     - menuSelected   : Der Menüpunkt ist angewählt, für Menüpunkte, die an
  192. |                        oder abgeschaltet werden können.
  193. |     - menuSelectable : Der Menüpunkt ist anschaltbar
  194. |     - menuToggle     : Der Menüpunkt wechselt bei jedem anwählen seinen
  195. |                        Zustand.
  196. |     - menuLeave      : Der Menüpunkt wird nicht gemeldet, sondern das Menü
  197. |                        in dem dieser Punkt enthalten ist wird abgerissen.
  198. |
  199. |   .id            : Nummer des Menüs, wir in der Meldung als 'code' übergeben.
  200. |                    Dies hat den Vorteil, daß wenn Menüpunkte zwischengeschoben
  201. |                    werden sich die Meldung nicht verändert.
  202. |   .subMenu       : evtl. Vorhandenes Untermenü, falls keines vorhanden : NIL
  203. |   .mutualExclude : Menge der Menüpunkte, die abgeschaltet werden sollen,
  204. |                    falls dieser Menüpunkt angeschaltet wird. Es wird für diese
  205. |                    Menüpunkte keine extra Message abgeschickt.
  206. |   .mutualInclude : Menge der Menüpunkte, die angeschaltet werden sollen,
  207. |                    falls dieser Menüpunkt angeschaltet wird. Es wird für diese
  208. |                    Menüpunkte keine extra Message abgeschickt.
  209. |   .hotKey        : RawKeyCode, der zuammen mit der rechten Amiga-Taste diesen
  210. |                    Menüpunkt auswählen soll (BUG : funktioniert leider nicht)
  211. |
  212. |-------------------------------------------------------------------------------
  213. |
  214. | Prozeduren:
  215. |
  216. | PROCEDURE PutMenuHome(menu IN A0 : MenuPtr);
  217. | PROCEDURE PutMenuOut(menu IN A0 : MenuPtr;
  218. |                      win  IN A1 : WindowPtr
  219. |                      x    IN D0,
  220. |                      y    IN D1 : INTEGER);
  221. |
  222. |
  223. | Mit diesen Prozeduren werden abreißbare Menüs implementiert. Menüs, die
  224. | abreißbar sein sollen müssen über einen Menüpunkt verfügen, dessen Auswahl
  225. | das Menü offen lassen soll. Wird dieser Menüpunkt aufgerufen, muß das Programm
  226. | die Prozedur 'PutMenuOut' aufrufen. Die Parameter x und y müssen die Werte
  227. | aus aus msg^.mouseX und msg^.mouseY enthalten. Wird dieser Menüpunkt wiederum
  228. | aufgerufen, muß das Programm die Prozedur 'PutMenuHome' aufrufen.
  229. |
  230. | Das Menü kann während es außen liegt verschoben werden, das Programm erhält
  231. | darüber keine Angaben.
  232. |
  233.   MenuItemFlags = (menuActive,menuSelected,menuSelectable,menuToggle,
  234.                    menuMoused,menuMove,menuLeave,mi7,mi8);
  235.   MenuItemFlagSet = SET OF MenuItemFlags;
  236.  
  237.   MenuPtr       = POINTER TO Menu;
  238.   MenuItemPtr   = POINTER TO MenuItem;
  239.   Menu          = RECORD
  240.                     winPrev,
  241.                     winNext       : MenuPtr;
  242.                     itemMaster    : MenuItemPtr;
  243.                     menuMaster    : MenuPtr;
  244.                     firstItem     : MenuItemPtr;
  245.                     leftEdge,
  246.                     topEdge,
  247.                     width,
  248.                     height        : INTEGER;
  249.                     border        : IntuiGfxPtr;
  250.                     backSave      : EBitMapPtr;
  251.                     layer         : LayerPtr;
  252.                     rast          : RastPortPtr;
  253.                   END;
  254.   MenuItem      = RECORD
  255.                     prev,
  256.                     next          : MenuItemPtr;
  257.                     leftEdge,
  258.                     topEdge,
  259.                     width,
  260.                     height        : INTEGER;
  261.                     active,
  262.                     passive,
  263.                     checkMark,
  264.                     select,
  265.                     release       : IntuiGfxPtr;
  266.                     flags         : MenuItemFlagSet;
  267.                     id            : LONGINT;
  268.                     subMenu       : MenuPtr;
  269.                     mutualExclude,
  270.                     mutualInclude : LONGSET;
  271.                     pad           : SHORTCARD;
  272.                     hotKey        : CHAR;
  273.                   END;
  274. |
  275. |###############################################################################
  276. |
  277. | Gadgets sind Fensterelemente, die durch den Benutzer bedient werden können,
  278. | und über die er dem Programm informationen gibt. Es gibt vier verschiedene
  279. | Arten von Gadgets:
  280. |
  281. |   - actionGadget          : Bei betätigen wird dem Programm eine Meldung
  282. |                             geschickt, dieses Gadget kann nur angewählt
  283. |                             werden.
  284. |
  285. |   - boolGadget            : Durch betätigen eines derartigen Gadgets wird
  286. |                             ein Flag gekippt, also von TRUE nach FALSE und
  287. |                             umgekehrt. Mit diesen Gadgets können Flags
  288. |                             abgefragt werden. Das Programm kann auf Wunsch
  289. |                             eine Meldung erhalten, falls das Gadget betätigt
  290. |                             wurde.
  291. |
  292. |   - stringGadget          : In diesen Gadgets kann durch den Benutzer eine
  293. |                             Zeichenkette editiert werden, z.B. Filenamen.
  294. |                             Die Editierfunktionen werden durch die Library
  295. |                             geboten, müssen also nicht extra implementiert
  296. |                             werden. Das Programm kann auf Wunsch eine Meldung
  297. |                             bei Betreten und/oder Verlassen des Gadgets
  298. |                             erhalten.
  299. |
  300. |   - propGadget            : Mit diesen Gadgets kann ein Zahlenwert verändert
  301. |                             werden. Dazu wird ein Balken in einem Rechteck
  302. |                             erzeugt, das durch die Maus verschoben werden
  303. |                             kann. Die Poistion des Balkens gibt den Wert an.
  304. |                             Seine Größe ist durch das Verhältniss zwischen
  305. |                             der Anzahl der Werte die er repräsentiert und der
  306. |                             Anzahl der Möglichen Zustände gegeben.
  307. |                             Das Programm kann Meldungen erhalten, wenn das
  308. |                             Gadget angeklickt, bewegt und oder verlassen
  309. |                             wird.
  310. |                             Meldungen über die Bewegung sollten nur verwendet
  311. |                             werden, wenn die Meldungsschlange immer leer-
  312. |                             gefahren wird, um ein Nachlaufen zu verhindern.
  313. |
  314. |-------------------------------------------------------------------------------
  315. |
  316. | Strukturen:
  317. |
  318. | Alle Gadgets besitzen die gleiche Grundstruktur und je nach Art weitere
  319. | Elemente.
  320. |
  321. | Gadget, GadgetPtr...
  322. |
  323. |   .prev,
  324. |   .next          : Verkettung der Gadgets, das letzte und das Erste Element
  325. |                    einer Liste zeigen immer auf NIL
  326. |   .leftEdge,
  327. |   .topEgde       : Koordinaten der linken oberen Ecke
  328. |   .width,
  329. |   .height        : Ausmaße des Gadgets
  330. |   .id            : Erkennungsnummer
  331. |   .active        : Routine, mit der das Gadget gezeichnet wird, falls es
  332. |                    aktiv ist.
  333. |   .passive       : Routine, mit der das Gadget gezeichnet wird, falls es
  334. |                    passiv ist
  335. |   .select        : Routine, die aufgerufen wird, falls das Gadget gedrückt
  336. |                    wird. Diese Routine erhält die Breite und Höhe des Gadgets
  337. |                    übergeben, so daß sie für verschiedene Gadgets verwendet
  338. |                    werden kann.
  339. |   .release       : Routine, die aufgerufen wird, falls das Gadget losgelassen
  340. |                    wird. Sie bekommt ebenfalls Breite und Höhe übergeben. Sie
  341. |                    wird bereits ausgeführt, wenn das Gadget nur gezeichnet
  342. |                    wird, so daß es zu Beginn deaktiviert erscheint.
  343. |   .flags         : Flags des Gadgets
  344. |
  345. |     - gadgetBorder   : Das Gadget liegt im Fensterrahmen
  346. |     - relRight       : Die Gadget-Koordinaten sind relativ zum rechten
  347. |                        Fensterrand.
  348. |     - relBottom      : Die Gadget-Koordinaten sind relativ zum unteren
  349. |                        Fensterrand.
  350. |     - sysGadget      : Es handelt sich um ein Systemgadget.
  351. |     - gadgetSelected : Das Gadget ist das gerade Aktive
  352. |     - relVerify      : Das Gadget meldet nur, wenn der Mauszeiger beim
  353. |                        Loslassen noch darüber steht
  354. |     - gadgetImmediate: Das Gadget sendet eine Meldung, wenn es angeklickt
  355. |                        wird, nicht erst wenn es losgelassen wird
  356. |     - toggleSelect   : Bei Boolgadgets, das Gadget wechselt seinen Zustand
  357. |                        bei jeder Betätigung
  358. |     - repeatGadget   : Das Gadget liefert solange es niedergehalten wird
  359. |                        in kurzen Zeitabständen immer wieder Meldungen.
  360. |     - gadgetInactive : Das Gadget kann nicht angewählt werden.
  361. |     - stdHighlight   : Das Gadget wird mit einer Standarthighlight-Methode
  362. |                        versehen, einem 3d-Rahmen.
  363. |
  364. |   .type          : Typ des Gadgets
  365. |   .call          : Prozedur, die aufgerufen wird, bevor das Gadget eine
  366. |                    Meldung absetzt. Die Prozedur erhält in A1 einen Zeiger
  367. |                    auf die Meldung, und darf diese nach ihrem Bedarf
  368. |                    ändern. Werden die IDCMPFlags der Meldung gelöscht,
  369. |                    wird sie nicht abgeschickt.
  370. |   .userData      : Frei für Benutzerdaten
  371. |
  372. | BoolGadget:
  373. |
  374. |   .flag          : Flag, auf das sich das BoolGadget bezieht. Es wird je nach
  375. |                    Zustand des Gadgets gesetzt oder gelöscht.
  376. |
  377. | StringGadget:
  378. |
  379. |   .buffer        : Zeiger auf den Puffer in dem der Text bearbeitet wird.
  380. |                    Der Text wird durch ein null-Byte abgeschlossen, und kann
  381. |                    nach der Bearbeitung aus diesem Puffer ausgelesen werden.
  382. |   .undoBuffer    : Zeiger auf einen Undo-Puffer. Er muß mindestens so groß
  383. |                    sein wie der original Puffer. Wird das Gadget angewählt,
  384. |                    wird der Inhalt des Puffers in diesen Undo-Puffer kopiert.
  385. |                    Durch Amiga-O kann der Inhalt aus diesem Undo-Puffer in
  386. |                    den Textpuffer kopiert werden.
  387. |   .bufferPos     : Cursorposititon im Textpuffer
  388. |   .maxChars      : Maximale Anzahl von Zeichen im Puffer.
  389. |   .numChars      : Enthält wärend und nach der Bearbeitung die Anzahl der
  390. |                    Zeichen im Puffer
  391. |   .undoPos       : CursorPosition im Undo-Puffer.
  392. |
  393. |  Die Routinen 'select' und 'release' haben für StringGadgets keine Funktion,
  394. |  da hier die Aktivität durch den erscheinenden Cursor angezeigt wird.
  395. |
  396. |
  397. | PropGadget:
  398. |
  399. |   .propflags     : Flags des Gadgets:
  400. |
  401. |     - propHoriz      : Das Gadget ist waagerecht, wenn dieses Bit gesetzt
  402. |                        ist, sonst senkrecht.
  403. |     - propFollow     : Das Programm bekommt bei jeder Bewegung des Gadgets
  404. |                        eine neue Meldung. Dieses Flag sollte sehr vorsichtig
  405. |                        eigesetzt werden, da es zu einem Überlauf des Puffers
  406. |                        kommen kann.
  407. |     - propBorder     : Das Gadget wird, falls das Fenster seine Größe ändert,
  408. |                        automatisch mit verändert
  409. |     - propMoves      : Der Schieber des Gadgets wird gerade bewegt.
  410. |
  411. |
  412. |   .maximum       : Maximaler Wert des Gadgets
  413. |   .size          : Größe des Reglers in Einheiten des Gadgets
  414. |   .value         : Wert des Reglers
  415. |
  416. |
  417. |  Die Routine 'release' hat bei PropGadgets keine Bedeutung. Die Routine
  418. |  'active' sollte den Rahmen des Gadgets zeichnen. Die Routine 'select'
  419. |  wird zum Zeichnen des Knopfes aufgerufen, sie erhält die erwartete Breite
  420. |  (bei vertikalen natürlich die Höhe) übergeben.
  421. |
  422. |
  423. |-------------------------------------------------------------------------------
  424. |
  425. | Prozeduren:
  426. |
  427. | PROCEDURE AddGadget(win IN A0 : WindowPtr;
  428. |                     gad IN A1 : GadgetPtr);
  429. | PROCEDURE AddGList(win IN A0 : WindowPtr;
  430. |                    gad IN A1 : GadgetPtr;
  431. |                    num IN D0  : INTEGER);
  432. |
  433. | Fügt ein Gadget, bzw. eine Liste von Gadgets zu den Gadgets des Fensters.
  434. | Die Gadgets werden sofort gezeichnet.
  435. |
  436. |
  437. | PROCEDURE RemoveGadget(win IN A0 : WindowPtr;
  438. |                        gad IN A1 : GadgetPtr);
  439. | PROCEDURE RemoveGList(win IN A0 : WindowPtr;
  440. |                       gad IN A1 : GadgetPtr;
  441. |                       num IN D0 : INTEGER);
  442. |
  443. | Entfernt ein Gadget, bzw. eine Liste von Gadgets aus dem Fenster. Der Bereich,
  444. | der zuvor von den Gadgets eingenommen wurde, wird mit der Hintergrundfarbe
  445. | des Fensters gefüllt.
  446. |
  447. |
  448. | PROCEDURE RefreshGadget(win IN A0 : WindowPtr;
  449. |                         gad IN A1 : GadgetPtr);
  450. | PROCEDURE RefreshGList(win IN A0 : WindowPtr;
  451. |                        gad IN A1 : GadgetPtr;
  452. |                        num IN D0 : INTEGER);
  453. |
  454. | Zeichnet ein Gadget oder die Gadgets einer Liste neu. Falls der Zustand eines
  455. | Gadgets (z.B. eines StringGadgets) geändert wurde, muß diese Prozedur
  456. | aufgerufen werden. Der Refresh, der durch verdeckte Bildteile verursacht wird,
  457. | wird durch Intuition selbsttätig durchgeführt.
  458. |
  459. |
  460. | PROCEDURE OnGadget(win IN A0 : WindowPtr;
  461. |                    gad IN A1 : GadgetPtr);
  462. | PROCEDURE OnGList(win IN A0 : WindowPtr;
  463. |                   gad IN A1 : GadgetPtr;
  464. |                   num IN D0 : INTEGER);
  465. |
  466. | Schaltet ein Gadget oder die Gadgets einer Liste ein. Diese können danach
  467. | benutzt werden.
  468. |
  469. |
  470. | PROCEDURE OffGadget(win IN A0 : WindowPtr;
  471. |                     gad IN A1 : GadgetPtr);
  472. | PROCEDURE OffGList(win IN A0 : WindowPtr;
  473. |                    gad IN A1 : GadgetPtr;
  474. |                    num IN D0 : INTEGER);
  475. |
  476. | Schaltet ein Gadget oder die Gadgets einer Liste ab. Diese können danach
  477. | nicht mehr benutzt werden.
  478. |
  479. |
  480. | PROCEDURE CalcProportional(VAR gad IN A0 : PropGadget);
  481. |
  482. | Werden die Werte eines PropGadgets geändert, müssen die Werte zur Darstellung
  483. | neu berechnet werden. Diese Prozedur muß vor 'RefreshGadget' aufgerufen
  484. | werden.
  485. |
  486. |
  487. | PROCEDURE ActivateGadget(win   IN A0 : WindowPtr;
  488. |                          gad   IN A1 : GadgetPtr;
  489. |                          force IN D0 : BOOLEAN);
  490. |
  491. |
  492. | Versucht ein Stringgadget zu aktivieren. Ist 'force' FALSE, gelingt dies nur,
  493. | falls kein anderes Gadget oder Fenster aktiv ist. Ist 'force' TRUE, gelingt
  494. | dies fast immer. Ein anderes evtl. aktives Gadget wird deaktiviert, und das
  495. | Fenster in dem sich das Gadget befindet aktiviert.
  496. |
  497.   GadgetFlags   = (gadgetBorder,relRight,relBottom,sysGadget,gadgetSelected,
  498.                    relVerify,gadgetImmediate,toggleSelect,repeatGadget,
  499.                    gadgetInactive,stdHighlight,stdComplement,oldSelect,
  500.                    callOnElseKey,callOnAnyKey,gadgetHidden);
  501.   GadgetFlagSet = SET OF GadgetFlags;
  502.   GadgetTypes   = (actionGadget,boolGadget,stringGadget,propGadget,
  503.                    integerGadget,userDefGadget,masterGadget,realGadget,
  504.                    dropGadget);
  505.  
  506.   UserGadPtr    = POINTER TO UserGadget;
  507.  
  508.   GadgetCall    = PROCEDURE(msg IN A1 : EIntuiMsgPtr);
  509.   GadgetCall2   = PROCEDURE(msg IN A1 : EIntuiMsgPtr;
  510.                             gad IN A2 : UserGadPtr);
  511.   GadgetCall3   = PROCEDURE(win IN A1 : WindowPtr;
  512.                             gad IN A0 : ANYPTR);
  513.  
  514.   GadgetPtr     = POINTER TO Gadget;
  515.   Gadget        = RECORD
  516.                     prev,
  517.                     next        : GadgetPtr;
  518.                     checkLeft,
  519.                     checkTop,
  520.                     leftEdge,
  521.                     topEdge,
  522.                     width,
  523.                     height      : INTEGER;
  524.                     id          : LONGINT;
  525.                     active,
  526.                     passive,
  527.                     select,
  528.                     release     : IntuiGfxPtr;
  529.                     flags       : GadgetFlagSet;
  530.                     type        : GadgetTypes;
  531.                     hotKey      : CHAR;
  532.                     call        : GadgetCall;
  533.                     userData    : ANYPTR;
  534.                   END;
  535.  
  536.   BoolGadPtr    = POINTER TO BoolGadget;
  537.   GadgetArray   = ARRAY OF BoolGadPtr;
  538.   GadgetArrayPtr= POINTER TO GadgetArray;
  539.   BoolGadget    = RECORD OF Gadget
  540.                     flag    : BOOLEAN;
  541.                     exclude,
  542.                     include : GadgetArrayPtr;
  543.                   END;
  544.   PropFlags     = (propHoriz,propFollow,propMoves,propBorder,propDeltaRefresh,
  545.                    pf5,pf6,pf7,pf8);
  546.   PropFlagSet   = SET OF PropFlags;
  547.   PropGadPtr    = POINTER TO PropGadget;
  548.   PropGadget    = RECORD OF Gadget
  549.                     propflags : PropFlagSet;
  550.                     maximum,
  551.                     size,
  552.                     value     : INTEGER;
  553.                     v_height,
  554.                     v_pos     : INTEGER;
  555.                   END;
  556.   StringJustify = (justifyLeft,justifyRight,justifyCenter);
  557.   StringGadPtr  = POINTER TO StringGadget;
  558.   StringGadget  = RECORD OF Gadget
  559.                     buffer,
  560.                     undoBuffer : CharPtr;
  561.                     bufferPos,
  562.                     maxChars,
  563.                     dispPos,
  564.                     undoPos,
  565.                     numChars,
  566.                     dispCount,
  567.                     dispFront,
  568.                     cLeft,
  569.                     cTop       : INTEGER;
  570.                     justify    : StringJustify;
  571.                     font       : EFontPtr;
  572.                   END;
  573.   IntGadPtr     = POINTER TO IntGadget;
  574.   IntGadget     = RECORD OF StringGadget
  575.                     value : LONGINT;
  576.                     valid : BOOLEAN;
  577.                   END;
  578.   RealGadPtr    = POINTER TO RealGadget;
  579.   RealGadget    = RECORD OF StringGadget
  580.                     value : LONGREAL;
  581.                     valid : BOOLEAN;
  582.                   END;
  583.  
  584.   UserGadget    = RECORD OF Gadget
  585.                     selectCall,
  586.                     releaseCall  : GadgetCall;
  587.                     actionCall   : GadgetCall2;
  588.                     initCall     : GadgetCall3;
  589.                     callFlags    : EIDCMPFlagSet;
  590.                   END;
  591.   MasterGadPtr  = POINTER TO MasterGadget;
  592.   MasterGadget  = RECORD OF Gadget
  593.                     masterType : LONGINT;
  594.                     firstSon   : GadgetPtr;
  595.                     numSons    : INTEGER;
  596.                   END;
  597.  
  598.   EGSWBObject   = HIDDEN;
  599.  
  600.   DropFlags     = (acceptsFiles,acceptsFile,acceptsClip,
  601.                    acceptsData,acceptsWBObject,
  602.                    fullWindowSize,acceptsBitMap,df31=31);
  603.   DropFlagSet   = SET OF DropFlags;
  604.  
  605.   StrArrayPtr   = POINTER TO StrArray;
  606.   StrArray      = ARRAY OF SysStringPtr;
  607.  
  608.   DropGadPtr    = POINTER TO DropGadget;
  609.  
  610.   DropAcceptor  = RECORD
  611.                     key       : LONGINT;
  612.                     mouse     : EMousePtr;
  613.                   END;
  614.   AcceptList    = ARRAY OF DropAcceptor;
  615.   AcceptListPtr = POINTER TO AcceptList;
  616.  
  617.   DropGadget    = RECORD OF Gadget;
  618.                     dropFlags : DropFlagSet;
  619.                     accepts   : POINTER TO ARRAY OF DropAcceptor;
  620.                   END;
  621. |
  622. |###############################################################################
  623. |
  624. | Screens:
  625. |
  626. | Screens sind logische Nachfolger der 'EScreens' aus der egs.library. Sie
  627. | wurden um Felder zur Fenster und Layer verwaltung erweitert.
  628. |
  629. | Werden keine Fenster benötigt, lohnt es sich nicht die Screens aus diesem
  630. | Modul zu benutzen, da sie mit einem gewissen Overhead verbunden sind. Auch
  631. | können über diese Screens keine Events abgefangen werden.
  632. |
  633. |-------------------------------------------------------------------------------
  634. |
  635. | Strukturen:
  636. |
  637. | NewScreen...
  638. |
  639. |   .mode        : Modus des Screens, siehe egs.library
  640. |                  "DEFAULT SCREEN" für den default screen
  641. |   .depth       : Tiefe des Screens, siehe egs.library,
  642. |   .title       : Titel des Screens, erscheint in der Titelzeile
  643. |   .colors      : Farben des Screens, siehe egs.library
  644. |   .winColors   : Für Fenster empfohlene Farben
  645. |   .backPen     : Stift für Screen Hintergrund
  646. |   .backPattern : Hintergrundmuster bzw. Bild des Screens
  647. |   .mouse       : Standardmouse für die Screen
  648. |
  649. | Screen,ScreenPtr...
  650. |
  651. |   .front,
  652. |   .back        : Verkettung
  653. |   .escreen     : Zeiger auf die EScreen Struktur
  654. |   .firstWin,
  655. |   .lastWin     : Zeiger auf die Windows des Screens
  656. |   .rastPort    : RastPort des Screens
  657. |   .info        : Zeiger auf LayerInfo-Struktur
  658. |   .titleLayer  : Zeiger auf Layer der Titel-Zeile
  659. |   .titleRast   : Zeiger auf RastPort des Screens
  660. |   .winColors   : Empfohlene Fensterfarben des Screens
  661. |   .width       : Breite des Screens
  662. |   .height      : Höhe des Screens
  663. |   .title       : Zeiger auf Titel des Screens
  664. |   .mouse       : Zeiger auf Standardmauszeiger des Screens
  665. |
  666. |-------------------------------------------------------------------------------
  667. |
  668. | Prozeduren:
  669. |
  670. | PROCEDURE OpenScreen(VAR newScreen IN A0 : NewScreen):ScreenPtr;
  671. |
  672. | Versucht einen Screen anhand einer NewScreen Struktur zu öffnen. War die
  673. | Aktion erfolgreich, wird der Zeiger auf die Screen zurückgegeben, sonst
  674. | NIL.
  675. |
  676. | PROCEDURE CloseScreen(scr IN A0 : ScreenPtr);
  677. |
  678. | Schließt einen mit OpenScreen geöffneten Screen. Alle noch offenen Windows
  679. | werden ebenfalls geschlossen.
  680. |
  681. |
  682.   ScreenPtr     = POINTER TO Screen;
  683.   ColorLock     = HIDDEN;
  684.  
  685.   IntuiColorTagItem =
  686.     (ScreenBackPen  = $80010000,
  687.      WindowBackPen,
  688.      UnknownPen,
  689.      TextFrontPen,       TextBackPen,
  690.      ScreenLight,        ScreenPen,        ScreenDark,        ScreenText,
  691.      WinLight,           WinPen,           WinDark,           WinText,
  692.      WinActiveLight,     WinActivePen,     WinActiveDark,     WinActiveText,
  693.      WinSleepLight,      WinSleepPen,      WinSleepDark,      WinSleepText,
  694.      GadgetLight,        GadgetPen,        GadgetDark,        GadgetText,
  695.      GadgetSelectedLight,GadgetSelectedPen,GadgetSelectedDark,GadgetSelectedText,
  696.      TextGadgetFront,    TextGadgetBack,
  697.      PropLight,          PropPen,          PropDark,
  698.      KnobLight,          KnobPen,          KnobDark,
  699.      MenuLight,          MenuPen,          MenuDark,          MenuText,
  700.      MenuSelectedLight,  MenuSelectedPen,  MenuSelectedDark,  MenuSelectedText,
  701.      MasterLight,        MasterPen,        MasterDark,        MasterText,
  702.      WinGadgetLight,     WinGadgetDark,    WinGadgetBack,     WinGadgetPen,
  703.  
  704.      TextSelectFrontPen,    TextSelectBackPen,
  705.      CursorFrontPen,        CursorBackPen,
  706.      CursorSelectFrontPen,  CursorSelectBackPen,
  707.      CursorInactiveFrontPen,CursorInactiveBackPen);
  708.  
  709.   ColorTablePtr     = POINTER TO WinColorTable;
  710.   WinColorTable     = ARRAY [ScreenBackPen..CursorInactiveBackPen] OF LONGINT;
  711.  
  712.   ScreenFlags   = (ScreenQuiet,ScreenBehind,ScreenMonochrome);
  713.   ScreenFlagSet = SET OF ScreenFlags;
  714.  
  715.   NewScreen     = RECORD
  716.                     mode       : SysStringPtr;
  717.                     depth      : INTEGER;
  718.                     title      : SysStringPtr;
  719.                     colors     : CLUPtr;
  720.                     winColors  : WinColors;
  721.                     backPen    : LONGINT;
  722.                     backPattern: EBitMapPtr;
  723.                     mouse      : EMousePtr;
  724.                     font       : TextAttrPtr;
  725.                     flags      : ScreenFlagSet;
  726.                   END;
  727.   Screen        = RECORD
  728.                     front,
  729.                     back       : ScreenPtr;
  730.                     escreen    : EScreenPtr;
  731.                     firstWin,
  732.                     lastWin    : WindowPtr;
  733.                     rastPort   : RastPortPtr;
  734.                     info       : LayerInfoPtr;
  735.                     titleLayer : LayerPtr;
  736.                     titleRast  : RastPortPtr;
  737.                     winColors  : WinColors;
  738.                     width,
  739.                     height     : INTEGER;
  740.                     title      : POINTER TO STRING;
  741.                     mouse      : EMousePtr;
  742.                     font       : EFontPtr;
  743.                     gadSize    : INTEGER;
  744.                     gadImages  : ANYPTR;
  745.                     flags      : ScreenFlagSet;
  746.                     winFont    : EFontPtr;
  747.                     sGadImage  : ANYPTR;
  748.                     colors     : ColorTablePtr;
  749.                     colorLock  : ColorLock;
  750.                     upGadImages: ANYPTR;
  751.                     oldTitle   : ANYPTR;
  752.                     defaultIconImg : EBitMapPtr;
  753.                   END;
  754. |
  755. |###############################################################################
  756. |
  757. | Windows:
  758. |
  759. | Windows setzen auf Layers, RastPorts und Screens auf. Sie sind die Über-
  760. | struktur über Gadgets und Menüs. Sie versenden nach Wunsch Meldungen über
  761. | Benutzeraktionen und anderen Events.
  762. |
  763. | Ein Fenster besteht aus einem oder zwei Layers (GimmeZeroZero). Der Aufwand
  764. | des zweiten Layers ist nicht so groß, daß er den Vorteil des automatischen
  765. | Clippings ausgleichen würde. Lediglich einfache Requesterwindows ohne Sizing-
  766. | Gadget, sollten mit einfachen Fenstern implementiert werden.
  767. |
  768. | Fenster können über eine Render-Routine verfügen, die bei einem Refresh von
  769. | der Library automatisch ausgeführt wird. Dies befreit das Programm von
  770. | unötigen Refresh gleichbleibender Graphikelementen.
  771. |
  772. |-------------------------------------------------------------------------------
  773. |
  774. | Strukturn:
  775. |
  776. | EIntuiMsg, EIntuiMsgPtr
  777. |
  778. |   .class      : Art der Meldung:
  779. |
  780. |     - iMouseButtons  : Betätignug der Mausknöpfe, welcher Knopf und ob
  781. |                        Drücken oder Loslassen wird im Feld Code Mittgeteilt
  782. |     - iMouseMove     : Bewegung der Maus
  783. |     - iRawKey        : 'rohe' Tastaturmeldung, also Scanncode und Qualifier
  784. |                        ist ebenfalls Vanillakey gewählt, werden normale
  785. |                        Tasten als Vanillakey und Steuerzeichen als RawKey
  786. |                        gemeldet.
  787. |     - iActivate      : Das Fenster wurde aktiviert
  788. |     - iWindowRefresh : Das Fenster benötigt einen Refresh, der Refresh-Key
  789. |                        (siehe egslayers) wird im Feld 'iAddress' mitgegeben.
  790. |     - iWindowClose   : Der Benutzer hat das Close-Gadget betätigt.
  791. |     - iWindowSize    : Das Fenster wurde in seiner Größe verändert
  792. |     - iMenu          : Ein Menüpunkt wurde ausgewählt
  793. |     - iGadget        : Ein Gadget wurde betätigt
  794. |     - iVanillaKey    : Meldung über verabeitete Tastaturmeldungen, der ASCII
  795. |                        Code der Taste ist im Feld Code.
  796. |     - iSizeVerify    : Versucht der Benutzer das Fenster zu vergrößern, wird
  797. |                        eine SizeVerify-Meldung geschickt. Intuition wartet
  798. |                        solange, bis die Meldung zurückkommt. Das Programm
  799. |                        kann die Aktion durch die entsprechende Meldung im
  800. |                        code-Feld unterbinden.
  801. |     - iDiskInserted  : Es wurde eine neue Diskette eingelegt
  802. |     - iDiskRemoved   : Es wurde die Diskette aus dem Laufwerk entfernt
  803. |     - iNewPrefs      : Es wurden neue Preferences eingestellt.
  804. |
  805. |   .code       : Genauere Information über die Meldung
  806. |   .qualifier  : Zustand der Qualifier (Shift...) während der Event abgeschickt
  807. |                 wurde.
  808. |   .iAddress   : Adresse der Event-Auslösenden Struktur (Gadget oder Menü)
  809. |   .mouseX,
  810. |   .mouseY     : Mausposition zum Eventzeitpunkt, relativ zur linken oberen
  811. |   .seconds,
  812. |   .micros     : Zeitpunkt des Events
  813. |   .idcmpWindow: Fenster, das den Event auslöste
  814. |
  815. | NewWindow...
  816. |
  817. |   .leftEdge,
  818. |   .topEdge    : Linke obere Ecke des Fensters
  819. |   .width,
  820. |   .height     : Größe des Fensterinhalts
  821. |   .minWidth,
  822. |   .minHeight  : Minimale Größe des Fensters
  823. |   .maxWidth,
  824. |   .maxHeight  : Maximale Größe des Fensters
  825. |   .screen     : Screen, auf dem das Fenster geöffnet werden soll. Wird NIL
  826. |                 angegeben, wird das Fenster auf einem Standardscreen
  827. |                 geöffnet. Das Programm sollte keine Annahmen über den Screen
  828. |                 machen, weder Größe noch Tiefe.
  829. |   .sysGadgets : System Gadgets des Fensters:
  830. |
  831. |     - windowClose     : Schließgadget
  832. |     - windowSize      : Größengadget in der unteren rechten Ecke
  833. |     - windowFront     : Gadget für Fenster nach vorne,
  834. |     - windowBack      : Gadget für Fenster nach hinten, ist nur eines der
  835. |                         beiden Gadgets vorhanden, hat dies 2.0 Funktion
  836. |     - windowFlip      : Wechsel zwischen zwei Positionen und Größen 2.0
  837. |     - windowBig       : Vergößerungsgadget auf maximale Größe
  838. |     - windowSmall     : Verkleinerungsgadget auf minimale Größe
  839. |     - windowIcon      : Iconify
  840. |     - windowArrowL,
  841. |     - windowArrowR,
  842. |     - windowArrowU,
  843. |     - windowArrowD    : Pfeile für Scrollgadgets
  844. |     - windowScrollH,
  845. |     - windowScrollV   : Scrollgadgets für die Fenster
  846. |     - windowDrag      : Bewegungsgadget
  847. |
  848. |   .gadgets    : Liste der Gadgets die das Fenster von beginn an haben soll
  849. |   .name       : Titel des Fensters
  850. |   .flags      : Flags des Fensters
  851. |
  852. |     - GimmeZeroZero   : GZZ-Window, mit zwei Layers, und extra RastPort für
  853. |                         inneres und Rahmen.
  854. |     - BorderLess      : Das Fenster hat keinen Rahmen, kann also auch nicht
  855. |                         bewegt werden.
  856. |     - SuperBitMap     : Das Fenster hat ein SuperBitMap-Layer, alle
  857. |                         Intialisierungen werden automatisch vorgenommen, die
  858. |                         Größe der SuperBitMap ergibt sich aus der Maximal-
  859. |                         größe des Fensters.
  860. |     - SimpleRefresh   : Der Benutzer erhält Meldungen, über nötige Refreshs
  861. |     - WindowActive    : Das Fenster ist das gerade aktive
  862. |     - WindowMenuLocal : Das Menü des Fensters ist relativ zum Fenstertitel
  863. |     - OwnColorPalette : Das Fenster hat eine eigene Farbtabelle für Rahmen etc
  864. |     - RMBTrap         : Der rechte Mausknopf wird, falls er nicht ausserhalb
  865. |                         des Fensters betätigt wurde, gemeldet und nicht für
  866. |                         Menübearbeitung benutzt.
  867. |     - reportMouse     : Die Mausposition wird fortlaufen in die Fenster
  868. |                         struktur eingetragen. Dieses Flag ist notwendig um
  869. |                         MouseMove events zu erhalten
  870. |     - BackDrop        : Das Fenster wird hinter allen anderen geöffnet
  871. |     - SmartRefresh    : Das Fenster kümmert sich mit Ausnahme von Größen-
  872. |                         änderungen automatisch um seinen Refresh
  873. |     - WindowMenuPopUp : Die Menüs dieses Fensters erscheinen direkt an der
  874. |                         Mausposition
  875. |     - WindowSizeBottom: Das Größengadget des Fensters liegt nur am unteren
  876. |                         Rand
  877. |     - WindowSizeRight : Das Größengadget des Fensters liegt nur am rechten
  878. |                         Rand
  879. |
  880. |   .idcmpFlags : Events, die dem Fenster gemeldet werden sollen
  881. |   .port       : Zeiger auf eigenen Datenport für Benutzeraktionen. Ist dieser
  882. |                 Zeiger NIL richtet die Library einen extra Port ein, und
  883. |                 entfernt diesen auch beim Schließen des Fensters.
  884. |   .colors     : Eigene Farbtabelle des Fensters für Rahmen und Text.
  885. |   .menu       : Zeiger auf das Menü des Fensters
  886. |   .render     : Routine zum Zeichnen des Standardfensterinhalt
  887. |
  888. | Window, WindowPtr...
  889. |
  890. |   .leftEdge,
  891. |   .topEdge    : linke obere Ecke des Fensters
  892. |   .width,
  893. |   .height     : Größe des Fensterinneren
  894. |   .leftBorder,
  895. |   .topBorder,
  896. |   .rightBorder,
  897. |   .bottomBorder : Breite bzw. Höhe der Fensterrahmen
  898. |   .rPort      : RastPort des Fensterinhalts
  899. |   .layer      : Layer des Fensterinhalts
  900. |   .screen     : Zeiger auf die Screen des Fensters
  901. |
  902. |-------------------------------------------------------------------------------
  903. |
  904. | Prozeduren:
  905. |
  906. | PROCEDURE OpenWindow(VAR new IN A0 : NewWindow):WindowPtr;
  907. |
  908. | Versucht ein Fenster anhand einer NewWindow-Struktur zu öffnen. War sie
  909. | erfolgreich, gibt sie einen WindowPtr zurück, sonst NIL;
  910. |
  911. |
  912. | PROCEDURE CloseWindow(win IN A0 : WindowPtr);
  913. |
  914. | Schließt ein Window wieder;
  915. |
  916. |
  917. | PROCEDURE ActivateWindow(win IN A0 : WindowPtr);
  918. |
  919. | Aktiviert ein Fenster.
  920. |
  921. |
  922. | PROCEDURE DeactivateWindow(win IN A0 : WindowPtr);
  923. |
  924. | Deaktiviert ein Fenster, falls es vorher aktiv war.
  925. |
  926. |
  927. | PROCEDURE WindowToFront(win IN A0 : WindowPtr);
  928. |
  929. | Bringt ein Fenster nach vorne.
  930. |
  931. |
  932. | PROCEDURE WindowToBack(win IN A0 : WindowPtr);
  933. |
  934. | Bringt ein Fenster nach hinten.
  935. |
  936. |
  937. | PROCEDURE MoveWindow(win IN A0 : WindowPtr;
  938. |                      dx  IN D0,
  939. |                      dy  IN D1 : INTEGER);
  940. |
  941. | Bewegt ein Fenster um die angegebene Strecke.
  942. |
  943. |
  944. | PROCEDURE ScrollWindow(win IN A0 : WindowPtr;
  945. |                        dx  IN D0,
  946. |                        dy  IN D1 : INTEGER);
  947. |
  948. | Scrollt den Fensterinhalt, um die angegebene Strecke.
  949. |
  950. |
  951. | PROCEDURE SizeWindow(win IN A0 : WindowPtr;
  952. |                      dx  IN D0,
  953. |                      dy  IN D1 : INTEGER);
  954. |
  955. | Ändert die Größe eines Windows um die angegebene Strecke.
  956. |
  957. |
  958. | PROCEDURE WindowBorder(win IN A0 : WindowPtr;
  959. |                        dx  IN D0,
  960. |                        dy  IN D1 : INTEGER);
  961. |
  962. | Ändert die Maximalgröße eines Fensters (nur bei GZZ, nicht bei SuperBitMap);
  963. |
  964. |
  965. | PROCEDURE BeginRefresh(win IN A0 : WindowPtr;key IN D0 : LONGINT):BOOLEAN;
  966. |
  967. | Beginnt den Refresh eines Fensters. War der RefreshKey noch aktuell, wird
  968. | TRUE zurückgegeben, und der Refresh kann durchgeführt werden, sonst muß
  969. | er abgebrochen werden.
  970. |
  971. |
  972. | PROCEDURE EndRefresh(win IN A0 : WindowPtr;ready IN D0 : BOOLEAN);
  973. |
  974.  | Beendet den Refresh eines Fensters.
  975. |
  976. |
  977.   SysGadgetTypes= (windowClose,windowSize,
  978.                    windowFront,windowBack,windowFlip,
  979.                    windowBig,windowSmall,windowIcon,
  980.                    windowArrowL,windowArrowR,
  981.                    windowArrowU,windowArrowD,
  982.                    windowScrollH,windowScrollV,windowDrag,sg15,sg16);
  983.   SysGadgetSet  = SET OF SysGadgetTypes;
  984.  
  985.   WindowFlags   = (GimmeZeroZero,BorderLess,
  986.                    SuperBitMap,SimpleRefresh,InRefresh,WindowActive,
  987.                    WindowMenuLocal,OwnIDCMPPort,OwnColorPalette,
  988.                    FrontBackGadget,RMBTrap,reportMouse,BackDrop,
  989.                    SmartRefresh,WindowMenuPopUp,
  990.                    WindowSizeBottom,WindowSizeRight,WindowUserStyle,
  991.                    ActiveToFront,QuickScroll,WindowSleeping,
  992.                    FixWindowRatio,ForceToScreen,WindowCenter,
  993.                    SendOutsideMoves,Migrateable);
  994.   WindowFlagSet = SET OF WindowFlags;
  995.  
  996. |  EIDCMPFlags   = (iMouseButtons,iMouseMove,iRawKey,iActivate,
  997. |                   iWindowRefresh,iWindowClose,iWindowSize,iMenu,iGadget,
  998. |                   iMenueVerify,iVanillaKey,iSizeVerify,iInactive,ei13,ei14,ei15,ei16);
  999. |  EIDCMPFlagSet = SET OF EIDCMPFlags;
  1000.  
  1001.   ResizeHookPtr = POINTER TO ResizeHook;
  1002.   ResizeHook    = RECORD
  1003.                     preCall,
  1004.                     postCall  : PROCEDURE(win  IN A0 : WindowPtr;
  1005.                                           data IN A1 : ANYPTR);
  1006.                     data      : ANYPTR;
  1007.                   END;
  1008.  
  1009.   Window        = RECORD
  1010.                     front,
  1011.                     back,
  1012.                     prev,
  1013.                     next,
  1014.                     oldActive    : WindowPtr;
  1015.  
  1016.                     leftEdge,
  1017.                     topEdge,
  1018.                     width,
  1019.                     height       : INTEGER;
  1020.  
  1021.                     leftBorder,
  1022.                     topBorder,
  1023.                     rightBorder,
  1024.                     bottomBorder : INTEGER;
  1025.  
  1026.                     fullWidth,
  1027.                     fullHeight   : INTEGER;
  1028.  
  1029.                     leftUsed,
  1030.                     rightUsed    : INTEGER;
  1031.  
  1032.                     mouseX,
  1033.                     mouseY       : INTEGER;
  1034.  
  1035.                     rPort        : RastPortPtr;
  1036.                     layer        : LayerPtr;
  1037.                     screen       : ScreenPtr;
  1038.                     bRast        : RastPortPtr;
  1039.                     bLayer       : LayerPtr;
  1040.                     flags        : WindowFlagSet;
  1041.                     idcmpFlags   : EIDCMPFlagSet;
  1042.                     port         : MsgPortPtr;
  1043.                     firstGadget  : GadgetPtr;
  1044.                     gadColors    : ColorTable(5);
  1045.                     winColors    : WinColors;
  1046.                     name,
  1047.                     sname        : POINTER TO STRING;
  1048.                     border,
  1049.                     render       : IntuiGfxPtr;
  1050.                     outerMenu,
  1051.                     menu         : MenuPtr;
  1052.  
  1053.                     mouse        : EMousePtr;
  1054.  
  1055.                     minWidth,
  1056.                     minHeight,
  1057.                     maxWidth,
  1058.                     maxHeight,
  1059.                     flipWidth,
  1060.                     flipHeight,
  1061.                     flipLeft,
  1062.                     flipTop      : INTEGER;
  1063.  
  1064.                     font         : EFontPtr; |!!NEW!!
  1065.  
  1066.                     userData     : ANYPTR;
  1067.  
  1068.                     colors       : ColorTablePtr;
  1069.  
  1070.                     sleepCount   : LONGINT;
  1071.                     savedFont    : EFontPtr;
  1072.                     mmi          : LONGINT;
  1073.                     resizeHook   : ResizeHookPtr;
  1074.  
  1075.                     sizeGSize    : INTEGER;
  1076.                     windowIcon   : ANYPTR;
  1077.                     windowIconImg: EBitMapPtr;
  1078.                   END;
  1079.  
  1080.   EIntuiMsg     = RECORD OF Exec.Message
  1081.                     class        : EIDCMPFlagSet;
  1082.                     code         : CARDINAL;
  1083.                     qualifier    : QualifierSet;
  1084.                     iAddress     : ANYPTR;
  1085.                     mouseX,
  1086.                     mouseY       : INTEGER;
  1087.                     seconds,
  1088.                     micros       : LONGCARD;
  1089.                     idcmpWindow  : WindowPtr;
  1090.                     repCount     : INTEGER;
  1091.                     dropType     : LONGINT;
  1092.                     dropItem     : ANYPTR;
  1093.                     dropSize     : LONGINT;
  1094.                     tablet       : EGS.TabletDataPtr;
  1095.                   END;
  1096.  
  1097.   UserStylePtr  = POINTER TO UserStyle;
  1098.   UserStyle     = RECORD
  1099.                     leftBorder,
  1100.                     topBorder,
  1101.                     rightBorder,
  1102.                     bottomBorder : INTEGER;
  1103.                     |
  1104.                     | Parameter:
  1105.                     |  fullHeight fullWidth
  1106.                     |  lightColor darkColor borderColor
  1107.                     |  name       topBorder font
  1108.                     |
  1109.                     drawBorder   : IntuiGfxPtr;
  1110.                   END;
  1111.  
  1112.   NewWindow     = RECORD
  1113.                     leftEdge,
  1114.                     topEdge,
  1115.                     width,
  1116.                     height     : INTEGER;
  1117.                     minWidth,
  1118.                     minHeight,
  1119.                     maxWidth,
  1120.                     maxHeight  : INTEGER;
  1121.                     screen     : ScreenPtr;
  1122.                     IF KEY : BOOLEAN  | Wenn Flag 'WindowUserStyle' in flags
  1123.                       OF TRUE  THEN userStyle  : UserStylePtr;
  1124.                       OF FALSE THEN sysGadgets : SysGadgetSet;
  1125.                     END;
  1126.                     gadgets    : GadgetPtr;
  1127.                     name       : SysStringPtr;
  1128.                     flags      : WindowFlagSet;
  1129.                     idcmpFlags : EIDCMPFlagSet;
  1130.                     port       : MsgPortPtr;
  1131.                     colors     : WinColors;
  1132.                     menu       : MenuPtr;
  1133.                     render     : IntuiGfxPtr;
  1134.                   END;
  1135. |
  1136. |###############################################################################
  1137. |
  1138. | Standardrequester:
  1139. |
  1140. | SystemRequest:
  1141. |
  1142. |
  1143. |PROCEDURE SysRequest(win     IN A0 : WindowPtr;
  1144. |                     title   IN A1 : SysStringPtr;
  1145. |                     bodyTxt IN A2 : SysStringPtr;
  1146. |                     gadgTxt IN A3 : SysStringPtr):INTEGER;
  1147. |
  1148. |
  1149. | win       : Fenster, auf dessen Screen der Requester aufgehen soll
  1150. | title     : Titel des Requesterfensters
  1151. | bodyTxt   : Text den der Informationsbereich des Requesters enthalten soll.
  1152. |             Einzelne Zeilen werden durch ein "|" im String getrennt. Es
  1153. |             können maximal 20 Zeilen angegeben werden.
  1154. | gadgTxt   : Text der Gadgets. Die Bezeichner der einzelnen Gadgets werden
  1155. |             durch ein "|" voneinander getrennt.
  1156. |
  1157. | Beispiel:
  1158. |
  1159. |   .. SysRequest(WorkbenchWindow,
  1160. |                 "Workbench".data'PTR,
  1161. |                 "Error while copying 'EDITOR'|object already exists".data'PTR,
  1162. |                 "Replace|Replace All|Cancel".data'PTR);
  1163. |
  1164. | Der Rückgabewert ist die Nummer des betätigten Gadgets (von links nach rechts
  1165. | bei 0 beginnend.)
  1166. |
  1167.  
  1168. |
  1169. | Prefs:
  1170. |
  1171. TYPE
  1172.   EGSFontTypes = (screenFont,windowFont,systemFont);
  1173.   NewScreenPtr = POINTER TO NewScreen;
  1174.  
  1175. TYPE
  1176.   IntuiMouseTagItem =
  1177.     (StandardMouse  = $80020000,
  1178.  
  1179.      SleepMouse,         WaitMouse,        DiskReadMouse,     DiskWriteMouse,
  1180.      DiskIOMouse,        WorkingMouse,     PlayMacroMouse,    PrintingMouse,
  1181.      SearchingMouse,     FrozenMouse,
  1182.  
  1183.      CopyMouse,          SwapMouse,        MoveMouse,         SelectMouse,
  1184.      ZoomMouse,          FillMouse,        PasteMouse,        CutMouse,
  1185.      RecordMacroMouse,   CrosshairMouse,   SizeMouse,         TextMouse,
  1186.      AirbrushMouse,      PickMouse,        DrawMouse,         PaintMouse,
  1187.      SelectToMouse,      RangeMouse,       ClickMouse,        RotateMouse);
  1188.  
  1189.  
  1190.  
  1191. VAR EGSIntuiBase : LibraryPtr;
  1192.  
  1193.  
  1194. LIBRARY EGSIntuiBase BY -30  PROCEDURE LockIntuition;
  1195.  
  1196. LIBRARY EGSIntuiBase BY -36  PROCEDURE UnlockIntuition;
  1197.  
  1198.  
  1199. LIBRARY EGSIntuiBase BY -42  PROCEDURE OpenScreen(VAR newScreen IN A0 : NewScreen):ScreenPtr;
  1200.  
  1201. LIBRARY EGSIntuiBase BY -48  PROCEDURE CloseScreen(scr IN A0 : ScreenPtr);
  1202.  
  1203. GROUP ScreenGrp = NewScreen,ScreenPtr,CLUPtr,OpenScreen,CloseScreen;
  1204.  
  1205.  
  1206. LIBRARY EGSIntuiBase BY -54  PROCEDURE OpenWindow(VAR new IN A0 : NewWindow):WindowPtr;
  1207.  
  1208. LIBRARY EGSIntuiBase BY -60  PROCEDURE CloseWindow(win IN A0 : WindowPtr);
  1209.  
  1210. LIBRARY EGSIntuiBase BY -66  PROCEDURE ActivateWindow(win IN A0 : WindowPtr);
  1211.  
  1212. LIBRARY EGSIntuiBase BY -72  PROCEDURE DeactivateWindow(win IN A0 : WindowPtr);
  1213.  
  1214. LIBRARY EGSIntuiBase BY -510 PROCEDURE IconifyWindow(win IN A0 : WindowPtr);
  1215.  
  1216. LIBRARY EGSIntuiBase BY -516 PROCEDURE DeiconifyWindow(win IN A0 : WindowPtr);
  1217.  
  1218.  
  1219. LIBRARY EGSIntuiBase BY -78  PROCEDURE WindowToFront(win IN A0 : WindowPtr);
  1220.  
  1221. LIBRARY EGSIntuiBase BY -84  PROCEDURE WindowToBack(win IN A0 : WindowPtr);
  1222.  
  1223. LIBRARY EGSIntuiBase BY -90  PROCEDURE MoveWindow(win IN A0 : WindowPtr;
  1224.                                                 dx  IN D0,
  1225.                                                 dy  IN D1 : INTEGER);
  1226.  
  1227. LIBRARY EGSIntuiBase BY -96  PROCEDURE ScrollWindow(win IN A0 : WindowPtr;
  1228.                                                   dx  IN D0,
  1229.                                                   dy  IN D1 : INTEGER);
  1230.  
  1231. LIBRARY EGSIntuiBase BY -102 PROCEDURE SizeWindow(win IN A0 : WindowPtr;
  1232.                                                 dx  IN D0,
  1233.                                                 dy  IN D1 : INTEGER);
  1234.  
  1235. LIBRARY EGSIntuiBase BY -522 PROCEDURE ChangeWindow(win  IN A0 : WindowPtr;
  1236.                                                     dx   IN D0,
  1237.                                                     dy   IN D1,
  1238.                                                     dw   IN D2,
  1239.                                                     dh   IN D3 : INTEGER);
  1240.  
  1241. LIBRARY EGSIntuiBase BY -234 PROCEDURE WindowBorder(win IN A0 : WindowPtr;
  1242.                                                   dx  IN D0,
  1243.                                                   dy  IN D1 : INTEGER);
  1244.  
  1245. |---NEW---|
  1246. LIBRARY EGSIntuiBase BY -240 PROCEDURE SetWindowTitles(win     IN A0 : WindowPtr;
  1247.                                                      wTitle  IN A1,
  1248.                                                      sTitle  IN A2 : CharPtr);
  1249.  
  1250. LIBRARY EGSIntuiBase BY -108 PROCEDURE BeginRefresh(win IN A0 : WindowPtr;key IN D0 : LONGINT):BOOLEAN;
  1251.  
  1252. LIBRARY EGSIntuiBase BY -114 PROCEDURE EndRefresh(win IN A0 : WindowPtr;ready IN D0 : BOOLEAN);
  1253.  
  1254. GROUP WindowGrp = NewWindow,WindowPtr,WindowFlags,WindowFlagSet,
  1255.                   SysGadgetTypes,SysGadgetSet,EIDCMPFlags,
  1256.                   EIDCMPFlagSet,
  1257.                   OpenWindow,CloseWindow,
  1258.                   WindowToFront,WindowToBack,MoveWindow,ScrollWindow,
  1259.                   SizeWindow,BeginRefresh,EndRefresh,WindowBorder;
  1260.  
  1261. LIBRARY EGSIntuiBase BY -120 PROCEDURE CalcProportional(VAR gad IN A0 : PropGadget);
  1262.  
  1263. LIBRARY EGSIntuiBase BY -126 PROCEDURE BackCalcProportional(VAR gad IN A0 : PropGadget);
  1264.  
  1265. LIBRARY EGSIntuiBase BY -132 PROCEDURE RedrawGadgetList(win    IN A0 : WindowPtr;
  1266.                                                       border IN D0,
  1267.                                                       inside IN D1 : BOOLEAN);
  1268.  
  1269. LIBRARY EGSIntuiBase BY -138 PROCEDURE ActivateGadget(win   IN A0 : WindowPtr;
  1270.                                                     gad   IN A1 : GadgetPtr;
  1271.                                                     force IN D0 : BOOLEAN);
  1272.  
  1273. LIBRARY EGSIntuiBase BY -144 PROCEDURE AddGadget(win IN A0 : WindowPtr;
  1274.                                                gad IN A1 : GadgetPtr);
  1275. LIBRARY EGSIntuiBase BY -150 PROCEDURE AddGList(win IN A0 : WindowPtr;
  1276.                                               gad IN A1 : GadgetPtr;
  1277.                                               num IN D0  : INTEGER);
  1278.  
  1279. LIBRARY EGSIntuiBase BY -156 PROCEDURE RemoveGadget(win IN A0 : WindowPtr;
  1280.                                                   gad IN A1 : GadgetPtr);
  1281. LIBRARY EGSIntuiBase BY -162 PROCEDURE RemoveGList(win IN A0 : WindowPtr;
  1282.                                                  gad IN A1 : GadgetPtr;
  1283.                                                  num IN D0 : INTEGER);
  1284.  
  1285. LIBRARY EGSIntuiBase BY -168 PROCEDURE RefreshGadget(win IN A0 : WindowPtr;
  1286.                                                    gad IN A1 : GadgetPtr);
  1287. LIBRARY EGSIntuiBase BY -174 PROCEDURE RefreshGList(win IN A0 : WindowPtr;
  1288.                                                   gad IN A1 : GadgetPtr;
  1289.                                                   num IN D0 : INTEGER);
  1290.  
  1291. LIBRARY EGSIntuiBase BY -180 PROCEDURE OnGadget(win IN A0 : WindowPtr;
  1292.                                               gad IN A1 : GadgetPtr);
  1293. LIBRARY EGSIntuiBase BY -186 PROCEDURE OnGList(win IN A0 : WindowPtr;
  1294.                                              gad IN A1 : GadgetPtr;
  1295.                                              num IN D0 : INTEGER);
  1296.  
  1297. LIBRARY EGSIntuiBase BY -192 PROCEDURE OffGadget(win IN A0 : WindowPtr;
  1298.                                                gad IN A1 : GadgetPtr);
  1299. LIBRARY EGSIntuiBase BY -198 PROCEDURE OffGList(win IN A0 : WindowPtr;
  1300.                                               gad IN A1 : GadgetPtr;
  1301.                                               num IN D0 : INTEGER);
  1302.  
  1303. LIBRARY EGSIntuiBase BY -534 PROCEDURE ShowGadget(win IN A0 : WindowPtr;
  1304.                                                  gad IN A1 : GadgetPtr);
  1305. LIBRARY EGSIntuiBase BY -540 PROCEDURE ShowGList(win IN A0 : WindowPtr;
  1306.                                                  gad IN A1 : GadgetPtr;
  1307.                                                  num IN D0 : INTEGER);
  1308.  
  1309. LIBRARY EGSIntuiBase BY -546 PROCEDURE HideGadget(win IN A0 : WindowPtr;
  1310.                                                   gad IN A1 : GadgetPtr);
  1311. LIBRARY EGSIntuiBase BY -552 PROCEDURE HideGList(win IN A0 : WindowPtr;
  1312.                                                  gad IN A1 : GadgetPtr;
  1313.                                                  num IN D0 : INTEGER);
  1314.  
  1315. GROUP GadgetGrp = GadgetFlags,GadgetFlagSet,GadgetTypes,GadgetPtr,
  1316.                   Gadget,BoolGadget,PropFlags,PropFlagSet,
  1317.                   PropGadget,StringGadget,PropGadPtr,BoolGadPtr,
  1318.                   StringGadPtr,GadgetArray,
  1319.                   CalcProportional,BackCalcProportional,
  1320.                   RedrawGadgetList,ActivateGadget,
  1321.                   AddGadget,AddGList,
  1322.                   RemoveGadget,RemoveGList,
  1323.                   RefreshGadget,RefreshGList,
  1324.                   OnGadget,OnGList,
  1325.                   OffGadget,OffGList;
  1326.  
  1327. LIBRARY EGSIntuiBase BY -204 PROCEDURE PutMenuHome(menu IN A0 : MenuPtr);
  1328.  
  1329. LIBRARY EGSIntuiBase BY -210 PROCEDURE PutMenuOut(menu IN A0 : MenuPtr;
  1330.                                                 win  IN A1 : WindowPtr;
  1331.                                                 x    IN D0,
  1332.                                                 y    IN D1 : INTEGER);
  1333.  
  1334. |---NEW---|
  1335. LIBRARY EGSIntuiBase BY -246 PROCEDURE SetMenuStrip(win   IN A0 : WindowPtr;
  1336.                                                     menu  IN A1 : MenuPtr);
  1337.  
  1338.  
  1339. LIBRARY EGSIntuiBase BY -360 PROCEDURE FindMenuItem(menu IN A0 : MenuPtr;id IN D0 : LONGINT):MenuItemPtr;
  1340.  
  1341. LIBRARY EGSIntuiBase BY -366 PROCEDURE FindSubMenu(menu IN A0 : MenuPtr;id IN D0 : LONGINT):MenuPtr;
  1342.  
  1343. LIBRARY EGSIntuiBase BY -372 PROCEDURE ToggleMenuItem(menu IN A0 : MenuPtr;item IN A1 : MenuItemPtr);
  1344.  
  1345. LIBRARY EGSIntuiBase BY -504 PROCEDURE SetMenuItem(menu IN A0 : MenuPtr;item IN A1 : MenuItemPtr;flag IN D0 : BOOLEAN);
  1346.  
  1347. LIBRARY EGSIntuiBase BY -378 PROCEDURE OnMenuItem(menu IN A0 : MenuPtr;item IN A1 : MenuItemPtr);
  1348.  
  1349. LIBRARY EGSIntuiBase BY -384 PROCEDURE OffMenuItem(menu IN A0 : MenuPtr;item IN A1 : MenuItemPtr);
  1350.  
  1351. GROUP
  1352.   MenuGrp    = Menu,MenuPtr,MenuItem,MenuItemPtr,MenuItemFlags,
  1353.                MenuItemFlagSet,PutMenuOut,PutMenuHome;
  1354.  
  1355. LIBRARY EGSIntuiBase BY -216 PROCEDURE SetPointer(win   IN A0 : WindowPtr;
  1356.                                                   mouse IN A1 : EMousePtr);
  1357.  
  1358. LIBRARY EGSIntuiBase BY -222 PROCEDURE ClearPointer(win IN A0 : WindowPtr);
  1359.  
  1360. LIBRARY EGSIntuiBase BY -426 PROCEDURE GetPrefPointer(tag IN D0 : IntuiMouseTagItem):EMousePtr;
  1361.  
  1362. GROUP PointerGrp = SetPointer,ClearPointer,EMouse,SoftMouse,HardMouse,
  1363.                    IntuiMouseTagItem,GetPrefPointer,EMousePtr;
  1364.  
  1365. LIBRARY EGSIntuiBase BY -228 PROCEDURE DoubleClick(StartSec    IN D0,
  1366.                                                  StartMicros IN D1,
  1367.                                                  EndSec      IN D2,
  1368.                                                  EndMicros   IN D3 : LONGINT):BOOLEAN;
  1369.  
  1370.  
  1371. |---NEW---|
  1372. LIBRARY EGSIntuiBase BY -252 PROCEDURE ModifyIDCMP(win   IN A0 : WindowPtr;
  1373.                                                  flags IN D0 : EIDCMPFlagSet);
  1374.  
  1375. |---NEW---|
  1376. LIBRARY EGSIntuiBase BY -258 PROCEDURE ReportMouse(win   IN A0 : WindowPtr;
  1377.                                                  flag  IN D0 : BOOLEAN);
  1378.  
  1379. LIBRARY EGSIntuiBase BY -480 PROCEDURE SetMouseMoveInterval(win    IN A0 : WindowPtr;
  1380.                                                             micros IN D0 : LONGINT);
  1381.  
  1382. GROUP
  1383.   MessageGrp = Exec.GetMsg,Exec.WaitPort,Exec.ReplyMsg,
  1384.                EIDCMPFlags,EIDCMPFlagSet,
  1385.                EIntuiMsgPtr,Qualifiers,QualifierSet;
  1386.  
  1387. |
  1388.  
  1389. LIBRARY EGSIntuiBase BY -264 PROCEDURE Interpret(    rast   IN A0 : RastPortPtr;
  1390.                                                VAR colors IN A1 : WinColors;
  1391.                                                    toff   IN A2 : IntuiGfxPtr;
  1392.                                                    prog   IN A3 : IntuiGfxPtr;
  1393.                                                    x      IN D0,
  1394.                                                    y      IN D1 : INTEGER);
  1395.  
  1396. LIBRARY EGSIntuiBase BY -270 PROCEDURE InterpretStacked(    rast   IN A0 : RastPortPtr;
  1397.                                                       VAR colors IN A1 : WinColors;
  1398.                                                           prog   IN A2 : IntuiGfxPtr;
  1399.                                                           x      IN D0,
  1400.                                                           y      IN D1 : INTEGER);
  1401.  
  1402. LIBRARY EGSIntuiBase BY -276 PROCEDURE Interpret1Param(    rast   IN A0 : RastPortPtr;
  1403.                                                      VAR colors IN A1 : WinColors;
  1404.                                                          prog   IN A2 : IntuiGfxPtr;
  1405.                                                          x      IN D0,
  1406.                                                          y      IN D1 : INTEGER;
  1407.                                                          para1  IN D2 : LONGINT);
  1408.  
  1409. LIBRARY EGSIntuiBase BY -282 PROCEDURE Interpret2Param(    rast   IN A0 : RastPortPtr;
  1410.                                                      VAR colors IN A1 : WinColors;
  1411.                                                          prog   IN A2 : IntuiGfxPtr;
  1412.                                                          x      IN D0,
  1413.                                                          y      IN D1 : INTEGER;
  1414.                                                          para1  IN D2 : LONGINT;
  1415.                                                          para2  IN D3 : LONGINT);
  1416.  
  1417.  
  1418. LIBRARY EGSIntuiBase BY -288 PROCEDURE SysRequest(win     IN A0 : WindowPtr;
  1419.                                                   title   IN A1 : SysStringPtr;
  1420.                                                   bodyTxt IN A2 : SysStringPtr;
  1421.                                                   gadgTxt IN A3 : SysStringPtr):INTEGER;
  1422.  
  1423.  
  1424. LIBRARY EGSIntuiBase BY -294 PROCEDURE GetPrefFont(type IN D0 : EGSFontTypes):TextAttrPtr;
  1425.  
  1426. LIBRARY EGSIntuiBase BY -300 PROCEDURE GetDefaultScreen():NewScreenPtr;
  1427.  
  1428. LIBRARY EGSIntuiBase BY -306 PROCEDURE RefreshWindow(win IN A0 : WindowPtr);
  1429.  
  1430. LIBRARY EGSIntuiBase BY -312 PROCEDURE RefreshScreen(scr IN A0 : ScreenPtr);
  1431.  
  1432. LIBRARY EGSIntuiBase BY -318 PROCEDURE SleepWindow(win IN A0 : WindowPtr);
  1433.  
  1434. LIBRARY EGSIntuiBase BY -324 PROCEDURE WakeWindow(win IN A0 : WindowPtr);
  1435.  
  1436. LIBRARY EGSIntuiBase BY -330 PROCEDURE ObtainColor(scr IN A0 : ScreenPtr;r IN D0,g IN D1,b IN D2 : SHORTCARD):LONGINT;
  1437.  
  1438. LIBRARY EGSIntuiBase BY -336 PROCEDURE ReleaseColor(scr IN A0 : ScreenPtr;color IN D0 : LONGINT);
  1439.  
  1440. LIBRARY EGSIntuiBase BY -342 PROCEDURE GetWinColor(colors IN A0 : ColorTablePtr;tag IN D0 : IntuiColorTagItem):LONGINT;
  1441.  
  1442. LIBRARY EGSIntuiBase BY -348 PROCEDURE GetDefaultColor(depth IN D0 : INTEGER;tag IN D1 : IntuiColorTagItem):LONGINT;
  1443.  
  1444. LIBRARY EGSIntuiBase BY -462 PROCEDURE GetPrefsColor(depth IN D0 : INTEGER;tag IN D1 : IntuiColorTagItem):LONGINT;
  1445.  
  1446. LIBRARY EGSIntuiBase BY -354 PROCEDURE CloneColor(scr IN A0 : ScreenPtr;color IN D0 : LONGINT):LONGINT;
  1447.  
  1448.  
  1449. LIBRARY EGSIntuiBase BY -390 PROCEDURE FreeMenu(menu IN A0 : MenuPtr);
  1450.  
  1451. LIBRARY EGSIntuiBase BY -396 PROCEDURE CreateMenu():MenuPtr;
  1452.  
  1453. LIBRARY EGSIntuiBase BY -402 PROCEDURE AddToMenu(menu IN A0 : MenuPtr;
  1454.                                                  add  IN A1 : MenuItemPtr);
  1455.  
  1456. LIBRARY EGSIntuiBase BY -408 PROCEDURE AddToItem(item IN A0 : MenuItemPtr;
  1457.                                                  add  IN A1 : MenuItemPtr);
  1458.  
  1459. LIBRARY EGSIntuiBase BY -414 PROCEDURE CreateItem(    font   IN A0 : EFontPtr;
  1460.                                                   REF name   IN A1 : STRING;
  1461.                                                       id     IN D0 : LONGINT;
  1462.                                                       key    IN D1 : CHAR;
  1463.                                                       toggle IN D2 : BOOLEAN):MenuItemPtr;
  1464.  
  1465. LIBRARY EGSIntuiBase BY -528 PROCEDURE CreateExtItem(    font   IN A0 : EFontPtr;
  1466.                                                      REF name   IN A1 : STRING;
  1467.                                                          id     IN D0 : LONGINT;
  1468.                                                      REF ext    IN A2 : STRING;
  1469.                                                          toggle IN D2 : BOOLEAN):MenuItemPtr;
  1470.  
  1471.  
  1472. LIBRARY EGSIntuiBase BY -420 PROCEDURE CreateLeave():MenuItemPtr;
  1473.  
  1474.  
  1475.  
  1476. PROCEDURE CreateMenuL(items : LIST OF MenuItemPtr):MenuPtr;
  1477. PROCEDURE CreateItemL(    font    : EFontPtr;
  1478.                       REF name    : STRING;
  1479.                           id      : LONGINT  := 0;
  1480.                           key     : CHAR     := &0;
  1481.                           toggle  : BOOLEAN  := FALSE;
  1482.                           exclude : LONGSET  := LONGSET:{};
  1483.                           sub     : LIST OF MenuItemPtr):MenuItemPtr;
  1484.  
  1485.  
  1486. LIBRARY EGSIntuiBase BY -432 PROCEDURE ChangePrefs;
  1487.  
  1488. LIBRARY EGSIntuiBase BY -438 PROCEDURE DragNDropClip(draw   IN A0 : IntuiGfxPtr;
  1489.                                                      ox     IN D0,
  1490.                                                      oy     IN D1 : INTEGER;
  1491.                                                      w      IN D2,
  1492.                                                      h      IN D3 : INTEGER;
  1493.                                                      from   IN A1 : WindowPtr;
  1494.                                                      type   IN D4 : LONGINT;
  1495.                                                      clipID IN D5 : LONGINT);
  1496.  
  1497. LIBRARY EGSIntuiBase BY -444 PROCEDURE DragNDropFile(draw   IN A0 : IntuiGfxPtr;
  1498.                                                      ox     IN D0,
  1499.                                                      oy     IN D1 : INTEGER;
  1500.                                                      w      IN D2,
  1501.                                                      h      IN D3 : INTEGER;
  1502.                                                      from   IN A1 : WindowPtr;
  1503.                                                      type   IN D4 : LONGINT;
  1504.                                                      file   IN A2 : SysStringPtr);
  1505.  
  1506. LIBRARY EGSIntuiBase BY -450 PROCEDURE DragNDropFiles(draw   IN A0 : IntuiGfxPtr;
  1507.                                                       ox     IN D0,
  1508.                                                       oy     IN D1 : INTEGER;
  1509.                                                       w      IN D2,
  1510.                                                       h      IN D3 : INTEGER;
  1511.                                                       from   IN A1 : WindowPtr;
  1512.                                                       type   IN D4 : LONGINT;
  1513.                                                       files  IN A2 : StrArrayPtr);
  1514.  
  1515. LIBRARY EGSIntuiBase BY -456 PROCEDURE DragNDropData(draw   IN A0 : IntuiGfxPtr;
  1516.                                                      ox     IN D0,
  1517.                                                      oy     IN D1 : INTEGER;
  1518.                                                      w      IN D2,
  1519.                                                      h      IN D3 : INTEGER;
  1520.                                                      from   IN A1 : WindowPtr;
  1521.                                                      type   IN D4 : LONGINT;
  1522.                                                      data   IN A2 : ANYPTR;
  1523.                                                      size   IN D5 : LONGINT);
  1524.  
  1525. LIBRARY EGSIntuiBase BY -486 PROCEDURE DragNDropWBObject(draw   IN A0 : IntuiGfxPtr;
  1526.                                                          ox     IN D0,
  1527.                                                          oy     IN D1 : INTEGER;
  1528.                                                          w      IN D2,
  1529.                                                          h      IN D3 : INTEGER;
  1530.                                                          from   IN A1 : WindowPtr;
  1531.                                                          obj    IN A2 : EGSWBObject);
  1532.  
  1533. LIBRARY EGSIntuiBase BY -498 PROCEDURE DragNDropBitMap(draw   IN A0 : IntuiGfxPtr;
  1534.                                                        ox     IN D0,
  1535.                                                        oy     IN D1 : INTEGER;
  1536.                                                        w      IN D2,
  1537.                                                        h      IN D3 : INTEGER;
  1538.                                                        from   IN A1 : WindowPtr;
  1539.                                                        type   IN D4 : LONGINT;
  1540.                                                        map    IN A2 : EBitMapPtr;
  1541.                                                        clone  IN D5 : BOOLEAN);
  1542.  
  1543.  
  1544.  
  1545. LIBRARY EGSIntuiBase BY -468 PROCEDURE DeactivateGadget;
  1546.  
  1547. LIBRARY EGSIntuiBase BY -474 PROCEDURE MigrateWindow(win IN A0 : WindowPtr;
  1548.                                                      scr IN A1 : ScreenPtr;
  1549.                                                      x   IN D0 : INTEGER;
  1550.                                                      y   IN D1 : INTEGER);
  1551.  
  1552. LIBRARY EGSIntuiBase BY -492 PROCEDURE SetWindowIconImg(win IN A0 : WindowPtr;
  1553.                                                         img IN A1 : EBitMapPtr);
  1554.  
  1555.  
  1556.  
  1557.  
  1558. |
  1559. | Last is -498 DragNDropBitMap
  1560. |
  1561. GROUP
  1562.   All        = ScreenGrp,WindowGrp,GadgetGrp,MenuGrp,MessageGrp,
  1563.                PointerGrp,DoubleClick;
  1564.  
  1565. END EGSIntui.
  1566.  
  1567.  
  1568.