home *** CD-ROM | disk | FTP | other *** search
Text File | 1994-12-22 | 68.9 KB | 1,872 lines |
- (*------------------------------------------
- :Module. MuiBasics.mod
- :Author. Albert Weinert [awn]
- :Address. Adamsstr. 83; 51063 Köln, Germany
- :EMail. a.weinert@darkness.gun.de
- :Phone. +49-221-613100
- :Revision. R.22
- :Date. 19-Aug-1994
- :Copyright. FreeWare.
- :Language. Oberon-2
- :Translator. AmigaOberon V3.11
- :Contents. Die Makros die in "mui.h" definiert, waren als Prozeduren für Oberon
- :Imports. <Importiertes, Name/ShortCut des Autors>
- :Remarks. Bei VCenter, HCenter, Popup ist es etwas anders.
- :Bugs. <Bekannte Fehler>
- :Usage. <Angaben zur Anwendung>
- :History. .1 [awn] 22-Aug-1993 : Die Prozeduren die in Mui.mod waren nun
- :History. entfernt und ein seperates Modul daraus gemacht, so das
- :History. man nicht darauf angewiesen dies in seinem Interfaces zu haben.
- :History. .2 [awn] 24-Aug-1993 : Kräftig aufgeräumt um den erzeugten
- :History. Maschinencode so kurz wie möglich zu halten.
- :History. .3 [awn] 24-Aug-1993 : PopupEnd() so erweitert das nun ein
- :History. Objekt mit angeben werden kann, dies ist dafür gedacht wenn
- :History. man das Popup zu einem anderen Objekt anordnet (z.B String )
- :History. .4 [awn] 24-Aug-1993 : Im Zuge der Popup Änderung wurde eine
- :History. eigene Speziell auf Mui abgestimmte Hook Parameter übergabe
- :History. erstellt (Allerdings OS Konform eingebettet). Der Parameter
- :History. Deklaration der Hook-Prozedur muss nun so aussehen wie der
- :History. Typ `HookDef'.
- :History. .5 [awn] 25-Aug-1993 : Tipfehler bei TagItem2() und TagItem3()
- :History. entfernt.
- :History. .6 [awn] 25-Aug-1993 : Die Groups und Frames wieder mit der
- :History. Möglichkeit versehen dort TagListen zu übergeben.
- :History. .7 [awn] 30-Aug-1993 : PageGroup() hizugefügt.
- :History. .8 [awn] 14-Sep-1993 : Fehler bei Strings() dort wurde in der
- :History. Deklaration 2 mal A1 benutzt.
- :History. .9 [awn] 03-Oct-1993 : Eine einfache Plausibiltätsprüfung eingebaut.
- :History. Für jede #?Object() Prozedur gibt es nun ein End#?() Prozedure,
- :History. wenn der Objekt Typ nicht übereinstimmt wird ein NIL zurückgeben.
- :History. Dies ist dafür um während der Programmentwicklung Abstürze zu
- :History. umgehen, wenn das Programm einmal steht sind diese nicht mehr
- :History. notwendig, aber brauchen nicht entfernt zu werden.
- :History. .10 [awn] 30-Oct-1993 : An MUI 1.4 angepasst, die neuen Objekte
- :History. hinzugefügt (Coloradjust, Colorfield, Palette, Virtgroup, Scrollgroup
- :History. und Scrmodelist), die Group Prozeduren gibt es nun auch für Virtgroups
- :History. z.B. HGroupV(). Sonstige neue Prozeduren, KeyRadio(), Slider(), KeySlider(),
- :History. LLabelX() und KeyLLabelX().
- :History. .11 [awn] 31-Jan-1994 : Angepasst an MUI 1.5, Fehler bei SliderObject()
- :History. entfernt (Rief RadioObject auf). Es gibt nun für *jede* Objekt ein
- :History. passendes. Bei Popupend() wird nun auch das Background Image gesetzt.
- :History. [Report: Peter Elzner]
- :History. .12 [awn] 02-Feb-1994 : INewObject() und IEnd() aufgenommen, der Aufruf
- :History. von INewObject() ist wie der von Intuition.NewObject() nur ohne
- :History. Rückgabeparamter. INewObject() muss *anstatt* Intuition.NewObject()
- :History. aufgerufen werden wenn die Objekte direkt mit ins Layout sollen.
- :History. INewObject() *muss* ein IEnd() bzw. iEnd() folgen. siehe Class1.mod
- :History. .13 [awn] 05-Feb-1994 : VSlider() und KeyVSlider() aufgenommen.
- :History. .14 [awn] 17-Feb-1994 : Bei Checkmark(); KeyCheckmark(), String() und
- :History. KeyString() ist es nun auch möglich Tags zu übergeben.
- :History. KeyVSlider() ist nun wirklich ein VSlider. PopButton() hinzugefügt.
- :History. Der Register.mui Support ist nun auch drin.
- :History. HBar() und VBar() erstellt, erzeugen die entsprechenden Bars.
- :History. .15 [awn] 22-Feb-1994 : Integer() und KeyInteger() für Integer-
- :History. Objekte hinzugefügt.
- :History. .16 [awn] 27-Feb-1994 : Bei etlichen Prozeduren habe ich vergessen
- :History. die Register zu retten, so das CheckMark() und KeyCheckMark()
- :History. nicht zufriedenstellend funktionierte [Report: Volker Rudolph]
- :History. .17 [awn] 05-Apr-1994 : Bei CheckMark() funktioniert die Initiali-
- :History. sierung jetzt. Scrollbar(), KeyScrollBar(), VScrollBar() usw.
- :History. Prozeduren für die entsprechenden Objekte erstellt.
- :History. .18 [awn] 15-May-1994 : Bei CheckMarkA() die Parameter etwas
- :History. geändert, so das dieses nun auch richtig funktioniert.
- :History. .19 [awn] 02-Jul-1994 : ClassTree overview updated, updated
- :History. to MUI 2.1, major code cleanup (now, produces shorter code).
- :History. In lack of time, i didn't optimize the label prozedures.
- :History. The behavior fo the End#?() procedures changes, if the wrong
- :History. object type, the programm terminates with an RC=100, also
- :History. now there added end#?() proecedures, so that you don't must
- :History. check the result if you want only have a little typeguard.
- :History. .20 [Volker Rudolph] 20-Jul 1994 : Fixed another bug in functions
- :History. with CHAR, BOOLEAN or SHORTINT variables as register arguments.
- :History. Removed (* SaveRegs+ *) comments.
- :History. .21 [awn] 07-Aug-1994 : Bug in KeyButton() taglist parameter removed
- :History. (Report by Frank Düring). End#?() Prozedures allready compares
- :History. with Mui.cApplication.
- :History. .22 [awn] 19-Aug-1994 : Removed the Hook binded objects, is was not
- :History. Removed the PopupArgs() struct, added the procedzre PopupObject()
- :History. (to avoid SYSTEM.VAL() to get the Popupobject from the args parameter.
- :History. Now uses the Hooks from Utility.mod
-
-
- --------------------------------------------*)
- MODULE MuiBasics;
-
- IMPORT e * := Exec,
- I * := Intuition,
- m * := Mui,
- u * := Utility,
- y :=SYSTEM;
-
- CONST ArrayAdd = 24;
-
- TYPE
- TagArray * = UNTRACED POINTER TO ARRAY OF u.TagItem;
- Class * = UNTRACED POINTER TO ClassDesc;
- Args * = UNTRACED POINTER TO ArgsDesc;
- Hook * = u.HookPtr;
-
- ClassDesc = STRUCT( n : e.Node );
- name : ARRAY 32 OF CHAR;
- iclass : I.IClassPtr;
- tags : TagArray;
- tagnum : LONGINT;
- tagdata : BOOLEAN;
- END;
-
- ArgsDesc * = STRUCT END;
-
- HookDef * = PROCEDURE ( hook : Hook; object : m.Object; args : Args ):LONGINT;
-
-
- (* Hook-Example.
- *
- * TYPE PopWindowArgs = STRUCT( d : MuiBasics.ArgsDesc );
- * window : m.Object;
- * END;
- *
- * VAR myHook : MuiBasics.Hook;
- * button : m.Object;
- * window : m.Object;
- *
- * PROCEDURE PopWindow( hook : Hook; object : m.Object; args : Args ) : LONGINT;
- * BEGIN
- * IF args # NIL THEN
- * IF args(PopWindowArgs).window # NIL THEN
- * m.DoMethod( args(PopWindowArgs).window, m.mWindowToFront );
- * END;
- * END;
- * RETURN 0;
- * END PopWindow;
- *
- * BEGIN
- * [... create Application Windows ...]
- *
- * myHook := MuiBasics.MakeHook( PopWindow );
- * IF myHook # NIL THEN
- * m.DoMethod( button, m.mNotify, m.aPressed, e.false,
- * button, 3, m.mCallHook, myHook, window );
- * END;
- * [... Do the other magic ...]
- *
- * Note: Typed on the fly, no warranty is given that this piece of code reallay work.
- *)
-
- VAR no * : e.List;
-
- PROCEDURE MakeHook* ( entry: HookDef ):Hook;
- (*------------------------------------------
- :Input. entry : Prozedure die gestartet werden soll, wenn der Hook
- :Input. aufgerufen wird.
- :Output. Hook der direkt einsatzfähig ist (oder NIL, falls es nicht
- :Output. geklappt haben sollte).
- :Semantic. Erstellt einen Hook und bindet die Prozedure ein.
- :Note.
- :Update. 24-Aug-1993 [awn] - erstellt.
- :Update. 19-Aug-1994 [awn] - Now use SYSTEM.ALLOCATE() instead of NEW()
- :Update. Now use the Hooks things from Utility.mod
- :Update. also the hook binded object is removed
- --------------------------------------------*)
- VAR hook : Hook;
- BEGIN
- y.ALLOCATE( hook );
- IF hook # NIL THEN
- u.InitHook( y.VAL( u.HookPtr, hook ), y.VAL( u.HookFunc, entry ) );
- END;
- RETURN hook;
- END MakeHook;
-
- PROCEDURE Init();
- BEGIN
- no.head := y.ADR( no.tail );
- no.tail := NIL;
- no.tailPred := y.ADR( no.head );
- END Init;
-
- PROCEDURE NewClass*();
- VAR cl : Class;
- BEGIN
- NEW( cl );
-
- (* $IF GarbageCollector *)
-
- e.AddTail( no, cl );
-
- (* $ELSE *)
-
- IF cl # NIL THEN
- e.AddTail( no, y.VAL( e.CommonNodePtr, cl ) );
- cl.tagdata := FALSE;
- END;
-
- (* $END *)
- END NewClass;
-
- PROCEDURE CheckAndExpandTags( cl : Class; n : LONGINT);
- VAR newtags : TagArray;
- ShouldLen, MaxLen, i : LONGINT;
-
- BEGIN
- IF n = 0 THEN RETURN END;
- IF cl.tags # NIL THEN
- ShouldLen := cl.tagnum + n;
- MaxLen := LEN( cl.tags^ )-1;
- IF ShouldLen >= MaxLen THEN
- INC( ShouldLen, ArrayAdd );
- y.ALLOCATE( newtags, ShouldLen );
- FOR i := 0 TO cl.tagnum-1 DO
- newtags[i] := cl.tags[i];
- END;
-
- (* $IF GarbageCollector *)
-
- cl.tags := newtags;
-
- (* $ELSE *)
-
- DISPOSE( cl.tags );
- cl.tags := newtags;
-
- (* $END *)
- END;
- ELSE
- ShouldLen := ArrayAdd + n ;
- NEW( cl.tags, ShouldLen );
- cl.tagnum := 0;
- END;
- END CheckAndExpandTags;
-
- PROCEDURE clTag ( cl : Class; tag : e.APTR );
- BEGIN
- CheckAndExpandTags( cl, 1 );
- IF cl.tags # NIL THEN
- IF cl.tagdata THEN
- cl.tags[cl.tagnum].data := tag;
- cl.tagdata := FALSE;
- INC( cl.tagnum );
- ELSE
- cl.tags[cl.tagnum].tag := tag;
- cl.tagdata := TRUE;
- END;
- END;
- END clTag;
-
- PROCEDURE clTagItem ( cl : Class; tag, data : e.APTR );
- BEGIN
- CheckAndExpandTags( cl, 1 );
- IF cl.tags # NIL THEN
- cl.tags[cl.tagnum].data := data;
- cl.tags[cl.tagnum].tag := tag;
- INC( cl.tagnum );
- END;
- END clTagItem;
-
- PROCEDURE countTag( tags{9} : u.TagListPtr) : LONGINT;
- VAR i, j : LONGINT;
- BEGIN
- i := 0; j := 0;
- WHILE (tags # NIL) & (tags[j].tag # u.end) DO
- IF tags[j].tag = u.more THEN
- tags := tags[j].data;
- j := 0;
- ELSE
- INC(i); INC(j);
- END;
- END;
- RETURN i;
- END countTag;
-
- PROCEDURE clTagsA*( cl{8} : Class; tags{9} : u.TagListPtr );
- VAR i : LONGINT;
-
- BEGIN
- IF tags = NIL THEN RETURN END;
- CheckAndExpandTags( cl, countTag( tags ) );
- i:=0;
- IF cl.tags # NIL THEN
- WHILE (tags#NIL) & (tags[i].tag # u.end) DO
- IF tags[i].tag = u.more THEN
- tags := tags[i].data;
- i := 0;
- ELSE
- cl.tags[cl.tagnum] := tags[i];
- INC(cl.tagnum); INC(i);
- END;
- END;
- END;
- END clTagsA;
-
- PROCEDURE clTags{"MuiBasics.clTagsA"} ( cl{8} : Class; tags{9}.. : u.Tag );
-
- PROCEDURE TagsA*( tags{9} : u.TagListPtr );
- BEGIN
- IF no.tailPred # y.ADR( no.head ) THEN;
- clTagsA( y.VAL( Class, no.tailPred ), tags );
- END;
- END TagsA;
-
- PROCEDURE Tags*{"MuiBasics.TagsA"} ( tags{9}.. : u.Tag );
-
- PROCEDURE Tag*( tag : e.APTR );
- BEGIN
- IF no.tailPred # y.ADR( no.head ) THEN
- clTag( y.VAL( Class, no.tailPred ), tag );
- END;
- END Tag;
-
- PROCEDURE TagItem*( tag, data : e.APTR );
- BEGIN
- IF no.tailPred # y.ADR( no.head ) THEN
- clTagItem( y.VAL( Class, no.tailPred ), tag, data );
- END;
- END TagItem;
-
- PROCEDURE TagItem2*( tag1, data1, tag2, data2 : e.APTR );
- BEGIN
- IF no.tailPred # y.ADR( no.head ) THEN
- clTagItem( y.VAL( Class, no.tailPred ), tag1, data1 );
- clTagItem( y.VAL( Class, no.tailPred ), tag2, data2 );
- END;
- END TagItem2;
-
- PROCEDURE TagItem3*( tag1, data1, tag2, data2, tag3, data3 : e.APTR );
- BEGIN
- IF no.tailPred # y.ADR( no.head ) THEN
- clTagItem( y.VAL( Class, no.tailPred ), tag1, data1 );
- clTagItem( y.VAL( Class, no.tailPred ), tag2, data2 );
- clTagItem( y.VAL( Class, no.tailPred ), tag3, data3 );
- END;
- END TagItem3;
-
- PROCEDURE DEnd(mui : BOOLEAN):m.Object;
- VAR cl : e.NodePtr;
- ret : e.APTR;
-
- BEGIN
- ret := NIL;
- cl := no.tailPred;
- WITH cl : Class DO
-
- IF cl.tags # NIL THEN
- cl.tags[cl.tagnum].tag:=u.end;
- IF mui THEN
- ret := m.NewObject( cl.name, u.more, y.ADR(cl.tags^) );
- ELSE
- IF cl.iclass # NIL THEN
- ret := I.NewObject( cl.iclass, NIL, u.more, y.ADR(cl.tags^) );
- ELSE
- ret := I.NewObject( NIL, cl.name, u.more, y.ADR(cl.tags^) );
- END;
- END;
- ELSE
- IF mui THEN
- ret := m.NewObject( cl.name );
- ELSE
- IF cl.iclass # NIL THEN
- ret := I.NewObject( cl.iclass, NIL );
- ELSE
- ret := I.NewObject( NIL, cl.name );
- END;
- END;
- END;
-
- e.Remove( cl );
-
- (* $IFNOT GarbageCollector *)
-
- DISPOSE( cl.tags );
- DISPOSE( cl );
-
- (* $END *)
-
-
- IF no.tailPred # y.ADR( no.head ) THEN
- clTag( y.VAL( Class, no.tailPred ), ret );
- END;
-
- END;
- RETURN ret;
- END DEnd;
-
- PROCEDURE End*():m.Object;
- BEGIN
- RETURN DEnd( TRUE );
- END End;
-
- PROCEDURE end*();
- BEGIN
- y.SETREG( 0, End() );
- END end;
-
- PROCEDURE IEnd*():m.Object;
- BEGIN
- RETURN DEnd( FALSE );
- END IEnd;
-
- PROCEDURE iEnd*();
- BEGIN
- y.SETREG( 0, IEnd() );
- END iEnd;
-
- PROCEDURE EndObject( objname : ARRAY OF CHAR ):m.Object;
- BEGIN
- IF objname # no.tailPred(Class).name THEN HALT(100) END;
- RETURN End();
- END EndObject;
-
- PROCEDURE endFamily*{"MuiBasics.EndFamily"};
- PROCEDURE EndFamily*():m.Object; BEGIN RETURN EndObject( m.cFamily ) END EndFamily;
- PROCEDURE endMenustrip*{"MuiBasics.EndMenustrip"};
- PROCEDURE EndMenustrip*():m.Object; BEGIN RETURN EndObject( m.cMenustrip ) END EndMenustrip;
- PROCEDURE endMenu*{"MuiBasics.EndMenu"};
- PROCEDURE EndMenu*():m.Object; BEGIN RETURN EndObject( m.cMenu ) END EndMenu;
- PROCEDURE endMenuT*{"MuiBasics.EndMenuT"};
- PROCEDURE EndMenuT*():m.Object; BEGIN RETURN EndObject( m.cMenu ) END EndMenuT;
- PROCEDURE endMenuitem*{"MuiBasics.EndMenuitem"};
- PROCEDURE EndMenuitem*():m.Object; BEGIN RETURN EndObject( m.cMenuitem ) END EndMenuitem;
- PROCEDURE endWindow*{"MuiBasics.EndWindow"};
- PROCEDURE EndWindow*():m.Object; BEGIN RETURN EndObject( m.cWindow ) END EndWindow;
- PROCEDURE endImage*{"MuiBasics.EndImage"};
- PROCEDURE EndImage*():m.Object; BEGIN RETURN EndObject( m.cImage ) END EndImage;
- PROCEDURE endBitmap*{"MuiBasics.EndBitmap"};
- PROCEDURE EndBitmap*():m.Object; BEGIN RETURN EndObject( m.cBitmap ) END EndBitmap;
- PROCEDURE endBodychunk*{"MuiBasics.EndBodychunk"};
- PROCEDURE EndBodychunk*():m.Object; BEGIN RETURN EndObject( m.cImage ) END EndBodychunk;
- PROCEDURE endNotify*{"MuiBasics.EndNotify"};
- PROCEDURE EndNotify*():m.Object; BEGIN RETURN EndObject( m.cNotify ) END EndNotify;
- PROCEDURE endApplication*{"MuiBasics.EndApplication"};
- PROCEDURE EndApplication*():m.Object; BEGIN RETURN EndObject( m.cApplication ) END EndApplication;
- PROCEDURE endText*{"MuiBasics.EndText"};
- PROCEDURE EndText*():m.Object; BEGIN RETURN EndObject( m.cText ) END EndText;
- PROCEDURE endRectangle*{"MuiBasics.EndRectangle"};
- PROCEDURE EndRectangle*():m.Object; BEGIN RETURN EndObject( m.cRectangle ) END EndRectangle;
- PROCEDURE endList*{"MuiBasics.EndList"};
- PROCEDURE EndList*():m.Object; BEGIN RETURN EndObject( m.cList ) END EndList;
- PROCEDURE endProp*{"MuiBasics.EndProp"};
- PROCEDURE EndProp*():m.Object; BEGIN RETURN EndObject( m.cProp ) END EndProp;
- PROCEDURE endString*{"MuiBasics.EndString"};
- PROCEDURE EndString*():m.Object; BEGIN RETURN EndObject( m.cString ) END EndString;
- PROCEDURE endScrollbar*{"MuiBasics.EndScrollbar"};
- PROCEDURE EndScrollbar*():m.Object; BEGIN RETURN EndObject( m.cScrollbar ) END EndScrollbar;
- PROCEDURE endListview*{"MuiBasics.EndListview"};
- PROCEDURE EndListview*():m.Object; BEGIN RETURN EndObject( m.cListview ) END EndListview;
- PROCEDURE endRadio*{"MuiBasics.EndRadio"};
- PROCEDURE EndRadio*():m.Object; BEGIN RETURN EndObject( m.cRadio ) END EndRadio;
- PROCEDURE endVolumelist*{"MuiBasics.EndVolumelist"};
- PROCEDURE EndVolumelist*():m.Object; BEGIN RETURN EndObject( m.cVolumelist ) END EndVolumelist;
- PROCEDURE endFloattext*{"MuiBasics.EndFloattext"};
- PROCEDURE EndFloattext*():m.Object; BEGIN RETURN EndObject( m.cFloattext ) END EndFloattext;
- PROCEDURE endDirlist*{"MuiBasics.EndDirlist"};
- PROCEDURE EndDirlist*():m.Object; BEGIN RETURN EndObject( m.cDirlist ) END EndDirlist;
- PROCEDURE endSlider*{"MuiBasics.EndSlider"};
- PROCEDURE EndSlider*():m.Object; BEGIN RETURN EndObject( m.cSlider ) END EndSlider;
- PROCEDURE endCycle*{"MuiBasics.EndCycle"};
- PROCEDURE EndCycle*():m.Object; BEGIN RETURN EndObject( m.cCycle ) END EndCycle;
- PROCEDURE endGauge*{"MuiBasics.EndGauge"};
- PROCEDURE EndGauge*():m.Object; BEGIN RETURN EndObject( m.cGauge ) END EndGauge;
- PROCEDURE endScale*{"MuiBasics.EndScale"};
- PROCEDURE EndScale*():m.Object; BEGIN RETURN EndObject( m.cScale ) END EndScale;
- PROCEDURE endBoopsi*{"MuiBasics.EndBoopsi"};
- PROCEDURE EndBoopsi*():m.Object; BEGIN RETURN EndObject( m.cBoopsi ) END EndBoopsi;
- PROCEDURE endColorfield*{"MuiBasics.EndColorfield"};
- PROCEDURE EndColorfield*():m.Object; BEGIN RETURN EndObject( m.cColorfield ) END EndColorfield;
- PROCEDURE endColorpanel*{"MuiBasics.EndColorpanel"};
- PROCEDURE EndColorpanel*():m.Object; BEGIN RETURN EndObject( m.cColorpanel ) END EndColorpanel;
- PROCEDURE endColoradjust*{"MuiBasics.EndColoradjust"};
- PROCEDURE EndColoradjust*():m.Object; BEGIN RETURN EndObject( m.cColoradjust ) END EndColoradjust;
- PROCEDURE endPalette*{"MuiBasics.EndPalette"};
- PROCEDURE EndPalette*():m.Object; BEGIN RETURN EndObject( m.cPalette ) END EndPalette;
- PROCEDURE endGroup*{"MuiBasics.EndGroup"};
- PROCEDURE EndGroup*():m.Object; BEGIN RETURN EndObject( m.cGroup ) END EndGroup;
- PROCEDURE endRegister*{"MuiBasics.EndRegister"};
- PROCEDURE EndRegister*():m.Object; BEGIN RETURN EndObject( m.cRegister ) END EndRegister;
- PROCEDURE endVirtgroup*{"MuiBasics.EndVirtgroup"};
- PROCEDURE EndVirtgroup*():m.Object; BEGIN RETURN EndObject( m.cVirtgroup ) END EndVirtgroup;
- PROCEDURE endScrollgroup*{"MuiBasics.EndScrollgroup"};
- PROCEDURE EndScrollgroup*():m.Object; BEGIN RETURN EndObject( m.cScrollgroup ) END EndScrollgroup;
- PROCEDURE endPopstring*{"MuiBasics.EndPopstring"};
- PROCEDURE EndPopstring*():m.Object; BEGIN RETURN EndObject( m.cPopstring ) END EndPopstring;
- PROCEDURE endPopobject*{"MuiBasics.EndPopobject"};
- PROCEDURE EndPopobject*():m.Object; BEGIN RETURN EndObject( m.cPopobject ) END EndPopobject;
- PROCEDURE endPoplist*{"MuiBasics.EndPoplist"};
- PROCEDURE EndPoplist*():m.Object; BEGIN RETURN EndObject( m.cPoplist ) END EndPoplist;
- PROCEDURE endPopasl*{"MuiBasics.EndPopasl"};
- PROCEDURE EndPopasl*():m.Object; BEGIN RETURN EndObject( m.cPopasl ) END EndPopasl;
- PROCEDURE endScrmodelist*{"MuiBasics.EndScrmodelist"};
- PROCEDURE EndScrmodelist*():m.Object; BEGIN RETURN EndObject( m.cScrmodelist ) END EndScrmodelist;
- PROCEDURE endVGroup*{"MuiBasics.EndVGroup"};
- PROCEDURE EndVGroup*():m.Object; BEGIN RETURN EndGroup(); END EndVGroup;
- PROCEDURE endHGroup*{"MuiBasics.EndHGroup"};
- PROCEDURE EndHGroup*():m.Object; BEGIN RETURN EndGroup(); END EndHGroup;
- PROCEDURE endColGroup*{"MuiBasics.EndColGroup"};
- PROCEDURE EndColGroup*():m.Object; BEGIN RETURN EndGroup(); END EndColGroup;
- PROCEDURE endRowGroup*{"MuiBasics.EndRowGroup"};
- PROCEDURE EndRowGroup*():m.Object; BEGIN RETURN EndGroup(); END EndRowGroup;
- PROCEDURE endPageGroup*{"MuiBasics.EndPageGroup"};
- PROCEDURE EndPageGroup*():m.Object; BEGIN RETURN EndGroup(); END EndPageGroup;
- PROCEDURE endVGroupV*{"MuiBasics.EndVGroupV"};
- PROCEDURE EndVGroupV*():m.Object; BEGIN RETURN EndVirtgroup(); END EndVGroupV;
- PROCEDURE endHGroupV*{"MuiBasics.EndHGroupV"};
- PROCEDURE EndHGroupV*():m.Object; BEGIN RETURN EndVirtgroup(); END EndHGroupV;
- PROCEDURE endColGroupV*{"MuiBasics.EndColGroupV"};
- PROCEDURE EndColGroupV*():m.Object; BEGIN RETURN EndVirtgroup(); END EndColGroupV;
- PROCEDURE endRowGroupV*{"MuiBasics.EndRowGroupV"};
- PROCEDURE EndRowGroupV*():m.Object; BEGIN RETURN EndVirtgroup(); END EndRowGroupV;
- PROCEDURE endPageGroupV*{"MuiBasics.EndPageGroupV"};
- PROCEDURE EndPageGroupV*():m.Object; BEGIN RETURN EndVirtgroup(); END EndPageGroupV;
- PROCEDURE endRegisterGroup*{"MuiBasics.EndRegisterGroup"};
- PROCEDURE EndRegisterGroup*():m.Object; BEGIN RETURN EndObject( m.cRegister ) END EndRegisterGroup;
-
- PROCEDURE NewObjectA*( name{8} : e.STRPTR; tags{9} : u.TagListPtr );
- BEGIN
- NewClass();
- COPY( name^, no.tailPred(Class).name );
- TagsA( tags );
- END NewObjectA;
-
- PROCEDURE NewObject{"MuiBasics.NewObjectA"} ( name {8} : ARRAY OF CHAR; tags{9}.. : u.Tag );
-
-
- PROCEDURE INewObjectA*( iclass{8} : I.IClassPtr; name{9}: e.STRPTR; tags{10} : u.TagListPtr );
- BEGIN
- NewClass();
- IF name # NIL THEN
- COPY( name^, no.tailPred(Class).name );
- END;
- no.tailPred(Class).iclass := iclass;
- TagsA( tags );
- END INewObjectA;
-
- PROCEDURE INewObject*{"MuiBasics.INewObjectA"}( iclass{8} : I.IClassPtr; name {9} : ARRAY OF CHAR; tags{10}.. : u.Tag );
-
- (***************************************************************************
- ** Class Tree
- ****************************************************************************
- **
- ** rootclass (B00PSI's base class)
- ** +--Notify (implements notification mechanism)
- ** +--Family (handles multiple children)
- ** ! +--Menustrip (describes a complete menu strip)
- ** ! +--Menu (describes a single menu)
- ** ! \--Menuitem (describes a single menu item)
- ** +--Application (main class for all applications)
- ** +--Window (handles intuition window related topics)
- ** +--Area (base class for all GUI elements)
- ** +--Rectangle (creates (empty) rectangles)
- ** +--Image (creates images)
- ** +--Text (creates some text)
- ** +--String (creates a string gadget)
- ** +--Prop (creates a proportional gadget)
- ** +--Gauge (creates a fule gauge)
- ** +--Scale (creates a percentage scale)
- ** +--Boopsi (interface to B00PSI gadgets)
- ** +--Colorfield (creates a field with changeable color)
- ** +--List (creates a line-oriented list)
- ** ! +--Floattext (special list with floating text)
- ** ! +--Volumelist (special list with volumes)
- ** ! +--Scrmodelist (special list with screen modes)
- ** ! \--Dirlist (special list with files)
- ** +--Group (groups other GUI elements)
- ** +--Register (handles page groups with titles)
- ** +--Virtgroup (handles virtual groups)
- ** +--Scrollgroup (handles virtual groups with scrollers)
- ** +--Scrollbar (creates a scrollbar)
- ** +--Listview (creates a listview)
- ** +--Radio (creates radio buttons)
- ** +--Cycle (creates cycle gadgets)
- ** +--Slider (creates slider gadgets)
- ** +--Coloradjust (creates some RGB sliders)
- ** +--Palette (creates a complete palette gadget)
- ** +--Colorpanel (creates a panel of colors)
- ** +--Popstring (base class for popups)
- ** +--Popobject(popup a MUI object in a window)
- ** \--Popasl (popup an asl requester)
- **
- **************************************************************)
-
- (**************************************************************************
- **
- ** Object Generation
- ** -----------------
- **
- ** The xxxObject (and xChilds) procedures generate new instances of MUI classes.
- ** Every xxxObject can be followed by tagitems specifying initial create
- ** time attributes for the new object and must be terminated with the
- ** End macro:
- **
- ** StringObject;
- ** TagItem2( m.aStringContents, "foo",
- ** m.aStringMaxLen , 40 );
- ** obj := End();
- **
- ** With the Child, SubWindow and WindowContents shortcuts you can
- ** construct a complete GUI within one command:
- **
- ** ApplicationObject;
- **
- ** ...
- **
- ** SubWindow; WindowObject;
- ** WindowContents; VGroup;
- ** Child; String("foo",40);
- ** Child; String("bar",50);
- ** Child; HGroup;
- ** Child; CheckMark(TRUE);
- ** Child; CheckMark(FALSE);
- ** end;
- ** end;
- ** end;
- **
- ** SubWindow; WindowObject;
- ** WindowContents; HGroup;
- ** Child; ...;
- ** Child; ...;
- ** end;
- ** end;
- **
- ** ...
- **
- ** app := End();
- **
- ***************************************************************************)
-
- PROCEDURE FamilyObject*{"MuiBasics.FamilyObjectA"} ( tags{9}.. : u.Tag);
- PROCEDURE FamilyObjectA*( tags{9} : u.TagListPtr );
- BEGIN
- NewObjectA( y.ADR( m.cFamily ), tags );
- END FamilyObjectA;
-
- PROCEDURE MenustripObject*{"MuiBasics.MenustripObjectA"} ( tags{9}.. : u.Tag);
- PROCEDURE MenustripObjectA*( tags{9} : u.TagListPtr );
- BEGIN
- NewObjectA( y.ADR( m.cMenustrip ), tags );
- END MenustripObjectA;
-
- PROCEDURE MenuObject*{"MuiBasics.MenuObjectA"} ( tags{9}.. : u.Tag);
- PROCEDURE MenuObjectA*( tags{9} : u.TagListPtr );
- BEGIN
- NewObjectA( y.ADR( m.cMenu ), tags );
- END MenuObjectA;
-
- PROCEDURE MenuObjectT*{"MuiBasics.MenuObjectTA"} ( name{8}:e.STRPTR; tags{9}.. : u.Tag);
- PROCEDURE MenuObjectTA*( name{8}:e.STRPTR; tags{9} : u.TagListPtr );
- BEGIN
- MenuObject( m.aMenuTitle, name, u.done );
- TagsA( tags );
- END MenuObjectTA;
-
- PROCEDURE MenuitemObject*{"MuiBasics.MenuitemObjectA"} ( tags{9}.. : u.Tag);
- PROCEDURE MenuitemObjectA*( tags{9} : u.TagListPtr );
- BEGIN
- NewObjectA( y.ADR( m.cMenuitem ), tags );
- END MenuitemObjectA;
-
- PROCEDURE WindowObject*{"MuiBasics.WindowObjectA"} ( tags{9}.. : u.Tag);
- PROCEDURE WindowObjectA*( tags{9} : u.TagListPtr );
- BEGIN
- NewObjectA( y.ADR( m.cWindow ), tags );
- END WindowObjectA;
-
- PROCEDURE ImageObject*{"MuiBasics.ImageObjectA"} ( tags{9}.. : u.Tag);
- PROCEDURE ImageObjectA*( tags{9} : u.TagListPtr );
- BEGIN
- NewObjectA( y.ADR( m.cImage ), tags );
- END ImageObjectA;
-
- PROCEDURE BitmapObject*{"MuiBasics.BitmapObjectA"} ( tags{9}.. : u.Tag);
- PROCEDURE BitmapObjectA*( tags{9} : u.TagListPtr );
- BEGIN
- NewObjectA( y.ADR( m.cBitmap ), tags );
- END BitmapObjectA;
-
- PROCEDURE BodychunkObject*{"MuiBasics.BodychunkObjectA"} ( tags{9}.. : u.Tag);
- PROCEDURE BodychunkObjectA*( tags{9} : u.TagListPtr );
- BEGIN
- NewObjectA( y.ADR( m.cBodychunk ), tags );
- END BodychunkObjectA;
-
- PROCEDURE NotifyObject*{"MuiBasics.NotifyObjectA"} ( tags{9}.. : u.Tag);
- PROCEDURE NotifyObjectA*( tags{9} : u.TagListPtr );
- BEGIN
- NewObjectA( y.ADR( m.cNotify ), tags );
- END NotifyObjectA;
-
- PROCEDURE ApplicationObject*{"MuiBasics.ApplicationObjectA"} ( tags{9}.. : u.Tag);
- PROCEDURE ApplicationObjectA*( tags{9} : u.TagListPtr );
- BEGIN
- NewObjectA( y.ADR( m.cApplication ), tags );
- END ApplicationObjectA;
-
- PROCEDURE TextObject*{"MuiBasics.TextObjectA"} ( tags{9}.. : u.Tag);
- PROCEDURE TextObjectA*( tags{9} : u.TagListPtr );
- BEGIN
- NewObjectA( y.ADR( m.cText ), tags );
- END TextObjectA;
-
- PROCEDURE RectangleObject*{"MuiBasics.RectangleObjectA"} ( tags{9}.. : u.Tag);
- PROCEDURE RectangleObjectA*( tags{9} : u.TagListPtr );
- BEGIN
- NewObjectA( y.ADR( m.cRectangle ), tags );
- END RectangleObjectA;
-
- PROCEDURE ListObject*{"MuiBasics.ListObjectA"} ( tags{9}.. : u.Tag);
- PROCEDURE ListObjectA*( tags{9} : u.TagListPtr );
- BEGIN
- NewObjectA( y.ADR( m.cList ), tags );
- END ListObjectA;
-
- PROCEDURE PropObject*{"MuiBasics.PropObjectA"} ( tags{9}.. : u.Tag);
- PROCEDURE PropObjectA*( tags{9} : u.TagListPtr );
- BEGIN
- NewObjectA( y.ADR( m.cProp ), tags );
- END PropObjectA;
-
- PROCEDURE StringObject*{"MuiBasics.StringObjectA"} ( tags{9}.. : u.Tag);
- PROCEDURE StringObjectA*( tags{9} : u.TagListPtr );
- BEGIN
- NewObjectA( y.ADR( m.cString ), tags );
- END StringObjectA;
-
- PROCEDURE ScrollbarObject*{"MuiBasics.ScrollbarObjectA"} ( tags{9}.. : u.Tag);
- PROCEDURE ScrollbarObjectA*( tags{9} : u.TagListPtr );
- BEGIN
- NewObjectA( y.ADR( m.cScrollbar ), tags );
- END ScrollbarObjectA;
-
- PROCEDURE ListviewObject*{"MuiBasics.ListviewObjectA"} ( tags{9}.. : u.Tag);
- PROCEDURE ListviewObjectA*( tags{9} : u.TagListPtr );
- BEGIN
- NewObjectA( y.ADR( m.cListview), tags );
- END ListviewObjectA;
-
- PROCEDURE RadioObject*{"MuiBasics.RadioObjectA"} ( tags{9}.. : u.Tag);
- PROCEDURE RadioObjectA*( tags{9} : u.TagListPtr );
- BEGIN
- NewObjectA( y.ADR( m.cRadio ), tags );
- END RadioObjectA;
-
- PROCEDURE VolumelistObject*{"MuiBasics.VolumelistObjectA"} ( tags{9}.. : u.Tag);
- PROCEDURE VolumelistObjectA*( tags{9} : u.TagListPtr );
- BEGIN
- NewObjectA( y.ADR( m.cVolumelist), tags );
- END VolumelistObjectA;
-
- PROCEDURE FloattextObject*{"MuiBasics.FloattextObjectA"} ( tags{9}.. : u.Tag);
- PROCEDURE FloattextObjectA*( tags{9} : u.TagListPtr );
- BEGIN
- NewObjectA( y.ADR( m.cFloattext), tags );
- END FloattextObjectA;
-
- PROCEDURE DirlistObject*{"MuiBasics.DirlistObjectA"} ( tags{9}.. : u.Tag);
- PROCEDURE DirlistObjectA*( tags{9} : u.TagListPtr );
- BEGIN
- NewObjectA( y.ADR( m.cDirlist ), tags );
- END DirlistObjectA;
-
- PROCEDURE SliderObject*{"MuiBasics.SliderObjectA"} ( tags{9}.. : u.Tag);
- PROCEDURE SliderObjectA*( tags{9} : u.TagListPtr );
- BEGIN
- NewObjectA( y.ADR( m.cSlider ), tags );
- END SliderObjectA;
-
- PROCEDURE CycleObject*{"MuiBasics.CycleObjectA"} ( tags{9}.. : u.Tag);
- PROCEDURE CycleObjectA*( tags{9} : u.TagListPtr );
- BEGIN
- NewObjectA( y.ADR( m.cCycle ), tags );
- END CycleObjectA;
-
- PROCEDURE GaugeObject*{"MuiBasics.GaugeObjectA"} ( tags{9}.. : u.Tag);
- PROCEDURE GaugeObjectA*( tags{9} : u.TagListPtr );
- BEGIN
- NewObjectA( y.ADR( m.cGauge ), tags );
- END GaugeObjectA;
-
- PROCEDURE ScaleObject*{"MuiBasics.ScaleObjectA"} ( tags{9}.. : u.Tag);
- PROCEDURE ScaleObjectA*( tags{9} : u.TagListPtr );
- BEGIN
- NewObjectA( y.ADR( m.cScale ), tags );
- END ScaleObjectA;
-
- PROCEDURE BoopsiObject*{"MuiBasics.BoopsiObjectA"} ( tags{9}.. : u.Tag);
- PROCEDURE BoopsiObjectA*( tags{9} : u.TagListPtr );
- BEGIN
- NewObjectA( y.ADR( m.cBoopsi ), tags );
- END BoopsiObjectA;
-
- PROCEDURE ColorfieldObject*{"MuiBasics.ColorfieldObjectA"} ( tags{9}.. : u.Tag);
- PROCEDURE ColorfieldObjectA*( tags{9} : u.TagListPtr );
- BEGIN
- NewObjectA( y.ADR( m.cColorfield ), tags );
- END ColorfieldObjectA;
-
- PROCEDURE ColorpanelObject*{"MuiBasics.ColorpanelObjectA"} ( tags{9}.. : u.Tag);
- PROCEDURE ColorpanelObjectA*( tags{9} : u.TagListPtr );
- BEGIN
- NewObjectA( y.ADR( m.cColorpanel ), tags );
- END ColorpanelObjectA;
-
- PROCEDURE ColoradjustObject*{"MuiBasics.ColoradjustObjectA"} ( tags{9}.. : u.Tag);
- PROCEDURE ColoradjustObjectA*( tags{9} : u.TagListPtr );
- BEGIN
- NewObjectA( y.ADR( m.cColoradjust ), tags );
- END ColoradjustObjectA;
-
- PROCEDURE PaletteObject*{"MuiBasics.PaletteObjectA"} ( tags{9}.. : u.Tag);
- PROCEDURE PaletteObjectA*( tags{9} : u.TagListPtr );
- BEGIN
- NewObjectA( y.ADR( m.cPalette ), tags );
- END PaletteObjectA;
-
- PROCEDURE GroupObject*{"MuiBasics.GroupObjectA"} ( tags{9}.. : u.Tag);
- PROCEDURE GroupObjectA*( tags{9} : u.TagListPtr );
- BEGIN
- NewObjectA( y.ADR( m.cGroup), tags );
- END GroupObjectA;
-
- PROCEDURE RegisterObject*{"MuiBasics.RegisterObjectA"} ( tags{9}.. : u.Tag);
- PROCEDURE RegisterObjectA*( tags{9} : u.TagListPtr );
- BEGIN
- NewObjectA( y.ADR( m.cRegister ), tags );
- END RegisterObjectA;
-
- PROCEDURE VirtgroupObject*{"MuiBasics.VirtgroupObjectA"} ( tags{9}.. : u.Tag);
- PROCEDURE VirtgroupObjectA*( tags{9} : u.TagListPtr );
- BEGIN
- NewObjectA( y.ADR( m.cVirtgroup ), tags );
- END VirtgroupObjectA;
-
- PROCEDURE ScrollgroupObject*{"MuiBasics.ScrollgroupObjectA"} ( tags{9}.. : u.Tag);
- PROCEDURE ScrollgroupObjectA*( tags{9} : u.TagListPtr );
- BEGIN
- NewObjectA( y.ADR( m.cScrollgroup ), tags );
- END ScrollgroupObjectA;
-
- PROCEDURE PopstringObject*{"MuiBasics.PopstringObjectA"} ( tags{9}.. : u.Tag);
- PROCEDURE PopstringObjectA*( tags{9} : u.TagListPtr );
- BEGIN
- NewObjectA( y.ADR( m.cPopstring ), tags );
- END PopstringObjectA;
-
- PROCEDURE PopobjectObject*{"MuiBasics.PopobjectObjectA"} ( tags{9}.. : u.Tag);
- PROCEDURE PopobjectObjectA*( tags{9} : u.TagListPtr );
- BEGIN
- NewObjectA( y.ADR( m.cPopobject ), tags );
- END PopobjectObjectA;
-
- PROCEDURE PoplistObject*{"MuiBasics.PoplistObjectA"} ( tags{9}.. : u.Tag);
- PROCEDURE PoplistObjectA*( tags{9} : u.TagListPtr );
- BEGIN
- NewObjectA( y.ADR( m.cPoplist ), tags );
- END PoplistObjectA;
-
- PROCEDURE PopaslObject*{"MuiBasics.PopaslObjectA"} ( tags{9}.. : u.Tag);
- PROCEDURE PopaslObjectA*( tags{9} : u.TagListPtr );
- BEGIN
- NewObjectA( y.ADR( m.cPopasl ), tags );
- END PopaslObjectA;
-
- PROCEDURE ScrmodelistObject*{"MuiBasics.ScrmodelistObjectA"} ( tags{9}.. : u.Tag);
- PROCEDURE ScrmodelistObjectA*( tags{9} : u.TagListPtr );
- BEGIN
- NewObjectA( y.ADR( m.cScrmodelist ), tags );
- END ScrmodelistObjectA;
-
- PROCEDURE VGroup*{"MuiBasics.VGroupA"}( tags{9}.. : u.Tag );
- PROCEDURE VGroupA*( tags{9} : u.TagListPtr );
- BEGIN
- NewObjectA( y.ADR( m.cGroup ), tags );
- TagsA( tags );
- END VGroupA;
-
- PROCEDURE HGroup*{"MuiBasics.HGroupA"}( tags{9}.. : u.Tag );
- PROCEDURE HGroupA*( tags{9} : u.TagListPtr );
- BEGIN
- NewObject( m.cGroup, m.aGroupHoriz, e.true, u.end );
- TagsA( tags );
- END HGroupA;
-
- PROCEDURE ColGroup*{"MuiBasics.ColGroupA"} ( cols{3} : LONGINT; tags{9}.. : u.Tag );
- PROCEDURE ColGroupA*( cols{3} : LONGINT; tags{9} : u.TagListPtr );
- BEGIN
- NewObject( m.cGroup, m.aGroupColumns, cols, u.end );
- TagsA( tags );
- END ColGroupA;
-
- PROCEDURE RowGroup*{"MuiBasics.RowGroupA"}( rows{3} : LONGINT; tags{9}.. : u.Tag );
- PROCEDURE RowGroupA*( rows{3} : LONGINT; tags{9} : u.TagListPtr );
- BEGIN
- NewObject( m.cGroup, m.aGroupRows, rows, u.end );
- TagsA( tags );
- END RowGroupA;
-
- PROCEDURE PageGroup*{"MuiBasics.PageGroupA"}( tags{9}.. : u.Tag );
- PROCEDURE PageGroupA*( tags{9} : u.TagListPtr );
- BEGIN
- NewObject( m.cGroup, m.aGroupPageMode, e.true, u.end );
- TagsA( tags );
- END PageGroupA;
-
- PROCEDURE VGroupV*{"MuiBasics.VGroupAV"}( tags{9}.. : u.Tag );
- PROCEDURE VGroupAV*( tags{9} : u.TagListPtr );
- BEGIN
- NewObjectA( y.ADR( m.cVirtgroup ), tags );
- TagsA( tags );
- END VGroupAV;
-
- PROCEDURE HGroupV*{"MuiBasics.HGroupAV"}( tags{9}.. : u.Tag );
- PROCEDURE HGroupAV*( tags{9} : u.TagListPtr );
- BEGIN
- NewObject( m.cVirtgroup, m.aGroupHoriz, e.true, u.end );
- TagsA( tags );
- END HGroupAV;
-
- PROCEDURE ColGroupV*{"MuiBasics.ColGroupAV"} ( cols{3} : LONGINT; tags{9}.. : u.Tag );
- PROCEDURE ColGroupAV*( cols{3} : LONGINT; tags{9} : u.TagListPtr );
- BEGIN
- NewObject( m.cVirtgroup, m.aGroupColumns, cols, u.end );
- TagsA( tags );
- END ColGroupAV;
-
- PROCEDURE RowGroupV*{"MuiBasics.RowGroupAV"}( rows{3} : LONGINT; tags{9}.. : u.Tag );
- PROCEDURE RowGroupAV*( rows{3} : LONGINT; tags{9} : u.TagListPtr );
- BEGIN
- NewObject( m.cVirtgroup, m.aGroupRows, rows, u.end );
- TagsA( tags );
- END RowGroupAV;
-
- PROCEDURE PageGroupV*{"MuiBasics.PageGroupAV"}( tags{9}.. : u.Tag );
- PROCEDURE PageGroupAV*( tags{9} : u.TagListPtr );
- BEGIN
- NewObject( m.cVirtgroup, m.aGroupPageMode, e.true, u.end );
- TagsA( tags );
- END PageGroupAV;
-
- PROCEDURE RegisterGroup*{"MuiBasics.RegisterGroupA"}( t{8} : e.APTR; tags{9}.. : u.Tag );
- PROCEDURE RegisterGroupA*( t{8} : e.APTR; tags{9} : u.TagListPtr );
- BEGIN
- NewObject( m.cRegister, m.aRegisterTitles, t, u.end );
- TagsA( tags );
- END RegisterGroupA;
-
- PROCEDURE Child*();
- BEGIN
- Tag( m.aGroupChild );
- END Child;
-
- PROCEDURE SubWindow*();
- BEGIN
- Tag( m.aApplicationWindow );
- END SubWindow;
-
- PROCEDURE WindowContents*();
- BEGIN
- Tag( m.aWindowRootObject );
- END WindowContents;
-
- (***************************************************************************
- **
- ** Frame Types
- ** -----------
- **
- ** These procedures may be used to specify one of MUI's different frame types.
- ** Note that every procedure consists of one or more { ti_Tag, ti_Data }
- ** pairs.
- **
- ** GroupFrameT() is a special kind of frame that contains a centered
- ** title text.
- **
- ** HGroup; GroupFrameT("Horiz Groups");
- ** Child; RectangleObject; TextFrame ; end;
- ** Child; RectangleObject; StringFrame; end;
- ** Child; RectangleObject; ButtonFrame; end;
- ** Child; RectangleObject; ListFrame ; end;
- ** end;
- **
- ***************************************************************************)
-
- PROCEDURE NoFrame*{"MuiBasics.NoFrameA"} ( tags{9}.. : u.Tag );
- PROCEDURE NoFrameA*( tags{9} : u.TagListPtr );
- BEGIN
- TagItem( m.aFrame , m.vFrameNone );
- TagsA( tags );
- END NoFrameA;
-
- PROCEDURE ButtonFrame*{"MuiBasics.ButtonFrameA"} ( tags{9}.. : u.Tag );
- PROCEDURE ButtonFrameA*( tags{9} : u.TagListPtr );
- BEGIN
- TagItem( m.aFrame , m.vFrameButton );
- TagsA( tags );
- END ButtonFrameA;
-
- PROCEDURE ImageButtonFrame*{"MuiBasics.ImageButtonFrameA"} ( tags{9}.. : u.Tag );
- PROCEDURE ImageButtonFrameA*( tags{9} : u.TagListPtr );
- BEGIN
- TagItem( m.aFrame , m.vFrameImageButton );
- TagsA( tags );
- END ImageButtonFrameA;
-
- PROCEDURE TextFrame*{"MuiBasics.TextFrameA"} ( tags{9}.. : u.Tag );
- PROCEDURE TextFrameA*( tags{9} : u.TagListPtr );
- BEGIN
- TagItem( m.aFrame , m.vFrameText );
- TagsA( tags );
- END TextFrameA;
-
- PROCEDURE StringFrame*{"MuiBasics.StringFrameA"} ( tags{9}.. : u.Tag );
- PROCEDURE StringFrameA*( tags{9} : u.TagListPtr );
- BEGIN
- TagItem( m.aFrame , m.vFrameString );
- TagsA( tags );
- END StringFrameA;
-
- PROCEDURE ReadListFrame*{"MuiBasics.ReadListFrameA"} ( tags{9}.. : u.Tag );
- PROCEDURE ReadListFrameA*( tags{9} : u.TagListPtr );
- BEGIN
- TagItem( m.aFrame , m.vFrameReadList );
- TagsA( tags );
- END ReadListFrameA;
-
- PROCEDURE InputListFrame*{"MuiBasics.InputListFrameA"} ( tags{9}.. : u.Tag );
- PROCEDURE InputListFrameA*( tags{9} : u.TagListPtr );
- BEGIN
- TagItem( m.aFrame , m.vFrameInputList );
- TagsA( tags );
- END InputListFrameA;
-
- PROCEDURE PropFrame*{"MuiBasics.PropFrameA"} ( tags{9}.. : u.Tag );
- PROCEDURE PropFrameA*( tags{9} : u.TagListPtr );
- BEGIN
- TagItem( m.aFrame , m.vFrameProp );
- TagsA( tags );
- END PropFrameA;
-
- PROCEDURE SliderFrame*{"MuiBasics.SliderFrameA"} ( tags{9}.. : u.Tag );
- PROCEDURE SliderFrameA*( tags{9} : u.TagListPtr );
- BEGIN
- TagItem( m.aFrame , m.vFrameSlider );
- TagsA( tags );
- END SliderFrameA;
-
- PROCEDURE GaugeFrame*{"MuiBasics.GaugeFrameA"} ( tags{9}.. : u.Tag );
- PROCEDURE GaugeFrameA*( tags{9} : u.TagListPtr );
- BEGIN
- TagItem( m.aFrame , m.vFrameGauge );
- TagsA( tags );
- END GaugeFrameA;
-
- PROCEDURE VirtualFrame*{"MuiBasics.VirtualFrameA"} ( tags{9}.. : u.Tag );
- PROCEDURE VirtualFrameA*( tags{9} : u.TagListPtr );
- BEGIN
- TagItem( m.aFrame , m.vFrameVirtual );
- TagsA( tags );
- END VirtualFrameA;
-
- PROCEDURE GroupFrame*{"MuiBasics.GroupFrameA"} ( tags{9}.. : u.Tag );
- PROCEDURE GroupFrameA*( tags{9} : u.TagListPtr );
- BEGIN
- TagItem( m.aFrame , m.vFrameGroup );
- TagsA( tags );
- END GroupFrameA;
-
- PROCEDURE GroupFrameT*{"MuiBasics.GroupFrameTA"}( s{8} : ARRAY OF CHAR; tags{9}.. : u.Tag );
- PROCEDURE GroupFrameTA*( s{8} : e.STRPTR; tags{9} : u.TagListPtr );
- BEGIN
- TagItem2( m.aFrame, m.vFrameGroup, m.aFrameTitle, s );
- TagsA( tags );
- END GroupFrameTA;
-
- (***************************************************************************
- **
- ** Baring Procedures
- ** ------------------
- **
- ***************************************************************************)
-
- PROCEDURE HBar*();
- BEGIN
- Tag( m.NewObject( m.cRectangle,
- m.aRectangleHBar, e.true,
- m.aFixHeight, 2,
- u.done ) );
- END HBar;
-
- PROCEDURE VBar*();
- BEGIN
- Tag( m.NewObject( m.cRectangle,
- m.aRectangleVBar, e.true,
- m.aFixWidth, 2,
- u.done ) );
- END VBar;
-
- (***************************************************************************
- **
- ** Spacing Procedures
- ** ------------------
- **
- ***************************************************************************)
-
- PROCEDURE GroupSpacing*( x: LONGINT );
- BEGIN
- TagItem( m.aGroupSpacing, x );
- END GroupSpacing;
-
- PROCEDURE HVSpace*();
- BEGIN
- Tag( m.NewObject( m.cRectangle, u.done ) );
- END HVSpace;
-
- PROCEDURE HSpace*( x : LONGINT );
- VAR t : u.Tags3;
- BEGIN
- IF x # 0 THEN
- t[0].tag := m.aFixWidth;
- t[0].data := x;
- ELSE
- t[0].tag := u.ignore;
- END;
- t[1] := u.TagItem( m.aVertWeight, 0 );
- t[2] := u.TagItem( u.done, 0 );
- Tag( m.NewObjectA( m.cRectangle, t ) );
- END HSpace;
-
- PROCEDURE VSpace*( x : LONGINT );
- VAR t : u.Tags3;
- BEGIN
- IF x # 0 THEN
- t[0].tag := m.aFixHeight;
- t[0].data := x;
- ELSE
- t[0].tag := u.ignore;
- END;
- t[1] := u.TagItem( m.aHorizWeight, 0 );
- t[2] := u.TagItem( u.done, 0 );
- Tag( m.NewObjectA( m.cRectangle, t ) );
- END VSpace;
-
- PROCEDURE HCenterBegin*();
- BEGIN
- HGroup; GroupSpacing( 0 );
- Child; HSpace( 0 );
- END HCenterBegin;
-
- PROCEDURE HCenterEnd*();
- BEGIN
- Child; HSpace( 0 );
- end;
- END HCenterEnd;
-
- PROCEDURE VCenterBegin*();
- BEGIN
- VGroup; GroupSpacing( 0 );
- Child ; VSpace( 0 );
- END VCenterBegin;
-
- PROCEDURE VCenterEnd*();
- BEGIN
- Child ; VSpace( 0 );
- end;
- END VCenterEnd;
-
- PROCEDURE InnerSpacing*( h, v : LONGINT );
- BEGIN
- Tags( m.aInnerLeft , h,
- m.aInnerRight , h,
- m.aInnerTop , v,
- m.aInnerBottom , v,
- u.end );
- END InnerSpacing;
-
-
- (***************************************************************************
- **
- ** String-Object
- ** -------------
- **
- ** The following procedure creates a simple string gadget.
- **
- ***************************************************************************)
-
- PROCEDURE String * {"MuiBasics.StringA"} ( contents{8} : e.STRPTR; maxlen{3} : LONGINT; tags{9}.. : u.Tag ):m.Object;
- PROCEDURE string * {"MuiBasics.StringA"} ( contents{8} : e.STRPTR; maxlen{3} : LONGINT; tags{9}.. : u.Tag );
- PROCEDURE StringA*( contents{8} : e.STRPTR; maxlen{3} : LONGINT; tags{9} : u.TagListPtr ):m.Object;
- BEGIN
- StringObject; StringFrame;
- TagItem2( m.aStringMaxLen, maxlen,
- m.aStringContents, contents );
- TagsA( tags );
- RETURN End();
- END StringA;
-
- PROCEDURE KeyString * {"MuiBasics.KeyStringA"} ( contents{8} : e.STRPTR; maxlen{3} : LONGINT; controlchar{4}: CHAR; tags{9}.. : u.Tag ):m.Object;
- PROCEDURE keyString * {"MuiBasics.KeyStringA"} ( contents{8} : e.STRPTR; maxlen{3} : LONGINT; controlchar{4}: CHAR; tags{9}.. : u.Tag );
- PROCEDURE KeyStringA*( contents{8} : e.STRPTR; maxlen{3} : LONGINT; controlchar{4} : LONGINT; tags{9} : u.TagListPtr ):m.Object;
- BEGIN
- y.INLINE( 0284H, 0000H, 00FFH ); (* andi.l #000000FF,d4 *)
- RETURN String( contents, maxlen, m.aControlChar, controlchar, u.more, tags );
- END KeyStringA;
-
- (***************************************************************************
- **
- ** Integer-Object
- ** --------------
- **
- ** The following procedure creates a simple integer string gadget.
- **
- ***************************************************************************)
-
- PROCEDURE Integer * {"MuiBasics.IntegerA"} ( contents{2} : LONGINT; maxlen{3} : LONGINT; tags{9}.. : u.Tag ):m.Object;
- PROCEDURE integer * {"MuiBasics.IntegerA"} ( contents{2} : LONGINT; maxlen{3} : LONGINT; tags{9}.. : u.Tag );
- PROCEDURE IntegerA*( contents{2} : e.STRPTR; maxlen{3} : LONGINT; tags{9} : u.TagListPtr ):m.Object;
- BEGIN
- StringObject; StringFrame;
- TagItem3( m.aStringMaxLen, maxlen,
- m.aStringInteger, contents,
- m.aStringAccept, y.ADR( "0123456789" ) );
-
- TagsA( tags );
- RETURN End();
- END IntegerA;
-
-
- PROCEDURE KeyInteger * {"MuiBasics.KeyIntegerA"} ( contents{2} : LONGINT; maxlen{3} : LONGINT; controlchar{4}: CHAR; tags{9}.. : u.Tag ):m.Object;
- PROCEDURE keyInteger * {"MuiBasics.KeyIntegerA"} ( contents{2} : LONGINT; maxlen{3} : LONGINT; controlchar{4}: CHAR; tags{9}.. : u.Tag );
- PROCEDURE KeyIntegerA*( contents{2} : LONGINT; maxlen{3} : LONGINT; controlchar{4} : LONGINT; tags{9} : u.TagListPtr ):m.Object;
- BEGIN
- y.INLINE( 0284H, 0000H, 00FFH ); (* andi.l #000000FF,d4 *)
- RETURN Integer( contents, maxlen, m.aControlChar, controlchar, u.more, tags );
- END KeyIntegerA;
-
-
- (***************************************************************************
- **
- ** CheckMark-Object
- ** ----------------
- **
- ** The following procedure creates a checkmark gadget.
- **
- ***************************************************************************)
-
- PROCEDURE CheckMark * {"MuiBasics.CheckMarkA"}( checked{4} : BOOLEAN; tags{9}.. : u.Tag ):m.Object;
- PROCEDURE checkMark * {"MuiBasics.CheckMarkA"}( checked{4} : BOOLEAN; tags{9}.. : u.Tag );
- PROCEDURE CheckMarkA*( checked{4} : e.LONGBOOL; tags{9} : u.TagListPtr ):m.Object;
- BEGIN
- y.INLINE( 0284H, 0000H, 00FFH ); (* andi.l #000000FF,d4 *)
- ImageObject;
- ImageButtonFrame;
- Tags( m.aInputMode , m.vInputModeToggle,
- m.aImageSpec , m.iCheckMark,
- m.aImageFreeVert, e.true,
- m.aSelected , checked,
- m.aBackground , m.iButtonBack,
- m.aShowSelState , e.false,
- u.end );
- TagsA( tags );
- RETURN End();
- END CheckMarkA;
-
-
- PROCEDURE KeyCheckMark *{"MuiBasics.KeyCheckMarkA"}( checked{4} : BOOLEAN; key{3} : CHAR; tags{9}.. : u.Tag ):m.Object;
- PROCEDURE keyCheckMark *{"MuiBasics.KeyCheckMarkA"}( checked{4} : BOOLEAN; key{3} : CHAR; tags{9}.. : u.Tag );
- PROCEDURE KeyCheckMarkA*( checked{4} : e.LONGBOOL; key{3} : LONGINT; tags{9} : u.TagListPtr ):m.Object;
- BEGIN
- y.INLINE( 0283H, 0000H, 00FFH ); (* andi.l #000000FF,d3 *)
- y.INLINE( 0284H, 0000H, 00FFH ); (* andi.l #000000FF,d4 *)
- RETURN CheckMark( y.VAL( BOOLEAN, SHORT(SHORT(checked)) ), m.aControlChar, key, u.more, tags );
- END KeyCheckMarkA;
-
-
- (***************************************************************************
- **
- ** Button-Objects
- ** --------------
- **
- ** Note: Use small letters for KeyButtons, e.g.
- ** KeyButton("Cancel",'c') and not KeyButton("Cancel",'C') !!
- **
- ***************************************************************************)
-
- PROCEDURE SimpleButton * {"MuiBasics.SimpleButtonA"} ( name{8} : ARRAY OF CHAR; tags{9}.. : u.Tag ):m.Object;
- PROCEDURE simpleButton * {"MuiBasics.SimpleButtonA"} ( name{8} : ARRAY OF CHAR; tags{9}.. : u.Tag );
- PROCEDURE SimpleButtonA * ( name{8} : e.STRPTR; tags{9} : u.TagListPtr ):m.Object;
- BEGIN
- TextObject;
- ButtonFrame;
- Tags( m.aTextContents, name,
- m.aTextPreParse, y.ADR("\033c"),
- m.aTextSetMax , e.false,
- m.aInputMode , m.vInputModeRelVerify,
- m.aBackground , m.iButtonBack,
- u.end );
- TagsA( tags );
- RETURN End();
- END SimpleButtonA;
-
-
- PROCEDURE KeyButton * {"MuiBasics.KeyButtonA"} ( name{8} : ARRAY OF CHAR; key{4} : CHAR; tags{9}.. : u.Tag ):m.Object;
- PROCEDURE keyButton * {"MuiBasics.KeyButtonA"} ( name{8} : ARRAY OF CHAR; key{4} : CHAR; tags{9}.. : u.Tag );
- PROCEDURE KeyButtonA * ( name{8} : e.STRPTR; key{4} : LONGINT; tags{9} : u.TagListPtr ):m.Object;
- BEGIN
- y.INLINE( 0284H, 0000H, 00FFH ); (* andi.l #000000FF,d4 *)
- RETURN SimpleButton( name^, m.aTextHiChar, key, m.aControlChar, key, u.more, tags );
- END KeyButtonA;
-
- (***************************************************************************
- **
- ** Cycle-Object
- ** ------------
- **
- ***************************************************************************)
-
- PROCEDURE Cycle * {"MuiBasics.CycleA"} ( entries{10} : e.APTR; tags{9}.. : u.Tag ):m.Object;
- PROCEDURE cycle * {"MuiBasics.CycleA"} ( entries{10} : e.APTR; tags{9}.. : u.Tag );
- PROCEDURE CycleA * ( entries{10} : e.APTR; tags{9} : u.TagListPtr ):m.Object;
- BEGIN
- CycleObject( m.aCycleEntries, entries, u.end );
- TagsA( tags );
- RETURN End();
- END CycleA;
-
-
- PROCEDURE KeyCycle * {"MuiBasics.KeyCycleA"} ( entries{10} : e.APTR; key{4} : CHAR; tags{9}.. : u.Tag ):m.Object;
- PROCEDURE keyCycle * {"MuiBasics.KeyCycleA"} ( entries{10} : e.APTR; key{4} : CHAR; tags{9}.. : u.Tag );
- PROCEDURE KeyCycleA * ( entries{10} : e.APTR; key{4} : LONGINT; tags{9} : u.TagListPtr ):m.Object;
- BEGIN
- y.INLINE( 0284H, 0000H, 00FFH ); (* andi.l #000000FF,d4 *)
- RETURN Cycle( entries, m.aControlChar, key, u.more, tags );
- END KeyCycleA;
-
-
- (***************************************************************************
- **
- ** Radio-Object
- ** ------------
- **
- ***************************************************************************)
-
- PROCEDURE Radio * {"MuiBasics.RadioA"} ( name{8} : ARRAY OF CHAR; entries{10} : e.APTR; tags{9}.. : u.Tag ):m.Object;
- PROCEDURE radio * {"MuiBasics.RadioA"} ( name{8} : ARRAY OF CHAR; entries{10} : e.APTR; tags{9}.. : u.Tag );
- PROCEDURE RadioA * ( name{8}: e.STRPTR; entries{10} : e.APTR; tags{9} : u.TagListPtr ):m.Object;
- BEGIN
- RadioObject;
- GroupFrameT( name^ );
- TagItem( m.aRadioEntries, entries );
- TagsA( tags );
- RETURN End();
- END RadioA;
-
- PROCEDURE KeyRadio * {"MuiBasics.KeyRadioA"} ( name{8} : ARRAY OF CHAR; entries{10} : e.APTR; key{4} : CHAR; tags{9}.. : u.Tag ):m.Object;
- PROCEDURE keyRadio * {"MuiBasics.KeyRadioA"} ( name{8} : ARRAY OF CHAR; entries{10} : e.APTR; key{4} : CHAR; tags{9}.. : u.Tag );
- PROCEDURE KeyRadioA * ( name{8}: e.STRPTR; entries{10} : e.APTR; key{4} : LONGINT; tags{9} : u.TagListPtr ):m.Object;
- BEGIN
- y.INLINE( 0284H, 0000H, 00FFH ); (* andi.l #000000FF,d4 *)
- RETURN Radio(name^, entries, m.aControlChar, key, u.more, tags );
- END KeyRadioA;
-
-
- (***************************************************************************
- **
- ** Slider-Object
- ** -------------
- **
- ***************************************************************************)
-
- PROCEDURE Slider * {"MuiBasics.SliderA"} ( min{2}, max{3}, level{4} : LONGINT; tags{9}.. : u.Tag ):m.Object;
- PROCEDURE slider * {"MuiBasics.SliderA"} ( min{2}, max{3}, level{4} : LONGINT; tags{9}.. : u.Tag );
- PROCEDURE SliderA * ( min{2}, max{3}, level{4} : LONGINT; tags{9} : u.TagListPtr ):m.Object;
- BEGIN
- SliderObject( m.aSliderMin, min,
- m.aSliderMax, max,
- m.aSliderLevel, level,
- u.end );
- TagsA( tags );
- RETURN End();
- END SliderA;
-
- PROCEDURE KeySlider * {"MuiBasics.KeySliderA"} ( min{2}, max{3}, level{4} : LONGINT; key{5} : CHAR; tags{9}.. : u.Tag ):m.Object;
- PROCEDURE keySlider * {"MuiBasics.KeySliderA"} ( min{2}, max{3}, level{4} : LONGINT; key{5} : CHAR; tags{9}.. : u.Tag );
- PROCEDURE KeySliderA * ( min{2}, max{3}, level{4}, key{5} : LONGINT; tags{9} : u.TagListPtr ):m.Object;
- BEGIN
- y.INLINE( 0285H, 0000H, 00FFH ); (* andi.l #000000FF,d5 *)
- RETURN Slider( min, max, level, m.aControlChar, key, u.more, tags );
- END KeySliderA;
-
- PROCEDURE VSlider * {"MuiBasics.VSliderA"} ( min{2}, max{3}, level{4} : LONGINT; tags{9}.. : u.Tag ):m.Object;
- PROCEDURE vSlider * {"MuiBasics.VSliderA"} ( min{2}, max{3}, level{4} : LONGINT; tags{9}.. : u.Tag );
- PROCEDURE VSliderA * ( min{2}, max{3}, level{4} : LONGINT; tags{9} : u.TagListPtr ):m.Object;
- BEGIN
- RETURN Slider( min, max, level, m.aGroupHoriz, e.false, u.more, tags );
- END VSliderA;
-
-
- PROCEDURE KeyVSlider * {"MuiBasics.KeyVSliderA"} ( min{2}, max{3}, level{4} : LONGINT; key{5} : CHAR; tags{9}.. : u.Tag ):m.Object;
- PROCEDURE keyVSlider * {"MuiBasics.KeyVSliderA"} ( min{2}, max{3}, level{4} : LONGINT; key{5} : CHAR; tags{9}.. : u.Tag );
- PROCEDURE KeyVSliderA * ( min{2}, max{3}, level{4}, key{5} : LONGINT; tags{9} : u.TagListPtr ):m.Object;
- BEGIN
- y.INLINE( 0285H, 0000H, 00FFH ); (* andi.l #000000FF,d5 *)
- RETURN VSlider( min, max, level, m.aControlChar, key, u.more, tags );
- END KeyVSliderA;
-
-
- (***************************************************************************
- **
- ** Scrollbar-Object
- ** -------------
- **
- ***************************************************************************)
-
- PROCEDURE Scrollbar * {"MuiBasics.ScrollbarA"} ( min{2}, max{3}, level{4} : LONGINT; tags{9}.. : u.Tag ):m.Object;
- PROCEDURE scrollbar * {"MuiBasics.ScrollbarA"} ( min{2}, max{3}, level{4} : LONGINT; tags{9}.. : u.Tag );
- PROCEDURE ScrollbarA * ( min{2}, max{3}, level{4} : LONGINT; tags{9} : u.TagListPtr ):m.Object;
- BEGIN
- ScrollbarObject( m.aSliderMin, min,
- m.aSliderMax, max,
- m.aSliderLevel, level,
- m.aGroupHoriz, e.true,
- u.end );
- TagsA( tags );
- RETURN End();
- END ScrollbarA;
-
- PROCEDURE KeyScrollbar * {"MuiBasics.KeyScrollbarA"} ( min{2}, max{3}, level{4} : LONGINT; key{5} : CHAR; tags{9}.. : u.Tag ):m.Object;
- PROCEDURE keyScrollbar * {"MuiBasics.KeyScrollbarA"} ( min{2}, max{3}, level{4} : LONGINT; key{5} : CHAR; tags{9}.. : u.Tag );
- PROCEDURE KeyScrollbarA * ( min{2}, max{3}, level{4}, key{5} : LONGINT; tags{9} : u.TagListPtr ):m.Object;
- BEGIN
- y.INLINE( 0285H, 0000H, 00FFH ); (* andi.l #000000FF,d5 *)
- RETURN Scrollbar( min, max, level, m.aControlChar, key, u.more, tags );
- END KeyScrollbarA;
-
- PROCEDURE VScrollbar * {"MuiBasics.VScrollbarA"} ( min{2}, max{3}, level{4} : LONGINT; tags{9}.. : u.Tag ):m.Object;
- PROCEDURE vScrollbar * {"MuiBasics.VScrollbarA"} ( min{2}, max{3}, level{4} : LONGINT; tags{9}.. : u.Tag );
- PROCEDURE VScrollbarA * ( min{2}, max{3}, level{4} : LONGINT; tags{9} : u.TagListPtr ):m.Object;
- BEGIN
- ScrollbarObject(m.aSliderMin, min,
- m.aSliderMax, max,
- m.aSliderLevel, level,
- u.end );
- TagsA( tags );
- RETURN End();
- END VScrollbarA;
-
- PROCEDURE KeyVScrollbar * {"MuiBasics.KeyVScrollbarA"} ( min{2}, max{3}, level{4} : LONGINT; key{5} : CHAR; tags{9}.. : u.Tag ):m.Object;
- PROCEDURE keyVScrollbar * {"MuiBasics.KeyVScrollbarA"} ( min{2}, max{3}, level{4} : LONGINT; key{5} : CHAR; tags{9}.. : u.Tag );
- PROCEDURE KeyVScrollbarA * ( min{2}, max{3}, level{4}, key{5} : LONGINT; tags{9} : u.TagListPtr ):m.Object;
- BEGIN
- y.INLINE( 0285H, 0000H, 00FFH ); (* andi.l #000000FF,d5 *)
- RETURN VScrollbar( min, max, level, m.aControlChar, key, u.more, tags );
- (* RETURN End(); *) (* Was sollte das denn ? *)
- END KeyVScrollbarA;
-
-
- (***************************************************************************
- **
- ** Button to be used for popup objects
- **
- ***************************************************************************)
-
- PROCEDURE PopButton* {"MuiBasics.PopButtonA"} ( img{3} : LONGINT; tags{9}.. : u.Tag ):m.Object;
- PROCEDURE popButton* {"MuiBasics.PopButtonA"} ( img{3} : LONGINT; tags{9}.. : u.Tag );
- PROCEDURE PopButtonA*( img{3} : LONGINT; tags{9} : u.TagListPtr ):m.Object;
- BEGIN
- ImageObject;
- ImageButtonFrame( m.aImageSpec, img,
- m.aImageFontMatchWidth, e.true,
- m.aImageFreeVert, e.true,
- m.aInputMode, m.vInputModeRelVerify,
- m.aBackground, m.iBACKGROUND,
- u.end );
- TagsA( tags );
- RETURN End();
- END PopButtonA;
-
-
- (***************************************************************************
- **
- ** Popup-Object
- ** ------------
- **
- ** An often needed GUI element is a string gadget with a little button
- ** that opens up a (small) window with a list containing possible entries
- ** for this gadget. Together with the Popup and the String macro,
- ** such a thing would look like
- **
- ** VGroup;
- ** Child; PopupBegin;
- ** Child; STFont := String( "helvetica/13", 32 );
- ** PopupEnd( hook, m.iPopUp, STFont );
- ** ...;
- **
- ** STFont will hold a pointer to the embedded string gadget and can
- ** be used to set and get its contents as with every other string object.
- **
- ** For Hook description see below.
- ** The hook will be called with the string gadget as object whenever
- ** the user releases the popup button and could look like this:
- **
- ** PROCEDURE FontReq( hook : Hook; obj : m.Object : args : Args) : LONGINT;
- ** VAR window : I.WindowPtr;
- ** l, t, w, h : LONGINT;
- ** req : ASL.AslRequesterPtr;
- ** BEGIN
- ** ...
- **
- ** (* put our application to sleep while displaying the requester *)
- ** Set( Application, m.aApplicationSleep, e.true );
- **
- ** (* get the calling objects window and position *)
- ** Get( obj, m.aWindow , window );
- ** Get( obj, m.aLeftEdge, l );
- ** Get( obj, m.aTopEdge , t );
- ** Get( obj, m.aWidth , w );
- ** Get( obj, m.aHeight , h );
- **
- ** req := m.AllocAslRequestTags( ASL.fontRequest, u.done )
- ** IF req # NIL THEN
- **
- ** IF (m.AslRequestTags(req,
- ** ASL.foWindow ,window,
- ** ASL.foPrivateIDCMP ,TRUE,
- ** ASL.foTitleText ,"Select Font",
- ** ASL.foInitialLeftEdge,window->LeftEdge + l,
- ** ASL.foInitialTopEdge ,window->TopEdge + t+h,
- ** ASL.foInitialWidth ,w,
- ** ASL.foInitialHeight ,250,
- ** u.done ) ) THEN
- **
- ** (* set the new contents for our string gadget *)
- ** Set( args(PopupArgs).linkedObj, m.aStringContents, req(ASL.FontRequester).attr.name);
- ** END;
- ** m.FreeAslRequest( req );
- ** END;
- **
- ** (* wake up our application again *)
- ** Set(Application, m.aApplicationSleep, e.false );
- **
- ** RETURN( 0);
- ** END FontReq:
- **
- ** Note: This Procedure is translated to Oberon on the fly, no warranty is given
- ** that this piece of code works.
- **
- ***************************************************************************)
-
- PROCEDURE PopupBegin * ();
- VAR dummy : m.Object;
- BEGIN
- HGroup; GroupSpacing( 1 );
- END PopupBegin;
-
- PROCEDURE popupEnd * {"MuiBasics.PopupEnd"} ( hook : Hook; img : LONGINT; obj : m.Object );
- PROCEDURE PopupEnd * ( hook : Hook; img : LONGINT; obj : m.Object ):m.Object;
- VAR dummy : m.Object;
- BEGIN
- Child; ImageObject;
- ImageButtonFrame;
- Tags( m.aImageSpec, img,
- m.aImageFontMatchWidth, e.true,
- m.aImageFreeVert, e.true,
- m.aInputMode, m.vInputModeRelVerify,
- m.aBackground, m.iButtonBack,
- u.end );
- dummy := End();
- IF (obj # NIL) & (dummy # NIL) & (hook # NIL) THEN
- m.DoMethod( dummy, m.mNotify, m.aPressed, e.false,
- dummy, 3, m.mCallHook, hook, obj );
- END;
- end;
- RETURN dummy;
- END PopupEnd;
-
-
- (***************************************************************************
- **
- ** Labeling Objects
- ** ----------------
- **
- ** Labeling objects, e.g. a group of string gadgets,
- **
- ** Small: |foo |
- ** Normal: |bar |
- ** Big: |foobar|
- ** Huge: |barfoo|
- **
- ** is done using a 2 column group:
- **
- ** ColGroup(2);
- ** Child; Label2( "Small:" );
- ** Child; StringObject; end;
- ** Child; Label2( "Normal:" );
- ** Child; StringObject; end;
- ** Child; Label2( "Big:" );
- ** Child; StringObject; end;
- ** Child; Label2( "Huge:" );
- ** Child; StringObject; end;
- ** end;
- **
- ** Note that we have three versions of the label procedure, depending on
- ** the frame type of the right hand object:
- **
- ** Label1(): For use with standard frames (e.g. checkmarks).
- ** Label2(): For use with double high frames (e.g. string gadgets).
- ** Label() : For use with objects without a frame.
- **
- ** These procedures ensure that your label will look fine even if the
- ** user of your application configured some strange spacing values.
- ** If you want to use your own labeling, you'll have to pay attention
- ** on this topic yourself.
- **
- ***************************************************************************)
-
- PROCEDURE Label * ( label : ARRAY OF CHAR ):m.Object;
- (* $CopyArrays- *)
- BEGIN
- TextObject( m.aTextPreParse, y.ADR( "\033r" ),
- m.aTextContents, y.ADR( label ),
- m.aWeight , 0,
- m.aInnerLeft , 0,
- m.aInnerRight , 0,
- u.end );
- RETURN End();
- END Label;
-
- PROCEDURE Label1 * ( label : ARRAY OF CHAR ):m.Object;
- (* $CopyArrays- *)
- BEGIN
- TextObject( m.aTextPreParse, y.ADR( "\033r" ),
- m.aTextContents, y.ADR( label ),
- m.aWeight , 0,
- m.aInnerLeft , 0,
- m.aInnerRight , 0,
- u.end );
- ButtonFrame;
- TagItem( m.aFramePhantomHoriz, e.true );
- RETURN End();
- END Label1;
-
- PROCEDURE Label2 * ( label : ARRAY OF CHAR ):m.Object;
- (* $CopyArrays- *)
- BEGIN
- TextObject( m.aTextPreParse, y.ADR( "\033r" ),
- m.aTextContents, y.ADR( label ),
- m.aWeight , 0,
- m.aInnerLeft , 0,
- m.aInnerRight , 0,
- u.end );
- StringFrame;
- TagItem( m.aFramePhantomHoriz, e.true );
- RETURN End();
- END Label2;
-
- PROCEDURE LLabel * ( label : ARRAY OF CHAR ):m.Object;
- (* $CopyArrays- *)
- BEGIN
- TextObject( m.aTextContents, y.ADR( label ),
- m.aWeight , 0,
- m.aInnerLeft , 0,
- m.aInnerRight , 0,
- u.end );
- RETURN End();
- END LLabel;
-
- PROCEDURE LLabel1 * ( label : ARRAY OF CHAR ):m.Object;
- (* $CopyArrays- *)
- BEGIN
- TextObject( m.aTextContents, y.ADR( label ),
- m.aWeight , 0,
- m.aInnerLeft , 0,
- m.aInnerRight , 0,
- u.end );
- ButtonFrame;
- TagItem( m.aFramePhantomHoriz, e.true );
- RETURN End();
- END LLabel1;
-
- PROCEDURE LLabel2 * ( label : ARRAY OF CHAR ):m.Object;
- (* $CopyArrays- *)
- BEGIN
- TextObject( m.aTextContents, y.ADR( label ),
- m.aWeight , 0,
- m.aInnerLeft , 0,
- m.aInnerRight , 0,
- u.end );
- StringFrame;
- TagItem( m.aFramePhantomHoriz, e.true );
- RETURN End();
- END LLabel2;
-
- PROCEDURE KeyLabel * ( label : ARRAY OF CHAR; hichar : CHAR ):m.Object;
- (* $CopyArrays- *)
- BEGIN
- TextObject( m.aTextPreParse, y.ADR( "\033r" ),
- m.aTextContents, y.ADR( label ),
- m.aTextHiChar , ORD( hichar ),
- m.aWeight , 0,
- m.aInnerLeft , 0,
- m.aInnerRight , 0,
- u.end );
- RETURN End();
- END KeyLabel;
-
- PROCEDURE KeyLabel1 * ( label : ARRAY OF CHAR; hichar : CHAR ):m.Object;
- (* $CopyArrays- *)
- BEGIN
- TextObject( m.aTextPreParse, y.ADR( "\033r" ),
- m.aTextContents, y.ADR( label ),
- m.aTextHiChar , ORD( hichar ),
- m.aWeight , 0,
- m.aInnerLeft , 0,
- m.aInnerRight , 0,
- u.end );
- ButtonFrame;
- TagItem( m.aFramePhantomHoriz, e.true );
- RETURN End();
- END KeyLabel1;
-
- PROCEDURE KeyLabel2 * ( label : ARRAY OF CHAR; hichar : CHAR ):m.Object;
- (* $CopyArrays- *)
- BEGIN
- TextObject( m.aTextPreParse, y.ADR( "\033r" ),
- m.aTextContents, y.ADR( label ),
- m.aTextHiChar , ORD( hichar ),
- m.aWeight , 0,
- m.aInnerLeft , 0,
- m.aInnerRight , 0,
- u.end );
- StringFrame;
- TagItem( m.aFramePhantomHoriz, e.true );
- RETURN End();
- END KeyLabel2;
-
- PROCEDURE KeyLLabel * ( label : ARRAY OF CHAR; hichar : CHAR ):m.Object;
- (* $CopyArrays- *)
- BEGIN
- TextObject( m.aTextContents, y.ADR( label ),
- m.aTextHiChar , ORD( hichar ),
- m.aWeight , 0,
- m.aInnerLeft , 0,
- m.aInnerRight , 0,
- u.end );
- RETURN End();
- END KeyLLabel;
-
- PROCEDURE KeyLLabel1 * ( label : ARRAY OF CHAR; hichar : CHAR ):m.Object;
- (* $CopyArrays- *)
- BEGIN
- TextObject( m.aTextContents, y.ADR( label ),
- m.aTextHiChar , ORD( hichar ),
- m.aWeight , 0,
- m.aInnerLeft , 0,
- m.aInnerRight , 0,
- u.end );
- ButtonFrame;
- TagItem( m.aFramePhantomHoriz, e.true );
- RETURN End();
- END KeyLLabel1;
-
- PROCEDURE KeyLLabel2 * ( label : ARRAY OF CHAR; hichar : CHAR ):m.Object;
- (* $CopyArrays- *)
- BEGIN
- TextObject( m.aTextContents, y.ADR( label ),
- m.aTextHiChar , ORD( hichar ),
- m.aWeight , 0,
- m.aInnerLeft , 0,
- m.aInnerRight , 0,
- u.end );
- StringFrame;
- TagItem( m.aFramePhantomHoriz, e.true );
- RETURN End();
- END KeyLLabel2;
-
- PROCEDURE label * {"MuiBasics.Label"} ( lab : ARRAY OF CHAR );
-
- PROCEDURE label1 * {"MuiBasics.Label1"} ( lab : ARRAY OF CHAR );
-
- PROCEDURE label2 * {"MuiBasics.Label2"} ( lab : ARRAY OF CHAR );
-
- PROCEDURE lLabel * {"MuiBasics.LLabel"} ( lab : ARRAY OF CHAR );
-
- PROCEDURE lLabel1 * {"MuiBasics.LLabel1"} ( lab : ARRAY OF CHAR );
-
- PROCEDURE lLabel2 * {"MuiBasics.LLabel2"} ( lab : ARRAY OF CHAR );
-
- PROCEDURE keyLabel * {"MuiBasics.KeyLabel"} ( lab : ARRAY OF CHAR; hichar : CHAR );
-
- PROCEDURE keyLabel1 * {"MuiBasics.KeyLabel1"} ( lab : ARRAY OF CHAR; hichar : CHAR );
-
- PROCEDURE keyLabel2 * {"MuiBasics.KeyLabel2"} ( lab : ARRAY OF CHAR; hichar : CHAR );
-
- PROCEDURE lKeyLabel * {"MuiBasics.LKeyLabel"} ( lab : ARRAY OF CHAR; hichar : CHAR );
-
- PROCEDURE lKeyLabel1 * {"MuiBasics.LKeyLabel1"} ( lab : ARRAY OF CHAR; hichar : CHAR );
-
- PROCEDURE lKeyLabel2 * {"MuiBasics.LKeyLabel2"} ( lab : ARRAY OF CHAR; hichar : CHAR );
-
- (***************************************************************************
- **
- ** Controlling Objects
- ** -------------------
- **
- ** Set() and Get() are two short stubs for BOOPSI GetAttr() and SetAttrs()
- ** calls:
- **
- **
- ** VAR x : e.STRPTR;
- **
- ** Set(obj,MUIA_String_Contents, y.ADR("foobar") );
- ** Get(obj,MUIA_String_Contents, x);
- **
- ** Dos.PrintF( "gadget contains '%s'\n" , x );
- **
- ** NNset() sets an attribute without triggering a possible notification.
- **
- **
- ***************************************************************************)
-
- PROCEDURE Set*( obj : m.Object; attr, value : e.APTR );
- BEGIN
- IF I.SetAttrs( obj, attr, value, u.end ) = 0 THEN END
- END Set;
-
- PROCEDURE Get*( obj : m.Object; attr : LONGINT ; VAR store : ARRAY OF e.BYTE );
- BEGIN
- IF I.GetAttr( attr, obj, store) = 0 THEN END
- END Get;
-
- PROCEDURE NNSet( obj : m.Object; attr, value : e.APTR );
- BEGIN
- IF I.SetAttrs( obj, m.aNoNotify, e.LTRUE, attr, value, u.end ) = 0 THEN END
- END NNSet;
-
- PROCEDURE SetMutex * ( obj : m.Object; n : LONGINT );
- BEGIN
- Set( obj, m.aRadioActive, n );
- END SetMutex;
-
- PROCEDURE SetCycle * ( obj : m.Object; n : LONGINT );
- BEGIN
- Set( obj, m.aCycleActive, n );
- END SetCycle;
-
- PROCEDURE SetString * ( obj : m.Object; s : e.STRPTR );
- BEGIN
- Set( obj, m.aStringContents, s );
- END SetString;
-
- PROCEDURE SetCheckmark * ( obj : m.Object; b : BOOLEAN );
- BEGIN
- Set( obj, m.aSelected, y.VAL(SHORTINT,b) );
- END SetCheckmark;
-
- PROCEDURE SetSlider * ( obj : m.Object; l : LONGINT );
- BEGIN
- Set( obj, m.aSliderLevel, l );
- END SetSlider;
-
- PROCEDURE PopupObject( args : Args ): m.Object;
- BEGIN
- RETURN y.VAL( m.Object, args );
- END PopupObject;
- BEGIN
- Init();
- END MuiBasics.
-
-