home *** CD-ROM | disk | FTP | other *** search
Text File | 1994-12-13 | 66.4 KB | 1,568 lines |
- |##########|
- |#MAGIC #|DBGFEKBF
- |#PROJECT #|""
- |#PATHS #|"EGSProject"
- |#FLAGS #|xx---x--x---xxx-----------------
- |#USERSW #|--------------------------------
- |#USERMASK#|--------------------------------
- |#SWITCHES#|---x-x----------
- |##########|
- DEFINITION MODULE EGSIntui;
- |
- | 5. 8.91 : MasterGadget, TextGadget bekommt "font" Feld
- | 9. 8.91 : GadgetFlagSet erhält "callOnElseKey"
- | 17. 8.91 : WindowFlagSet erhält "windowSize..."
- | 31. 8.91 : MenuItem hat BitMapPtr statt BitMap
- | 2. 9.91 : MenuItem hat LONGINT als id
- | 20.10.91 : Neue WindowFlags, UserStyle
- | ScreenFlagSet (oh wie peinlich)
- | 5. 1.92 : RealGagdet als Flag und Struktur
- | 31. 1.92 : Pref Gruppe
- | 4. 6.92 : Window Sleep...
- |
- | +---------------------------------------------------------------------+
- | | |##
- | | egsintui.library v1.1, © '91,'92 StoneWare |##
- | | EXTENDED - GRAPHICS - STANDARD |##
- | | |##
- | +---------------------------------------------------------------------+##
- | #######################################################################
- |
- |
- | Diese Library implementiert ein vollständiges Fenstersystem mit Menues,
- | Gadgets etc. Sie setzt vollständig auf den anderen egs..-Libraries auf, ist
- | also problemlos für andere Graphikkarten implementierbar. Es wurde versucht
- | möglichst unabhängig vom aktuellen Graphikmodus zu arbeiten.
- |
- | Die zugrundelegende Struktur des Systems ist durch die intuition.library
- | gegeben. Die meisten Namen und Strukturen sind dort entliehen, allerdings
- | teilweise stark verändert.
- |
- | Die Library benutzt einen zur egs.library erweiterten Screentyp, um dem
- | Programmierer die Benutzung des Fenstersystems völlig freizustellen.
- |
- | Die gesamte Graphiken der Strukturen (Windows, Gadgets und Menüs) läuft
- | über IntuiGfx-Porgramme (siehe dort). Dies ist der wohl größte Unterschied
- | zur Commodore Library. Der Grund liegt in der ungschickten implementierung
- | der Intui-Graphilen der Commo-Library (drei Listen, keine mehrfachbenutzbar-
- | keit der Strukturen, Speicherverschwendung durch überladene Strukturen sowie
- | mangelnde Flexibilität). Die IntuiGfx-Lösung ist so flexibel, daß sogar
- | die Schieberegler eines PropGadgets über ein derartiges Programm realisiert
- | werden, selbst die Graphik für den Fensterrahmen ist darüber definiert.
- |
- | Die Verwendung von 'GimmeZeroZero'-Fenstern ist durchaus zu empfehlen, da
- | der Overhead im gegensatz zur Commo-Implementierung nicht so gigantisch ist.
- | Lediglich für einfache Requester-Windows empfehlen sich einfache Fenster.
- |
- | Requester sind in der Library nicht implementiert, da fast alle Requester
- | in Wirklichkeit Windows sind, und sich der Aufwand für eine extra Struktur
- | nicht lohnt.
- |
- | Menüs verfügen über zwei erweiterte Funktionen, sie können am Fensterrahmen
- | sitzen und 'abgerissen' werden. Dies hat die Vorteile, das der Menü-Weg nicht
- | zu weit ist. Ausserdem bleiben häufig benötigte Funktionen im direkten
- | Zugriff.
- |
- FROM EGSLayers IMPORT LayerPtr,LayerInfoPtr;
- FROM EGS IMPORT EScreenPtr,EBitMap,CLUPtr,EBitMapPtr,
- EMouse,EMousePtr,HardMouse,SoftMouse;
- FROM EGSGfx IMPORT RastPortPtr,EFontPtr;
- FROM IntuiGfx AS ig IMPORT IntuiGfxPtr,IntuiGfx,WinColors;
- FROM Exec IMPORT MsgPortPtr,LibraryPtr;
- FROM Input IMPORT QualifierSet,lButton,rButton,upPrefix,Qualifiers;
- FROM System IMPORT LONGSET,SysStringPtr,Regs;
- FROM EGSBlit IMPORT ColorTable;
- FROM Graphics IMPORT TextAttrPtr;
- |
- |
- |
- |
- |
- | ... moment der single Pass schlägt zu
- |
- TYPE
- EIDCMPFlags = (iMouseButtons,iMouseMove,iRawKey,iActivate,
- iWindowRefresh,iWindowClose,iWindowSize,iMenu,iGadget,
- iMenueVerify,iVanillaKey,iSizeVerify,iInactive,
- iTimeTicks,iDiskInserted,iDiskRemoved,iNewPrefs,
- iWindowMove,iDrop,iMigrateVerify,iMigrate,iEnter,
- iWindowIcon,
- iWBObjectCall = 29,
- iApplication = 30,
- iForward = 31
- );
- EIDCMPFlagSet = SET OF EIDCMPFlags;
- |
- |
- | Werte für code Feld
- |
- CONST
- selectUp = lButton+upPrefix;
- selectDown = lButton;
- menuUp = rButton+upPrefix;
- menuDown = rButton;
-
- menuHot = 1;
- menuCancel = 2;
- menuWaiting = 3;
-
- dropFiles = 0;
- dropFile = 1;
- dropClip = 2;
- dropData = 3;
- dropWBObject = 4;
- dropBitMap = 5;
-
-
- TYPE
- CharPtr = POINTER TO CHAR;
-
- WindowPtr = POINTER TO Window;
- EIntuiMsgPtr = POINTER TO EIntuiMsg;
- |
- |###############################################################################
- |
- | Menüs:
- |
- | Menüs dienen dazu eine Aktion oder einen Zustand aufzurufen bzw. zu ändern.
- | Menüs werden durch betätigen des rechten Mausknopfes ausgelöst, und erscheinen
- | am Bildschirm oder Fenstertitel. Ein Punkt wird ausgewählt, indem die Maus
- | mit gedrücktem rechten Knopf angefahren wird, und der Knopf dann losgelassen
- | wird. (Alternativ können in 'toggleSelect' - Menüpunkten diese auch durch
- | kurzes betätigen der linken Maustaste gekippt werden.)
- |
- | Menüpunkte können über Untermenüs verfügen, die bei erreichen des Menüpunktes
- | aufpoppen, und ausgewählt werden können. Diese Staffelung kann beliebig tief
- | sein, sollte allerdings nicht übertrieben werden.
- |
- | Menüs, können abgerissen werden, d.h. sie
- | bleiben offen, auch nachdem der rechte Knopf losgelassen wurde. Dies
- | geschieht über einen speziellen Menüpunkt. Diese offenen Menüs können mit der
- | rechetn Maustaste benutzt oder mit der linken verschoben werden.
- |
- |-------------------------------------------------------------------------------
- |
- | Strukturen:
- |
- | Menu, MenuPtr...
- |
- | .itemMaster : Zeiger auf Menüpunkt, dem dieses Menü untergeordnet ist,
- | NIL falls es sich um das Hauptmenü handelt.
- | .menuMaster : Zeiger aufMenü, dem dieses Menü untergeordnet ist, NIL falls
- | es sich um das Hauptmenü handelt.
- | .firstItem : Zeiger auf ersten Menüpunkt dieses Menüs.
- | .leftEdge,
- | .topEdge : relative Koordinaten des Menüs zum übergeordneten Menüpunkt
- | oder der Titelzeile
- | .width,
- | .height : Ausmaße des Menüs. Anhand dieser Koordinaten wird der Hinter-
- | grund gerettet. Sie sollten also mindestens so groß sein wie
- | das Menü mit allen Menüpunkten, möglichst aber auch nicht
- | größer um Speicher zu sparen
- | .border : Render-routine für die grundlegende Menüstruktur ohne Menü-
- | punkte. Diese Routine erhält die Breite und Höhe des Menüs
- | übergeben, so daß sie für jedes Menü verwendet werden kann.
- |
- | MenuItem, MenuItemPtr...
- |
- | .prev,
- | .next : Menüpunktverkettung, der erste und letzte menüpunkt
- | enthalen jeweils NIL im entsprechenden Feld.
- | .leftEdge,
- | .topEgde : Koordinaten der linken oberen Ecke des Menüpunktes
- | .width,
- | .height : Ausmaße des Menüpunktes
- | .active : Zeichenroutine, falls der Menüpunkt aktiv ist
- | .passive : Zeichenroutine, falls der Menüpunkt passiv ist
- | .checkMark : Zeichenroutine, falls der Menüpunkt bei einem
- | 'ToggleSelect' ausgewählt ist.
- | .select : Routine die ausgeführt wird, wenn der Menüpunkt aktiv ist
- | und die Maus darüber bewegt wird. Diese Routine erhält
- | die Ausmaße des Menüpunktes übergeben, so daß für jeden
- | Punkt die selbe benutzt werden kann.
- | .release : Routine die aufgerufen wird, wenn die Maus vom Menüpunkt
- | wieder weggefahren wird. Diese Routine erhält ebenfalls die
- | Ausmaße übergeben. Sie wird auch aufgerufen, wenn das Menü
- | gezeichnet wird, so daß die normalen Render-Routinen die
- | Graphik für nicht ausgewählt nicht zeichnen müssen.
- | .flags : Flags des Menüpunktes:
- |
- | - menuActive : Der Menüpunkt ist aktiv und auswählbar.
- | - menuSelected : Der Menüpunkt ist angewählt, für Menüpunkte, die an
- | oder abgeschaltet werden können.
- | - menuSelectable : Der Menüpunkt ist anschaltbar
- | - menuToggle : Der Menüpunkt wechselt bei jedem anwählen seinen
- | Zustand.
- | - menuLeave : Der Menüpunkt wird nicht gemeldet, sondern das Menü
- | in dem dieser Punkt enthalten ist wird abgerissen.
- |
- | .id : Nummer des Menüs, wir in der Meldung als 'code' übergeben.
- | Dies hat den Vorteil, daß wenn Menüpunkte zwischengeschoben
- | werden sich die Meldung nicht verändert.
- | .subMenu : evtl. Vorhandenes Untermenü, falls keines vorhanden : NIL
- | .mutualExclude : Menge der Menüpunkte, die abgeschaltet werden sollen,
- | falls dieser Menüpunkt angeschaltet wird. Es wird für diese
- | Menüpunkte keine extra Message abgeschickt.
- | .mutualInclude : Menge der Menüpunkte, die angeschaltet werden sollen,
- | falls dieser Menüpunkt angeschaltet wird. Es wird für diese
- | Menüpunkte keine extra Message abgeschickt.
- | .hotKey : RawKeyCode, der zuammen mit der rechten Amiga-Taste diesen
- | Menüpunkt auswählen soll (BUG : funktioniert leider nicht)
- |
- |-------------------------------------------------------------------------------
- |
- | Prozeduren:
- |
- | PROCEDURE PutMenuHome(menu IN A0 : MenuPtr);
- | PROCEDURE PutMenuOut(menu IN A0 : MenuPtr;
- | win IN A1 : WindowPtr
- | x IN D0,
- | y IN D1 : INTEGER);
- |
- |
- | Mit diesen Prozeduren werden abreißbare Menüs implementiert. Menüs, die
- | abreißbar sein sollen müssen über einen Menüpunkt verfügen, dessen Auswahl
- | das Menü offen lassen soll. Wird dieser Menüpunkt aufgerufen, muß das Programm
- | die Prozedur 'PutMenuOut' aufrufen. Die Parameter x und y müssen die Werte
- | aus aus msg^.mouseX und msg^.mouseY enthalten. Wird dieser Menüpunkt wiederum
- | aufgerufen, muß das Programm die Prozedur 'PutMenuHome' aufrufen.
- |
- | Das Menü kann während es außen liegt verschoben werden, das Programm erhält
- | darüber keine Angaben.
- |
- MenuItemFlags = (menuActive,menuSelected,menuSelectable,menuToggle,
- menuMoused,menuMove,menuLeave,mi7,mi8);
- MenuItemFlagSet = SET OF MenuItemFlags;
-
- MenuPtr = POINTER TO Menu;
- MenuItemPtr = POINTER TO MenuItem;
- Menu = RECORD
- winPrev,
- winNext : MenuPtr;
- itemMaster : MenuItemPtr;
- menuMaster : MenuPtr;
- firstItem : MenuItemPtr;
- leftEdge,
- topEdge,
- width,
- height : INTEGER;
- border : IntuiGfxPtr;
- backSave : EBitMapPtr;
- layer : LayerPtr;
- rast : RastPortPtr;
- END;
- MenuItem = RECORD
- prev,
- next : MenuItemPtr;
- leftEdge,
- topEdge,
- width,
- height : INTEGER;
- active,
- passive,
- checkMark,
- select,
- release : IntuiGfxPtr;
- flags : MenuItemFlagSet;
- id : LONGINT;
- subMenu : MenuPtr;
- mutualExclude,
- mutualInclude : LONGSET;
- pad : SHORTCARD;
- hotKey : CHAR;
- END;
- |
- |###############################################################################
- |
- | Gadgets sind Fensterelemente, die durch den Benutzer bedient werden können,
- | und über die er dem Programm informationen gibt. Es gibt vier verschiedene
- | Arten von Gadgets:
- |
- | - actionGadget : Bei betätigen wird dem Programm eine Meldung
- | geschickt, dieses Gadget kann nur angewählt
- | werden.
- |
- | - boolGadget : Durch betätigen eines derartigen Gadgets wird
- | ein Flag gekippt, also von TRUE nach FALSE und
- | umgekehrt. Mit diesen Gadgets können Flags
- | abgefragt werden. Das Programm kann auf Wunsch
- | eine Meldung erhalten, falls das Gadget betätigt
- | wurde.
- |
- | - stringGadget : In diesen Gadgets kann durch den Benutzer eine
- | Zeichenkette editiert werden, z.B. Filenamen.
- | Die Editierfunktionen werden durch die Library
- | geboten, müssen also nicht extra implementiert
- | werden. Das Programm kann auf Wunsch eine Meldung
- | bei Betreten und/oder Verlassen des Gadgets
- | erhalten.
- |
- | - propGadget : Mit diesen Gadgets kann ein Zahlenwert verändert
- | werden. Dazu wird ein Balken in einem Rechteck
- | erzeugt, das durch die Maus verschoben werden
- | kann. Die Poistion des Balkens gibt den Wert an.
- | Seine Größe ist durch das Verhältniss zwischen
- | der Anzahl der Werte die er repräsentiert und der
- | Anzahl der Möglichen Zustände gegeben.
- | Das Programm kann Meldungen erhalten, wenn das
- | Gadget angeklickt, bewegt und oder verlassen
- | wird.
- | Meldungen über die Bewegung sollten nur verwendet
- | werden, wenn die Meldungsschlange immer leer-
- | gefahren wird, um ein Nachlaufen zu verhindern.
- |
- |-------------------------------------------------------------------------------
- |
- | Strukturen:
- |
- | Alle Gadgets besitzen die gleiche Grundstruktur und je nach Art weitere
- | Elemente.
- |
- | Gadget, GadgetPtr...
- |
- | .prev,
- | .next : Verkettung der Gadgets, das letzte und das Erste Element
- | einer Liste zeigen immer auf NIL
- | .leftEdge,
- | .topEgde : Koordinaten der linken oberen Ecke
- | .width,
- | .height : Ausmaße des Gadgets
- | .id : Erkennungsnummer
- | .active : Routine, mit der das Gadget gezeichnet wird, falls es
- | aktiv ist.
- | .passive : Routine, mit der das Gadget gezeichnet wird, falls es
- | passiv ist
- | .select : Routine, die aufgerufen wird, falls das Gadget gedrückt
- | wird. Diese Routine erhält die Breite und Höhe des Gadgets
- | übergeben, so daß sie für verschiedene Gadgets verwendet
- | werden kann.
- | .release : Routine, die aufgerufen wird, falls das Gadget losgelassen
- | wird. Sie bekommt ebenfalls Breite und Höhe übergeben. Sie
- | wird bereits ausgeführt, wenn das Gadget nur gezeichnet
- | wird, so daß es zu Beginn deaktiviert erscheint.
- | .flags : Flags des Gadgets
- |
- | - gadgetBorder : Das Gadget liegt im Fensterrahmen
- | - relRight : Die Gadget-Koordinaten sind relativ zum rechten
- | Fensterrand.
- | - relBottom : Die Gadget-Koordinaten sind relativ zum unteren
- | Fensterrand.
- | - sysGadget : Es handelt sich um ein Systemgadget.
- | - gadgetSelected : Das Gadget ist das gerade Aktive
- | - relVerify : Das Gadget meldet nur, wenn der Mauszeiger beim
- | Loslassen noch darüber steht
- | - gadgetImmediate: Das Gadget sendet eine Meldung, wenn es angeklickt
- | wird, nicht erst wenn es losgelassen wird
- | - toggleSelect : Bei Boolgadgets, das Gadget wechselt seinen Zustand
- | bei jeder Betätigung
- | - repeatGadget : Das Gadget liefert solange es niedergehalten wird
- | in kurzen Zeitabständen immer wieder Meldungen.
- | - gadgetInactive : Das Gadget kann nicht angewählt werden.
- | - stdHighlight : Das Gadget wird mit einer Standarthighlight-Methode
- | versehen, einem 3d-Rahmen.
- |
- | .type : Typ des Gadgets
- | .call : Prozedur, die aufgerufen wird, bevor das Gadget eine
- | Meldung absetzt. Die Prozedur erhält in A1 einen Zeiger
- | auf die Meldung, und darf diese nach ihrem Bedarf
- | ändern. Werden die IDCMPFlags der Meldung gelöscht,
- | wird sie nicht abgeschickt.
- | .userData : Frei für Benutzerdaten
- |
- | BoolGadget:
- |
- | .flag : Flag, auf das sich das BoolGadget bezieht. Es wird je nach
- | Zustand des Gadgets gesetzt oder gelöscht.
- |
- | StringGadget:
- |
- | .buffer : Zeiger auf den Puffer in dem der Text bearbeitet wird.
- | Der Text wird durch ein null-Byte abgeschlossen, und kann
- | nach der Bearbeitung aus diesem Puffer ausgelesen werden.
- | .undoBuffer : Zeiger auf einen Undo-Puffer. Er muß mindestens so groß
- | sein wie der original Puffer. Wird das Gadget angewählt,
- | wird der Inhalt des Puffers in diesen Undo-Puffer kopiert.
- | Durch Amiga-O kann der Inhalt aus diesem Undo-Puffer in
- | den Textpuffer kopiert werden.
- | .bufferPos : Cursorposititon im Textpuffer
- | .maxChars : Maximale Anzahl von Zeichen im Puffer.
- | .numChars : Enthält wärend und nach der Bearbeitung die Anzahl der
- | Zeichen im Puffer
- | .undoPos : CursorPosition im Undo-Puffer.
- |
- | Die Routinen 'select' und 'release' haben für StringGadgets keine Funktion,
- | da hier die Aktivität durch den erscheinenden Cursor angezeigt wird.
- |
- |
- | PropGadget:
- |
- | .propflags : Flags des Gadgets:
- |
- | - propHoriz : Das Gadget ist waagerecht, wenn dieses Bit gesetzt
- | ist, sonst senkrecht.
- | - propFollow : Das Programm bekommt bei jeder Bewegung des Gadgets
- | eine neue Meldung. Dieses Flag sollte sehr vorsichtig
- | eigesetzt werden, da es zu einem Überlauf des Puffers
- | kommen kann.
- | - propBorder : Das Gadget wird, falls das Fenster seine Größe ändert,
- | automatisch mit verändert
- | - propMoves : Der Schieber des Gadgets wird gerade bewegt.
- |
- |
- | .maximum : Maximaler Wert des Gadgets
- | .size : Größe des Reglers in Einheiten des Gadgets
- | .value : Wert des Reglers
- |
- |
- | Die Routine 'release' hat bei PropGadgets keine Bedeutung. Die Routine
- | 'active' sollte den Rahmen des Gadgets zeichnen. Die Routine 'select'
- | wird zum Zeichnen des Knopfes aufgerufen, sie erhält die erwartete Breite
- | (bei vertikalen natürlich die Höhe) übergeben.
- |
- |
- |-------------------------------------------------------------------------------
- |
- | Prozeduren:
- |
- | PROCEDURE AddGadget(win IN A0 : WindowPtr;
- | gad IN A1 : GadgetPtr);
- | PROCEDURE AddGList(win IN A0 : WindowPtr;
- | gad IN A1 : GadgetPtr;
- | num IN D0 : INTEGER);
- |
- | Fügt ein Gadget, bzw. eine Liste von Gadgets zu den Gadgets des Fensters.
- | Die Gadgets werden sofort gezeichnet.
- |
- |
- | PROCEDURE RemoveGadget(win IN A0 : WindowPtr;
- | gad IN A1 : GadgetPtr);
- | PROCEDURE RemoveGList(win IN A0 : WindowPtr;
- | gad IN A1 : GadgetPtr;
- | num IN D0 : INTEGER);
- |
- | Entfernt ein Gadget, bzw. eine Liste von Gadgets aus dem Fenster. Der Bereich,
- | der zuvor von den Gadgets eingenommen wurde, wird mit der Hintergrundfarbe
- | des Fensters gefüllt.
- |
- |
- | PROCEDURE RefreshGadget(win IN A0 : WindowPtr;
- | gad IN A1 : GadgetPtr);
- | PROCEDURE RefreshGList(win IN A0 : WindowPtr;
- | gad IN A1 : GadgetPtr;
- | num IN D0 : INTEGER);
- |
- | Zeichnet ein Gadget oder die Gadgets einer Liste neu. Falls der Zustand eines
- | Gadgets (z.B. eines StringGadgets) geändert wurde, muß diese Prozedur
- | aufgerufen werden. Der Refresh, der durch verdeckte Bildteile verursacht wird,
- | wird durch Intuition selbsttätig durchgeführt.
- |
- |
- | PROCEDURE OnGadget(win IN A0 : WindowPtr;
- | gad IN A1 : GadgetPtr);
- | PROCEDURE OnGList(win IN A0 : WindowPtr;
- | gad IN A1 : GadgetPtr;
- | num IN D0 : INTEGER);
- |
- | Schaltet ein Gadget oder die Gadgets einer Liste ein. Diese können danach
- | benutzt werden.
- |
- |
- | PROCEDURE OffGadget(win IN A0 : WindowPtr;
- | gad IN A1 : GadgetPtr);
- | PROCEDURE OffGList(win IN A0 : WindowPtr;
- | gad IN A1 : GadgetPtr;
- | num IN D0 : INTEGER);
- |
- | Schaltet ein Gadget oder die Gadgets einer Liste ab. Diese können danach
- | nicht mehr benutzt werden.
- |
- |
- | PROCEDURE CalcProportional(VAR gad IN A0 : PropGadget);
- |
- | Werden die Werte eines PropGadgets geändert, müssen die Werte zur Darstellung
- | neu berechnet werden. Diese Prozedur muß vor 'RefreshGadget' aufgerufen
- | werden.
- |
- |
- | PROCEDURE ActivateGadget(win IN A0 : WindowPtr;
- | gad IN A1 : GadgetPtr;
- | force IN D0 : BOOLEAN);
- |
- |
- | Versucht ein Stringgadget zu aktivieren. Ist 'force' FALSE, gelingt dies nur,
- | falls kein anderes Gadget oder Fenster aktiv ist. Ist 'force' TRUE, gelingt
- | dies fast immer. Ein anderes evtl. aktives Gadget wird deaktiviert, und das
- | Fenster in dem sich das Gadget befindet aktiviert.
- |
- GadgetFlags = (gadgetBorder,relRight,relBottom,sysGadget,gadgetSelected,
- relVerify,gadgetImmediate,toggleSelect,repeatGadget,
- gadgetInactive,stdHighlight,stdComplement,oldSelect,
- callOnElseKey,callOnAnyKey,gadgetHidden);
- GadgetFlagSet = SET OF GadgetFlags;
- GadgetTypes = (actionGadget,boolGadget,stringGadget,propGadget,
- integerGadget,userDefGadget,masterGadget,realGadget,
- dropGadget);
-
- UserGadPtr = POINTER TO UserGadget;
-
- GadgetCall = PROCEDURE(msg IN A1 : EIntuiMsgPtr);
- GadgetCall2 = PROCEDURE(msg IN A1 : EIntuiMsgPtr;
- gad IN A2 : UserGadPtr);
- GadgetCall3 = PROCEDURE(win IN A1 : WindowPtr;
- gad IN A0 : ANYPTR);
-
- GadgetPtr = POINTER TO Gadget;
- Gadget = RECORD
- prev,
- next : GadgetPtr;
- checkLeft,
- checkTop,
- leftEdge,
- topEdge,
- width,
- height : INTEGER;
- id : LONGINT;
- active,
- passive,
- select,
- release : IntuiGfxPtr;
- flags : GadgetFlagSet;
- type : GadgetTypes;
- hotKey : CHAR;
- call : GadgetCall;
- userData : ANYPTR;
- END;
-
- BoolGadPtr = POINTER TO BoolGadget;
- GadgetArray = ARRAY OF BoolGadPtr;
- GadgetArrayPtr= POINTER TO GadgetArray;
- BoolGadget = RECORD OF Gadget
- flag : BOOLEAN;
- exclude,
- include : GadgetArrayPtr;
- END;
- PropFlags = (propHoriz,propFollow,propMoves,propBorder,propDeltaRefresh,
- pf5,pf6,pf7,pf8);
- PropFlagSet = SET OF PropFlags;
- PropGadPtr = POINTER TO PropGadget;
- PropGadget = RECORD OF Gadget
- propflags : PropFlagSet;
- maximum,
- size,
- value : INTEGER;
- v_height,
- v_pos : INTEGER;
- END;
- StringJustify = (justifyLeft,justifyRight,justifyCenter);
- StringGadPtr = POINTER TO StringGadget;
- StringGadget = RECORD OF Gadget
- buffer,
- undoBuffer : CharPtr;
- bufferPos,
- maxChars,
- dispPos,
- undoPos,
- numChars,
- dispCount,
- dispFront,
- cLeft,
- cTop : INTEGER;
- justify : StringJustify;
- font : EFontPtr;
- END;
- IntGadPtr = POINTER TO IntGadget;
- IntGadget = RECORD OF StringGadget
- value : LONGINT;
- valid : BOOLEAN;
- END;
- RealGadPtr = POINTER TO RealGadget;
- RealGadget = RECORD OF StringGadget
- value : LONGREAL;
- valid : BOOLEAN;
- END;
-
- UserGadget = RECORD OF Gadget
- selectCall,
- releaseCall : GadgetCall;
- actionCall : GadgetCall2;
- initCall : GadgetCall3;
- callFlags : EIDCMPFlagSet;
- END;
- MasterGadPtr = POINTER TO MasterGadget;
- MasterGadget = RECORD OF Gadget
- masterType : LONGINT;
- firstSon : GadgetPtr;
- numSons : INTEGER;
- END;
-
- EGSWBObject = HIDDEN;
-
- DropFlags = (acceptsFiles,acceptsFile,acceptsClip,
- acceptsData,acceptsWBObject,
- fullWindowSize,acceptsBitMap,df31=31);
- DropFlagSet = SET OF DropFlags;
-
- StrArrayPtr = POINTER TO StrArray;
- StrArray = ARRAY OF SysStringPtr;
-
- DropGadPtr = POINTER TO DropGadget;
-
- DropAcceptor = RECORD
- key : LONGINT;
- mouse : EMousePtr;
- END;
- AcceptList = ARRAY OF DropAcceptor;
- AcceptListPtr = POINTER TO AcceptList;
-
- DropGadget = RECORD OF Gadget;
- dropFlags : DropFlagSet;
- accepts : POINTER TO ARRAY OF DropAcceptor;
- END;
- |
- |###############################################################################
- |
- | Screens:
- |
- | Screens sind logische Nachfolger der 'EScreens' aus der egs.library. Sie
- | wurden um Felder zur Fenster und Layer verwaltung erweitert.
- |
- | Werden keine Fenster benötigt, lohnt es sich nicht die Screens aus diesem
- | Modul zu benutzen, da sie mit einem gewissen Overhead verbunden sind. Auch
- | können über diese Screens keine Events abgefangen werden.
- |
- |-------------------------------------------------------------------------------
- |
- | Strukturen:
- |
- | NewScreen...
- |
- | .mode : Modus des Screens, siehe egs.library
- | "DEFAULT SCREEN" für den default screen
- | .depth : Tiefe des Screens, siehe egs.library,
- | .title : Titel des Screens, erscheint in der Titelzeile
- | .colors : Farben des Screens, siehe egs.library
- | .winColors : Für Fenster empfohlene Farben
- | .backPen : Stift für Screen Hintergrund
- | .backPattern : Hintergrundmuster bzw. Bild des Screens
- | .mouse : Standardmouse für die Screen
- |
- | Screen,ScreenPtr...
- |
- | .front,
- | .back : Verkettung
- | .escreen : Zeiger auf die EScreen Struktur
- | .firstWin,
- | .lastWin : Zeiger auf die Windows des Screens
- | .rastPort : RastPort des Screens
- | .info : Zeiger auf LayerInfo-Struktur
- | .titleLayer : Zeiger auf Layer der Titel-Zeile
- | .titleRast : Zeiger auf RastPort des Screens
- | .winColors : Empfohlene Fensterfarben des Screens
- | .width : Breite des Screens
- | .height : Höhe des Screens
- | .title : Zeiger auf Titel des Screens
- | .mouse : Zeiger auf Standardmauszeiger des Screens
- |
- |-------------------------------------------------------------------------------
- |
- | Prozeduren:
- |
- | PROCEDURE OpenScreen(VAR newScreen IN A0 : NewScreen):ScreenPtr;
- |
- | Versucht einen Screen anhand einer NewScreen Struktur zu öffnen. War die
- | Aktion erfolgreich, wird der Zeiger auf die Screen zurückgegeben, sonst
- | NIL.
- |
- | PROCEDURE CloseScreen(scr IN A0 : ScreenPtr);
- |
- | Schließt einen mit OpenScreen geöffneten Screen. Alle noch offenen Windows
- | werden ebenfalls geschlossen.
- |
- |
- ScreenPtr = POINTER TO Screen;
- ColorLock = HIDDEN;
-
- IntuiColorTagItem =
- (ScreenBackPen = $80010000,
- WindowBackPen,
- UnknownPen,
- TextFrontPen, TextBackPen,
- ScreenLight, ScreenPen, ScreenDark, ScreenText,
- WinLight, WinPen, WinDark, WinText,
- WinActiveLight, WinActivePen, WinActiveDark, WinActiveText,
- WinSleepLight, WinSleepPen, WinSleepDark, WinSleepText,
- GadgetLight, GadgetPen, GadgetDark, GadgetText,
- GadgetSelectedLight,GadgetSelectedPen,GadgetSelectedDark,GadgetSelectedText,
- TextGadgetFront, TextGadgetBack,
- PropLight, PropPen, PropDark,
- KnobLight, KnobPen, KnobDark,
- MenuLight, MenuPen, MenuDark, MenuText,
- MenuSelectedLight, MenuSelectedPen, MenuSelectedDark, MenuSelectedText,
- MasterLight, MasterPen, MasterDark, MasterText,
- WinGadgetLight, WinGadgetDark, WinGadgetBack, WinGadgetPen,
-
- TextSelectFrontPen, TextSelectBackPen,
- CursorFrontPen, CursorBackPen,
- CursorSelectFrontPen, CursorSelectBackPen,
- CursorInactiveFrontPen,CursorInactiveBackPen);
-
- ColorTablePtr = POINTER TO WinColorTable;
- WinColorTable = ARRAY [ScreenBackPen..CursorInactiveBackPen] OF LONGINT;
-
- ScreenFlags = (ScreenQuiet,ScreenBehind,ScreenMonochrome);
- ScreenFlagSet = SET OF ScreenFlags;
-
- NewScreen = RECORD
- mode : SysStringPtr;
- depth : INTEGER;
- title : SysStringPtr;
- colors : CLUPtr;
- winColors : WinColors;
- backPen : LONGINT;
- backPattern: EBitMapPtr;
- mouse : EMousePtr;
- font : TextAttrPtr;
- flags : ScreenFlagSet;
- END;
- Screen = RECORD
- front,
- back : ScreenPtr;
- escreen : EScreenPtr;
- firstWin,
- lastWin : WindowPtr;
- rastPort : RastPortPtr;
- info : LayerInfoPtr;
- titleLayer : LayerPtr;
- titleRast : RastPortPtr;
- winColors : WinColors;
- width,
- height : INTEGER;
- title : POINTER TO STRING;
- mouse : EMousePtr;
- font : EFontPtr;
- gadSize : INTEGER;
- gadImages : ANYPTR;
- flags : ScreenFlagSet;
- winFont : EFontPtr;
- sGadImage : ANYPTR;
- colors : ColorTablePtr;
- colorLock : ColorLock;
- upGadImages: ANYPTR;
- oldTitle : ANYPTR;
- defaultIconImg : EBitMapPtr;
- END;
- |
- |###############################################################################
- |
- | Windows:
- |
- | Windows setzen auf Layers, RastPorts und Screens auf. Sie sind die Über-
- | struktur über Gadgets und Menüs. Sie versenden nach Wunsch Meldungen über
- | Benutzeraktionen und anderen Events.
- |
- | Ein Fenster besteht aus einem oder zwei Layers (GimmeZeroZero). Der Aufwand
- | des zweiten Layers ist nicht so groß, daß er den Vorteil des automatischen
- | Clippings ausgleichen würde. Lediglich einfache Requesterwindows ohne Sizing-
- | Gadget, sollten mit einfachen Fenstern implementiert werden.
- |
- | Fenster können über eine Render-Routine verfügen, die bei einem Refresh von
- | der Library automatisch ausgeführt wird. Dies befreit das Programm von
- | unötigen Refresh gleichbleibender Graphikelementen.
- |
- |-------------------------------------------------------------------------------
- |
- | Strukturn:
- |
- | EIntuiMsg, EIntuiMsgPtr
- |
- | .class : Art der Meldung:
- |
- | - iMouseButtons : Betätignug der Mausknöpfe, welcher Knopf und ob
- | Drücken oder Loslassen wird im Feld Code Mittgeteilt
- | - iMouseMove : Bewegung der Maus
- | - iRawKey : 'rohe' Tastaturmeldung, also Scanncode und Qualifier
- | ist ebenfalls Vanillakey gewählt, werden normale
- | Tasten als Vanillakey und Steuerzeichen als RawKey
- | gemeldet.
- | - iActivate : Das Fenster wurde aktiviert
- | - iWindowRefresh : Das Fenster benötigt einen Refresh, der Refresh-Key
- | (siehe egslayers) wird im Feld 'iAddress' mitgegeben.
- | - iWindowClose : Der Benutzer hat das Close-Gadget betätigt.
- | - iWindowSize : Das Fenster wurde in seiner Größe verändert
- | - iMenu : Ein Menüpunkt wurde ausgewählt
- | - iGadget : Ein Gadget wurde betätigt
- | - iVanillaKey : Meldung über verabeitete Tastaturmeldungen, der ASCII
- | Code der Taste ist im Feld Code.
- | - iSizeVerify : Versucht der Benutzer das Fenster zu vergrößern, wird
- | eine SizeVerify-Meldung geschickt. Intuition wartet
- | solange, bis die Meldung zurückkommt. Das Programm
- | kann die Aktion durch die entsprechende Meldung im
- | code-Feld unterbinden.
- | - iDiskInserted : Es wurde eine neue Diskette eingelegt
- | - iDiskRemoved : Es wurde die Diskette aus dem Laufwerk entfernt
- | - iNewPrefs : Es wurden neue Preferences eingestellt.
- |
- | .code : Genauere Information über die Meldung
- | .qualifier : Zustand der Qualifier (Shift...) während der Event abgeschickt
- | wurde.
- | .iAddress : Adresse der Event-Auslösenden Struktur (Gadget oder Menü)
- | .mouseX,
- | .mouseY : Mausposition zum Eventzeitpunkt, relativ zur linken oberen
- | .seconds,
- | .micros : Zeitpunkt des Events
- | .idcmpWindow: Fenster, das den Event auslöste
- |
- | NewWindow...
- |
- | .leftEdge,
- | .topEdge : Linke obere Ecke des Fensters
- | .width,
- | .height : Größe des Fensterinhalts
- | .minWidth,
- | .minHeight : Minimale Größe des Fensters
- | .maxWidth,
- | .maxHeight : Maximale Größe des Fensters
- | .screen : Screen, auf dem das Fenster geöffnet werden soll. Wird NIL
- | angegeben, wird das Fenster auf einem Standardscreen
- | geöffnet. Das Programm sollte keine Annahmen über den Screen
- | machen, weder Größe noch Tiefe.
- | .sysGadgets : System Gadgets des Fensters:
- |
- | - windowClose : Schließgadget
- | - windowSize : Größengadget in der unteren rechten Ecke
- | - windowFront : Gadget für Fenster nach vorne,
- | - windowBack : Gadget für Fenster nach hinten, ist nur eines der
- | beiden Gadgets vorhanden, hat dies 2.0 Funktion
- | - windowFlip : Wechsel zwischen zwei Positionen und Größen 2.0
- | - windowBig : Vergößerungsgadget auf maximale Größe
- | - windowSmall : Verkleinerungsgadget auf minimale Größe
- | - windowIcon : Iconify
- | - windowArrowL,
- | - windowArrowR,
- | - windowArrowU,
- | - windowArrowD : Pfeile für Scrollgadgets
- | - windowScrollH,
- | - windowScrollV : Scrollgadgets für die Fenster
- | - windowDrag : Bewegungsgadget
- |
- | .gadgets : Liste der Gadgets die das Fenster von beginn an haben soll
- | .name : Titel des Fensters
- | .flags : Flags des Fensters
- |
- | - GimmeZeroZero : GZZ-Window, mit zwei Layers, und extra RastPort für
- | inneres und Rahmen.
- | - BorderLess : Das Fenster hat keinen Rahmen, kann also auch nicht
- | bewegt werden.
- | - SuperBitMap : Das Fenster hat ein SuperBitMap-Layer, alle
- | Intialisierungen werden automatisch vorgenommen, die
- | Größe der SuperBitMap ergibt sich aus der Maximal-
- | größe des Fensters.
- | - SimpleRefresh : Der Benutzer erhält Meldungen, über nötige Refreshs
- | - WindowActive : Das Fenster ist das gerade aktive
- | - WindowMenuLocal : Das Menü des Fensters ist relativ zum Fenstertitel
- | - OwnColorPalette : Das Fenster hat eine eigene Farbtabelle für Rahmen etc
- | - RMBTrap : Der rechte Mausknopf wird, falls er nicht ausserhalb
- | des Fensters betätigt wurde, gemeldet und nicht für
- | Menübearbeitung benutzt.
- | - reportMouse : Die Mausposition wird fortlaufen in die Fenster
- | struktur eingetragen. Dieses Flag ist notwendig um
- | MouseMove events zu erhalten
- | - BackDrop : Das Fenster wird hinter allen anderen geöffnet
- | - SmartRefresh : Das Fenster kümmert sich mit Ausnahme von Größen-
- | änderungen automatisch um seinen Refresh
- | - WindowMenuPopUp : Die Menüs dieses Fensters erscheinen direkt an der
- | Mausposition
- | - WindowSizeBottom: Das Größengadget des Fensters liegt nur am unteren
- | Rand
- | - WindowSizeRight : Das Größengadget des Fensters liegt nur am rechten
- | Rand
- |
- | .idcmpFlags : Events, die dem Fenster gemeldet werden sollen
- | .port : Zeiger auf eigenen Datenport für Benutzeraktionen. Ist dieser
- | Zeiger NIL richtet die Library einen extra Port ein, und
- | entfernt diesen auch beim Schließen des Fensters.
- | .colors : Eigene Farbtabelle des Fensters für Rahmen und Text.
- | .menu : Zeiger auf das Menü des Fensters
- | .render : Routine zum Zeichnen des Standardfensterinhalt
- |
- | Window, WindowPtr...
- |
- | .leftEdge,
- | .topEdge : linke obere Ecke des Fensters
- | .width,
- | .height : Größe des Fensterinneren
- | .leftBorder,
- | .topBorder,
- | .rightBorder,
- | .bottomBorder : Breite bzw. Höhe der Fensterrahmen
- | .rPort : RastPort des Fensterinhalts
- | .layer : Layer des Fensterinhalts
- | .screen : Zeiger auf die Screen des Fensters
- |
- |-------------------------------------------------------------------------------
- |
- | Prozeduren:
- |
- | PROCEDURE OpenWindow(VAR new IN A0 : NewWindow):WindowPtr;
- |
- | Versucht ein Fenster anhand einer NewWindow-Struktur zu öffnen. War sie
- | erfolgreich, gibt sie einen WindowPtr zurück, sonst NIL;
- |
- |
- | PROCEDURE CloseWindow(win IN A0 : WindowPtr);
- |
- | Schließt ein Window wieder;
- |
- |
- | PROCEDURE ActivateWindow(win IN A0 : WindowPtr);
- |
- | Aktiviert ein Fenster.
- |
- |
- | PROCEDURE DeactivateWindow(win IN A0 : WindowPtr);
- |
- | Deaktiviert ein Fenster, falls es vorher aktiv war.
- |
- |
- | PROCEDURE WindowToFront(win IN A0 : WindowPtr);
- |
- | Bringt ein Fenster nach vorne.
- |
- |
- | PROCEDURE WindowToBack(win IN A0 : WindowPtr);
- |
- | Bringt ein Fenster nach hinten.
- |
- |
- | PROCEDURE MoveWindow(win IN A0 : WindowPtr;
- | dx IN D0,
- | dy IN D1 : INTEGER);
- |
- | Bewegt ein Fenster um die angegebene Strecke.
- |
- |
- | PROCEDURE ScrollWindow(win IN A0 : WindowPtr;
- | dx IN D0,
- | dy IN D1 : INTEGER);
- |
- | Scrollt den Fensterinhalt, um die angegebene Strecke.
- |
- |
- | PROCEDURE SizeWindow(win IN A0 : WindowPtr;
- | dx IN D0,
- | dy IN D1 : INTEGER);
- |
- | Ändert die Größe eines Windows um die angegebene Strecke.
- |
- |
- | PROCEDURE WindowBorder(win IN A0 : WindowPtr;
- | dx IN D0,
- | dy IN D1 : INTEGER);
- |
- | Ändert die Maximalgröße eines Fensters (nur bei GZZ, nicht bei SuperBitMap);
- |
- |
- | PROCEDURE BeginRefresh(win IN A0 : WindowPtr;key IN D0 : LONGINT):BOOLEAN;
- |
- | Beginnt den Refresh eines Fensters. War der RefreshKey noch aktuell, wird
- | TRUE zurückgegeben, und der Refresh kann durchgeführt werden, sonst muß
- | er abgebrochen werden.
- |
- |
- | PROCEDURE EndRefresh(win IN A0 : WindowPtr;ready IN D0 : BOOLEAN);
- |
- | Beendet den Refresh eines Fensters.
- |
- |
- SysGadgetTypes= (windowClose,windowSize,
- windowFront,windowBack,windowFlip,
- windowBig,windowSmall,windowIcon,
- windowArrowL,windowArrowR,
- windowArrowU,windowArrowD,
- windowScrollH,windowScrollV,windowDrag,sg15,sg16);
- SysGadgetSet = SET OF SysGadgetTypes;
-
- WindowFlags = (GimmeZeroZero,BorderLess,
- SuperBitMap,SimpleRefresh,InRefresh,WindowActive,
- WindowMenuLocal,OwnIDCMPPort,OwnColorPalette,
- FrontBackGadget,RMBTrap,reportMouse,BackDrop,
- SmartRefresh,WindowMenuPopUp,
- WindowSizeBottom,WindowSizeRight,WindowUserStyle,
- ActiveToFront,QuickScroll,WindowSleeping,
- FixWindowRatio,ForceToScreen,WindowCenter,
- SendOutsideMoves,Migrateable);
- WindowFlagSet = SET OF WindowFlags;
-
- | EIDCMPFlags = (iMouseButtons,iMouseMove,iRawKey,iActivate,
- | iWindowRefresh,iWindowClose,iWindowSize,iMenu,iGadget,
- | iMenueVerify,iVanillaKey,iSizeVerify,iInactive,ei13,ei14,ei15,ei16);
- | EIDCMPFlagSet = SET OF EIDCMPFlags;
-
- ResizeHookPtr = POINTER TO ResizeHook;
- ResizeHook = RECORD
- preCall,
- postCall : PROCEDURE(win IN A0 : WindowPtr;
- data IN A1 : ANYPTR);
- data : ANYPTR;
- END;
-
- Window = RECORD
- front,
- back,
- prev,
- next,
- oldActive : WindowPtr;
-
- leftEdge,
- topEdge,
- width,
- height : INTEGER;
-
- leftBorder,
- topBorder,
- rightBorder,
- bottomBorder : INTEGER;
-
- fullWidth,
- fullHeight : INTEGER;
-
- leftUsed,
- rightUsed : INTEGER;
-
- mouseX,
- mouseY : INTEGER;
-
- rPort : RastPortPtr;
- layer : LayerPtr;
- screen : ScreenPtr;
- bRast : RastPortPtr;
- bLayer : LayerPtr;
- flags : WindowFlagSet;
- idcmpFlags : EIDCMPFlagSet;
- port : MsgPortPtr;
- firstGadget : GadgetPtr;
- gadColors : ColorTable(5);
- winColors : WinColors;
- name,
- sname : POINTER TO STRING;
- border,
- render : IntuiGfxPtr;
- outerMenu,
- menu : MenuPtr;
-
- mouse : EMousePtr;
-
- minWidth,
- minHeight,
- maxWidth,
- maxHeight,
- flipWidth,
- flipHeight,
- flipLeft,
- flipTop : INTEGER;
-
- font : EFontPtr; |!!NEW!!
-
- userData : ANYPTR;
-
- colors : ColorTablePtr;
-
- sleepCount : LONGINT;
- savedFont : EFontPtr;
- mmi : LONGINT;
- resizeHook : ResizeHookPtr;
-
- sizeGSize : INTEGER;
- windowIcon : ANYPTR;
- windowIconImg: EBitMapPtr;
- END;
-
- EIntuiMsg = RECORD OF Exec.Message
- class : EIDCMPFlagSet;
- code : CARDINAL;
- qualifier : QualifierSet;
- iAddress : ANYPTR;
- mouseX,
- mouseY : INTEGER;
- seconds,
- micros : LONGCARD;
- idcmpWindow : WindowPtr;
- repCount : INTEGER;
- dropType : LONGINT;
- dropItem : ANYPTR;
- dropSize : LONGINT;
- tablet : EGS.TabletDataPtr;
- END;
-
- UserStylePtr = POINTER TO UserStyle;
- UserStyle = RECORD
- leftBorder,
- topBorder,
- rightBorder,
- bottomBorder : INTEGER;
- |
- | Parameter:
- | fullHeight fullWidth
- | lightColor darkColor borderColor
- | name topBorder font
- |
- drawBorder : IntuiGfxPtr;
- END;
-
- NewWindow = RECORD
- leftEdge,
- topEdge,
- width,
- height : INTEGER;
- minWidth,
- minHeight,
- maxWidth,
- maxHeight : INTEGER;
- screen : ScreenPtr;
- IF KEY : BOOLEAN | Wenn Flag 'WindowUserStyle' in flags
- OF TRUE THEN userStyle : UserStylePtr;
- OF FALSE THEN sysGadgets : SysGadgetSet;
- END;
- gadgets : GadgetPtr;
- name : SysStringPtr;
- flags : WindowFlagSet;
- idcmpFlags : EIDCMPFlagSet;
- port : MsgPortPtr;
- colors : WinColors;
- menu : MenuPtr;
- render : IntuiGfxPtr;
- END;
- |
- |###############################################################################
- |
- | Standardrequester:
- |
- | SystemRequest:
- |
- |
- |PROCEDURE SysRequest(win IN A0 : WindowPtr;
- | title IN A1 : SysStringPtr;
- | bodyTxt IN A2 : SysStringPtr;
- | gadgTxt IN A3 : SysStringPtr):INTEGER;
- |
- |
- | win : Fenster, auf dessen Screen der Requester aufgehen soll
- | title : Titel des Requesterfensters
- | bodyTxt : Text den der Informationsbereich des Requesters enthalten soll.
- | Einzelne Zeilen werden durch ein "|" im String getrennt. Es
- | können maximal 20 Zeilen angegeben werden.
- | gadgTxt : Text der Gadgets. Die Bezeichner der einzelnen Gadgets werden
- | durch ein "|" voneinander getrennt.
- |
- | Beispiel:
- |
- | .. SysRequest(WorkbenchWindow,
- | "Workbench".data'PTR,
- | "Error while copying 'EDITOR'|object already exists".data'PTR,
- | "Replace|Replace All|Cancel".data'PTR);
- |
- | Der Rückgabewert ist die Nummer des betätigten Gadgets (von links nach rechts
- | bei 0 beginnend.)
- |
-
- |
- | Prefs:
- |
- TYPE
- EGSFontTypes = (screenFont,windowFont,systemFont);
- NewScreenPtr = POINTER TO NewScreen;
-
- TYPE
- IntuiMouseTagItem =
- (StandardMouse = $80020000,
-
- SleepMouse, WaitMouse, DiskReadMouse, DiskWriteMouse,
- DiskIOMouse, WorkingMouse, PlayMacroMouse, PrintingMouse,
- SearchingMouse, FrozenMouse,
-
- CopyMouse, SwapMouse, MoveMouse, SelectMouse,
- ZoomMouse, FillMouse, PasteMouse, CutMouse,
- RecordMacroMouse, CrosshairMouse, SizeMouse, TextMouse,
- AirbrushMouse, PickMouse, DrawMouse, PaintMouse,
- SelectToMouse, RangeMouse, ClickMouse, RotateMouse);
-
-
-
- VAR EGSIntuiBase : LibraryPtr;
-
-
- LIBRARY EGSIntuiBase BY -30 PROCEDURE LockIntuition;
-
- LIBRARY EGSIntuiBase BY -36 PROCEDURE UnlockIntuition;
-
-
- LIBRARY EGSIntuiBase BY -42 PROCEDURE OpenScreen(VAR newScreen IN A0 : NewScreen):ScreenPtr;
-
- LIBRARY EGSIntuiBase BY -48 PROCEDURE CloseScreen(scr IN A0 : ScreenPtr);
-
- GROUP ScreenGrp = NewScreen,ScreenPtr,CLUPtr,OpenScreen,CloseScreen;
-
-
- LIBRARY EGSIntuiBase BY -54 PROCEDURE OpenWindow(VAR new IN A0 : NewWindow):WindowPtr;
-
- LIBRARY EGSIntuiBase BY -60 PROCEDURE CloseWindow(win IN A0 : WindowPtr);
-
- LIBRARY EGSIntuiBase BY -66 PROCEDURE ActivateWindow(win IN A0 : WindowPtr);
-
- LIBRARY EGSIntuiBase BY -72 PROCEDURE DeactivateWindow(win IN A0 : WindowPtr);
-
- LIBRARY EGSIntuiBase BY -510 PROCEDURE IconifyWindow(win IN A0 : WindowPtr);
-
- LIBRARY EGSIntuiBase BY -516 PROCEDURE DeiconifyWindow(win IN A0 : WindowPtr);
-
-
- LIBRARY EGSIntuiBase BY -78 PROCEDURE WindowToFront(win IN A0 : WindowPtr);
-
- LIBRARY EGSIntuiBase BY -84 PROCEDURE WindowToBack(win IN A0 : WindowPtr);
-
- LIBRARY EGSIntuiBase BY -90 PROCEDURE MoveWindow(win IN A0 : WindowPtr;
- dx IN D0,
- dy IN D1 : INTEGER);
-
- LIBRARY EGSIntuiBase BY -96 PROCEDURE ScrollWindow(win IN A0 : WindowPtr;
- dx IN D0,
- dy IN D1 : INTEGER);
-
- LIBRARY EGSIntuiBase BY -102 PROCEDURE SizeWindow(win IN A0 : WindowPtr;
- dx IN D0,
- dy IN D1 : INTEGER);
-
- LIBRARY EGSIntuiBase BY -522 PROCEDURE ChangeWindow(win IN A0 : WindowPtr;
- dx IN D0,
- dy IN D1,
- dw IN D2,
- dh IN D3 : INTEGER);
-
- LIBRARY EGSIntuiBase BY -234 PROCEDURE WindowBorder(win IN A0 : WindowPtr;
- dx IN D0,
- dy IN D1 : INTEGER);
-
- |---NEW---|
- LIBRARY EGSIntuiBase BY -240 PROCEDURE SetWindowTitles(win IN A0 : WindowPtr;
- wTitle IN A1,
- sTitle IN A2 : CharPtr);
-
- LIBRARY EGSIntuiBase BY -108 PROCEDURE BeginRefresh(win IN A0 : WindowPtr;key IN D0 : LONGINT):BOOLEAN;
-
- LIBRARY EGSIntuiBase BY -114 PROCEDURE EndRefresh(win IN A0 : WindowPtr;ready IN D0 : BOOLEAN);
-
- GROUP WindowGrp = NewWindow,WindowPtr,WindowFlags,WindowFlagSet,
- SysGadgetTypes,SysGadgetSet,EIDCMPFlags,
- EIDCMPFlagSet,
- OpenWindow,CloseWindow,
- WindowToFront,WindowToBack,MoveWindow,ScrollWindow,
- SizeWindow,BeginRefresh,EndRefresh,WindowBorder;
-
- LIBRARY EGSIntuiBase BY -120 PROCEDURE CalcProportional(VAR gad IN A0 : PropGadget);
-
- LIBRARY EGSIntuiBase BY -126 PROCEDURE BackCalcProportional(VAR gad IN A0 : PropGadget);
-
- LIBRARY EGSIntuiBase BY -132 PROCEDURE RedrawGadgetList(win IN A0 : WindowPtr;
- border IN D0,
- inside IN D1 : BOOLEAN);
-
- LIBRARY EGSIntuiBase BY -138 PROCEDURE ActivateGadget(win IN A0 : WindowPtr;
- gad IN A1 : GadgetPtr;
- force IN D0 : BOOLEAN);
-
- LIBRARY EGSIntuiBase BY -144 PROCEDURE AddGadget(win IN A0 : WindowPtr;
- gad IN A1 : GadgetPtr);
- LIBRARY EGSIntuiBase BY -150 PROCEDURE AddGList(win IN A0 : WindowPtr;
- gad IN A1 : GadgetPtr;
- num IN D0 : INTEGER);
-
- LIBRARY EGSIntuiBase BY -156 PROCEDURE RemoveGadget(win IN A0 : WindowPtr;
- gad IN A1 : GadgetPtr);
- LIBRARY EGSIntuiBase BY -162 PROCEDURE RemoveGList(win IN A0 : WindowPtr;
- gad IN A1 : GadgetPtr;
- num IN D0 : INTEGER);
-
- LIBRARY EGSIntuiBase BY -168 PROCEDURE RefreshGadget(win IN A0 : WindowPtr;
- gad IN A1 : GadgetPtr);
- LIBRARY EGSIntuiBase BY -174 PROCEDURE RefreshGList(win IN A0 : WindowPtr;
- gad IN A1 : GadgetPtr;
- num IN D0 : INTEGER);
-
- LIBRARY EGSIntuiBase BY -180 PROCEDURE OnGadget(win IN A0 : WindowPtr;
- gad IN A1 : GadgetPtr);
- LIBRARY EGSIntuiBase BY -186 PROCEDURE OnGList(win IN A0 : WindowPtr;
- gad IN A1 : GadgetPtr;
- num IN D0 : INTEGER);
-
- LIBRARY EGSIntuiBase BY -192 PROCEDURE OffGadget(win IN A0 : WindowPtr;
- gad IN A1 : GadgetPtr);
- LIBRARY EGSIntuiBase BY -198 PROCEDURE OffGList(win IN A0 : WindowPtr;
- gad IN A1 : GadgetPtr;
- num IN D0 : INTEGER);
-
- LIBRARY EGSIntuiBase BY -534 PROCEDURE ShowGadget(win IN A0 : WindowPtr;
- gad IN A1 : GadgetPtr);
- LIBRARY EGSIntuiBase BY -540 PROCEDURE ShowGList(win IN A0 : WindowPtr;
- gad IN A1 : GadgetPtr;
- num IN D0 : INTEGER);
-
- LIBRARY EGSIntuiBase BY -546 PROCEDURE HideGadget(win IN A0 : WindowPtr;
- gad IN A1 : GadgetPtr);
- LIBRARY EGSIntuiBase BY -552 PROCEDURE HideGList(win IN A0 : WindowPtr;
- gad IN A1 : GadgetPtr;
- num IN D0 : INTEGER);
-
- GROUP GadgetGrp = GadgetFlags,GadgetFlagSet,GadgetTypes,GadgetPtr,
- Gadget,BoolGadget,PropFlags,PropFlagSet,
- PropGadget,StringGadget,PropGadPtr,BoolGadPtr,
- StringGadPtr,GadgetArray,
- CalcProportional,BackCalcProportional,
- RedrawGadgetList,ActivateGadget,
- AddGadget,AddGList,
- RemoveGadget,RemoveGList,
- RefreshGadget,RefreshGList,
- OnGadget,OnGList,
- OffGadget,OffGList;
-
- LIBRARY EGSIntuiBase BY -204 PROCEDURE PutMenuHome(menu IN A0 : MenuPtr);
-
- LIBRARY EGSIntuiBase BY -210 PROCEDURE PutMenuOut(menu IN A0 : MenuPtr;
- win IN A1 : WindowPtr;
- x IN D0,
- y IN D1 : INTEGER);
-
- |---NEW---|
- LIBRARY EGSIntuiBase BY -246 PROCEDURE SetMenuStrip(win IN A0 : WindowPtr;
- menu IN A1 : MenuPtr);
-
-
- LIBRARY EGSIntuiBase BY -360 PROCEDURE FindMenuItem(menu IN A0 : MenuPtr;id IN D0 : LONGINT):MenuItemPtr;
-
- LIBRARY EGSIntuiBase BY -366 PROCEDURE FindSubMenu(menu IN A0 : MenuPtr;id IN D0 : LONGINT):MenuPtr;
-
- LIBRARY EGSIntuiBase BY -372 PROCEDURE ToggleMenuItem(menu IN A0 : MenuPtr;item IN A1 : MenuItemPtr);
-
- LIBRARY EGSIntuiBase BY -504 PROCEDURE SetMenuItem(menu IN A0 : MenuPtr;item IN A1 : MenuItemPtr;flag IN D0 : BOOLEAN);
-
- LIBRARY EGSIntuiBase BY -378 PROCEDURE OnMenuItem(menu IN A0 : MenuPtr;item IN A1 : MenuItemPtr);
-
- LIBRARY EGSIntuiBase BY -384 PROCEDURE OffMenuItem(menu IN A0 : MenuPtr;item IN A1 : MenuItemPtr);
-
- GROUP
- MenuGrp = Menu,MenuPtr,MenuItem,MenuItemPtr,MenuItemFlags,
- MenuItemFlagSet,PutMenuOut,PutMenuHome;
-
- LIBRARY EGSIntuiBase BY -216 PROCEDURE SetPointer(win IN A0 : WindowPtr;
- mouse IN A1 : EMousePtr);
-
- LIBRARY EGSIntuiBase BY -222 PROCEDURE ClearPointer(win IN A0 : WindowPtr);
-
- LIBRARY EGSIntuiBase BY -426 PROCEDURE GetPrefPointer(tag IN D0 : IntuiMouseTagItem):EMousePtr;
-
- GROUP PointerGrp = SetPointer,ClearPointer,EMouse,SoftMouse,HardMouse,
- IntuiMouseTagItem,GetPrefPointer,EMousePtr;
-
- LIBRARY EGSIntuiBase BY -228 PROCEDURE DoubleClick(StartSec IN D0,
- StartMicros IN D1,
- EndSec IN D2,
- EndMicros IN D3 : LONGINT):BOOLEAN;
-
-
- |---NEW---|
- LIBRARY EGSIntuiBase BY -252 PROCEDURE ModifyIDCMP(win IN A0 : WindowPtr;
- flags IN D0 : EIDCMPFlagSet);
-
- |---NEW---|
- LIBRARY EGSIntuiBase BY -258 PROCEDURE ReportMouse(win IN A0 : WindowPtr;
- flag IN D0 : BOOLEAN);
-
- LIBRARY EGSIntuiBase BY -480 PROCEDURE SetMouseMoveInterval(win IN A0 : WindowPtr;
- micros IN D0 : LONGINT);
-
- GROUP
- MessageGrp = Exec.GetMsg,Exec.WaitPort,Exec.ReplyMsg,
- EIDCMPFlags,EIDCMPFlagSet,
- EIntuiMsgPtr,Qualifiers,QualifierSet;
-
- |
-
- LIBRARY EGSIntuiBase BY -264 PROCEDURE Interpret( rast IN A0 : RastPortPtr;
- VAR colors IN A1 : WinColors;
- toff IN A2 : IntuiGfxPtr;
- prog IN A3 : IntuiGfxPtr;
- x IN D0,
- y IN D1 : INTEGER);
-
- LIBRARY EGSIntuiBase BY -270 PROCEDURE InterpretStacked( rast IN A0 : RastPortPtr;
- VAR colors IN A1 : WinColors;
- prog IN A2 : IntuiGfxPtr;
- x IN D0,
- y IN D1 : INTEGER);
-
- LIBRARY EGSIntuiBase BY -276 PROCEDURE Interpret1Param( rast IN A0 : RastPortPtr;
- VAR colors IN A1 : WinColors;
- prog IN A2 : IntuiGfxPtr;
- x IN D0,
- y IN D1 : INTEGER;
- para1 IN D2 : LONGINT);
-
- LIBRARY EGSIntuiBase BY -282 PROCEDURE Interpret2Param( rast IN A0 : RastPortPtr;
- VAR colors IN A1 : WinColors;
- prog IN A2 : IntuiGfxPtr;
- x IN D0,
- y IN D1 : INTEGER;
- para1 IN D2 : LONGINT;
- para2 IN D3 : LONGINT);
-
-
- LIBRARY EGSIntuiBase BY -288 PROCEDURE SysRequest(win IN A0 : WindowPtr;
- title IN A1 : SysStringPtr;
- bodyTxt IN A2 : SysStringPtr;
- gadgTxt IN A3 : SysStringPtr):INTEGER;
-
-
- LIBRARY EGSIntuiBase BY -294 PROCEDURE GetPrefFont(type IN D0 : EGSFontTypes):TextAttrPtr;
-
- LIBRARY EGSIntuiBase BY -300 PROCEDURE GetDefaultScreen():NewScreenPtr;
-
- LIBRARY EGSIntuiBase BY -306 PROCEDURE RefreshWindow(win IN A0 : WindowPtr);
-
- LIBRARY EGSIntuiBase BY -312 PROCEDURE RefreshScreen(scr IN A0 : ScreenPtr);
-
- LIBRARY EGSIntuiBase BY -318 PROCEDURE SleepWindow(win IN A0 : WindowPtr);
-
- LIBRARY EGSIntuiBase BY -324 PROCEDURE WakeWindow(win IN A0 : WindowPtr);
-
- LIBRARY EGSIntuiBase BY -330 PROCEDURE ObtainColor(scr IN A0 : ScreenPtr;r IN D0,g IN D1,b IN D2 : SHORTCARD):LONGINT;
-
- LIBRARY EGSIntuiBase BY -336 PROCEDURE ReleaseColor(scr IN A0 : ScreenPtr;color IN D0 : LONGINT);
-
- LIBRARY EGSIntuiBase BY -342 PROCEDURE GetWinColor(colors IN A0 : ColorTablePtr;tag IN D0 : IntuiColorTagItem):LONGINT;
-
- LIBRARY EGSIntuiBase BY -348 PROCEDURE GetDefaultColor(depth IN D0 : INTEGER;tag IN D1 : IntuiColorTagItem):LONGINT;
-
- LIBRARY EGSIntuiBase BY -462 PROCEDURE GetPrefsColor(depth IN D0 : INTEGER;tag IN D1 : IntuiColorTagItem):LONGINT;
-
- LIBRARY EGSIntuiBase BY -354 PROCEDURE CloneColor(scr IN A0 : ScreenPtr;color IN D0 : LONGINT):LONGINT;
-
-
- LIBRARY EGSIntuiBase BY -390 PROCEDURE FreeMenu(menu IN A0 : MenuPtr);
-
- LIBRARY EGSIntuiBase BY -396 PROCEDURE CreateMenu():MenuPtr;
-
- LIBRARY EGSIntuiBase BY -402 PROCEDURE AddToMenu(menu IN A0 : MenuPtr;
- add IN A1 : MenuItemPtr);
-
- LIBRARY EGSIntuiBase BY -408 PROCEDURE AddToItem(item IN A0 : MenuItemPtr;
- add IN A1 : MenuItemPtr);
-
- LIBRARY EGSIntuiBase BY -414 PROCEDURE CreateItem( font IN A0 : EFontPtr;
- REF name IN A1 : STRING;
- id IN D0 : LONGINT;
- key IN D1 : CHAR;
- toggle IN D2 : BOOLEAN):MenuItemPtr;
-
- LIBRARY EGSIntuiBase BY -528 PROCEDURE CreateExtItem( font IN A0 : EFontPtr;
- REF name IN A1 : STRING;
- id IN D0 : LONGINT;
- REF ext IN A2 : STRING;
- toggle IN D2 : BOOLEAN):MenuItemPtr;
-
-
- LIBRARY EGSIntuiBase BY -420 PROCEDURE CreateLeave():MenuItemPtr;
-
-
-
- PROCEDURE CreateMenuL(items : LIST OF MenuItemPtr):MenuPtr;
- PROCEDURE CreateItemL( font : EFontPtr;
- REF name : STRING;
- id : LONGINT := 0;
- key : CHAR := &0;
- toggle : BOOLEAN := FALSE;
- exclude : LONGSET := LONGSET:{};
- sub : LIST OF MenuItemPtr):MenuItemPtr;
-
-
- LIBRARY EGSIntuiBase BY -432 PROCEDURE ChangePrefs;
-
- LIBRARY EGSIntuiBase BY -438 PROCEDURE DragNDropClip(draw IN A0 : IntuiGfxPtr;
- ox IN D0,
- oy IN D1 : INTEGER;
- w IN D2,
- h IN D3 : INTEGER;
- from IN A1 : WindowPtr;
- type IN D4 : LONGINT;
- clipID IN D5 : LONGINT);
-
- LIBRARY EGSIntuiBase BY -444 PROCEDURE DragNDropFile(draw IN A0 : IntuiGfxPtr;
- ox IN D0,
- oy IN D1 : INTEGER;
- w IN D2,
- h IN D3 : INTEGER;
- from IN A1 : WindowPtr;
- type IN D4 : LONGINT;
- file IN A2 : SysStringPtr);
-
- LIBRARY EGSIntuiBase BY -450 PROCEDURE DragNDropFiles(draw IN A0 : IntuiGfxPtr;
- ox IN D0,
- oy IN D1 : INTEGER;
- w IN D2,
- h IN D3 : INTEGER;
- from IN A1 : WindowPtr;
- type IN D4 : LONGINT;
- files IN A2 : StrArrayPtr);
-
- LIBRARY EGSIntuiBase BY -456 PROCEDURE DragNDropData(draw IN A0 : IntuiGfxPtr;
- ox IN D0,
- oy IN D1 : INTEGER;
- w IN D2,
- h IN D3 : INTEGER;
- from IN A1 : WindowPtr;
- type IN D4 : LONGINT;
- data IN A2 : ANYPTR;
- size IN D5 : LONGINT);
-
- LIBRARY EGSIntuiBase BY -486 PROCEDURE DragNDropWBObject(draw IN A0 : IntuiGfxPtr;
- ox IN D0,
- oy IN D1 : INTEGER;
- w IN D2,
- h IN D3 : INTEGER;
- from IN A1 : WindowPtr;
- obj IN A2 : EGSWBObject);
-
- LIBRARY EGSIntuiBase BY -498 PROCEDURE DragNDropBitMap(draw IN A0 : IntuiGfxPtr;
- ox IN D0,
- oy IN D1 : INTEGER;
- w IN D2,
- h IN D3 : INTEGER;
- from IN A1 : WindowPtr;
- type IN D4 : LONGINT;
- map IN A2 : EBitMapPtr;
- clone IN D5 : BOOLEAN);
-
-
-
- LIBRARY EGSIntuiBase BY -468 PROCEDURE DeactivateGadget;
-
- LIBRARY EGSIntuiBase BY -474 PROCEDURE MigrateWindow(win IN A0 : WindowPtr;
- scr IN A1 : ScreenPtr;
- x IN D0 : INTEGER;
- y IN D1 : INTEGER);
-
- LIBRARY EGSIntuiBase BY -492 PROCEDURE SetWindowIconImg(win IN A0 : WindowPtr;
- img IN A1 : EBitMapPtr);
-
-
-
-
- |
- | Last is -498 DragNDropBitMap
- |
- GROUP
- All = ScreenGrp,WindowGrp,GadgetGrp,MenuGrp,MessageGrp,
- PointerGrp,DoubleClick;
-
- END EGSIntui.
-
-
-