(*------------------------------------------

  :Module.      Mui.mod
  :Author.      Albert Weinert  [awn]
  :Address.     Moltkestr. 68; 50859 Köln
  :EMail.       a.weinert@darkness.gun.de
  :Phone.       +49-2234-480800
  :Date.        19-Nov-1995
  :Copyright.   Albert Weinert
  :Language.    Oberon-2
  :Translator.  AmigaOberon V3.20, Oberon-A 1.6
  :Contents.    Interface to muimaster.library V12 (Mui 3.1)
  :Imports.     automatic created part by Stefan Stuntz

--------------------------------------------*)

(* <*IF OberonA THEN*> $IF OberonA *)
(*
<* STANDARD- *> <* INITIALISE- *> <* MAIN- *>
<*$ CaseChk-  IndexChk- LongVars+ NilChk-  *>
<*$ RangeChk- StackChk- TypeChk-  OvflChk- *>
*)
(* <* ELSE *> $ELSE *)

(* $CaseChk-  $NilChk-  *)
(* $RangeChk- $StackChk- $TypeChk-  $OvflChk- *)

(* <*END*> $END *)

MODULE Mui;

(* <*IF OberonA THEN*> $IF OberonA *)
IMPORT Exec, Utility, Intuition, SYSTEM, ASL, Graphics, Kernel, Sets, Classface, IFFParse;
(* <*ELSE*> $ELSE *)
IMPORT Exec, Utility, Intuition, SYSTEM, ASL, Graphics, Classface, IFFParse;
(* <*END*> $END *)

(***************************************************************************
**
** MUI - MagicUserInterface
** (c) 1993-1995 by Stefan Stuntz
**
** Main Interface File for AmigaOberon and Oberon-A
** (c) 1993-1995 by Albert Weinert
**
****************************************************************************
** Class Tree
****************************************************************************
**
** rootclass                     (BOOPSI's base class)
** +--Semaphore                  (baseclass for semaphore equipped objects)
** !  +--Applist                 (private class)
** !  +--Dataspace               (handles general purpose data spaces)
** !     \--Configdata           (handles MUI configuration data)
** +--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)
**    !  \--Aboutmui             (About window of MUI preferences)
**    +--Area                    (base class for all GUI elements)
**       +--Rectangle            (creates (empty) rectangles)
**       +--Balance              (creates a balancing separator bar)
**       +--Image                (creates images)
**       +--Bitmap               (draws bitmaps)
**       !  \--Bodychunk         (makes bitmap from ILBM body chunk)
**       +--Text                 (creates some text)
**       +--Gadget               (base class for intuition gadgets)
**       !  +--String            (creates a string gadget)
**       !  +--Boopsi            (interface to BOOPSI gadgets)
**       !  \--Prop              (creates a proportional gadget)
**       +--Gauge                (creates a fule gauge)
**       +--Scale                (creates a percentage scale)
**       +--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)
**       +--Numeric              (base class for slider gadgets)
**       !  +--Knob              (creates knobs)
**       !  +--Levelmeter        (creates a level display)
**       !  +--Numericbutton     (creates space saving popup sliders)
**       !  \--Slider            (creates slider gadgets)
**       +--Framedisplay         (displays a frame specification)
**       !  \--Popframe          (popup button to adjust a frame)
**       +--Imagedisplay         (displays an image specification)
**       !  \--Popimage          (popup button to adjust an image spec)
**       +--Pendisplay           (displays a pen specification)
**       !  \--Poppen            (popup button to adjust a pen spec)
**       +--Group                (groups other GUI elements)
**          +--Mccprefs          (base class for extern custom class preferences classes)
**          +--Register          (handles page groups with titles)
**          +--Settingsgroup     (Creates GUI elements to adjust MUIs preferences)
**          +--Settings          (Creates prefs)
**          +--Frameadjust       (creates an object to adjust a frame)
**          +--Penadjust         (creates a group to adjust a pen)
**          +--Imageadjust       (creates a group to adjust an image)
**          +--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)
**          +--Coloradjust       (creates some RGB sliders)
**          +--Palette           (creates a complete palette gadget)
**          +--Popstring         (base class for popups)
**             +--Popobject      (popup a MUI object in a window)
**             !  +--Poplist     (popup a simple listview)
**             !  \--Popscreen   (popup a list of public screens)
**             \--Popasl         (popup an asl requester)
**
****************************************************************************
** General Header File Information
****************************************************************************
**
** All macro and structure definitions follow these rules:
**
** Name                       Meaning
**
** c<Class>              Name of a class
** m<Class><Method>      Method
** p<Class><Method>      Methods parameter structure
** v<Class><Method><X>   Special method value
** a<Class><Attrib>      Attribute
** v<Class><Attrib><X>   Special attribute value
** e<Error>              Error return code from Error()
** i<Name>               Standard MUI image
** x<Code>               Control codes for text strings
** o<Name>               Object type for MakeObject()
**
** a<> ... attribute definitions are followed by a comment
** consisting of the three possible letters I, S and G.
** I: it's possible to specify this attribute at object creation time.
** S: it's possible to change this attribute with SetAttrs().
** G: it's possible to get this attribute with GetAttr().
**
** Items marked with "Custom Class" are for use in custom classes only!
*)

CONST
  name* = "muimaster.library";
  libVersion* = 12;
  minVersion* =  10;

TYPE

  Object * = Intuition.ObjectPtr;

(* <*IF OberonA THEN*> $IF OberonA *)
  dispatcher *= PROCEDURE ():Exec.APTR;
(* <* ELSE *> $ELSE *)
TYPE
  dispatcher *= PROCEDURE ( class{8} : Intuition.IClassPtr; obj{10} : Object; message{9} : Intuition.MsgPtr ):Exec.APTR;
(* <*END*> $END *)

(*************************************************************************
** Config items for MUIM_Application_SetConfigItem
*************************************************************************)

CONST
  ciPublicScreen *= 1;

(*************************************************************************
** Config items for MUIM_GetConfigItem
*************************************************************************)

CONST

  cfgNone                     *= 0;
  cfgFirst                    *= 1;

  cfgSpacingWindowLeft        *= 1;
  cfgSpacingWindowRight       *= 2;
  cfgSpacingWindowBottom      *= 3;
  cfgSpacingWindowTop         *= 4;
  cfgSpacingHRadio            *= 5;
  cfgSpacingVRadio            *= 6;
  cfgGroupSpacingHoriz        *= 7;
  cfgGroupSpacingVert         *= 8;
  cfgScrollbarType            *= 9;
  cfgListRefreshType         *= 10;
  cfgListviewStretch         *= 11;
  cfgListviewSmooth          *= 12;
  cfgMultiSelType            *= 13;
  cfgFrameType               *= 14;
  cfgGroupTitlePos           *= 15;
  cfgGroupTitleColor         *= 16;
  cfgMinPop                  *= 17;
  cfgPopPosition             *= 18;
  cfgIconifyGadget           *= 19;
  cfgIconifyIcon             *= 20;
  cfgDummyWasStartIconified  *= 21;
  cfgRegisterLevel           *= 22;
  cfgRegisterMax             *= 23;
  cfgDragFrame               *= 24;
  cfgPopupRecessed           *= 25;
  cfgPopupSpeed              *= 26;
  cfgListPixelType           *= 27;
  cfgRefreshType             *= 28;
  cfgRedrawType              *= 29;
  cfgNormalFont              *= 30;
  cfgListFont                *= 31;
  cfgTinyFont                *= 32;
  cfgFixedFont               *= 33;
  cfgTitleFont               *= 34;
  cfgBigFont                 *= 35;
  cfgPublicScreen            *= 36;
  cfgIconifyX                *= 37;
  cfgIconifyY                *= 38;
  cfgShutdownCommand         *= 39;
  cfgStartupCommand          *= 40;
  cfgHotkey                  *= 41;
  cfgFramesNone              *= 42;
  cfgFramesButton            *= 43;
  cfgFramesImageButton       *= 44;
  cfgFramesText              *= 45;
  cfgFramesString            *= 46;
  cfgFramesReadList          *= 47;
  cfgFramesInputList         *= 48;
  cfgFramesProp              *= 49;
  cfgFramesGauge             *= 50;
  cfgFramesGroup             *= 51;
  cfgFramesPopUp             *= 52;
  cfgFramesVirtual           *= 53;
  cfgFramesSlider            *= 54;
  cfgImagesWindowBack        *= 55;
  cfgImagesRequesterBack     *= 56;
  cfgImagesButtonBack        *= 57;
  cfgImagesListBack          *= 58;
  cfgImagesTextBack          *= 59;
  cfgImagesPropBack          *= 60;
  cfgImagesPopupBack         *= 61;
  cfgImagesSelectedBack      *= 62;
  cfgImagesListCursor        *= 63;
  cfgImagesListSelect        *= 64;
  cfgImagesListSelCur        *= 65;
  cfgImagesArrowUp           *= 66;
  cfgImagesArrowDown         *= 67;
  cfgImagesArrowLeft         *= 68;
  cfgImagesArrowRight        *= 69;
  cfgImagesCheckMark         *= 70;
  cfgImagesRadioButton       *= 71;
  cfgImagesCycle             *= 72;
  cfgImagesPopUp             *= 73;
  cfgImagesPopFile           *= 74;
  cfgImagesPopDrawer         *= 75;
  cfgImagesPropKnob          *= 76;
  cfgImagesDrawer            *= 77;
  cfgImagesHardDisk          *= 78;
  cfgImagesDisk              *= 79;
  cfgImagesChip              *= 80;
  cfgImagesVolume            *= 81;
  cfgImagesNetwork           *= 82;
  cfgImagesAssign            *= 83;
  cfgDummyWasPopUpBack       *= 84;
  cfgImagesTapePlay          *= 85;
  cfgImagesTapePlayBack      *= 86;
  cfgImagesTapePause         *= 87;
  cfgImagesTapeStop          *= 88;
  cfgImagesTapeRecord        *= 89;
  cfgImagesGroupBack         *= 90;
  cfgImagesSliderBack        *= 91;
  cfgImagesSliderKnob        *= 92;
  cfgImagesTapeUp            *= 93;
  cfgImagesTapeDown          *= 94;
  cfgKeysPRESS               *= 95;
  cfgKeysTOGGLE              *= 96;
  cfgKeysUP                  *= 97;
  cfgKeysDOWN                *= 98;
  cfgKeysPAGEUP              *= 99;
  cfgKeysPAGEDOWN           *= 100;
  cfgKeysTOP                *= 101;
  cfgKeysBOTTOM             *= 102;
  cfgKeysLEFT               *= 103;
  cfgKeysRIGHT              *= 104;
  cfgKeysWORDLEFT           *= 105;
  cfgKeysWORDRIGHT          *= 106;
  cfgKeysLINESTART          *= 107;
  cfgKeysLINEEND            *= 108;
  cfgKeysGADGETNEXT        *= 109;
  cfgKeysGADGETPREV        *= 110;
  cfgKeysGADGETOFF         *= 111;
  cfgKeysWINDOWCLOSE       *= 112;
  cfgKeysWINDOWNEXT        *= 113;
  cfgKeysWINDOWPREV        *= 114;
  cfgKeysHELP               *= 115;
  cfgKeysPOPUP              *= 116;
  cfgJumpGadget             *= 117;
  cfgSnapshotGadget         *= 118;
  cfgPrefsGadget            *= 119;
  cfgPopupGadget            *= 120;
  cfgDummyWasHelpGadget     *= 121;
  cfgOnExitWindows          *= 122;
  cfgDummyWasPrefsGroupActive *= 123;
  cfgPopScreen              *= 124;
  cfgIconifyMenu            *= 125;
  cfgUseRexx                *= 126;
  cfgUseCommodities         *= 127;
  cfgButtonFont             *= 128;
  cfgFirstBubbleDelay       *= 129;
  cfgNextBubbleDelay        *= 130;
  cfgPropType               *= 131;
  cfgStringBack             *= 132;
  cfgStringColor            *= 133;
  cfgStringActiveBack       *= 134;
  cfgStringActiveColor      *= 135;
  cfgSliderFont             *= 136;
  cfgDragLMB                *= 137;
  cfgDragMMB                *= 138;
  cfgDragQualiLMB           *= 139;
  cfgDragQualiMMB           *= 140;
  cfgDragAuto               *= 141;
  cfgDragAutoPixel          *= 142;
  cfgActiveObjectPen        *= 143;
  cfgPopLMB                 *= 144;
  cfgPopMMB                 *= 145;
  cfgPopQualiLMB            *= 146;
  cfgPopQualiMMB            *= 147;

  cfgLast                   *= 147;
  cfgCount                  *= cfgLast - cfgFirst + 1;

(*************************************************************************
** Specification structures for images, pens, frames
*************************************************************************)

TYPE
  (* <*IF OberonA THEN*> $IF OberonA *)
  PenSpec *= RECORD [2];
  (* <* ELSE *> $ELSE *)
  PenSpec *= STRUCT
  (* <*END*> $END *)
	      buf : ARRAY 32 OF SYSTEM.BYTE;
	     END;

  (* <*IF OberonA THEN*> $IF OberonA *)
  ImageSpec *= RECORD [2]
  (* <* ELSE *> $ELSE *)
  ImageSpec *= STRUCT
  (* <*END*> $END *)
	      buf : ARRAY 64 OF SYSTEM.BYTE;
	     END;

  (* <*IF OberonA THEN*> $IF OberonA *)
  FrameSpec *= RECORD [2];
  (* <* ELSE *> $ELSE *)
  FrameSpec *= STRUCT
  (* <*END*> $END *)
	      buf : ARRAY 8 OF SYSTEM.BYTE;
	     END;

(***************************************************************************
** Object Types for MakeObject()
***************************************************************************)
CONST
  oLabel       *= 1;   (* STRPTR label, ULONG flags *)
  oButton      *= 2;   (* STRPTR label *)
  oCheckmark   *= 3;   (* STRPTR label *)
  oCycle       *= 4;   (* STRPTR label, STRPTR *entries *)
  oRadio       *= 5;   (* STRPTR label, STRPTR *entries *)
  oSlider      *= 6;   (* STRPTR label, LONG min, LONG max *)
  oString      *= 7;   (* STRPTR label, LONG maxlen *)
  oPopButton   *= 8;   (* STRPTR imagespec *)
  oHSpace      *= 9;   (* LONG space   *)
  oVSpace      *=10;   (* LONG space   *)
  oHBar        *=11;   (* LONG space   *)
  oVBar        *=12;   (* LONG space   *)
  oMenustripNM *=13;   (* struct NewMenu *nm, ULONG flags *)
  oMenuitem    *=14;   (* STRPTR label, STRPTR shortcut, ULONG flags, ULONG data  *)
  oBarTitle    *=15;   (* STRPTR label *)
  oNumericButton *=16;   (* STRPTR label, LONG min, LONG max, STRPTR format *)

CONST
  oLabelSingleFrame *= 00100H;
  oLabelDoubleFrame *= 00200H;
  oLabelLeftAligned *= 00400H;
  oLabelCentered    *= 00800H;
  oLabelFreeVert    *= 01000H;

  oMenustripNMCommandKeyCheck *= 00001H;

(***************************************************************************
** ARexx Interface
***************************************************************************)

TYPE
(* <*IF OberonA THEN*> $IF OberonA *)
  Command * = RECORD [2]
(* <* ELSE *> $ELSE *)
  Command * = STRUCT
(* <*END*> $END *)
    name            * : Exec.STRPTR;
    template        * : Exec.STRPTR;
    parameters      * : LONGINT;
    hook            * : Utility.HookPtr;
    reserved        * : ARRAY 5 OF LONGINT;
  END;

CONST
  templateID * = SYSTEM.VAL(Exec.STRPTR,-1);

  rxerrBADDEFINITION  *= -1;
  rxerrOUTOFMEMORY    *= -2;
  rxerrUNKNOWNCOMMAND *= -3;
  rxerrBADSYNTAX      *= -4;


(***************************************************************************
** Return values for Error()
***************************************************************************)

CONST

	eOK                  * = 0;
	eOutOfMemory         * = 1;
	eOutOfGfxMemory      * = 2;
	eInvalidWindowObject * = 3;
	eMissingLibrary      * = 4;
	eNoARexx             * = 5;
	eSingleTask          * = 6;


(***************************************************************************
** Standard MUI Images
***************************************************************************)

CONST
	iWindowBack    * =  0;  (* These images are configured   *)
	iRequesterBack * =  1;  (* with the preferences program. *)
	iButtonBack    * =  2;
	iListBack      * =  3;
	iTextBack      * =  4;
	iPropBack      * =  5;
	iPopupBack     * =  6;
	iSelectedBack  * =  7;
	iListCursor    * =  8;
	iListSelect    * =  9;
	iListSelCur    * = 10;
	iArrowUp       * = 11;
	iArrowDown     * = 12;
	iArrowLeft     * = 13;
	iArrowRight    * = 14;
	iCheckMark     * = 15;
	iRadioButton   * = 16;
	iCycle         * = 17;
	iPopUp         * = 18;
	iPopFile       * = 19;
	iPopDrawer     * = 20;
	iPropKnob      * = 21;
	iDrawer        * = 22;
	iHardDisk      * = 23;
	iDisk          * = 24;
	iChip          * = 25;
	iVolume        * = 26;
	iPopUpBack     * = 27;
	iNetwork       * = 28;
	iAssign        * = 29;
	iTapePlay      * = 30;
	iTapePlayBack  * = 31;
	iTapePause     * = 32;
	iTapeStop      * = 33;
	iTapeRecord    * = 34;
	iGroupBack     * = 35;
	iSliderBack    * = 36;
	iSliderKnob    * = 37;
	iTapeUp        * = 38;
	iTapeDown      * = 39;
	iCount         * = 40;

	iBACKGROUND    * = 128    (* These are direct color    *);
	iSHADOW        * = 129    (* combinations and are not  *);
	iSHINE         * = 130    (* affected by users prefs.  *);
	iFILL          * = 131;
	iSHADOWBACK    * = 132    (* Generally, you should     *);
	iSHADOWFILL    * = 133    (* avoid using them. Better  *);
	iSHADOWSHINE   * = 134    (* use one of the customized *);
	iFILLBACK      * = 135    (* images above.             *);
	iFILLSHINE     * = 136;
	iSHINEBACK     * = 137;
	iFILLBACK2     * = 138;
	iHSHINEBACK    * = 139;
	iHSHADOWBACK   * = 140;
	iHSHINESHINE   * = 141;
	iHSHADOWSHADOW * = 142;
	iLASTPAT       * = 142;

(***************************************************************************
** Special values for some methods
***************************************************************************)

CONST

	vTriggerValue    *= 49893131H;
	vNotTriggerValue *= 49893133H;
	vEveryTime       *= 49893131H;

	vNotifySelf        *= 1;
	vNotifyWindow      *= 2;
	vNotifyApplication *= 3;

	vApplicationSaveENV     * =  0;
	vApplicationSaveENVARC  * = -1;
	vApplicationLoadENV     * =  0;
	vApplicationLoadENVARC  * = -1;

	vApplicationReturnIDQuit * = -1;

	vListInsertTop       * =  0;
	vListInsertActive    * = -1;
	vListInsertSorted    * = -2;
	vListInsertBottom    * = -3;

	vListRemoveFirst     * =  0;
	vListRemoveActive    * = -1;
	vListRemoveLast      * = -2;
	vListRemoveSelected  * = -3;

	vListSelectOff       * =  0;
	vListSelectOn        * =  1;
	vListSelectToggle    * =  2;
	vListSelectAsk       * =  3;

	vListGetEntryActive  * = -1;
	vListSelectActive    * = -1;
	vListSelectAll       * = -2;

	vListRedrawActive    * = -1;
	vListRedrawAll       * = -2;

	vListMoveTop      * =  0;
	vListMoveActive   * = -1;
	vListMoveBottom   * = -2;
	vListMoveNext     * = -3; (* only valid for second parameter *)
	vListMovePrevious * = -4; (* only valid for second parameter *)

	vListExchangeTop      * =  0;
	vListExchangeActive   * = -1;
	vListExchangeBottom   * = -2;
	vListExchangeNext     * = -3; (* only valid for second parameter *)
	vListExchangePrevious * = -4; (* only valid for second parameter *)

	vListJumpTop         * =  0;
	vListJumpActive      * = -1;
	vListJumpBottom      * =  2;

	vColorpanelGetColorActive *= -1;
	vColorpanelSetColorActive *= -1;

	vListNextSelectedStart * = -1;
	vListNextSelectedEnd * = -1;
	
(***************************************************************************
** Control codes for text strings
***************************************************************************)
CONST
  xR *= "\033r";    (* right justified *)
  xC *= "\033c";    (* centered        *)
  xL *= "\033l";    (* left justified  *)

  xN *= "\033n";    (* normal     *)
  xB *= "\033b";    (* bold       *)
  xI *= "\033i";    (* italic     *)
  xU *= "\033u";    (* underlined *)

  xPT *= "\0332";   (* text pen           *)
  xPH *= "\0338";   (* highlight text pen *)


CONST

(*******************************************)
(* Begin of automatic header file creation *)
(*******************************************)




(****************************************************************************)
(** Notify                                                                 **)
(****************************************************************************)

  cNotify * = "Notify.mui";

(* Methods *)

  CONST mCallHook                       * = 8042B96BH; (* V4  *)
  CONST mFindUData                      * = 8042C196H; (* V8  *)
  CONST mGetUData                       * = 8042ED0CH; (* V8  *)
  CONST mKillNotify                     * = 8042D240H; (* V4  *)
  CONST mMultiSet                       * = 8042D356H; (* V7  *)
  CONST mNoNotifySet                    * = 8042216FH; (* V9  *)
  CONST mNotify                         * = 8042C9CBH; (* V4  *)
  CONST mSet                            * = 8042549AH; (* V4  *)
  CONST mSetAsString                    * = 80422590H; (* V4  *)
  CONST mSetUData                       * = 8042C920H; (* V8  *)
  CONST mSetUDataOnce                   * = 8042CA19H; (* V11 *)
  CONST mWriteLong                      * = 80428D86H; (* V6  *)
  CONST mWriteString                    * = 80424BF4H; (* V6  *)

(* Attributes *)

  CONST aApplicationObject              * = 8042D3EEH; (* V4  ..g Object *          *)
  CONST aAppMessage                     * = 80421955H; (* V5  ..g struct AppMessage * *)
  CONST aHelpLine                       * = 8042A825H; (* V4  isg LONG              *)
  CONST aHelpNode                       * = 80420B85H; (* V4  isg STRPTR            *)
  CONST aNoNotify                       * = 804237F9H; (* V7  .s. BOOL              *)
  CONST aParent                         * = 8042E35FH; (* V11 ..g Object *          *)
  CONST aRevision                       * = 80427EAAH; (* V4  ..g LONG              *)
  CONST aUserData                       * = 80420313H; (* V4  isg ULONG             *)
  CONST aVersion                        * = 80422301H; (* V4  ..g LONG              *)



(****************************************************************************)
(** Family                                                                 **)
(****************************************************************************)

  cFamily * = "Family.mui";

(* Methods *)

  CONST mFamilyAddHead                  * = 8042E200H; (* V8  *)
  CONST mFamilyAddTail                  * = 8042D752H; (* V8  *)
  CONST mFamilyInsert                   * = 80424D34H; (* V8  *)
  CONST mFamilyRemove                   * = 8042F8A9H; (* V8  *)
  CONST mFamilySort                     * = 80421C49H; (* V8  *)
  CONST mFamilyTransfer                 * = 8042C14AH; (* V8  *)

(* Attributes *)

  CONST aFamilyChild                    * = 8042C696H; (* V8  i.. Object *          *)
  CONST aFamilyList                     * = 80424B9EH; (* V8  ..g struct MinList *  *)



(****************************************************************************)
(** Menustrip                                                              **)
(****************************************************************************)

  cMenustrip * = "Menustrip.mui";

(* Methods *)


(* Attributes *)

  CONST aMenustripEnabled               * = 8042815BH; (* V8  isg BOOL              *)



(****************************************************************************)
(** Menu                                                                   **)
(****************************************************************************)

  cMenu * = "Menu.mui";

(* Methods *)


(* Attributes *)

  CONST aMenuEnabled                    * = 8042ED48H; (* V8  isg BOOL              *)
  CONST aMenuTitle                      * = 8042A0E3H; (* V8  isg STRPTR            *)



(****************************************************************************)
(** Menuitem                                                               **)
(****************************************************************************)

  cMenuitem * = "Menuitem.mui";

(* Methods *)


(* Attributes *)

  CONST aMenuitemChecked                * = 8042562AH; (* V8  isg BOOL              *)
  CONST aMenuitemCheckit                * = 80425ACEH; (* V8  isg BOOL              *)
  CONST aMenuitemEnabled                * = 8042AE0FH; (* V8  isg BOOL              *)
  CONST aMenuitemExclude                * = 80420BC6H; (* V8  isg LONG              *)
  CONST aMenuitemShortcut               * = 80422030H; (* V8  isg STRPTR            *)
  CONST aMenuitemTitle                  * = 804218BEH; (* V8  isg STRPTR            *)
  CONST aMenuitemToggle                 * = 80424D5CH; (* V8  isg BOOL              *)
  CONST aMenuitemTrigger                * = 80426F32H; (* V8  ..g struct MenuItem * *)

  CONST vMenuitemShortcutCheck          * = SYSTEM.VAL(Exec.LSTRPTR,-1);


(****************************************************************************)
(** Application                                                            **)
(****************************************************************************)

  cApplication * = "Application.mui";

(* Methods *)

  CONST mApplicationAddInputHandler     * = 8042F099H; (* V11 *)
  CONST mApplicationCheckRefresh        * = 80424D68H; (* V11 *)
  CONST mApplicationGetMenuCheck        * = 8042C0A7H; (* V4  *)
  CONST mApplicationGetMenuState        * = 8042A58FH; (* V4  *)
  CONST mApplicationInput               * = 8042D0F5H; (* V4  *)
  CONST mApplicationInputBuffered       * = 80427E59H; (* V4  *)
  CONST mApplicationLoad                * = 8042F90DH; (* V4  *)
  CONST mApplicationNewInput            * = 80423BA6H; (* V11 *)
  CONST mApplicationOpenConfigWindow    * = 804299BAH; (* V11 *)
  CONST mApplicationPushMethod          * = 80429EF8H; (* V4  *)
  CONST mApplicationRemInputHandler     * = 8042E7AFH; (* V11 *)
  CONST mApplicationReturnID            * = 804276EFH; (* V4  *)
  CONST mApplicationSave                * = 804227EFH; (* V4  *)
  CONST mApplicationSetConfigItem       * = 80424A80H; (* V11 *)
  CONST mApplicationSetMenuCheck        * = 8042A707H; (* V4  *)
  CONST mApplicationSetMenuState        * = 80428BEFH; (* V4  *)
  CONST mApplicationShowHelp            * = 80426479H; (* V4  *)

(* Attributes *)

  CONST aApplicationActive              * = 804260ABH; (* V4  isg BOOL              *)
  CONST aApplicationAuthor              * = 80424842H; (* V4  i.g STRPTR            *)
  CONST aApplicationBase                * = 8042E07AH; (* V4  i.g STRPTR            *)
  CONST aApplicationBroker              * = 8042DBCEH; (* V4  ..g Broker *          *)
  CONST aApplicationBrokerHook          * = 80428F4BH; (* V4  isg struct Hook *     *)
  CONST aApplicationBrokerPort          * = 8042E0ADH; (* V6  ..g struct MsgPort *  *)
  CONST aApplicationBrokerPri           * = 8042C8D0H; (* V6  i.g LONG              *)
  CONST aApplicationCommands            * = 80428648H; (* V4  isg struct MUI_Command * *)
  CONST aApplicationCopyright           * = 8042EF4DH; (* V4  i.g STRPTR            *)
  CONST aApplicationDescription         * = 80421FC6H; (* V4  i.g STRPTR            *)
  CONST aApplicationDiskObject          * = 804235CBH; (* V4  isg struct DiskObject * *)
  CONST aApplicationDoubleStart         * = 80423BC6H; (* V4  ..g BOOL              *)
  CONST aApplicationDropObject          * = 80421266H; (* V5  is. Object *          *)
  CONST aApplicationForceQuit           * = 804257DFH; (* V8  ..g BOOL              *)
  CONST aApplicationHelpFile            * = 804293F4H; (* V8  isg STRPTR            *)
  CONST aApplicationIconified           * = 8042A07FH; (* V4  .sg BOOL              *)
  CONST aApplicationMenu                * = 80420E1FH; (* V4  i.g struct NewMenu *  *)
  CONST aApplicationMenuAction          * = 80428961H; (* V4  ..g ULONG             *)
  CONST aApplicationMenuHelp            * = 8042540BH; (* V4  ..g ULONG             *)
  CONST aApplicationMenustrip           * = 804252D9H; (* V8  i.. Object *          *)
  CONST aApplicationRexxHook            * = 80427C42H; (* V7  isg struct Hook *     *)
  CONST aApplicationRexxMsg             * = 8042FD88H; (* V4  ..g struct RxMsg *    *)
  CONST aApplicationRexxString          * = 8042D711H; (* V4  .s. STRPTR            *)
  CONST aApplicationSingleTask          * = 8042A2C8H; (* V4  i.. BOOL              *)
  CONST aApplicationSleep               * = 80425711H; (* V4  .s. BOOL              *)
  CONST aApplicationTitle               * = 804281B8H; (* V4  i.g STRPTR            *)
  CONST aApplicationUseCommodities      * = 80425EE5H; (* V10 i.. BOOL              *)
  CONST aApplicationUseRexx             * = 80422387H; (* V10 i.. BOOL              *)
  CONST aApplicationVersion             * = 8042B33FH; (* V4  i.g STRPTR            *)
  CONST aApplicationWindow              * = 8042BFE0H; (* V4  i.. Object *          *)



(****************************************************************************)
(** Window                                                                 **)
(****************************************************************************)

  cWindow * = "Window.mui";

(* Methods *)

  CONST mWindowGetMenuCheck             * = 80420414H; (* V4  *)
  CONST mWindowGetMenuState             * = 80420D2FH; (* V4  *)
  CONST mWindowScreenToBack             * = 8042913DH; (* V4  *)
  CONST mWindowScreenToFront            * = 804227A4H; (* V4  *)
  CONST mWindowSetCycleChain            * = 80426510H; (* V4  *)
  CONST mWindowSetMenuCheck             * = 80422243H; (* V4  *)
  CONST mWindowSetMenuState             * = 80422B5EH; (* V4  *)
  CONST mWindowToBack                   * = 8042152EH; (* V4  *)
  CONST mWindowToFront                  * = 8042554FH; (* V4  *)

(* Attributes *)

  CONST aWindowActivate                 * = 80428D2FH; (* V4  isg BOOL              *)
  CONST aWindowActiveObject             * = 80427925H; (* V4  .sg Object *          *)
  CONST aWindowAltHeight                * = 8042CCE3H; (* V4  i.g LONG              *)
  CONST aWindowAltLeftEdge              * = 80422D65H; (* V4  i.g LONG              *)
  CONST aWindowAltTopEdge               * = 8042E99BH; (* V4  i.g LONG              *)
  CONST aWindowAltWidth                 * = 804260F4H; (* V4  i.g LONG              *)
  CONST aWindowAppWindow                * = 804280CFH; (* V5  i.. BOOL              *)
  CONST aWindowBackdrop                 * = 8042C0BBH; (* V4  i.. BOOL              *)
  CONST aWindowBorderless               * = 80429B79H; (* V4  i.. BOOL              *)
  CONST aWindowCloseGadget              * = 8042A110H; (* V4  i.. BOOL              *)
  CONST aWindowCloseRequest             * = 8042E86EH; (* V4  ..g BOOL              *)
  CONST aWindowDefaultObject            * = 804294D7H; (* V4  isg Object *          *)
  CONST aWindowDepthGadget              * = 80421923H; (* V4  i.. BOOL              *)
  CONST aWindowDragBar                  * = 8042045DH; (* V4  i.. BOOL              *)
  CONST aWindowFancyDrawing             * = 8042BD0EH; (* V8  isg BOOL              *)
  CONST aWindowHeight                   * = 80425846H; (* V4  i.g LONG              *)
  CONST aWindowID                       * = 804201BDH; (* V4  isg ULONG             *)
  CONST aWindowInputEvent               * = 804247D8H; (* V4  ..g struct InputEvent * *)
  CONST aWindowLeftEdge                 * = 80426C65H; (* V4  i.g LONG              *)
  CONST aWindowMenu                     * = 8042DB94H; (* V4  i.. struct NewMenu *  *)
  CONST aWindowMenuAction               * = 80427521H; (* V8  isg ULONG             *)
  CONST aWindowMenustrip                * = 8042855EH; (* V8  i.g Object *          *)
  CONST aWindowMouseObject              * = 8042BF9BH; (* V10 ..g Object *          *)
  CONST aWindowNeedsMouseObject         * = 8042372AH; (* V10 i.. BOOL              *)
  CONST aWindowNoMenus                  * = 80429DF5H; (* V4  is. BOOL              *)
  CONST aWindowOpen                     * = 80428AA0H; (* V4  .sg BOOL              *)
  CONST aWindowPublicScreen             * = 804278E4H; (* V6  isg STRPTR            *)
  CONST aWindowRefWindow                * = 804201F4H; (* V4  is. Object *          *)
  CONST aWindowRootObject               * = 8042CBA5H; (* V4  isg Object *          *)
  CONST aWindowScreen                   * = 8042DF4FH; (* V4  isg struct Screen *   *)
  CONST aWindowScreenTitle              * = 804234B0H; (* V5  isg STRPTR            *)
  CONST aWindowSizeGadget               * = 8042E33DH; (* V4  i.. BOOL              *)
  CONST aWindowSizeRight                * = 80424780H; (* V4  i.. BOOL              *)
  CONST aWindowSleep                    * = 8042E7DBH; (* V4  .sg BOOL              *)
  CONST aWindowTitle                    * = 8042AD3DH; (* V4  isg STRPTR            *)
  CONST aWindowTopEdge                  * = 80427C66H; (* V4  i.g LONG              *)
  CONST aWindowWidth                    * = 8042DCAEH; (* V4  i.g LONG              *)
  CONST aWindowWindow                   * = 80426A42H; (* V4  ..g struct Window *   *)

  CONST vWindowActiveObjectNone         * = 0;
  CONST vWindowActiveObjectNext         * = -1;
  CONST vWindowActiveObjectPrev         * = -2;
  CONST vWindowAltHeightScaled          * = -1000;
  CONST vWindowAltLeftEdgeCentered      * = -1;
  CONST vWindowAltLeftEdgeMoused        * = -2;
  CONST vWindowAltLeftEdgeNoChange      * = -1000;
  CONST vWindowAltTopEdgeCentered       * = -1;
  CONST vWindowAltTopEdgeMoused         * = -2;
  CONST vWindowAltTopEdgeNoChange       * = -1000;
  CONST vWindowAltWidthScaled           * = -1000;
  CONST vWindowHeightScaled             * = -1000;
  CONST vWindowHeightDefault            * = -1001;
  CONST vWindowLeftEdgeCentered         * = -1;
  CONST vWindowLeftEdgeMoused           * = -2;
  CONST vWindowMenuNoMenu               * = -1;
  CONST vWindowTopEdgeCentered          * = -1;
  CONST vWindowTopEdgeMoused            * = -2;
  CONST vWindowWidthScaled              * = -1000;
  CONST vWindowWidthDefault             * = -1001;


(****************************************************************************)
(** Aboutmui                                                               **)
(****************************************************************************)

  cAboutmui * = "Aboutmui.mui";

(* Methods *)


(* Attributes *)

  CONST aAboutmuiApplication            * = 80422523H; (* V11 i.. Object *          *)



(****************************************************************************)
(** Area                                                                   **)
(****************************************************************************)

  cArea * = "Area.mui";

(* Methods *)

  CONST mAskMinMax                      * = 80423874H; (* V4  *)
  CONST mCleanup                        * = 8042D985H; (* V4  *)
  CONST mContextMenuBuild               * = 80429D2EH; (* V11 *)
  CONST mContextMenuChoice              * = 80420F0EH; (* V11 *)
  CONST mDragBegin                      * = 8042C03AH; (* V11 *)
  CONST mDragDrop                       * = 8042C555H; (* V11 *)
  CONST mDragFinish                     * = 804251F0H; (* V11 *)
  CONST mDragQuery                      * = 80420261H; (* V11 *)
  CONST mDragReport                     * = 8042EDADH; (* V11 *)
  CONST mDraw                           * = 80426F3FH; (* V4  *)
  CONST mHandleInput                    * = 80422A1AH; (* V4  *)
  CONST mHide                           * = 8042F20FH; (* V4  *)
  CONST mSetup                          * = 80428354H; (* V4  *)
  CONST mShow                           * = 8042CC84H; (* V4  *)

(* Attributes *)

  CONST aBackground                     * = 8042545BH; (* V4  is. LONG              *)
  CONST aBottomEdge                     * = 8042E552H; (* V4  ..g LONG              *)
  CONST aContextMenu                    * = 8042B704H; (* V11 isg Object *          *)
  CONST aContextMenuTrigger             * = 8042A2C1H; (* V11 ..g Object *          *)
  CONST aControlChar                    * = 8042120BH; (* V4  isg char              *)
  CONST aCycleChain                     * = 80421CE7H; (* V11 isg LONG              *)
  CONST aDisabled                       * = 80423661H; (* V4  isg BOOL              *)
  CONST aDraggable                      * = 80420B6EH; (* V11 isg BOOL              *)
  CONST aDropable                       * = 8042FBCEH; (* V11 isg BOOL              *)
  CONST aExportID                       * = 8042D76EH; (* V4  isg ULONG             *)
  CONST aFixHeight                      * = 8042A92BH; (* V4  i.. LONG              *)
  CONST aFixHeightTxt                   * = 804276F2H; (* V4  i.. STRPTR            *)
  CONST aFixWidth                       * = 8042A3F1H; (* V4  i.. LONG              *)
  CONST aFixWidthTxt                    * = 8042D044H; (* V4  i.. STRPTR            *)
  CONST aFont                           * = 8042BE50H; (* V4  i.g struct TextFont * *)
  CONST aFrame                          * = 8042AC64H; (* V4  i.. LONG              *)
  CONST aFramePhantomHoriz              * = 8042ED76H; (* V4  i.. BOOL              *)
  CONST aFrameTitle                     * = 8042D1C7H; (* V4  i.. STRPTR            *)
  CONST aHeight                         * = 80423237H; (* V4  ..g LONG              *)
  CONST aHorizDisappear                 * = 80429615H; (* V11 isg LONG              *)
  CONST aHorizWeight                    * = 80426DB9H; (* V4  i.. WORD              *)
  CONST aInnerBottom                    * = 8042F2C0H; (* V4  i.. LONG              *)
  CONST aInnerLeft                      * = 804228F8H; (* V4  i.. LONG              *)
  CONST aInnerRight                     * = 804297FFH; (* V4  i.. LONG              *)
  CONST aInnerTop                       * = 80421EB6H; (* V4  i.. LONG              *)
  CONST aInputMode                      * = 8042FB04H; (* V4  i.. LONG              *)
  CONST aLeftEdge                       * = 8042BEC6H; (* V4  ..g LONG              *)
  CONST aMaxHeight                      * = 804293E4H; (* V11 i.. LONG              *)
  CONST aMaxWidth                       * = 8042F112H; (* V11 i.. LONG              *)
  CONST aObjectID                       * = 8042D76EH; (* V11 isg ULONG             *)
  CONST aPressed                        * = 80423535H; (* V4  ..g BOOL              *)
  CONST aRightEdge                      * = 8042BA82H; (* V4  ..g LONG              *)
  CONST aSelected                       * = 8042654BH; (* V4  isg BOOL              *)
  CONST aShortHelp                      * = 80428FE3H; (* V11 isg STRPTR            *)
  CONST aShowMe                         * = 80429BA8H; (* V4  isg BOOL              *)
  CONST aShowSelState                   * = 8042CAACH; (* V4  i.. BOOL              *)
  CONST aTimer                          * = 80426435H; (* V4  ..g LONG              *)
  CONST aTopEdge                        * = 8042509BH; (* V4  ..g LONG              *)
  CONST aVertDisappear                  * = 8042D12FH; (* V11 isg LONG              *)
  CONST aVertWeight                     * = 804298D0H; (* V4  i.. WORD              *)
  CONST aWeight                         * = 80421D1FH; (* V4  i.. WORD              *)
  CONST aWidth                          * = 8042B59CH; (* V4  ..g LONG              *)
  CONST aWindow                         * = 80421591H; (* V4  ..g struct Window *   *)
  CONST aWindowObject                   * = 8042669EH; (* V4  ..g Object *          *)

  CONST vFontInherit                    * = 0;
  CONST vFontNormal                     * = -1;
  CONST vFontList                       * = -2;
  CONST vFontTiny                       * = -3;
  CONST vFontFixed                      * = -4;
  CONST vFontTitle                      * = -5;
  CONST vFontBig                        * = -6;
  CONST vFontButton                     * = -7;
  CONST vFrameNone                      * = 0;
  CONST vFrameButton                    * = 1;
  CONST vFrameImageButton               * = 2;
  CONST vFrameText                      * = 3;
  CONST vFrameString                    * = 4;
  CONST vFrameReadList                  * = 5;
  CONST vFrameInputList                 * = 6;
  CONST vFrameProp                      * = 7;
  CONST vFrameGauge                     * = 8;
  CONST vFrameGroup                     * = 9;
  CONST vFramePopUp                     * = 10;
  CONST vFrameVirtual                   * = 11;
  CONST vFrameSlider                    * = 12;
  CONST vFrameCount                     * = 13;
  CONST vInputModeNone                  * = 0;
  CONST vInputModeRelVerify             * = 1;
  CONST vInputModeImmediate             * = 2;
  CONST vInputModeToggle                * = 3;


(****************************************************************************)
(** Rectangle                                                              **)
(****************************************************************************)

  cRectangle * = "Rectangle.mui";

(* Attributes *)

  CONST aRectangleBarTitle              * = 80426689H; (* V11 i.g STRPTR            *)
  CONST aRectangleHBar                  * = 8042C943H; (* V7  i.g BOOL              *)
  CONST aRectangleVBar                  * = 80422204H; (* V7  i.g BOOL              *)



(****************************************************************************)
(** Balance                                                                **)
(****************************************************************************)

  cBalance * = "Balance.mui";


(****************************************************************************)
(** Image                                                                  **)
(****************************************************************************)

  cImage * = "Image.mui";

(* Attributes *)

  CONST aImageFontMatch                 * = 8042815DH; (* V4  i.. BOOL              *)
  CONST aImageFontMatchHeight           * = 80429F26H; (* V4  i.. BOOL              *)
  CONST aImageFontMatchWidth            * = 804239BFH; (* V4  i.. BOOL              *)
  CONST aImageFreeHoriz                 * = 8042DA84H; (* V4  i.. BOOL              *)
  CONST aImageFreeVert                  * = 8042EA28H; (* V4  i.. BOOL              *)
  CONST aImageOldImage                  * = 80424F3DH; (* V4  i.. struct Image *    *)
  CONST aImageSpec                      * = 804233D5H; (* V4  i.. char *            *)
  CONST aImageState                     * = 8042A3ADH; (* V4  is. LONG              *)



(****************************************************************************)
(** Bitmap                                                                 **)
(****************************************************************************)

  cBitmap * = "Bitmap.mui";

(* Attributes *)

  CONST aBitmapBitmap                   * = 804279BDH; (* V8  isg struct BitMap *   *)
  CONST aBitmapHeight                   * = 80421560H; (* V8  isg LONG              *)
  CONST aBitmapMappingTable             * = 8042E23DH; (* V8  isg UBYTE *           *)
  CONST aBitmapPrecision                * = 80420C74H; (* V11 isg LONG              *)
  CONST aBitmapRemappedBitmap           * = 80423A47H; (* V11 ..g struct BitMap *   *)
  CONST aBitmapSourceColors             * = 80425360H; (* V8  isg ULONG *           *)
  CONST aBitmapTransparent              * = 80422805H; (* V8  isg LONG              *)
  CONST aBitmapUseFriend                * = 804239D8H; (* V11 i.. BOOL              *)
  CONST aBitmapWidth                    * = 8042EB3AH; (* V8  isg LONG              *)



(****************************************************************************)
(** Bodychunk                                                              **)
(****************************************************************************)

  cBodychunk * = "Bodychunk.mui";

(* Attributes *)

  CONST aBodychunkBody                  * = 8042CA67H; (* V8  isg UBYTE *           *)
  CONST aBodychunkCompression           * = 8042DE5FH; (* V8  isg UBYTE             *)
  CONST aBodychunkDepth                 * = 8042C392H; (* V8  isg LONG              *)
  CONST aBodychunkMasking               * = 80423B0EH; (* V8  isg UBYTE             *)



(****************************************************************************)
(** Text                                                                   **)
(****************************************************************************)

  cText * = "Text.mui";

(* Attributes *)

  CONST aTextContents                   * = 8042F8DCH; (* V4  isg STRPTR            *)
  CONST aTextHiChar                     * = 804218FFH; (* V4  i.. char              *)
  CONST aTextPreParse                   * = 8042566DH; (* V4  isg STRPTR            *)
  CONST aTextSetMax                     * = 80424D0AH; (* V4  i.. BOOL              *)
  CONST aTextSetMin                     * = 80424E10H; (* V4  i.. BOOL              *)
  CONST aTextSetVMax                    * = 80420D8BH; (* V11 i.. BOOL              *)



(****************************************************************************)
(** Gadget                                                                 **)
(****************************************************************************)

  cGadget * = "Gadget.mui";

(* Attributes *)




(****************************************************************************)
(** String                                                                 **)
(****************************************************************************)

  cString * = "String.mui";

(* Attributes *)

  CONST aStringAccept                   * = 8042E3E1H; (* V4  isg STRPTR            *)
  CONST aStringAcknowledge              * = 8042026CH; (* V4  ..g STRPTR            *)
  CONST aStringAdvanceOnCR              * = 804226DEH; (* V11 isg BOOL              *)
  CONST aStringAttachedList             * = 80420FD2H; (* V4  i.. Object *          *)
  CONST aStringBufferPos                * = 80428B6CH; (* V4  .s. LONG              *)
  CONST aStringContents                 * = 80428FFDH; (* V4  isg STRPTR            *)
  CONST aStringDisplayPos               * = 8042CCBFH; (* V4  .s. LONG              *)
  CONST aStringEditHook                 * = 80424C33H; (* V7  isg struct Hook *     *)
  CONST aStringFormat                   * = 80427484H; (* V4  i.g LONG              *)
  CONST aStringInteger                  * = 80426E8AH; (* V4  isg ULONG             *)
  CONST aStringLonelyEditHook           * = 80421569H; (* V11 isg BOOL              *)
  CONST aStringMaxLen                   * = 80424984H; (* V4  i.g LONG              *)
  CONST aStringReject                   * = 8042179CH; (* V4  isg STRPTR            *)
  CONST aStringSecret                   * = 80428769H; (* V4  i.g BOOL              *)

  CONST vStringFormatLeft               * = 0;
  CONST vStringFormatCenter             * = 1;
  CONST vStringFormatRight              * = 2;


(****************************************************************************)
(** Boopsi                                                                 **)
(****************************************************************************)

  cBoopsi * = "Boopsi.mui";

(* Attributes *)

  CONST aBoopsiClass                    * = 80426999H; (* V4  isg struct IClass *   *)
  CONST aBoopsiClassID                  * = 8042BFA3H; (* V4  isg char *            *)
  CONST aBoopsiMaxHeight                * = 8042757FH; (* V4  isg ULONG             *)
  CONST aBoopsiMaxWidth                 * = 8042BCB1H; (* V4  isg ULONG             *)
  CONST aBoopsiMinHeight                * = 80422C93H; (* V4  isg ULONG             *)
  CONST aBoopsiMinWidth                 * = 80428FB2H; (* V4  isg ULONG             *)
  CONST aBoopsiObject                   * = 80420178H; (* V4  ..g Object *          *)
  CONST aBoopsiRemember                 * = 8042F4BDH; (* V4  i.. ULONG             *)
  CONST aBoopsiSmart                    * = 8042B8D7H; (* V9  i.. BOOL              *)
  CONST aBoopsiTagDrawInfo              * = 8042BAE7H; (* V4  isg ULONG             *)
  CONST aBoopsiTagScreen                * = 8042BC71H; (* V4  isg ULONG             *)
  CONST aBoopsiTagWindow                * = 8042E11DH; (* V4  isg ULONG             *)



(****************************************************************************)
(** Prop                                                                   **)
(****************************************************************************)

  cProp * = "Prop.mui";

(* Attributes *)

  CONST aPropEntries                    * = 8042FBDBH; (* V4  isg LONG              *)
  CONST aPropFirst                      * = 8042D4B2H; (* V4  isg LONG              *)
  CONST aPropHoriz                      * = 8042F4F3H; (* V4  i.g BOOL              *)
  CONST aPropSlider                     * = 80429C3AH; (* V4  isg BOOL              *)
  CONST aPropVisible                    * = 8042FEA6H; (* V4  isg LONG              *)



(****************************************************************************)
(** Gauge                                                                  **)
(****************************************************************************)

  cGauge * = "Gauge.mui";

(* Attributes *)

  CONST aGaugeCurrent                   * = 8042F0DDH; (* V4  isg LONG              *)
  CONST aGaugeDivide                    * = 8042D8DFH; (* V4  isg BOOL              *)
  CONST aGaugeHoriz                     * = 804232DDH; (* V4  i.. BOOL              *)
  CONST aGaugeInfoText                  * = 8042BF15H; (* V7  isg STRPTR            *)
  CONST aGaugeMax                       * = 8042BCDBH; (* V4  isg LONG              *)



(****************************************************************************)
(** Scale                                                                  **)
(****************************************************************************)

  cScale * = "Scale.mui";

(* Attributes *)

  CONST aScaleHoriz                     * = 8042919AH; (* V4  isg BOOL              *)



(****************************************************************************)
(** Colorfield                                                             **)
(****************************************************************************)

  cColorfield * = "Colorfield.mui";

(* Attributes *)

  CONST aColorfieldBlue                 * = 8042D3B0H; (* V4  isg ULONG             *)
  CONST aColorfieldGreen                * = 80424466H; (* V4  isg ULONG             *)
  CONST aColorfieldPen                  * = 8042713AH; (* V4  ..g ULONG             *)
  CONST aColorfieldRed                  * = 804279F6H; (* V4  isg ULONG             *)
  CONST aColorfieldRGB                  * = 8042677AH; (* V4  isg ULONG *           *)



(****************************************************************************)
(** List                                                                   **)
(****************************************************************************)

  cList * = "List.mui";

(* Methods *)

  CONST mListClear                      * = 8042AD89H; (* V4  *)
  CONST mListCreateImage                * = 80429804H; (* V11 *)
  CONST mListDeleteImage                * = 80420F58H; (* V11 *)
  CONST mListExchange                   * = 8042468CH; (* V4  *)
  CONST mListGetEntry                   * = 804280ECH; (* V4  *)
  CONST mListInsert                     * = 80426C87H; (* V4  *)
  CONST mListInsertSingle               * = 804254D5H; (* V7  *)
  CONST mListJump                       * = 8042BAABH; (* V4  *)
  CONST mListMove                       * = 804253C2H; (* V9  *)
  CONST mListNextSelected               * = 80425F17H; (* V6  *)
  CONST mListRedraw                     * = 80427993H; (* V4  *)
  CONST mListRemove                     * = 8042647EH; (* V4  *)
  CONST mListSelect                     * = 804252D8H; (* V4  *)
  CONST mListSort                       * = 80422275H; (* V4  *)
  CONST mListTestPos                    * = 80425F48H; (* V11 *)

(* Attributes *)

  CONST aListActive                     * = 8042391CH; (* V4  isg LONG              *)
  CONST aListAdjustHeight               * = 8042850DH; (* V4  i.. BOOL              *)
  CONST aListAdjustWidth                * = 8042354AH; (* V4  i.. BOOL              *)
  CONST aListAutoVisible                * = 8042A445H; (* V11 isg BOOL              *)
  CONST aListCompareHook                * = 80425C14H; (* V4  is. struct Hook *     *)
  CONST aListConstructHook              * = 8042894FH; (* V4  is. struct Hook *     *)
  CONST aListDestructHook               * = 804297CEH; (* V4  is. struct Hook *     *)
  CONST aListDisplayHook                * = 8042B4D5H; (* V4  is. struct Hook *     *)
  CONST aListDragSortable               * = 80426099H; (* V11 isg BOOL              *)
  CONST aListDropMark                   * = 8042ABA6H; (* V11 ..g LONG              *)
  CONST aListEntries                    * = 80421654H; (* V4  ..g LONG              *)
  CONST aListFirst                      * = 804238D4H; (* V4  ..g LONG              *)
  CONST aListFormat                     * = 80423C0AH; (* V4  isg STRPTR            *)
  CONST aListInsertPosition             * = 8042D0CDH; (* V9  ..g LONG              *)
  CONST aListMinLineHeight              * = 8042D1C3H; (* V4  i.. LONG              *)
  CONST aListMultiTestHook              * = 8042C2C6H; (* V4  is. struct Hook *     *)
  CONST aListQuiet                      * = 8042D8C7H; (* V4  .s. BOOL              *)
  CONST aListShowDropMarks              * = 8042C6F3H; (* V11 isg BOOL              *)
  CONST aListSourceArray                * = 8042C0A0H; (* V4  i.. APTR              *)
  CONST aListTitle                      * = 80423E66H; (* V6  isg char *            *)
  CONST aListVisible                    * = 8042191FH; (* V4  ..g LONG              *)

  CONST vListActiveOff                  * = -1;
  CONST vListActiveTop                  * = -2;
  CONST vListActiveBottom               * = -3;
  CONST vListActiveUp                   * = -4;
  CONST vListActiveDown                 * = -5;
  CONST vListActivePageUp               * = -6;
  CONST vListActivePageDown             * = -7;
  CONST vListConstructHookString        * = -1;
  CONST vListDestructHookString         * = -1;


(****************************************************************************)
(** Floattext                                                              **)
(****************************************************************************)

  cFloattext * = "Floattext.mui";

(* Attributes *)

  CONST aFloattextJustify               * = 8042DC03H; (* V4  isg BOOL              *)
  CONST aFloattextSkipChars             * = 80425C7DH; (* V4  is. STRPTR            *)
  CONST aFloattextTabSize               * = 80427D17H; (* V4  is. LONG              *)
  CONST aFloattextText                  * = 8042D16AH; (* V4  isg STRPTR            *)



(****************************************************************************)
(** Volumelist                                                             **)
(****************************************************************************)

  cVolumelist * = "Volumelist.mui";


(****************************************************************************)
(** Scrmodelist                                                            **)
(****************************************************************************)

  cScrmodelist * = "Scrmodelist.mui";

(* Attributes *)




(****************************************************************************)
(** Dirlist                                                                **)
(****************************************************************************)

  cDirlist * = "Dirlist.mui";

(* Methods *)

  CONST mDirlistReRead                  * = 80422D71H; (* V4  *)

(* Attributes *)

  CONST aDirlistAcceptPattern           * = 8042760AH; (* V4  is. STRPTR            *)
  CONST aDirlistDirectory               * = 8042EA41H; (* V4  isg STRPTR            *)
  CONST aDirlistDrawersOnly             * = 8042B379H; (* V4  is. BOOL              *)
  CONST aDirlistFilesOnly               * = 8042896AH; (* V4  is. BOOL              *)
  CONST aDirlistFilterDrawers           * = 80424AD2H; (* V4  is. BOOL              *)
  CONST aDirlistFilterHook              * = 8042AE19H; (* V4  is. struct Hook *     *)
  CONST aDirlistMultiSelDirs            * = 80428653H; (* V6  is. BOOL              *)
  CONST aDirlistNumBytes                * = 80429E26H; (* V4  ..g LONG              *)
  CONST aDirlistNumDrawers              * = 80429CB8H; (* V4  ..g LONG              *)
  CONST aDirlistNumFiles                * = 8042A6F0H; (* V4  ..g LONG              *)
  CONST aDirlistPath                    * = 80426176H; (* V4  ..g STRPTR            *)
  CONST aDirlistRejectIcons             * = 80424808H; (* V4  is. BOOL              *)
  CONST aDirlistRejectPattern           * = 804259C7H; (* V4  is. STRPTR            *)
  CONST aDirlistSortDirs                * = 8042BBB9H; (* V4  is. LONG              *)
  CONST aDirlistSortHighLow             * = 80421896H; (* V4  is. BOOL              *)
  CONST aDirlistSortType                * = 804228BCH; (* V4  is. LONG              *)
  CONST aDirlistStatus                  * = 804240DEH; (* V4  ..g LONG              *)

  CONST vDirlistSortDirsFirst           * = 0;
  CONST vDirlistSortDirsLast            * = 1;
  CONST vDirlistSortDirsMix             * = 2;
  CONST vDirlistSortTypeName            * = 0;
  CONST vDirlistSortTypeDate            * = 1;
  CONST vDirlistSortTypeSize            * = 2;
  CONST vDirlistStatusInvalid           * = 0;
  CONST vDirlistStatusReading           * = 1;
  CONST vDirlistStatusValid             * = 2;


(****************************************************************************)
(** Numeric                                                                **)
(****************************************************************************)

  cNumeric * = "Numeric.mui";

(* Methods *)

  CONST mNumericDecrease                * = 804243A7H; (* V11 *)
  CONST mNumericIncrease                * = 80426ECDH; (* V11 *)
  CONST mNumericScaleToValue            * = 8042032CH; (* V11 *)
  CONST mNumericSetDefault              * = 8042AB0AH; (* V11 *)
  CONST mNumericStringify               * = 80424891H; (* V11 *)
  CONST mNumericValueToScale            * = 80423E4FH; (* V11 *)

(* Attributes *)

  CONST aNumericDefault                 * = 804263E8H; (* V11 isg LONG              *)
  CONST aNumericFormat                  * = 804263E9H; (* V11 isg STRPTR            *)
  CONST aNumericMax                     * = 8042D78AH; (* V11 isg LONG              *)
  CONST aNumericMin                     * = 8042E404H; (* V11 isg LONG              *)
  CONST aNumericReverse                 * = 8042F2A0H; (* V11 isg BOOL              *)
  CONST aNumericRevLeftRight            * = 804294A7H; (* V11 isg BOOL              *)
  CONST aNumericRevUpDown               * = 804252DDH; (* V11 isg BOOL              *)
  CONST aNumericValue                   * = 8042AE3AH; (* V11 isg LONG              *)



(****************************************************************************)
(** Framedisplay                                                           **)
(****************************************************************************)

  cFramedisplay * = "Framedisplay.mui";

(* Attributes *)




(****************************************************************************)
(** Popframe                                                               **)
(****************************************************************************)

  cPopframe * = "Popframe.mui";


(****************************************************************************)
(** Imagedisplay                                                           **)
(****************************************************************************)

  cImagedisplay * = "Imagedisplay.mui";

(* Attributes *)




(****************************************************************************)
(** Popimage                                                               **)
(****************************************************************************)

  cPopimage * = "Popimage.mui";


(****************************************************************************)
(** Pendisplay                                                             **)
(****************************************************************************)

  cPendisplay * = "Pendisplay.mui";

(* Attributes *)

  CONST aPendisplayRGBcolor             * = 8042A1A9H; (* V11 isg struct MUI_RBBcolor * *)
  CONST aPendisplaySpec                 * = 8042A204H; (* V11 isg struct MUI_PenSpec  * *)



(****************************************************************************)
(** Poppen                                                                 **)
(****************************************************************************)

  cPoppen * = "Poppen.mui";


(****************************************************************************)
(** Knob                                                                   **)
(****************************************************************************)

  cKnob * = "Knob.mui";


(****************************************************************************)
(** Levelmeter                                                             **)
(****************************************************************************)

  cLevelmeter * = "Levelmeter.mui";

(* Attributes *)

  CONST aLevelmeterLabel                * = 80420DD5H; (* V11 isg STRPTR            *)



(****************************************************************************)
(** Numericbutton                                                          **)
(****************************************************************************)

  cNumericbutton * = "Numericbutton.mui";


(****************************************************************************)
(** Slider                                                                 **)
(****************************************************************************)

  cSlider * = "Slider.mui";

(* Attributes *)

  CONST aSliderHoriz                    * = 8042FAD1H; (* V11 isg BOOL              *)
  CONST aSliderLevel                    * = 8042AE3AH; (* V4  isg LONG              *)
  CONST aSliderMax                      * = 8042D78AH; (* V4  isg LONG              *)
  CONST aSliderMin                      * = 8042E404H; (* V4  isg LONG              *)
  CONST aSliderQuiet                    * = 80420B26H; (* V6  i.. BOOL              *)
  CONST aSliderReverse                  * = 8042F2A0H; (* V4  isg BOOL              *)



(****************************************************************************)
(** Group                                                                  **)
(****************************************************************************)

  cGroup * = "Group.mui";

(* Methods *)

  CONST mGroupExitChange                * = 8042D1CCH; (* V11 *)
  CONST mGroupInitChange                * = 80420887H; (* V11 *)

(* Attributes *)

  CONST aGroupActivePage                * = 80424199H; (* V5  isg LONG              *)
  CONST aGroupChild                     * = 804226E6H; (* V4  i.. Object *          *)
  CONST aGroupChildList                 * = 80424748H; (* V4  ..g struct List *     *)
  CONST aGroupColumns                   * = 8042F416H; (* V4  is. LONG              *)
  CONST aGroupHoriz                     * = 8042536BH; (* V4  i.. BOOL              *)
  CONST aGroupHorizSpacing              * = 8042C651H; (* V4  is. LONG              *)
  CONST aGroupLayoutHook                * = 8042C3B2H; (* V11 i.. struct Hook *     *)
  CONST aGroupPageMode                  * = 80421A5FH; (* V5  i.. BOOL              *)
  CONST aGroupRows                      * = 8042B68FH; (* V4  is. LONG              *)
  CONST aGroupSameHeight                * = 8042037EH; (* V4  i.. BOOL              *)
  CONST aGroupSameSize                  * = 80420860H; (* V4  i.. BOOL              *)
  CONST aGroupSameWidth                 * = 8042B3ECH; (* V4  i.. BOOL              *)
  CONST aGroupSpacing                   * = 8042866DH; (* V4  is. LONG              *)
  CONST aGroupVertSpacing               * = 8042E1BFH; (* V4  is. LONG              *)

  CONST vGroupActivePageFirst           * = 0;
  CONST vGroupActivePageLast            * = -1;
  CONST vGroupActivePagePrev            * = -2;
  CONST vGroupActivePageNext            * = -3;


(****************************************************************************)
(** Mccprefs                                                               **)
(****************************************************************************)

  cMccprefs * = "Mccprefs.mui";


(****************************************************************************)
(** Register                                                               **)
(****************************************************************************)

  cRegister * = "Register.mui";

(* Attributes *)

  CONST aRegisterFrame                  * = 8042349BH; (* V7  i.g BOOL              *)
  CONST aRegisterTitles                 * = 804297ECH; (* V7  i.g STRPTR *          *)



(****************************************************************************)
(** Settingsgroup                                                          **)
(****************************************************************************)

  cSettingsgroup * = "Settingsgroup.mui";

(* Methods *)


(* Attributes *)




(****************************************************************************)
(** Settings                                                               **)
(****************************************************************************)

  cSettings * = "Settings.mui";

(* Methods *)


(* Attributes *)




(****************************************************************************)
(** Frameadjust                                                            **)
(****************************************************************************)

  cFrameadjust * = "Frameadjust.mui";

(* Methods *)


(* Attributes *)




(****************************************************************************)
(** Penadjust                                                              **)
(****************************************************************************)

  cPenadjust * = "Penadjust.mui";

(* Methods *)


(* Attributes *)

  CONST aPenadjustPSIMode               * = 80421CBBH; (* V11 i.. BOOL              *)



(****************************************************************************)
(** Imageadjust                                                            **)
(****************************************************************************)

  cImageadjust * = "Imageadjust.mui";

(* Methods *)


(* Attributes *)




(****************************************************************************)
(** Virtgroup                                                              **)
(****************************************************************************)

  cVirtgroup * = "Virtgroup.mui";

(* Methods *)


(* Attributes *)

  CONST aVirtgroupHeight                * = 80423038H; (* V6  ..g LONG              *)
  CONST aVirtgroupInput                 * = 80427F7EH; (* V11 i.. BOOL              *)
  CONST aVirtgroupLeft                  * = 80429371H; (* V6  isg LONG              *)
  CONST aVirtgroupTop                   * = 80425200H; (* V6  isg LONG              *)
  CONST aVirtgroupWidth                 * = 80427C49H; (* V6  ..g LONG              *)



(****************************************************************************)
(** Scrollgroup                                                            **)
(****************************************************************************)

  cScrollgroup * = "Scrollgroup.mui";

(* Methods *)


(* Attributes *)

  CONST aScrollgroupContents            * = 80421261H; (* V4  i.. Object *          *)
  CONST aScrollgroupFreeHoriz           * = 804292F3H; (* V9  i.. BOOL              *)
  CONST aScrollgroupFreeVert            * = 804224F2H; (* V9  i.. BOOL              *)



(****************************************************************************)
(** Scrollbar                                                              **)
(****************************************************************************)

  cScrollbar * = "Scrollbar.mui";

(* Attributes *)

  CONST aScrollbarType                  * = 8042FB6BH; (* V11 i.. LONG              *)

  CONST vScrollbarTypeDefault           * = 0;
  CONST vScrollbarTypeBottom            * = 1;
  CONST vScrollbarTypeTop               * = 2;
  CONST vScrollbarTypeSym               * = 3;


(****************************************************************************)
(** Listview                                                               **)
(****************************************************************************)

  cListview * = "Listview.mui";

(* Attributes *)

  CONST aListviewClickColumn            * = 8042D1B3H; (* V7  ..g LONG              *)
  CONST aListviewDefClickColumn         * = 8042B296H; (* V7  isg LONG              *)
  CONST aListviewDoubleClick            * = 80424635H; (* V4  i.g BOOL              *)
  CONST aListviewDragType               * = 80425CD3H; (* V11 isg LONG              *)
  CONST aListviewInput                  * = 8042682DH; (* V4  i.. BOOL              *)
  CONST aListviewList                   * = 8042BCCEH; (* V4  i.g Object *          *)
  CONST aListviewMultiSelect            * = 80427E08H; (* V7  i.. LONG              *)
  CONST aListviewScrollerPos            * = 8042B1B4H; (* V10 i.. BOOL              *)
  CONST aListviewSelectChange           * = 8042178FH; (* V4  ..g BOOL              *)

  CONST vListviewDragTypeNone           * = 0;
  CONST vListviewDragTypeImmediate      * = 1;
  CONST vListviewMultiSelectNone        * = 0;
  CONST vListviewMultiSelectDefault     * = 1;
  CONST vListviewMultiSelectShifted     * = 2;
  CONST vListviewMultiSelectAlways      * = 3;
  CONST vListviewScrollerPosDefault     * = 0;
  CONST vListviewScrollerPosLeft        * = 1;
  CONST vListviewScrollerPosRight       * = 2;


(****************************************************************************)
(** Radio                                                                  **)
(****************************************************************************)

  cRadio * = "Radio.mui";

(* Attributes *)

  CONST aRadioActive                    * = 80429B41H; (* V4  isg LONG              *)
  CONST aRadioEntries                   * = 8042B6A1H; (* V4  i.. STRPTR *          *)



(****************************************************************************)
(** Cycle                                                                  **)
(****************************************************************************)

  cCycle * = "Cycle.mui";

(* Attributes *)

  CONST aCycleActive                    * = 80421788H; (* V4  isg LONG              *)
  CONST aCycleEntries                   * = 80420629H; (* V4  i.. STRPTR *          *)

  CONST vCycleActiveNext                * = -1;
  CONST vCycleActivePrev                * = -2;


(****************************************************************************)
(** Coloradjust                                                            **)
(****************************************************************************)

  cColoradjust * = "Coloradjust.mui";

(* Attributes *)

  CONST aColoradjustBlue                * = 8042B8A3H; (* V4  isg ULONG             *)
  CONST aColoradjustGreen               * = 804285ABH; (* V4  isg ULONG             *)
  CONST aColoradjustModeID              * = 8042EC59H; (* V4  isg ULONG             *)
  CONST aColoradjustRed                 * = 80420EAAH; (* V4  isg ULONG             *)
  CONST aColoradjustRGB                 * = 8042F899H; (* V4  isg ULONG *           *)



(****************************************************************************)
(** Palette                                                                **)
(****************************************************************************)

  cPalette * = "Palette.mui";

(* Attributes *)

  CONST aPaletteEntries                 * = 8042A3D8H; (* V6  i.g struct MUI_Palette_Entry * *)
  CONST aPaletteGroupable               * = 80423E67H; (* V6  isg BOOL              *)
  CONST aPaletteNames                   * = 8042C3A2H; (* V6  isg char **           *)



(****************************************************************************)
(** Popstring                                                              **)
(****************************************************************************)

  cPopstring * = "Popstring.mui";

(* Methods *)

  CONST mPopstringClose                 * = 8042DC52H; (* V7  *)
  CONST mPopstringOpen                  * = 804258BAH; (* V7  *)

(* Attributes *)

  CONST aPopstringButton                * = 8042D0B9H; (* V7  i.g Object *          *)
  CONST aPopstringCloseHook             * = 804256BFH; (* V7  isg struct Hook *     *)
  CONST aPopstringOpenHook              * = 80429D00H; (* V7  isg struct Hook *     *)
  CONST aPopstringString                * = 804239EAH; (* V7  i.g Object *          *)
  CONST aPopstringToggle                * = 80422B7AH; (* V7  isg BOOL              *)



(****************************************************************************)
(** Popobject                                                              **)
(****************************************************************************)

  cPopobject * = "Popobject.mui";

(* Attributes *)

  CONST aPopobjectFollow                * = 80424CB5H; (* V7  isg BOOL              *)
  CONST aPopobjectLight                 * = 8042A5A3H; (* V7  isg BOOL              *)
  CONST aPopobjectObject                * = 804293E3H; (* V7  i.g Object *          *)
  CONST aPopobjectObjStrHook            * = 8042DB44H; (* V7  isg struct Hook *     *)
  CONST aPopobjectStrObjHook            * = 8042FBE1H; (* V7  isg struct Hook *     *)
  CONST aPopobjectVolatile              * = 804252ECH; (* V7  isg BOOL              *)
  CONST aPopobjectWindowHook            * = 8042F194H; (* V9  isg struct Hook *     *)



(****************************************************************************)
(** Poplist                                                                **)
(****************************************************************************)

  cPoplist * = "Poplist.mui";

(* Attributes *)

  CONST aPoplistArray                   * = 8042084CH; (* V8  i.. char **           *)



(****************************************************************************)
(** Popscreen                                                              **)
(****************************************************************************)

  cPopscreen * = "Popscreen.mui";

(* Attributes *)




(****************************************************************************)
(** Popasl                                                                 **)
(****************************************************************************)

  cPopasl * = "Popasl.mui";

(* Attributes *)

  CONST aPopaslActive                   * = 80421B37H; (* V7  ..g BOOL              *)
  CONST aPopaslStartHook                * = 8042B703H; (* V7  isg struct Hook *     *)
  CONST aPopaslStopHook                 * = 8042D8D2H; (* V7  isg struct Hook *     *)
  CONST aPopaslType                     * = 8042DF3DH; (* V7  i.g ULONG             *)



(****************************************************************************)
(** Semaphore                                                              **)
(****************************************************************************)

  cSemaphore * = "Semaphore.mui";

(* Methods *)

  CONST mSemaphoreAttempt               * = 80426CE2H; (* V11 *)
  CONST mSemaphoreAttemptShared         * = 80422551H; (* V11 *)
  CONST mSemaphoreObtain                * = 804276F0H; (* V11 *)
  CONST mSemaphoreObtainShared          * = 8042EA02H; (* V11 *)
  CONST mSemaphoreRelease               * = 80421F2DH; (* V11 *)


(****************************************************************************)
(** Applist                                                                **)
(****************************************************************************)

  cApplist * = "Applist.mui";

(* Methods *)



(****************************************************************************)
(** Dataspace                                                              **)
(****************************************************************************)

  cDataspace * = "Dataspace.mui";

(* Methods *)

  CONST mDataspaceAdd                   * = 80423366H; (* V11 *)
  CONST mDataspaceClear                 * = 8042B6C9H; (* V11 *)
  CONST mDataspaceMerge                 * = 80423E2BH; (* V11 *)
  CONST mDataspaceReadIFF               * = 80420DFBH; (* V11 *)
  CONST mDataspaceRemove                * = 8042DCE1H; (* V11 *)
  CONST mDataspaceWriteIFF              * = 80425E8EH; (* V11 *)

(* Attributes *)

  CONST aDataspacePool                  * = 80424CF9H; (* V11 i.. APTR              *)



(****************************************************************************)
(** Configdata                                                             **)
(****************************************************************************)

  cConfigdata * = "Configdata.mui";

(* Methods *)


(* Attributes *)




(*****************************************)
(* End of automatic header file creation *)
(*****************************************)

(* <*IF OberonA THEN*> $IF OberonA *)
TYPE
    LONGINTARRAY = ARRAY 1 OF LONGINT;
    SET32ARRAY = ARRAY 1 OF Sets.SET32;
(* <*END*> $END *)

(***************************************************************************
** Parameter structures for some classes
***************************************************************************)

TYPE
(* <*IF OberonA THEN*> $IF OberonA *)
  PaletteEntryPtr * = POINTER [2] TO PaletteEntry;
  RenderInfoPtr * = POINTER [2] TO RenderInfo;
  ScrmodelistEntryPtr * = POINTER [2] TO ScrmodelistEntry;
  InputHandlerNodePtr * = POINTER [2] TO InputHandlerNode;
  NotifyDataPtr * = POINTER [2] TO NotifyData;
  MinMaxPtr * = POINTER [2] TO MinMax;
  WidthHeightPtr *= POINTER [2] TO WidthHeight;
  LayoutMsgPtr * = POINTER [2] TO LayoutMsg;
  AreaDataPtr * = POINTER [2] TO AreaData;
  GlobalInfoPtr * = POINTER [2] TO GlobalInfo;
(* <* ELSE *> $ELSE *)
  PaletteEntryPtr * = UNTRACED POINTER TO PaletteEntry;
  RenderInfoPtr * = UNTRACED POINTER TO RenderInfo;
  ScrmodelistEntryPtr * = UNTRACED POINTER TO ScrmodelistEntry;
  InputHandlerNodePtr *= UNTRACED POINTER TO InputHandlerNode;
  NotifyDataPtr * = UNTRACED POINTER TO NotifyData;
  MinMaxPtr * = UNTRACED POINTER TO MinMax;
  WidthHeightPtr *= UNTRACED POINTER TO WidthHeight;
  LayoutMsgPtr * = UNTRACED POINTER TO LayoutMsg;
  AreaDataPtr * = UNTRACED POINTER TO AreaData;
  GlobalInfoPtr * = UNTRACED POINTER TO GlobalInfo;
(* <*END*> $END *)

(* <*IF OberonA THEN*> $IF OberonA *)
  PaletteEntry * = RECORD [2];
(* <* ELSE *> $ELSE *)
  PaletteEntry * = STRUCT;
(* <*END*> $END *)
		     id    * : LONGINT;
		     red   * : LONGINT;
		     green * : LONGINT;
		     blue  * : LONGINT;
		     group * : LONGINT;
		   END;


CONST vPaletteEntryEnd = -1;

TYPE
(* <*IF OberonA THEN*> $IF OberonA *)
  ScrmodelistEntry * = RECORD [2];
(* <* ELSE *> $ELSE *)
  ScrmodelistEntry * = STRUCT
(* <*END*> $END *)
			 name   * : Exec.STRPTR;
			 modeID * : LONGINT;
		       END;

(* <*IF OberonA THEN*> $IF OberonA *)
  InputHandlerNode *= RECORD [2];
			node *: Exec.MinNode;
(* <* ELSE *> $ELSE *)
  InputHandlerNode *= STRUCT( node *: Exec.MinNode );
(* <*END*> $END *)
			object *: Object;
			(* <*IF OberonA THEN*> $IF OberonA *)
			signals *  : Sets.SET32;
			flags   *  : Sets.SET32;
			(* <* ELSE *> $ELSE *)
			signals *  : LONGSET;
			flags   *  : LONGSET;
			(* <*END*> $END *)
			method  *  : LONGINT;
		      END;

(*************************************************************************
** Structures and Macros for creating custom classes.
*************************************************************************)


(*
** GENERAL NOTES:
**
** - Everything described in this header file is only valid within
**   MUI classes. You may never use any of these things out of
**   a class, e.g. in a traditional MUI application.
**
** - Except when otherwise stated, all structures are strictly read only.
*)


(* Instance data of notify class *)

TYPE
(* <*IF OberonA THEN*> $IF OberonA *)
  NotifyData * = RECORD [2]
(* <* ELSE *> $ELSE *)
  NotifyData * = STRUCT
(* <*END*> $END *)
		   globalInfo * : GlobalInfoPtr;
		   userData   * : LONGINT;
		   priv0      * : LONGINT;
		   priv1      * : LONGINT;
		   priv2      * : LONGINT;
		   priv3      * : LONGINT;
		   priv4      * : LONGINT;
		 END;


(* MUI_MinMax structure holds information about minimum, maximum
   and default dimensions of an object. *)

(* <*IF OberonA THEN*> $IF OberonA *)
  MinMax * = RECORD [2]
(* <* ELSE *> $ELSE *)
  MinMax * = STRUCT
(* <*END*> $END *)
	       minWidth  * : INTEGER;
	       minHeight * : INTEGER;
	       maxWidth  * : INTEGER;
	       maxHeight * : INTEGER;
	       defWidth  * : INTEGER;
	       defHeight * : INTEGER;
	     END;

CONST maxmax  * = 10000; (* use this if a dimension is not limited. *)


(* Hook message for custom layout *)

TYPE
(* <*IF OberonA THEN*> $IF OberonA *)
  WidthHeight *= RECORD [2]
(* <* ELSE *> $ELSE *)
  WidthHeight *= STRUCT;
(* <*END*> $END *)
		  width*,height* : INTEGER;
		 END;

(* <*IF OberonA THEN*> $IF OberonA *)
  LayoutMsg  *= RECORD [2]
(* <* ELSE *> $ELSE *)
  LayoutMsg *= STRUCT
(* <*END*> $END *)
		  type        *: LONGINT;
		  children    *: Exec.MinListPtr;
		  minMax      *: MinMax;
		  widhtHeight *: WidthHeight;
		END;


(* (partial) instance data of area class *)

TYPE

(* <*IF OberonA THEN*> $IF OberonA *)
  AreaData * = RECORD [2]
(* <* ELSE *> $ELSE *)
  AreaData * = STRUCT
(* <*END*> $END *)
		renderInfo * : RenderInfoPtr;         (* RenderInfo for this object *)
		priv0        : Exec.APTR;             (* !!! private data !!! *)
		font       * : Graphics.TextFontPtr;  (* Font *)
		minMax     * : MinMax;             (* min/max/default sizes *)
		box        * : Intuition.IBox;        (* position and dimension *)
		addleft    * : SHORTINT;              (* frame & innerspacing left offset *)
		addtop     * : SHORTINT;              (* frame & innerspacing top offset  *)
		subwidth   * : SHORTINT;              (* frame & innerspacing add. width  *)
		subheight  * : SHORTINT;              (* frame & innerspacing add. height *)
		(* <*IF OberonA THEN*> $IF OberonA *)
		flags      * : Sets.SET32;               (* see definitions below *)
		(* <* ELSE *> $ELSE *)
		flags      * : LONGSET;
		(* <*END*> $END *)
		(* ... private data follows ... *)
	      END;

(* Definitions for AreaData.flags *)

CONST
  adfDrawobject * = 0; (* completely redraw yourself *)
  adfDrawupdate * = 1; (* only update yourself *)


(* Global information about parent application. *)

TYPE
(* <*IF OberonA THEN*> $IF OberonA *)
  GlobalInfo * = RECORD [2];
(* <* ELSE *> $ELSE *)
  GlobalInfo * = STRUCT;
(* <*END*> $END *)
		   priv0             : Exec.APTR; (* !!! private data !!! *)
		   applicationObject * : Object;

		   (* ... private data follows ... *)
		 END;

(* MUI's draw pens *)

CONST
  penShine      *= 0;
  penHalfshine  *= 1;
  penBackground *= 2;
  penHalfshadow *= 3;
  penShadow     *= 4;
  penText       *= 5;
  penFill       *= 6;
  penActiveObj  *= 7;
  penCount      *= 8;

TYPE

(* <*IF OberonA THEN*> $IF OberonA *)
  PenPtr * = POINTER [2] TO ARRAY penCount OF INTEGER;
(* <* ELSE *> $ELSE *)
  PenPtr * = UNTRACED POINTER TO ARRAY penCount OF INTEGER;
(* <*END*> $END *)

(* Information on display environment *)

(* <*IF OberonA THEN*> $IF OberonA *)
  RenderInfo * = RECORD [2]
(* <* ELSE *> $ELSE *)
  RenderInfo * = STRUCT
(* <*END*> $END *)         
		   windowObject  * : Object;              (* valid between MUIM_Setup/MUIM_Cleanup *)
		   screen        * : Intuition.ScreenPtr; (* valid between MUIM_Setup/MUIM_Cleanup *)
		   drawInfo      * : Intuition.DrawInfoPtr;  (* valid between MUIM_Setup/MUIM_Cleanup *)
		   pens          * : PenPtr;              (* valid between MUIM_Setup/MUIM_Cleanup *)
		   window        * : Intuition.WindowPtr; (* valid between MUIM_Show/MUIM_Hide *)
		   rastPort      * : Graphics.RastPortPtr;    (* valid between MUIM_Show/MUIM_Hide *)
		   (* ... private data follows ...*)
		 END;





(* User configurable keyboard events coming with MUIM_HandleInput *)

CONST
  keyRelease     *= -2; (* not a real key, faked when wenn keyPress is released *)
  keyNone        *= -1;
  keyPress       *= 0;
  keyToggle      *= 1;
  keyUp          *= 2;
  keyDown        *= 3;
  keyPageUp      *= 4;
  keyPageDown    *= 5;
  keyTop         *= 6;
  keyBottom      *= 7;
  keyLeft        *= 8;
  keyRight       *= 9;
  keyWordLeft    *= 10;
  keyWordRight   *= 11;
  keyLineStart   *= 12;
  keyLineEnd     *= 13;
  keyGadgetNext  *= 14;
  keyGadgetPrev  *= 15;
  keyGadgetOff   *= 16;
  keyWindowClose *= 17;
  keyWindowNext  *= 18;
  keyWindowPrev  *= 19;
  keyHelp        *= 20;
  keyPopup       *= 21;

(* Mui.CustomClass returned by Mui.CreateCustomClass() *)

TYPE
(* <*IF OberonA THEN*> $IF OberonA *)
  CustomClassPtr *= POINTER [2] TO CustomClass;
  CustomClass *= RECORD [2]
(* <* ELSE *> $ELSE *)
  CustomClassPtr *= UNTRACED POINTER TO CustomClass;
  CustomClass *= STRUCT
(* <*END*> $END *)

		  userData      *: Exec.APTR;           (* use for whatever you want *)
		  utilityBase   *: Exec.LibraryPtr;     (* MUI has opened these libraries *)
		  dosBase       *: Exec.LibraryPtr;     (* for you automatically. You can *)
		  gfxBase       *: Exec.LibraryPtr;     (* use them or decide to open     *)
		  intuitionBase *: Exec.LibraryPtr;     (* your libraries yourself.       *)
		  super         *: Intuition.IClassPtr; (* pointer to super class   *)
		  class         *: Intuition.IClassPtr; (* pointer to the new class *)
		  (* ... private data follows ... *)
		 END;

(***************************************************************************
**
** For Boopsi Image Implementors Only:
**
** If MUI is using a boopsi image object, it will send a special method
** immediately after object creation. This method has a parameter structure
** where the boopsi can fill in its minimum and maximum size and learn if
** its used in a horizontal or vertical context.
**
** The boopsi image must use the method id (MUIM_BoopsiQuery) as return
** value. That's how MUI sees that the method is implemented.
**
** Note: MUI does not depend on this method. If the boopsi image doesn't
**       implement it, minimum size will be 0 and maximum size unlimited.
**
***************************************************************************)

CONST mBoopsiQuery *= 80427157H;    (* this is send to the boopsi and *)
				    (* must be used as return value   *)

TYPE
(* <*IF OberonA THEN*> $IF OberonA *)
  pBoopsiQuery  *= RECORD [2]( Intuition.MsgBase ); (* parameter structure *)
		  msg       * : Intuition.Msg;
(* <* ELSE *> $ELSE *)
  pBoopsiQuery  *= STRUCT( msg *: Intuition.Msg ); (* parameter structure *)
(* <*END*> $END *)
		  screen    * : Intuition.ScreenPtr;  (* read only, display context *)
		  (* <*IF OberonA THEN*> $IF OberonA *)
		  flags     * : Sets.SET32;           (* read only, see below *)
		  (* <* ELSE *> $ELSE *)
		  flags     * : LONGSET;              (* read only, see below *)
		  (* <*END*> $END *)
		  minWidth  * : LONGINT;              (* write only, fill in min width  *)
		  minHeight * : LONGINT;              (* write only, fill in min height *)
		  maxWidth  * : LONGINT;              (* write only, fill in max width  *)
		  maxHeight * : LONGINT;              (* write only, fill in max height *)
		  renderInfo * : RenderInfoPtr;       (* read only, display context *)
		  (* ... may grow in future ... *)
		  END;

CONST bqfHoriz *= 0;             (* object used in a horizontal *)
				 (* context (else vertical)     *)

CONST bqMaxMax *= 10000;         (* use this for unlimited MaxWidth/Height *)



(***************************************************************************
** Method Parameter Structures
**
***************************************************************************)

TYPE

(* Empty

(* <*IF OberonA THEN*> $IF OberonA *)
  pPtr * = POINTER [2] TO p;
  p *= RECORD [2] ( Intuition.MsgBase );
			 msg *: Intuition.Msg;
(* <* ELSE *> $ELSE *)
  pPtr * = UNTRACED POINTER TO p;
  p *= STRUCT( msg*:Intuition.Msg);
(* <*END*> $END *)
		       END;

*)

(*************)
(* Semaphore *)
(*************)

(* <*IF OberonA THEN*> $IF OberonA *)
  pSemaphoreAttemptPtr * = POINTER [2] TO pSemaphoreAttempt;
  pSemaphoreAttempt *= RECORD [2] ( Intuition.MsgBase );
			 msg *: Intuition.Msg;
(* <* ELSE *> $ELSE *)
  pSemaphoreAttemptPtr * = UNTRACED POINTER TO pSemaphoreAttempt;
  pSemaphoreAttempt *= STRUCT( msg*:Intuition.Msg);
(* <*END*> $END *)
		       END;

(* <*IF OberonA THEN*> $IF OberonA *)
  pSemaphoreAttemptSharedPtr * = POINTER [2] TO pSemaphoreAttemptShared;
  pSemaphoreAttemptShared *= RECORD [2] ( Intuition.MsgBase );
			 msg *: Intuition.Msg;
(* <* ELSE *> $ELSE *)
  pSemaphoreAttemptSharedPtr * = UNTRACED POINTER TO pSemaphoreAttemptShared;
  pSemaphoreAttemptShared *= STRUCT( msg*:Intuition.Msg);
(* <*END*> $END *)
		       END;
(* <*IF OberonA THEN*> $IF OberonA *)
  pSemaphoreObtainPtr * = POINTER [2] TO pSemaphoreObtain;
  pSemaphoreObtain *= RECORD [2] ( Intuition.MsgBase );
			 msg *: Intuition.Msg;
(* <* ELSE *> $ELSE *)
  pSemaphoreObtainPtr * = UNTRACED POINTER TO pSemaphoreObtain;
  pSemaphoreObtain *= STRUCT( msg*:Intuition.Msg);
(* <*END*> $END *)
		       END;


(* <*IF OberonA THEN*> $IF OberonA *)
  pSemaphoreObtainSharedPtr * = POINTER [2] TO pSemaphoreObtainShared;
  pSemaphoreObtainShared *= RECORD [2] ( Intuition.MsgBase );
			 msg *: Intuition.Msg;
(* <* ELSE *> $ELSE *)
  pSemaphoreObtainSharedPtr * = UNTRACED POINTER TO pSemaphoreObtainShared;
  pSemaphoreObtainShared *= STRUCT( msg*:Intuition.Msg);
(* <*END*> $END *)
		       END;

(* <*IF OberonA THEN*> $IF OberonA *)
  pSemaphoreReleasePtr* = POINTER [2] TO pSemaphoreRelease;
  pSemaphoreRelease *= RECORD [2] ( Intuition.MsgBase );
			 msg *: Intuition.Msg;
(* <* ELSE *> $ELSE *)
  pSemaphoreReleasePtr * = UNTRACED POINTER TO pSemaphoreRelease;
  pSemaphoreRelease *= STRUCT( msg*:Intuition.Msg);
(* <*END*> $END *)
		       END;

(*************)
(* Dataspace *)
(*************)

(* <*IF OberonA THEN*> $IF OberonA *)
  pDataspaceAddPtr * = POINTER [2] TO pDataspaceAdd;
  pDataspaceAdd *= RECORD [2] ( Intuition.MsgBase );
			 msg *: Intuition.Msg;
(* <* ELSE *> $ELSE *)
  pDataspaceAddPtr * = UNTRACED POINTER TO pDataspaceAdd;
  pDataspaceAdd *= STRUCT( msg*:Intuition.Msg);
(* <*END*> $END *)
		       data *: Exec.APTR;
		       len  *: LONGINT;
		       id   *: LONGINT;
		       END;

(* <*IF OberonA THEN*> $IF OberonA *)
  pDataspaceClearPtr * = POINTER [2] TO pDataspaceClear;
  pDataspaceClear *= RECORD [2] ( Intuition.MsgBase );
			 msg *: Intuition.Msg;
(* <* ELSE *> $ELSE *)
  pDataspaceClearPtr * = UNTRACED POINTER TO pDataspaceClear;
  pDataspaceClear *= STRUCT( msg*:Intuition.Msg);
(* <*END*> $END *)
		       END;

(* <*IF OberonA THEN*> $IF OberonA *)
  pDataspaceMergePtr * = POINTER [2] TO pDataspaceMerge;
  pDataspaceMerge *= RECORD [2] ( Intuition.MsgBase );
			 msg *: Intuition.Msg;
(* <* ELSE *> $ELSE *)
  pDataspaceMergePtr * = UNTRACED POINTER TO pDataspaceMerge;
  pDataspaceMerge *= STRUCT( msg*:Intuition.Msg);
(* <*END*> $END *)
		      dataspace*:Object;
		       END;

(* <*IF OberonA THEN*> $IF OberonA *)
  pDataspaceReadIFFPtr * = POINTER [2] TO pDataspaceReadIFF;
  pDataspaceReadIFF *= RECORD [2] ( Intuition.MsgBase );
			 msg *: Intuition.Msg;
(* <* ELSE *> $ELSE *)
  pDataspaceReadIFFPtr * = UNTRACED POINTER TO pDataspaceReadIFF;
  pDataspaceReadIFF *= STRUCT( msg*:Intuition.Msg);
(* <*END*> $END *)
			 handle*: IFFParse.IFFHandlePtr;
		       END;

(* <*IF OberonA THEN*> $IF OberonA *)
  pDataspaceRemovePtr * = POINTER [2] TO pDataspaceRemove;
  pDataspaceRemove *= RECORD [2] ( Intuition.MsgBase );
			 msg *: Intuition.Msg;
(* <* ELSE *> $ELSE *)
  pDataspaceRemovePtr * = UNTRACED POINTER TO pDataspaceRemove;
  pDataspaceRemove *= STRUCT( msg*:Intuition.Msg);
(* <*END*> $END *)
			id*:LONGINT;
		       END;

(* <*IF OberonA THEN*> $IF OberonA *)
  pDataspaceWriteIFFPtr * = POINTER [2] TO pDataspaceWriteIFF;
  pDataspaceWriteIFF *= RECORD [2] ( Intuition.MsgBase );
			 msg *: Intuition.Msg;
(* <* ELSE *> $ELSE *)
  pDataspaceWriteIFFPtr * = UNTRACED POINTER TO pDataspaceWriteIFF;
  pDataspaceWriteIFF *= STRUCT( msg*:Intuition.Msg);
(* <*END*> $END *)
			handle *: IFFParse.IFFHandlePtr;
			type *:  LONGINT;
			id *: LONGINT;

		       END;

(**********)
(* Notify *)
(**********)

(* <*IF OberonA THEN*> $IF OberonA *)
  pCallHookPtr * = POINTER [2] TO pCallHook;
  pCallHook * = RECORD [2]( Intuition.MsgBase );
		  msg       * : Intuition.Msg;
(* <*ELSE*> $ELSE *)
  pCallHookPtr * = UNTRACED POINTER TO pCallHook;
  pCallHook * = STRUCT( msg*:Intuition.Msg );
(* <*END*> $END *)
		  hook * : Utility.HookPtr;
		  (* following hookparams *)
		END;

(* <*IF OberonA THEN*> $IF OberonA *)
  pFindUDataPtr * = POINTER [2] TO pFindUData;
  pFindUData * = RECORD [2]( Intuition.MsgBase );
		  msg       * : Intuition.Msg;
(* <*ELSE*> $ELSE *)
  pFindUDataPtr * = UNTRACED POINTER TO pFindUData;
  pFindUData * = STRUCT( msg*:Intuition.Msg );
(* <*END*> $END *)
		  udata * : LONGINT;
		 END;

(* <*IF OberonA THEN*> $IF OberonA *)
  pGetConfigItemPtr * = POINTER [2] TO pGetConfigItem;
  pGetConfigItem * = RECORD [2]( Intuition.MsgBase );
		  msg       * : Intuition.Msg;
(* <*ELSE*> $ELSE *)
  pGetConfigItemPtr * = UNTRACED POINTER TO pGetConfigItemPtr;
  pGetConfigItem * = STRUCT (msg*:Intuition.Msg)
(* <*END*> $END *)
		   id    * : LONGINT;
		   storage * : SYSTEM.ADDRESS;
		 END;


(* <*IF OberonA THEN*> $IF OberonA *)
  pGetUDataPtr * = POINTER [2] TO pGetUData;
  pGetUData * = RECORD [2]( Intuition.MsgBase );
		  msg       * : Intuition.Msg;
(* <*ELSE*> $ELSE *)
  pGetUDataPtr * = UNTRACED POINTER TO pGetUData;
  pGetUData * = STRUCT (msg*:Intuition.Msg)
(* <*END*> $END *)
		   udata   * : LONGINT;
		   attr    * : LONGINT;
		   storage * : SYSTEM.ADDRESS;
		 END;

(* <*IF OberonA THEN*> $IF OberonA *)
  pKillNotifyPtr * = POINTER [2] TO pKillNotify;
  pKillNotify * = RECORD [2]( Intuition.MsgBase );
		  msg       * : Intuition.Msg;
(* <*ELSE*> $ELSE *)
  pKillNotifyPtr * = UNTRACED POINTER TO pKillNotify;
  pKillNotify * = STRUCT (msg*:Intuition.Msg)
(* <*END*> $END *)
		   trigAttr * : LONGINT;
		 END;


(* <*IF OberonA THEN*> $IF OberonA *)
  pMultiSetPtr * = POINTER [2] TO pMultiSet;
  pMultiSet * = RECORD [2]( Intuition.MsgBase );
		  msg       * : Intuition.Msg;
(* <*ELSE*> $ELSE *)
  pMultiSetPtr * = UNTRACED POINTER TO pMultiSet;
  pMultiSet * = STRUCT (msg*:Intuition.Msg)
(* <*END*> $END *)
		       attr * : LONGINT;
		       val  * : LONGINT;
		       obj  * : Object;
		       (* ... *)
		     END;


(* <*IF OberonA THEN*> $IF OberonA *)
  pNoNotifySetPtr * = POINTER [2] TO pNoNotifySet;
  pNoNotifySet * = RECORD [2]( Intuition.MsgBase );
		  msg       * : Intuition.Msg;
(* <*ELSE*> $ELSE *)
  pNoNotifySetPtr * = UNTRACED POINTER TO pNoNotifySet;
  pNoNotifySet * = STRUCT (msg*:Intuition.Msg)
(* <*END*> $END *)
		      attr   * : LONGINT;
		      format * : Exec.STRPTR;
		      val    * : LONGINT;
		    END;

(* <*IF OberonA THEN*> $IF OberonA *)
  pNotifyPtr * = POINTER [2] TO pNotify;
  pNotify * = RECORD [2]( Intuition.MsgBase );
		  msg       * : Intuition.Msg;
(* <*ELSE*> $ELSE *)
  pNotifyPtr * = UNTRACED POINTER TO pNotify;
  pNotify * = STRUCT (msg*:Intuition.Msg)
(* <*END*> $END *)
		trigAttr * : LONGINT;
		trigVal  * : LONGINT;
		destObj  * : Object;
		(* FollowingParams *)
	      END;

(* <*IF OberonA THEN*> $IF OberonA *)
  pSetPtr * = POINTER [2] TO pSet;
  pSet * = RECORD [2]( Intuition.MsgBase );
		  msg       * : Intuition.Msg;
(* <*ELSE*> $ELSE *)
  pSetPtr * = UNTRACED POINTER TO pSet;
  pSet * = STRUCT (msg*:Intuition.Msg)
(* <*END*> $END *)
		  attr * : LONGINT;
		  val  * : LONGINT;
		END;

(* <*IF OberonA THEN*> $IF OberonA *)
  pSetAsStringPtr * = POINTER [2] TO pSetAsString;
  pSetAsString * = RECORD [2]( Intuition.MsgBase );
		  msg       * : Intuition.Msg;
(* <*ELSE*> $ELSE *)
  pSetAsStringPtr * = UNTRACED POINTER TO pSetAsString;
  pSetAsString * = STRUCT (msg*:Intuition.Msg)
(* <*END*> $END *)
		     attr   * : LONGINT;
		     format * : Exec.STRPTR;
		     val    * : LONGINT;
		     (* ... *)
		   END;

(* <*IF OberonA THEN*> $IF OberonA *)
  pSetUDataPtr * = POINTER [2] TO pSetUData;
  pSetUData * = RECORD [2]( Intuition.MsgBase );
		  msg       * : Intuition.Msg;
(* <*ELSE*> $ELSE *)
  pSetUDataPtr * = UNTRACED POINTER TO pSetUData;
  pSetUData * = STRUCT (msg*:Intuition.Msg)
(* <*END*> $END *)
		   udata   * : LONGINT;
		   attr    * : LONGINT;
		   val     * : SYSTEM.ADDRESS;
		 END;

(* <*IF OberonA THEN*> $IF OberonA *)
  pWriteLongPtr * = POINTER [2] TO pWriteLong;
  pWriteLong * = RECORD [2]( Intuition.MsgBase );
		  msg       * : Intuition.Msg;
(* <* ELSE *> $ELSE *)
  pWriteLongPtr * = UNTRACED POINTER TO pWriteLong;
  pWriteLong * = STRUCT( msg * : Intuition.Msg );
(* <*END*> $END *)
		   val     * : LONGINT;
		   (* <*IF OberonA THEN*> $IF OberonA *)
		   memory  * : POINTER [2] TO LONGINTARRAY;
		   (* <* ELSE *> $ELSE *)
		   memory  * : UNTRACED POINTER TO LONGINT;
		   (* <*END*> $END *)
		 END;

(* <*IF OberonA THEN*> $IF OberonA *)
  pWriteStringPtr * = POINTER [2] TO pWriteString;
  pWriteString * = RECORD [2]( Intuition.MsgBase );
		  msg       * : Intuition.Msg;
(* <* ELSE *> $ELSE *)
  pWriteStringPtr * = UNTRACED POINTER TO pWriteString;
  pWriteString * = STRUCT( msg * : Intuition.Msg );
(* <*END*> $END *)
		     str     * : Exec.STRPTR;
		     memory  * : Exec.STRPTR;
		   END;

(**********)
(* Family *)
(**********)


(* <*IF OberonA THEN*> $IF OberonA *)
  pFamilyAddHeadPtr * = POINTER [2] TO pFamilyAddHead;
  pFamilyAddHead * = RECORD [2]( Intuition.MsgBase );
		  msg       * : Intuition.Msg;
(* <*ELSE*> $ELSE *)
  pFamilyAddHeadPtr * = UNTRACED POINTER TO pFamilyAddHead;
  pFamilyAddHead * = STRUCT (msg*:Intuition.Msg)
(* <*END*> $END *)
		       obj *: Object;
		     END;

(* <*IF OberonA THEN*> $IF OberonA *)
  pFamilyAddTailPtr * = POINTER [2] TO pFamilyAddTail;
  pFamilyAddTail * = RECORD [2]( Intuition.MsgBase );
		  msg       * : Intuition.Msg;
(* <*ELSE*> $ELSE *)
  pFamilyAddTailPtr * = UNTRACED POINTER TO pFamilyAddTail;
  pFamilyAddTail * = STRUCT (msg*:Intuition.Msg)
(* <*END*> $END *)
		       obj *: Object;
		     END;

(* <*IF OberonA THEN*> $IF OberonA *)
  pFamilyInsertPtr * = POINTER [2] TO pFamilyInsert;
  pFamilyInsert * = RECORD [2]( Intuition.MsgBase );
		  msg       * : Intuition.Msg;
(* <*ELSE*> $ELSE *)
  pFamilyInsertPtr * = UNTRACED POINTER TO pFamilyInsert;
  pFamilyInsert * = STRUCT (msg*:Intuition.Msg)
(* <*END*> $END *)
		       obj  *: Object;
		       pred *: Object;
		     END;

(* <*IF OberonA THEN*> $IF OberonA *)
  pFamilyRemovePtr * = POINTER [2] TO pFamilyRemove;
  pFamilyRemove * = RECORD [2]( Intuition.MsgBase );
		  msg       * : Intuition.Msg;
(* <*ELSE*> $ELSE *)
  pFamilyRemovePtr * = UNTRACED POINTER TO pFamilyRemove;
  pFamilyRemove * = STRUCT (msg*:Intuition.Msg)
(* <*END*> $END *)
		       obj *: Object;
		     END;

(* <*IF OberonA THEN*> $IF OberonA *)
  pFamilySortPtr * = POINTER [2] TO pFamilySort;
  pFamilySort * = RECORD [2]( Intuition.MsgBase );
		  msg       * : Intuition.Msg;
(* <*ELSE*> $ELSE *)
  pFamilySortPtr * = UNTRACED POINTER TO pFamilySort;
  pFamilySort * = STRUCT (msg*:Intuition.Msg)
(* <*END*> $END *)
		       obj *: Object;
		     END;

(* <*IF OberonA THEN*> $IF OberonA *)
  pFamilyTransferPtr * = POINTER [2] TO pFamilyTransfer;
  pFamilyTransfer * = RECORD [2]( Intuition.MsgBase );
		  msg       * : Intuition.Msg;
(* <*ELSE*> $ELSE *)
  pFamilyTransferPtr * = UNTRACED POINTER TO pFamilyTransfer;
  pFamilyTransfer * = STRUCT (msg*:Intuition.Msg)
(* <*END*> $END *)
		       family *: Object;
		     END;


(***************)
(* Application *)
(***************)

(* <*IF OberonA THEN*> $IF OberonA *)
  pApplicationPtr * = POINTER [2] TO pApplication;
  pApplication * = RECORD [2]( Intuition.MsgBase );
		  msg       * : Intuition.Msg;
(* <*ELSE*> $ELSE *)
  pApplicationPtr * = UNTRACED POINTER TO pApplication;
  pApplication * = STRUCT (msg*:Intuition.Msg)
(* <*END*> $END *)
		    END;


(* <*IF OberonA THEN*> $IF OberonA *)
  pApplicationAddInputHandlerPtr * = POINTER [2] TO pApplicationAddInputHandler;
  pApplicationAddInputHandler * = RECORD [2]( Intuition.MsgBase );
		  msg       * : Intuition.Msg;
(* <*ELSE*> $ELSE *)
  pApplicationAddInputHandlerPtr * = UNTRACED POINTER TO pApplicationAddInputHandler;
  pApplicationAddInputHandler * = STRUCT (msg*:Intuition.Msg)
(* <*END*> $END *)
		    ihNode * : InputHandlerNodePtr;
		    END;

(* <*IF OberonA THEN*> $IF OberonA *)
  pApplicationCheckRefreshPtr * = POINTER [2] TO pApplicationCheckRefresh;
  pApplicationCheckRefresh * = RECORD [2]( Intuition.MsgBase );
		  msg       * : Intuition.Msg;
(* <*ELSE*> $ELSE *)
  pApplicationCheckRefreshPtr * = UNTRACED POINTER TO pApplicationCheckRefresh;
  pApplicationCheckRefresh * = STRUCT (msg*:Intuition.Msg)
(* <*END*> $END *)
		    END;
(* <*IF OberonA THEN*> $IF OberonA *)
  pApplicationCloseConfigWindowPtr * = POINTER [2] TO pApplicationCloseConfigWindow;
  pApplicationCloseConfigWindow * = RECORD [2]( Intuition.MsgBase );
		  msg       * : Intuition.Msg;
		  flags     * : Sets.SET32;
(* <*ELSE*> $ELSE *)
  pApplicationCloseConfigWindowPtr * = UNTRACED POINTER TO pApplicationCloseConfigWindow;
  pApplicationCloseConfigWindow * = STRUCT (msg*:Intuition.Msg)
		  flags *: LONGSET;
(* <*END*> $END *)
		    END;

(* <*IF OberonA THEN*> $IF OberonA *)
  pApplicationConfigNotifyPtr * = POINTER [2] TO pApplicationConfigNotify;
  pApplicationConfigNotify * = RECORD [2]( Intuition.MsgBase );
		  msg       * : Intuition.Msg;
(* <*ELSE*> $ELSE *)
  pApplicationConfigNotifyPtr * = UNTRACED POINTER TO pApplicationConfigNotify;
  pApplicationConfigNotify * = STRUCT (msg*:Intuition.Msg)
(* <*END*> $END *)
		    END;

(* <*IF OberonA THEN*> $IF OberonA *)
  pApplicationGetMenuCheckPtr * = POINTER [2] TO pApplicationGetMenuCheck;
  pApplicationGetMenuCheck * = RECORD [2]( Intuition.MsgBase ); (* Obsolete *)
		  msg       * : Intuition.Msg;
(* <*ELSE*> $ELSE *)
  pApplicationGetMenuCheckPtr * = UNTRACED POINTER TO pApplicationGetMenuCheck;
  pApplicationGetMenuCheck * = STRUCT (msg*:Intuition.Msg)
(* <*END*> $END *)
		      menuID * : LONGINT;
		    END;

(* <*IF OberonA THEN*> $IF OberonA *)
  pApplicationGetMenuStatePtr * = POINTER [2] TO pApplicationGetMenuState;
  pApplicationGetMenuState * = RECORD [2]( Intuition.MsgBase ); (* Obsolete *)
		  msg       * : Intuition.Msg;
(* <*ELSE*> $ELSE *)
  pApplicationGetMenuStatePtr * = UNTRACED POINTER TO pApplicationGetMenuState;
  pApplicationGetMenuState * = STRUCT (msg*:Intuition.Msg)
(* <*END*> $END *)
		      menuID * : LONGINT;
		    END;


(* <*IF OberonA THEN*> $IF OberonA *)
  pApplicationInputPtr * = POINTER [2] TO pApplicationInput;
  pApplicationInput * = RECORD [2]( Intuition.MsgBase );
		  msg       * : Intuition.Msg;
(* <*ELSE*> $ELSE *)
  pApplicationInputPtr * = UNTRACED POINTER TO pApplicationInput;
  pApplicationInput * = STRUCT (msg*:Intuition.Msg)
(* <*END*> $END *)
			  (* <*IF OberonA THEN*> $IF OberonA *)
			  signal * : POINTER [2] TO SET32ARRAY;
			  (* <* ELSE *> $ELSE *)
			  signal * : UNTRACED POINTER TO LONGSET;
			  (* <*END*> $END *)
			END;

(* <*IF OberonA THEN*> $IF OberonA *)
  pApplicationInputBufferedPtr * = POINTER [2] TO pApplicationInputBuffered;
  pApplicationInputBuffered * = RECORD [2]( Intuition.MsgBase );
		  msg       * : Intuition.Msg;
(* <*ELSE*> $ELSE *)
  pApplicationInputBufferedPtr * = UNTRACED POINTER TO pApplicationInputBuffered;
  pApplicationInputBuffered * = STRUCT (msg*:Intuition.Msg)
(* <*END*> $END *)
			  (* <*IF OberonA THEN*> $IF OberonA *)
			  signal * : POINTER [2] TO SET32ARRAY;
			  (* <* ELSE *> $ELSE *)
			  signal * : UNTRACED POINTER TO LONGSET;
			  (* <*END*> $END *)
			END;

(* <*IF OberonA THEN*> $IF OberonA *)
  pApplicationLoadPtr * = POINTER [2] TO pApplicationLoad;
  pApplicationLoad * = RECORD [2]( Intuition.MsgBase );
		  msg       * : Intuition.Msg;
(* <*ELSE*> $ELSE *)
  pApplicationLoadPtr * = UNTRACED POINTER TO pApplicationLoad;
  pApplicationLoad * = STRUCT (msg*:Intuition.Msg)
(* <*END*> $END *)
			 name * : Exec.STRPTR;
		       END;

(* <*IF OberonA THEN*> $IF OberonA *)
  pApplicationLoadConfigPtr * = POINTER [2] TO pApplicationLoadConfig;
  pApplicationLoadConfig * = RECORD [2]( Intuition.MsgBase );
		  msg       * : Intuition.Msg;
(* <*ELSE*> $ELSE *)
  pApplicationLoadConfigPtr * = UNTRACED POINTER TO pApplicationLoadConfig;
  pApplicationLoadConfig * = STRUCT (msg*:Intuition.Msg)
(* <*END*> $END *)
		      name *: Exec.STRPTR;
		      (* <*IF OberonA THEN*> $IF OberonA *)
		      flags *: Sets.SET32;
		      (* <* ELSE *> $ELSE *)
		      flags *: LONGSET;
		      (* <*END*> $END *)
		    END;

(* <*IF OberonA THEN*> $IF OberonA *)
  pApplicationNewInputPtr * = POINTER [2] TO pApplicationNewInput;
  pApplicationNewInput * = RECORD [2]( Intuition.MsgBase );
		  msg       * : Intuition.Msg;
(* <*ELSE*> $ELSE *)
  pApplicationNewInputPtr * = UNTRACED POINTER TO pApplicationNewInput;
  pApplicationNewInput * = STRUCT (msg*:Intuition.Msg)
(* <*END*> $END *)
		      (* <*IF OberonA THEN*> $IF OberonA *)
		      signal *: Sets.SET32;
		      (* <* ELSE *> $ELSE *)
		      signal *: LONGSET;
		      (* <*END*> $END *)
		    END;

(* <*IF OberonA THEN*> $IF OberonA *)
  pApplicationOpenConfigWindowPtr * = POINTER [2] TO pApplicationOpenConfigWindow;
  pApplicationOpenConfigWindow * = RECORD [2]( Intuition.MsgBase );
		  msg       * : Intuition.Msg;
		  flags     * : Sets.SET32;
(* <*ELSE*> $ELSE *)
  pApplicationOpenConfigWindowPtr * = UNTRACED POINTER TO pApplicationOpenConfigWindow;
  pApplicationOpenConfigWindow * = STRUCT (msg*:Intuition.Msg)
		      flags * : LONGSET;
(* <*END*> $END *)
		    END;

(* <*IF OberonA THEN*> $IF OberonA *)
  pApplicationPushMethodPtr * = POINTER [2] TO pApplicationPushMethod;
  pApplicationPushMethod * = RECORD [2]( Intuition.MsgBase );
		  msg       * : Intuition.Msg;
(* <*ELSE*> $ELSE *)
  pApplicationPushMethodPtr * = UNTRACED POINTER TO pApplicationPushMethod;
  pApplicationPushMethod * = STRUCT (msg*:Intuition.Msg)
(* <*END*> $END *)
			       dest * : Object;
			       (* following Method *)
			     END;

(* <*IF OberonA THEN*> $IF OberonA *)
  pApplicationRemInputHandlerPtr * = POINTER [2] TO pApplicationRemInputHandler;
  pApplicationRemInputHandler * = RECORD [2]( Intuition.MsgBase );
		  msg       * : Intuition.Msg;
(* <*ELSE*> $ELSE *)
  pApplicationRemInputHandlerPtr * = UNTRACED POINTER TO pApplicationRemInputHandler;
  pApplicationRemInputHandler * = STRUCT (msg*:Intuition.Msg)
(* <*END*> $END *)
		      ihNode *: InputHandlerNodePtr;
		    END;

(* <*IF OberonA THEN*> $IF OberonA *)
  pApplicationReturnIDPtr * = POINTER [2] TO pApplicationReturnID;
  pApplicationReturnID * = RECORD [2]( Intuition.MsgBase );
		  msg       * : Intuition.Msg;
(* <*ELSE*> $ELSE *)
  pApplicationReturnIDPtr * = UNTRACED POINTER TO pApplicationReturnID;
  pApplicationReturnID * = STRUCT (msg*:Intuition.Msg)
(* <*END*> $END *)
			     retid * : LONGINT;
			   END;

(* <*IF OberonA THEN*> $IF OberonA *)
  pApplicationSavePtr * = POINTER [2] TO pApplicationSave;
  pApplicationSave * = RECORD [2]( Intuition.MsgBase );
		  msg       * : Intuition.Msg;
(* <*ELSE*> $ELSE *)
  pApplicationSavePtr * = UNTRACED POINTER TO pApplicationSave;
  pApplicationSave * = STRUCT (msg*:Intuition.Msg)
(* <*END*> $END *)
			 name * : Exec.STRPTR;
		       END;

(* <*IF OberonA THEN*> $IF OberonA *)
  pApplicationSaveConfigPtr * = POINTER [2] TO pApplicationSaveConfig;
  pApplicationSaveConfig * = RECORD [2]( Intuition.MsgBase );
		  msg       * : Intuition.Msg;
(* <*ELSE*> $ELSE *)
  pApplicationSaveConfigPtr * = UNTRACED POINTER TO pApplicationSaveConfig;
  pApplicationSaveConfig * = STRUCT (msg*:Intuition.Msg)
(* <*END*> $END *)
		      name *: Exec.STRPTR;
		      (* <*IF OberonA THEN*> $IF OberonA *)
		      flags *: Sets.SET32;
		      (* <* ELSE *> $ELSE *)
		      flags *: LONGSET;
		      (* <*END*> $END *)
		    END;


(* <*IF OberonA THEN*> $IF OberonA *)
  pApplicationSetConfigItemPtr * = POINTER [2] TO pApplicationSetConfigItem;
  pApplicationSetConfigItem * = RECORD [2]( Intuition.MsgBase );
		  msg       * : Intuition.Msg;
(* <*ELSE*> $ELSE *)
  pApplicationSetConfigItemPtr * = UNTRACED POINTER TO pApplicationSetConfigItem;
  pApplicationSetConfigItem * = STRUCT (msg*:Intuition.Msg)
(* <*END*> $END *)
			 item * : LONGINT;
			 data * : Exec.APTR;
		       END;

(* <*IF OberonA THEN*> $IF OberonA *)
  pApplicationSetMenuCheckPtr * = POINTER [2] TO pApplicationSetMenuCheck;
  pApplicationSetMenuCheck * = RECORD [2]( Intuition.MsgBase ); (* Obsolete *)
		  msg       * : Intuition.Msg;
(* <*ELSE*> $ELSE *)
  pApplicationSetMenuCheckPtr * = UNTRACED POINTER TO pApplicationSetMenuCheck;
  pApplicationSetMenuCheck * = STRUCT (msg*:Intuition.Msg)
(* <*END*> $END *)
		      menuID * : LONGINT;
		      set    * : LONGINT;
		    END;

(* <*IF OberonA THEN*> $IF OberonA *)
  pApplicationSetMenuStatePtr * = POINTER [2] TO pApplicationSetMenuState;
  pApplicationSetMenuState * = RECORD [2]( Intuition.MsgBase ); (* Obsolete *)
		  msg       * : Intuition.Msg;
(* <*ELSE*> $ELSE *)
  pApplicationSetMenuStatePtr * = UNTRACED POINTER TO pApplicationSetMenuState;
  pApplicationSetMenuState * = STRUCT (msg*:Intuition.Msg)
(* <*END*> $END *)
		      menuID * : LONGINT;
		      set    * : LONGINT;
		    END;

(* <*IF OberonA THEN*> $IF OberonA *)
  pApplicationShowHelpPtr * = POINTER [2] TO pApplicationShowHelp;
  pApplicationShowHelp * = RECORD [2]( Intuition.MsgBase );
		  msg       * : Intuition.Msg;
(* <*ELSE*> $ELSE *)
  pApplicationShowHelpPtr * = UNTRACED POINTER TO pApplicationShowHelp;
  pApplicationShowHelp * = STRUCT (msg*:Intuition.Msg)
(* <*END*> $END *)
			     window * : Object;
			     name   * : Exec.STRPTR;
			     node   * : Exec.STRPTR;
			     line   * : LONGINT;
			   END;

(***********)
(* Dirlist *)
(***********)

(* <*IF OberonA THEN*> $IF OberonA *)
  pDirlistReReadPtr * = POINTER [2] TO pDirlistReRead;
  pDirlistReRead * = RECORD [2]( Intuition.MsgBase );
		  msg       * : Intuition.Msg;
(* <*ELSE*> $ELSE *)
  pDirlistReReadPtr * = UNTRACED POINTER TO pDirlistReRead;
  pDirlistReRead * = STRUCT (msg*:Intuition.Msg)
(* <*END*> $END *)
			  END;

(*********)
(* Group *)
(*********)

(* <*IF OberonA THEN*> $IF OberonA *)
  pGroupExitChangePtr * = POINTER [2] TO pGroupExitChange;
  pGroupExitChange * = RECORD [2]( Intuition.MsgBase );
		  msg       * : Intuition.Msg;
(* <*ELSE*> $ELSE *)
  pGroupExitChangePtr * = UNTRACED POINTER TO pGroupExitChange;
  pGroupExitChange * = STRUCT (msg*:Intuition.Msg)
(* <*END*> $END *)
			  END;

(* <*IF OberonA THEN*> $IF OberonA *)
  pGroupInitChangePtr * = POINTER [2] TO pGroupInitChange;
  pGroupInitChange * = RECORD [2]( Intuition.MsgBase );
		  msg       * : Intuition.Msg;
(* <*ELSE*> $ELSE *)
  pGroupInitChangePtr * = UNTRACED POINTER TO pGroupInitChange;
  pGroupInitChange * = STRUCT (msg*:Intuition.Msg)
(* <*END*> $END *)
			  END;

(* <*IF OberonA THEN*> $IF OberonA *)
  pGroupBackfillPtr * = POINTER [2] TO pGroupBackfill;
  pGroupBackfill * = RECORD [2]( Intuition.MsgBase );
		  msg       * : Intuition.Msg;
(* <*ELSE*> $ELSE *)
  pGroupBackfillPtr * = UNTRACED POINTER TO pGroupBackfill;
  pGroupBackfill * = STRUCT (msg*:Intuition.Msg)
(* <*END*> $END *)
	      left*,top*,right*,bottom* : INTEGER;
	    END;

(**********)
(* Window *)
(**********)

(* <*IF OberonA THEN*> $IF OberonA *)
  pWindowGetMenuCheckPtr * = POINTER [2] TO pWindowGetMenuCheck;
  pWindowGetMenuCheck * = RECORD [2]( Intuition.MsgBase ); (* Obsolete *)
		  msg       * : Intuition.Msg;
(* <*ELSE*> $ELSE *)
  pWindowGetMenuCheckPtr * = UNTRACED POINTER TO pWindowGetMenuCheck;
  pWindowGetMenuCheck * = STRUCT (msg*:Intuition.Msg)
(* <*END*> $END *)
			    menuID * : LONGINT;
			  END;

(* <*IF OberonA THEN*> $IF OberonA *)
  pWindowGetMenuStatePtr * = POINTER [2] TO pWindowGetMenuState;
  pWindowGetMenuState * = RECORD [2]( Intuition.MsgBase ); (* Obsolete *)
		  msg       * : Intuition.Msg;
(* <*ELSE*> $ELSE *)
  pWindowGetMenuStatePtr * = UNTRACED POINTER TO pWindowGetMenuState;
  pWindowGetMenuState * = STRUCT (msg*:Intuition.Msg)
(* <*END*> $END *)
			    menuID * : LONGINT;
			  END;

(* <*IF OberonA THEN*> $IF OberonA *)
  pWindowScreenToBackPtr * = POINTER [2] TO pWindowScreenToBack;
  pWindowScreenToBack * = RECORD [2]( Intuition.MsgBase );
		  msg       * : Intuition.Msg;
(* <*ELSE*> $ELSE *)
  pWindowScreenToBackPtr * = UNTRACED POINTER TO pWindowScreenToBack;
  pWindowScreenToBack * = STRUCT (msg*:Intuition.Msg)
(* <*END*> $END *)
			  END;

(* <*IF OberonA THEN*> $IF OberonA *)
  pWindowScreenToFrontPtr * = POINTER [2] TO pWindowScreenToFront;
  pWindowScreenToFront * = RECORD [2]( Intuition.MsgBase );
		  msg       * : Intuition.Msg;
(* <*ELSE*> $ELSE *)
  pWindowScreenToFrontPtr * = UNTRACED POINTER TO pWindowScreenToFront;
  pWindowScreenToFront * = STRUCT (msg*:Intuition.Msg)
(* <*END*> $END *)
			  END;

(* <*IF OberonA THEN*> $IF OberonA *)
  pWindowSetCycleChainPtr * = POINTER [2] TO pWindowSetCycleChain;
  pWindowSetCycleChain * = RECORD [2]( Intuition.MsgBase );
		  msg       * : Intuition.Msg;
(* <*ELSE*> $ELSE *)
  pWindowSetCycleChainPtr * = UNTRACED POINTER TO pWindowSetCycleChain;
  pWindowSetCycleChain * = STRUCT (msg*:Intuition.Msg)
(* <*END*> $END *)
			     (* following objects *)
			   END;

(* <*IF OberonA THEN*> $IF OberonA *)
  pWindowSetMenuCheckPtr * = POINTER [2] TO pWindowSetMenuCheck;
  pWindowSetMenuCheck * = RECORD [2]( Intuition.MsgBase ); (* Obsolete *)
		  msg       * : Intuition.Msg;
(* <*ELSE*> $ELSE *)
  pWindowSetMenuCheckPtr * = UNTRACED POINTER TO pWindowSetMenuCheck;
  pWindowSetMenuCheck * = STRUCT (msg*:Intuition.Msg)
(* <*END*> $END *)
			    menuID * : LONGINT;
			    set    * : LONGINT;
			  END;

(* <*IF OberonA THEN*> $IF OberonA *)
  pWindowSetMenuStatePtr * = POINTER [2] TO pWindowSetMenuState;
  pWindowSetMenuState * = RECORD [2]( Intuition.MsgBase ); (* Obsolete *)
		  msg       * : Intuition.Msg;
(* <*ELSE*> $ELSE *)
  pWindowSetMenuStatePtr * = UNTRACED POINTER TO pWindowSetMenuState;
  pWindowSetMenuState * = STRUCT (msg*:Intuition.Msg)
(* <*END*> $END *)
			    menuID * : LONGINT;
			    set    * : LONGINT;
			  END;

(* <*IF OberonA THEN*> $IF OberonA *)
  pWindowToBackPtr * = POINTER [2] TO pWindowToBack;
  pWindowToBack * = RECORD [2]( Intuition.MsgBase );
		  msg       * : Intuition.Msg;
(* <*ELSE*> $ELSE *)
  pWindowToBackPtr * = UNTRACED POINTER TO pWindowToBack;
  pWindowToBack * = STRUCT (msg*:Intuition.Msg)
(* <*END*> $END *)
			  END;

(* <*IF OberonA THEN*> $IF OberonA *)
  pWindowToFrontPtr * = POINTER [2] TO pWindowToFront;
  pWindowToFront * = RECORD [2]( Intuition.MsgBase );
		  msg       * : Intuition.Msg;
(* <*ELSE*> $ELSE *)
  pWindowToFrontPtr * = UNTRACED POINTER TO pWindowToFront;
  pWindowToFront * = STRUCT (msg*:Intuition.Msg)
(* <*END*> $END *)
			  END;


(********)
(* Area *)
(********)

(* <*IF OberonA THEN*> $IF OberonA *)
  pAddToCycleChainPtr * = POINTER [2] TO pAddToCycleChain;
  pAddToCycleChain * = RECORD [2]( Intuition.MsgBase );
		  msg       * : Intuition.Msg;
(* <*ELSE*> $ELSE *)
  pAddToCycleChainPtr * = UNTRACED POINTER TO pAddToCycleChain;
  pAddToCycleChain * = STRUCT (msg*:Intuition.Msg)
(* <*END*> $END *)
	    END;

(* <*IF OberonA THEN*> $IF OberonA *)
  pAskMinMaxPtr * = POINTER [2] TO pAskMinMax;
  pAskMinMax * = RECORD [2]( Intuition.MsgBase );
		  msg       * : Intuition.Msg;
(* <*ELSE*> $ELSE *)
  pAskMinMaxPtr * = UNTRACED POINTER TO pAskMinMax;
  pAskMinMax * = STRUCT (msg*:Intuition.Msg)
(* <*END*> $END *)
		   minMax * : MinMaxPtr;
		 END;

(* <*IF OberonA THEN*> $IF OberonA *)
  pCleanupPtr * = POINTER [2] TO pCleanup;
  pCleanup * = RECORD [2]( Intuition.MsgBase );
		  msg       * : Intuition.Msg;
(* <*ELSE*> $ELSE *)
  pCleanupPtr * = UNTRACED POINTER TO pCleanup;
  pCleanup * = STRUCT (msg*:Intuition.Msg)
(* <*END*> $END *)
	    END;

(* <*IF OberonA THEN*> $IF OberonA *)
  pContextMenuBuildPtr * = POINTER [2] TO pContextMenuBuild;
  pContextMenuBuild* = RECORD [2]( Intuition.MsgBase );
		  msg       * : Intuition.Msg;
(* <*ELSE*> $ELSE *)
  pContextMenuBuildPtr * = UNTRACED POINTER TO pContextMenuBuild;
  pContextMenuBuild * = STRUCT (msg*:Intuition.Msg)
(* <*END*> $END *)
		mx*,my* : LONGINT;
	    END;

(* <*IF OberonA THEN*> $IF OberonA *)
  pContextMenuChoicePtr * = POINTER [2] TO pContextMenuChoice;
  pContextMenuChoice* = RECORD [2]( Intuition.MsgBase );
		  msg       * : Intuition.Msg;
(* <*ELSE*> $ELSE *)
  pContextMenuChoicePtr * = UNTRACED POINTER TO pContextMenuChoice;
  pContextMenuChoice * = STRUCT (msg*:Intuition.Msg)
(* <*END*> $END *)
		choice *: LONGINT;
	    END;

(* <*IF OberonA THEN*> $IF OberonA *)
  pDisablePtr * = POINTER [2] TO pDisable;
  pDisable * = RECORD [2]( Intuition.MsgBase );
		  msg       * : Intuition.Msg;
(* <*ELSE*> $ELSE *)
  pDisablePtr * = UNTRACED POINTER TO pDisable;
  pDisable * = STRUCT (msg*:Intuition.Msg)
(* <*END*> $END *)
	    END;

(* <*IF OberonA THEN*> $IF OberonA *)
  pDragBeginPtr * = POINTER [2] TO pDragBegin;
  pDragBegin * = RECORD [2]( Intuition.MsgBase );
		  msg       * : Intuition.Msg;
(* <*ELSE*> $ELSE *)
  pDragBeginPtr * = UNTRACED POINTER TO pDragBegin;
  pDragBegin * = STRUCT (msg*:Intuition.Msg)
(* <*END*> $END *)
		  obj *: Object;
	    END;

(* <*IF OberonA THEN*> $IF OberonA *)
  pDragDropPtr * = POINTER [2] TO pDragDrop;
  pDragDrop * = RECORD [2]( Intuition.MsgBase );
		  msg       * : Intuition.Msg;
(* <*ELSE*> $ELSE *)
  pDragDropPtr * = UNTRACED POINTER TO pDragDrop;
  pDragDrop * = STRUCT (msg*:Intuition.Msg)
(* <*END*> $END *)
		  obj *: Object;
		  x*,y*: LONGINT;
	    END;

(* <*IF OberonA THEN*> $IF OberonA *)
  pDragFinishPtr * = POINTER [2] TO pDragFinish;
  pDragFinish * = RECORD [2]( Intuition.MsgBase );
		  msg       * : Intuition.Msg;
(* <*ELSE*> $ELSE *)
  pDragFinishPtr * = UNTRACED POINTER TO pDragFinish;
  pDragFinish * = STRUCT (msg*:Intuition.Msg)
(* <*END*> $END *)
		  obj *: Object;
	    END;

(* <*IF OberonA THEN*> $IF OberonA *)
  pDragQueryPtr * = POINTER [2] TO pDragQuery;
  pDragQuery * = RECORD [2]( Intuition.MsgBase );
		  msg       * : Intuition.Msg;
(* <*ELSE*> $ELSE *)
  pDragQueryPtr * = UNTRACED POINTER TO pDragQuery;
  pDragQuery * = STRUCT (msg*:Intuition.Msg)
(* <*END*> $END *)
		  obj *: Object;
	    END;

(* <*IF OberonA THEN*> $IF OberonA *)
  pDragReportPtr * = POINTER [2] TO pDragReport;
  pDragReport * = RECORD [2]( Intuition.MsgBase );
		  msg       * : Intuition.Msg;
(* <*ELSE*> $ELSE *)
  pDragReportPtr * = UNTRACED POINTER TO pDragReport;
  pDragReport * = STRUCT (msg*:Intuition.Msg)
(* <*END*> $END *)
		  obj *: Object;
		  x*,y*: LONGINT;
		  update*:LONGINT;
	    END;

(* <*IF OberonA THEN*> $IF OberonA *)
  pDrawPtr * = POINTER [2] TO pDraw;
  pDraw * = RECORD [2]( Intuition.MsgBase );
		  msg       * : Intuition.Msg;
(* <*ELSE*> $ELSE *)
  pDrawPtr * = UNTRACED POINTER TO pDraw;
  pDraw * = STRUCT (msg*:Intuition.Msg)
(* <*END*> $END *)
	      (* <*IF OberonA THEN*> $IF OberonA *)
	      flags * : Sets.SET32
	      (* <* ELSE *> $ELSE *)
	      flags * : LONGSET;
	      (* <*END*> $END *)
	    END;



(* <*IF OberonA THEN*> $IF OberonA *)
  pEnablePtr * = POINTER [2] TO pEnable;
  pEnable * = RECORD [2]( Intuition.MsgBase );
		  msg       * : Intuition.Msg;
(* <*ELSE*> $ELSE *)
  pEnablePtr * = UNTRACED POINTER TO pEnable;
  pEnable * = STRUCT (msg*:Intuition.Msg)
(* <*END*> $END *)
	    END;

(* <*IF OberonA THEN*> $IF OberonA *)
  pHandleInputPtr * = POINTER [2] TO pHandleInput;
  pHandleInput * = RECORD [2]( Intuition.MsgBase );
		  msg       * : Intuition.Msg;
(* <*ELSE*> $ELSE *)
  pHandleInputPtr * = UNTRACED POINTER TO pHandleInput;
  pHandleInput * = STRUCT (msg*:Intuition.Msg)
(* <*END*> $END *)
		     imsg   * : Intuition.IntuiMessagePtr;
		     muikey * : LONGINT;
		   END;

(* <*IF OberonA THEN*> $IF OberonA *)
  pHidePtr * = POINTER [2] TO pHide;
  pHide * = RECORD [2]( Intuition.MsgBase );
		  msg       * : Intuition.Msg;
(* <*ELSE*> $ELSE *)
  pHidePtr * = UNTRACED POINTER TO pHide;
  pHide * = STRUCT (msg*:Intuition.Msg)
(* <*END*> $END *)
	    END;

(* <*IF OberonA THEN*> $IF OberonA *)
  pHittestPtr * = POINTER [2] TO pHittest;
  pHittest * = RECORD [2]( Intuition.MsgBase );
		  msg       * : Intuition.Msg;
(* <*ELSE*> $ELSE *)
  pHittestPtr * = UNTRACED POINTER TO pHittest;
  pHittest * = STRUCT (msg*:Intuition.Msg)
(* <*END*> $END *)
		x*,y*:LONGINT;
	    END;

(* <*IF OberonA THEN*> $IF OberonA *)
  pSetupPtr * = POINTER [2] TO pSetup;
  pSetup * = RECORD [2]( Intuition.MsgBase );
		  msg       * : Intuition.Msg;
(* <*ELSE*> $ELSE *)
  pSetupPtr * = UNTRACED POINTER TO pSetup;
  pSetup * = STRUCT (msg*:Intuition.Msg)
(* <*END*> $END *)
	       renderInfo * : RenderInfoPtr;
	     END;

(* <*IF OberonA THEN*> $IF OberonA *)
  pShowPtr * = POINTER [2] TO pShow;
  pShow * = RECORD [2]( Intuition.MsgBase );
		  msg       * : Intuition.Msg;
(* <*ELSE*> $ELSE *)
  pShowPtr * = UNTRACED POINTER TO pShow;
  pShow * = STRUCT (msg*:Intuition.Msg)
(* <*END*> $END *)
	    END;

(* <*IF OberonA THEN*> $IF OberonA *)
  pWhichObjectPtr * = POINTER [2] TO pWhichObject;
  pWhichObject * = RECORD [2]( Intuition.MsgBase );
		  msg       * : Intuition.Msg;
(* <*ELSE*> $ELSE *)
  pWhichObjectPtr * = UNTRACED POINTER TO pWhichObject;
  pWhichObject * = STRUCT (msg*:Intuition.Msg)
(* <*END*> $END *)
	      x *, y*: LONGINT;
	    END;

(********)
(* List *)
(********)

(* <*IF OberonA THEN*> $IF OberonA *)
  pListClearPtr * = POINTER [2] TO pListClear;
  pListClear * = RECORD [2]( Intuition.MsgBase );
		  msg       * : Intuition.Msg;
(* <*ELSE*> $ELSE *)
  pListClearPtr * = UNTRACED POINTER TO pListClear;
  pListClear * = STRUCT (msg*:Intuition.Msg)
(* <*END*> $END *)
		    END;

(* <*IF OberonA THEN*> $IF OberonA *)
  pListCreateImagePtr * = POINTER [2] TO pListCreateImage;
  pListCreateImage * = RECORD [2]( Intuition.MsgBase );
		  msg       * : Intuition.Msg;
(* <*ELSE*> $ELSE *)
  pListCreateImagePtr * = UNTRACED POINTER TO pListCreateImage;
  pListCreateImage * = STRUCT (msg*:Intuition.Msg)
(* <*END*> $END *)
			obj *: Object;
			(* <*IF OberonA THEN*> $IF OberonA *)
			flags * : Sets.SET32
			(* <* ELSE *> $ELSE *)
			flags * : LONGSET;
			(* <*END*> $END *)

		    END;

(* <*IF OberonA THEN*> $IF OberonA *)
  pListDeleteImagePtr * = POINTER [2] TO pListDeleteImage;
  pListDeleteImage * = RECORD [2]( Intuition.MsgBase );
		  msg       * : Intuition.Msg;
(* <*ELSE*> $ELSE *)
  pListDeleteImagePtr * = UNTRACED POINTER TO pListDeleteImage;
  pListDeleteImage * = STRUCT (msg*:Intuition.Msg)
(* <*END*> $END *)
		      listimg *: Exec.APTR;
		    END;

(* <*IF OberonA THEN*> $IF OberonA *)
  pListExchangePtr * = POINTER [2] TO pListExchange;
  pListExchange * = RECORD [2]( Intuition.MsgBase );
		  msg       * : Intuition.Msg;
(* <*ELSE*> $ELSE *)
  pListExchangePtr * = UNTRACED POINTER TO pListExchange;
  pListExchange * = STRUCT (msg*:Intuition.Msg)
(* <*END*> $END *)
		      pos1 * : LONGINT;
		      pos2 * : LONGINT;
		    END;

(* <*IF OberonA THEN*> $IF OberonA *)
  pListGetEntryPtr * = POINTER [2] TO pListGetEntry;
  pListGetEntry * = RECORD [2]( Intuition.MsgBase );
		  msg       * : Intuition.Msg;
(* <*ELSE*> $ELSE *)
  pListGetEntryPtr * = UNTRACED POINTER TO pListGetEntry;
  pListGetEntry * = STRUCT (msg*:Intuition.Msg)
(* <*END*> $END *)
		      pos * : LONGINT;
		      entry * : Exec.APTR
		    END;

(* <*IF OberonA THEN*> $IF OberonA *)
  pListInsertPtr * = POINTER [2] TO pListInsert;
  pListInsert * = RECORD [2]( Intuition.MsgBase );
		  msg       * : Intuition.Msg;
(* <*ELSE*> $ELSE *)
  pListInsertPtr * = UNTRACED POINTER TO pListInsert;
  pListInsert * = STRUCT (msg*:Intuition.Msg)
(* <*END*> $END *)
		    entries * : Exec.APTR;
		    count   * : LONGINT;
		    pos     * : LONGINT;
		  END;

(* <*IF OberonA THEN*> $IF OberonA *)
  pListInsertSinglePtr * = POINTER [2] TO pListInsertSingle;
  pListInsertSingle * = RECORD [2]( Intuition.Msg );
		  msg       * : Intuition.Msg;
(* <*ELSE*> $ELSE *)
  pListInsertSinglePtr * = UNTRACED POINTER TO pListInsertSingle;
  pListInsertSingle * = STRUCT (msg*:Intuition.Msg)
(* <*END*> $END *)
			  entry * : Exec.APTR;
			  pos   * : LONGINT;
			END;

(* <*IF OberonA THEN*> $IF OberonA *)
  pListJumpPtr * = POINTER [2] TO pListJump;
  pListJump * = RECORD [2]( Intuition.Msg );
		  msg       * : Intuition.Msg;
(* <*ELSE*> $ELSE *)
  pListJumpPtr * = UNTRACED POINTER TO pListJump;
  pListJump * = STRUCT (msg*:Intuition.Msg)
(* <*END*> $END *)
		    pos * : LONGINT;
		  END;

(* <*IF OberonA THEN*> $IF OberonA *)
  pListMovePtr * = POINTER [2] TO pListMove;
  pListMove * = RECORD [2]( Intuition.Msg );
		  msg       * : Intuition.Msg;
(* <*ELSE*> $ELSE *)
  pListMovePtr * = UNTRACED POINTER TO pListMove;
  pListMove * = STRUCT (msg*:Intuition.Msg)
(* <*END*> $END *)
		    from * : LONGINT;
		    to   * : LONGINT;
		  END;

(* <*IF OberonA THEN*> $IF OberonA *)
  pListNextSelectedPtr * = POINTER [2] TO pListNextSelected;
  pListNextSelected * = RECORD [2]( Intuition.Msg );
		  msg       * : Intuition.Msg;
(* <*ELSE*> $ELSE *)
  pListNextSelectedPtr * = UNTRACED POINTER TO pListNextSelected;
  pListNextSelected * = STRUCT (msg*:Intuition.Msg)
(* <*END*> $END *)
			  (* <*IF OberonA THEN*> $IF OberonA *)
			  pos * : POINTER [2] TO LONGINTARRAY;
			  (* <* ELSE *> $ELSE *)
			  pos * : UNTRACED POINTER TO LONGINT;
			  (* <*END*> $END *)
		       END;


(* <*IF OberonA THEN*> $IF OberonA *)
  pListRedrawPtr * = POINTER [2] TO pListRedraw;
  pListRedraw * = RECORD [2]( Intuition.Msg );
		  msg       * : Intuition.Msg;
(* <*ELSE*> $ELSE *)
  pListRedrawPtr * = UNTRACED POINTER TO pListRedraw;
  pListRedraw * = STRUCT (msg*:Intuition.Msg)
(* <*END*> $END *)
		    pos * : LONGINT;
		  END;

(* <*IF OberonA THEN*> $IF OberonA *)
  pListRemovePtr * = POINTER [2] TO pListRemove;
  pListRemove * = RECORD [2]( Intuition.Msg );
		  msg       * : Intuition.Msg;
(* <*ELSE*> $ELSE *)
  pListRemovePtr * = UNTRACED POINTER TO pListRemove;
  pListRemove * = STRUCT (msg*:Intuition.Msg)
(* <*END*> $END *)
		    pos * : LONGINT;
		  END;

(* <*IF OberonA THEN*> $IF OberonA *)
  pListSelectPtr * = POINTER [2] TO pListSelect;
  pListSelect * = RECORD [2]( Intuition.Msg );
		  msg       * : Intuition.Msg;
(* <*ELSE*> $ELSE *)
  pListSelectPtr * = UNTRACED POINTER TO pListSelect;
  pListSelect * = STRUCT (msg*:Intuition.Msg)
(* <*END*> $END *)
		    pos     * : LONGINT;
		    selType * : LONGINT;
		    (* <*IF OberonA THEN*> $IF OberonA *)
		    state   * : POINTER [2] TO LONGINTARRAY;
		    (* <* ELSE *> $ELSE *)
		    state   * : UNTRACED POINTER TO LONGINT;
		    (* <*END*> $END *)
		  END;

(* <*IF OberonA THEN*> $IF OberonA *)
  pListSortPtr * = POINTER [2] TO pListSort;
  pListSort * = RECORD [2]( Intuition.MsgBase );
		  msg       * : Intuition.Msg;
(* <*ELSE*> $ELSE *)
  pListSortPtr * = UNTRACED POINTER TO pListSort;
  pListSort * = STRUCT (msg*:Intuition.Msg)
(* <*END*> $END *)
		    END;

(* <*IF OberonA THEN*> $IF OberonA *)
  pListTestPosPtr * = POINTER [2] TO pListTestPos;
  pListTestPos * = RECORD [2]( Intuition.MsgBase );
		  msg       * : Intuition.Msg;
(* <*ELSE*> $ELSE *)
  pListTestPosPtr * = UNTRACED POINTER TO pListTestPos;
  pListTestPos * = STRUCT (msg*:Intuition.Msg)
(* <*END*> $END *)
		      x*,y*:LONGINT;
		      res *:Exec.APTR;
		    END;

(*************)
(* Popstring *)
(*************)

(* <*IF OberonA THEN*> $IF OberonA *)
  pPopstringClosePtr * = POINTER [2] TO pPopstringClose;
  pPopstringClose *= RECORD [2]( Intuition.MsgBase );
		  msg       * : Intuition.Msg;
(* <*ELSE*> $ELSE *)
  pPopstringClosePtr * = UNTRACED POINTER TO pPopstringClose;
  pPopstringClose *= STRUCT (msg*:Intuition.Msg)
(* <*END*> $END *)
		       result : LONGINT;
		     END;

(***********)
(* Numeric *)
(***********)
(* <*IF OberonA THEN*> $IF OberonA *)
  pNumericDecreasePtr * = POINTER [2] TO pNumericDecrease;
  pNumericDecrease *= RECORD [2] ( Intuition.MsgBase );
			 msg *: Intuition.Msg;
(* <* ELSE *> $ELSE *)
  pNumericDecreasePtr * = UNTRACED POINTER TO pNumericDecrease;
  pNumericDecrease *= STRUCT( msg*:Intuition.Msg);
(* <*END*> $END *)
			amount *:LONGINT;
		       END;
(* <*IF OberonA THEN*> $IF OberonA *)
  pNumericIncreasePtr * = POINTER [2] TO pNumericIncrease;
  pNumericIncrease *= RECORD [2] ( Intuition.MsgBase );
			 msg *: Intuition.Msg;
(* <* ELSE *> $ELSE *)
  pNumericIncreasePtr * = UNTRACED POINTER TO pNumericIncrease;
  pNumericIncrease *= STRUCT( msg*:Intuition.Msg);
(* <*END*> $END *)
			amount *:LONGINT;
		       END;

(* <*IF OberonA THEN*> $IF OberonA *)
  pNumericScaleToValuePtr * = POINTER [2] TO pNumericScaleToValue;
  pNumericScaleToValue *= RECORD [2] ( Intuition.MsgBase );
			 msg *: Intuition.Msg;
(* <* ELSE *> $ELSE *)
  pNumericScaleToValuePtr * = UNTRACED POINTER TO pNumericScaleToValue;
  pNumericScaleToValue *= STRUCT( msg*:Intuition.Msg);
(* <*END*> $END *)
			  scalemin*:LONGINT;
			  scalemax*:LONGINT;
			  scae*:LONGINT
		       END;

(* <*IF OberonA THEN*> $IF OberonA *)
  pNumericSetDefaultPtr * = POINTER [2] TO pNumericSetDefault;
  pNumericSetDefault *= RECORD [2] ( Intuition.MsgBase );
			 msg *: Intuition.Msg;
(* <* ELSE *> $ELSE *)
  pNumericSetDefaultPtr * = UNTRACED POINTER TO pNumericSetDefault;
  pNumericSetDefault *= STRUCT( msg*:Intuition.Msg);
(* <*END*> $END *)      
		       END;

(* <*IF OberonA THEN*> $IF OberonA *)
  pNumericStringifyPtr * = POINTER [2] TO pNumericStringify;
  pNumericStringify *= RECORD [2] ( Intuition.MsgBase );
			 msg *: Intuition.Msg;
(* <* ELSE *> $ELSE *)
  pNumericStringifyPtr * = UNTRACED POINTER TO pNumericStringify;
  pNumericStringify *= STRUCT( msg*:Intuition.Msg);
(* <*END*> $END *)
			value *: LONGINT;
		       END;

(* <*IF OberonA THEN*> $IF OberonA *)
  pNumericValueToScalePtr * = POINTER [2] TO pNumericValueToScale;
  pNumericValueToScale *= RECORD [2] ( Intuition.MsgBase );
			 msg *: Intuition.Msg;
(* <* ELSE *> $ELSE *)
  pNumericValueToScalePtr * = UNTRACED POINTER TO pNumericValueToScale;
  pNumericValueToScale *= STRUCT( msg*:Intuition.Msg);
(* <*END*> $END *)
			scalemin*:LONGINT;
			scalemax*:LONGINT;
		       END;

(**********)
(* Slider *)
(**********)

(* <*IF OberonA THEN*> $IF OberonA *)
  pSliderDisplayPtr * = POINTER [2] TO pSliderDisplay;
  pSliderDisplay * = RECORD [2]( Intuition.MsgBase );
		  msg       * : Intuition.Msg;
(* <*ELSE*> $ELSE *)
  pSliderDisplayPtr * = UNTRACED POINTER TO pSliderDisplay;
  pSliderDisplay * = STRUCT (msg*:Intuition.Msg)
(* <*END*> $END *)
	      level *: LONGINT;
	      mri   * : RenderInfoPtr;
	      left*,top* : LONGINT;
	      width*,height*: LONGINT;
	    END;

(* <*IF OberonA THEN*> $IF OberonA *)
  pPopstringOpenPtr * = POINTER [2] TO pPopstringOpen;
  pPopstringOpen *= RECORD [2]( Intuition.MsgBase );
		  msg       * : Intuition.Msg;
(* <*ELSE*> $ELSE *)
  pPopstringOpenPtr * = UNTRACED POINTER TO pPopstringOpen;
  pPopstringOpen *= STRUCT (msg*:Intuition.Msg)
(* <*END*> $END *)
		   END;


(* <*IF OberonA THEN*> $IF OberonA *)
  pGroupPtr * = POINTER [2] TO pGroup;
  pGroup * = RECORD [2]( Intuition.MsgBase );
		  msg       * : Intuition.Msg;
(* <*ELSE*> $ELSE *)
  pGroupPtr * = UNTRACED POINTER TO pGroup;
  pGroup * = STRUCT (msg*:Intuition.Msg)
(* <*END*> $END *)
	    END;

(* the following macros can be used to get pointers to an objects
   GlobalInfo and RenderInfo structures. *)

(* <*IF OberonA THEN*> $IF OberonA *)
  dummyXFC2 =  POINTER [2] TO  RECORD [2]
(* <* ELSE *> $ELSE *)
  dummyXFC2 =  POINTER TO STRUCT
(* <*END*> $END *)
			    mnd : NotifyData;
			    mad : AreaData;
			  END;

TYPE
(* <*IF OberonA THEN*> $IF OberonA *)
  ClipHandle *= POINTER [2] TO ClipHandleDesc;
  ClipHandleDesc = RECORD [2] END;
(* <* ELSE *> $ELSE *)
  ClipHandle *= UNTRACED POINTER TO ClipHandleDesc;
  ClipHandleDesc = STRUCT END;
(* <*END*> $END *)

VAR
  base * : Exec.LibraryPtr;

  PROCEDURE GetNotifyData*( obj : Object ):NotifyDataPtr;
    VAR d : dummyXFC2;
    BEGIN
      d:= SYSTEM.VAL( dummyXFC2, obj );
      RETURN SYSTEM.VAL( NotifyDataPtr,SYSTEM.ADR( d.mnd  ) );
    END GetNotifyData;

  PROCEDURE GetAreaData*( obj : Object ):AreaDataPtr;
    VAR d : dummyXFC2;
    BEGIN
      d:= SYSTEM.VAL( dummyXFC2, obj );
      RETURN SYSTEM.VAL( AreaDataPtr,SYSTEM.ADR( d.mad  ) );
    END GetAreaData;

  PROCEDURE GetGlobalInfo*( obj : Object ):GlobalInfoPtr;
    VAR d : dummyXFC2;
    BEGIN
      d:= SYSTEM.VAL( dummyXFC2, obj );
      RETURN d.mnd.globalInfo;
    END GetGlobalInfo;

  PROCEDURE GetRenderInfo*( obj : Object ):RenderInfoPtr;
    VAR d : dummyXFC2;
    BEGIN
      d:= SYSTEM.VAL( dummyXFC2, obj );
      RETURN d.mad.renderInfo;
    END GetRenderInfo;

(****************************************************************************)
(** Special values for WindowObjects                                       **)
(****************************************************************************)


  PROCEDURE  vWindowAltHeightMinMax      * (p:LONGINT): LONGINT; BEGIN RETURN (0-(p)) END vWindowAltHeightMinMax;
  PROCEDURE  vWindowAltHeightVisible     * (p:LONGINT): LONGINT; BEGIN RETURN (-100-(p)) END vWindowAltHeightVisible;
  PROCEDURE  vWindowAltHeightScreen      * (p:LONGINT): LONGINT; BEGIN RETURN (-200-(p)) END vWindowAltHeightScreen;

  PROCEDURE  vWindowAltTopEdgeDelta      * (p:LONGINT): LONGINT; BEGIN RETURN (-3-(p)) END vWindowAltTopEdgeDelta;
  PROCEDURE  vWindowAltWidthMinMax       * (p:LONGINT): LONGINT; BEGIN RETURN (0-(p)) END vWindowAltWidthMinMax;
  PROCEDURE  vWindowAltWidthVisible      * (p:LONGINT): LONGINT; BEGIN RETURN (-100-(p)) END vWindowAltWidthVisible;
  PROCEDURE  vWindowAltWidthScreen       * (p:LONGINT): LONGINT; BEGIN RETURN (-200-(p)) END vWindowAltWidthScreen;
  PROCEDURE  vWindowHeightMinMax         * (p:LONGINT): LONGINT; BEGIN RETURN (0-(p)) END vWindowHeightMinMax;
  PROCEDURE  vWindowHeightVisible        * (p:LONGINT): LONGINT; BEGIN RETURN (-100-(p)) END vWindowHeightVisible;
  PROCEDURE  vWindowHeightScreen         * (p:LONGINT): LONGINT; BEGIN RETURN (-200-(p)) END vWindowHeightScreen;
  PROCEDURE  vWindowTopEdgeDelta         * (p:LONGINT): LONGINT; BEGIN RETURN (-3-(p)) END vWindowTopEdgeDelta;
  PROCEDURE  vWindowWidthMinMax          * (p:LONGINT): LONGINT; BEGIN RETURN (0-(p)) END vWindowWidthMinMax;
  PROCEDURE  vWindowWidthVisible         * (p:LONGINT): LONGINT; BEGIN RETURN (-100-(p)) END vWindowWidthVisible;
  PROCEDURE  vWindowWidthScreen          * (p:LONGINT): LONGINT; BEGIN RETURN (-200-(p)) END vWindowWidthScreen;


(* Some useful shortcuts. define MUI_NOSHORTCUTS to get rid of them *)

  PROCEDURE app*( obj : Object ):Object;
    VAR gi : GlobalInfoPtr;
    BEGIN
      gi := GetGlobalInfo( obj );
      RETURN gi.applicationObject;
    END app;

  PROCEDURE win*( obj : Object ):Object;
    VAR ri : RenderInfoPtr;
    BEGIN
      ri := GetRenderInfo( obj );
      RETURN ri.windowObject;
    END win;

  PROCEDURE dri*( obj : Object ):Intuition.DrawInfoPtr;
    VAR ri : RenderInfoPtr;
    BEGIN
      ri := GetRenderInfo( obj );
      RETURN ri.drawInfo;
    END dri;

  PROCEDURE window*( obj : Object ):Intuition.WindowPtr;
    VAR ri : RenderInfoPtr;
    BEGIN
      ri := GetRenderInfo( obj );
      RETURN ri.window;
    END window;

  PROCEDURE screen*( obj : Object ):Intuition.ScreenPtr;
    VAR ri : RenderInfoPtr;
    BEGIN
      ri := GetRenderInfo( obj );
      RETURN ri.screen;
    END screen;

  PROCEDURE rp*( obj : Object ):Graphics.RastPortPtr;
    VAR ri : RenderInfoPtr;
    BEGIN
      ri := GetRenderInfo( obj );
      RETURN ri.rastPort;
    END rp;

  PROCEDURE left*( obj : Object ):INTEGER;
    VAR ad : AreaDataPtr;
    BEGIN
      ad := GetAreaData( obj );
      RETURN ad.box.left
    END left;

  PROCEDURE top*( obj : Object ):INTEGER;
    VAR ad : AreaDataPtr;
    BEGIN
      ad := GetAreaData( obj );
      RETURN ad.box.top
    END top;

  PROCEDURE width*( obj : Object ):INTEGER;
    VAR ad : AreaDataPtr;
    BEGIN
      ad := GetAreaData( obj );
      RETURN ad.box.width
    END width;

  PROCEDURE height*( obj : Object ):INTEGER;
    VAR ad : AreaDataPtr;
    BEGIN
      ad := GetAreaData( obj );
      RETURN ad.box.height
    END height;

  PROCEDURE  right*( obj : Object ):INTEGER;
    BEGIN RETURN  left(obj)+width(obj)-1 END right;

  PROCEDURE  bottom*( obj : Object ):INTEGER;
    BEGIN RETURN top(obj)+height(obj)-1 END bottom;

  PROCEDURE  addleft*( obj : Object ):SHORTINT;
    VAR ad : AreaDataPtr;
    BEGIN
      ad := GetAreaData( obj );
      RETURN ad.addleft
    END addleft;

  PROCEDURE  addtop*( obj : Object ):SHORTINT;
    VAR ad : AreaDataPtr;
    BEGIN
      ad := GetAreaData( obj );
      RETURN ad.addtop
    END addtop;

  PROCEDURE  subwidth*( obj : Object ):SHORTINT;
    VAR ad : AreaDataPtr;
    BEGIN
      ad := GetAreaData( obj );
      RETURN ad.subwidth
    END subwidth;

  PROCEDURE  subheight*( obj : Object ):SHORTINT;
    VAR ad : AreaDataPtr;
    BEGIN
      ad := GetAreaData( obj );
      RETURN ad.subheight
    END subheight;

  PROCEDURE  mleft*( obj : Object ):INTEGER;
    BEGIN RETURN ( left(obj)+addleft(obj) ) END mleft;

  PROCEDURE  mtop*( obj : Object ):INTEGER;
    BEGIN RETURN ( top(obj)+addtop(obj) ) END mtop;

  PROCEDURE  mwidth*( obj : Object ):INTEGER;
    BEGIN RETURN ( width(obj)-subwidth(obj) ) END mwidth;

  PROCEDURE  mheight*( obj : Object ):INTEGER;
    BEGIN RETURN ( height(obj)-subheight(obj) ) END mheight;

  PROCEDURE  mright*( obj : Object ):INTEGER;
    BEGIN RETURN ( mleft(obj)+mwidth(obj)-1 ) END mright;

  PROCEDURE  mbottom*( obj : Object ):INTEGER;
    BEGIN RETURN ( mtop(obj)+mheight(obj)-1 ) END mbottom;

  PROCEDURE  font*( obj : Object ):Graphics.TextFontPtr;
    VAR ad : AreaDataPtr;
    BEGIN
      ad := GetAreaData( obj );
      RETURN ad.font
    END font;

  PROCEDURE  minwidth*( obj : Object ): INTEGER;
    VAR ad : AreaDataPtr;
    BEGIN
      ad := GetAreaData( obj );
      RETURN ad.minMax.minWidth;
    END minwidth;

  PROCEDURE  minheight*( obj : Object ): INTEGER;
    VAR ad : AreaDataPtr;
    BEGIN
      ad := GetAreaData( obj );
      RETURN ad.minMax.minHeight;
    END minheight;

  PROCEDURE  maxwidth*( obj : Object ): INTEGER;
    VAR ad : AreaDataPtr;
    BEGIN
      ad := GetAreaData( obj );
      RETURN ad.minMax.maxWidth;
    END maxwidth;

  PROCEDURE  maxheight*( obj : Object ): INTEGER;
    VAR ad : AreaDataPtr;
    BEGIN
      ad := GetAreaData( obj );
      RETURN ad.minMax.maxHeight;
    END maxheight;

  PROCEDURE  defwidth*( obj : Object ): INTEGER;
    VAR ad : AreaDataPtr;
    BEGIN
      ad := GetAreaData( obj );
      RETURN ad.minMax.defWidth;
    END defwidth;

  PROCEDURE  defheight*( obj : Object ): INTEGER;
    VAR ad : AreaDataPtr;
    BEGIN
      ad := GetAreaData( obj );
      RETURN ad.minMax.defHeight;
    END defheight;


(* <*IF OberonA THEN*> $IF OberonA *)
  PROCEDURE  flags*( obj : Object ):Sets.SET32;
(* <* ELSE *> $ELSE *)
  PROCEDURE  flags*( obj : Object ):LONGSET;
(* <*END*> $END *)
    VAR ad : AreaDataPtr;
    BEGIN
      ad := GetAreaData( obj );
      RETURN ad.flags
    END flags;

(***************************************************************************
** Functions in muimaster.library
***************************************************************************)

(* <*IF OberonA THEN*> $IF OberonA *)
PROCEDURE [4] NewObjectA           * [base,-30]( class[8]      : ARRAY OF CHAR;
					     tags[9]       : ARRAY OF Utility.TagItem): Object;

PROCEDURE [4] NewObject            * [base,-30]( class[8]      : ARRAY OF CHAR;
					     tags[9]..     : Utility.Tag): Object;

PROCEDURE [4] DisposeObject        * [base,-36]( obj[8]        : Object);


PROCEDURE [4] RequestA             * [base,-42]( app[0]        : Object;
					     win[1]        : Object;
					     flags[2]      : LONGINT;
					     title[8]      : ARRAY OF CHAR;
					     gadgets[9]    : ARRAY OF CHAR;
					     format[10]    : ARRAY OF CHAR;
					     params[11]    : ARRAY OF Utility.TagItem) : LONGINT;

PROCEDURE [4] Request              * [base,-42]( app[0]        : Object;
					     win[1]        : Object;
					     flags[2]      : LONGINT;
					     title[8]      : ARRAY OF CHAR;
					     gadgets[9]    : ARRAY OF CHAR;
					     format[10]    : ARRAY OF CHAR;
					     params[11]..  : Utility.Tag) : LONGINT;

PROCEDURE [4] AllocAslRequest      * [base,-48]( typ[0]  : LONGINT;
					     tags[8] : ARRAY OF Utility.TagItem) : ASL.ASLRequesterPtr;

PROCEDURE [4] AllocAslRequestTags  * [base,-48]( typ[0]    : LONGINT;
					     tags[8].. : Utility.Tag) : ASL.ASLRequesterPtr;

PROCEDURE [4] AslRequest           * [base,-54]( req[8]  : ASL.ASLRequesterPtr;
					     tags[9] : ARRAY OF Utility.TagItem) : BOOLEAN;

PROCEDURE [4] AslRequestTags       * [base,-54]( req[8]    : ASL.ASLRequesterPtr;
					     tags[9].. : Utility.Tag) : BOOLEAN;

PROCEDURE [4] FreeAslRequest       * [base,-60]( req[8]  : ASL.ASLRequesterPtr );

PROCEDURE [4] Error                * [base,-66]() : LONGINT;

(* functions to be used with custom classes *)

PROCEDURE [4] SetError             * [base,-72]( num[0] : LONGINT ):LONGINT;

PROCEDURE [4] GetClass             * [base,-78]( classname[8] : ARRAY OF CHAR ):Intuition.IClassPtr;

PROCEDURE [4] FreeClass            * [base,-84]( classptr[8]: Intuition.IClassPtr );

PROCEDURE [4] RequestIDCMP         * [base,-90]( obj[8]:Object; flags[0]:Sets.SET32 );

PROCEDURE [4] RejectIDCMP          * [base,-96]( obj[8]:Object; flags[0]:Sets.SET32 );

PROCEDURE [4] Redraw               * [base,-102]( obj[8]:Object; flags[0]:Sets.SET32 );


PROCEDURE [4] CreateCustomClass    * [base,-108]( base[8]     : Exec.LibraryPtr;
					      supername[9]: ARRAY OF CHAR;
					      supermcc[10]: CustomClassPtr;
					      datasize[0] : LONGINT;
					      dispfunc[11]: dispatcher ):CustomClassPtr;


PROCEDURE [4] DeleteCustomClass    * [base,-114]( mcc[8] : CustomClassPtr ):BOOLEAN;


PROCEDURE [4] MakeObject           * [base,-120](objtype[0]  : LONGINT;
					     params[8].. : SYSTEM.ADDRESS ):Object;

PROCEDURE [4] MakeObjectA          * [base,-120](objtype[0]  : LONGINT;
					     params[8]   : Exec.APTR ):Object;

PROCEDURE [4] AddClipping          * {base,-150}(mri{8} : RenderInfoPtr;
					     left{0},top{1},width{2},height{3} : LONGINT): ClipHandle;

PROCEDURE [4] RemoveClipping       * {base,-156}(mri{8} : RenderInfoPtr; handle{9}:ClipHandle);

(*************************************************************)
(* layout function, use only in custom layout callback hook! *)
(*************************************************************)

PROCEDURE [4] Layout               * {base,-162}(obj{8}:Object;
					     left{0},top{1},width{2},height{3} : LONGINT;
					     flags{4}: Sets.SET32):BOOLEAN;


PROCEDURE [4] DoMethod * ["Classface_Domethod"] ( obj[10]: Object; msg[9]..: Utility.Tag );
PROCEDURE [4] DOMethod * ["Classface_DoMethod"] ( obj[10]: Object; msg[9]..: Utility.Tag ) : LONGINT;

(* <* ELSE *> $ELSE *)

(****************************************)
(* functions to be used in applications *)
(****************************************)

PROCEDURE NewObjectA           * {base,-30}( class{8}      : ARRAY OF CHAR;
					     tags{9}       : ARRAY OF Utility.TagItem): Object;

PROCEDURE NewObject            * {base,-30}( class{8}      : ARRAY OF CHAR;
					     tags{9}..     : Utility.Tag): Object;

PROCEDURE DisposeObject        * {base,-36}( obj{8}        : Object);


PROCEDURE RequestA             * {base,-42}( app{0}        : Object;
					     win{1}        : Object;
					     flags{2}      : LONGINT;
					     title{8}      : ARRAY OF CHAR;
					     gadgets{9}    : ARRAY OF CHAR;
					     format{10}    : ARRAY OF CHAR;
					     params{11}    : ARRAY OF Utility.TagItem) : LONGINT;

PROCEDURE Request              * {base,-42}( app{0}        : Object;
					     win{1}        : Object;
					     flags{2}      : LONGINT;
					     title{8}      : ARRAY OF CHAR;
					     gadgets{9}    : ARRAY OF CHAR;
					     format{10}    : ARRAY OF CHAR;
					     params{11}..  : Utility.Tag) : LONGINT;

PROCEDURE AllocAslRequest      * {base,-48}( typ{0}  : LONGINT;
					     tags{8} : ARRAY OF Utility.TagItem) : ASL.ASLRequesterPtr;

PROCEDURE AllocAslRequestTags  * {base,-48}( typ{0}    : LONGINT;
					     tags{8}.. : Utility.Tag) : ASL.ASLRequesterPtr;

PROCEDURE AslRequest           * {base,-54}( req{8}  : ASL.ASLRequesterPtr;
					     tags{9} : ARRAY OF Utility.TagItem) : BOOLEAN;

PROCEDURE AslRequestTags       * {base,-54}( req{8}    : ASL.ASLRequesterPtr;
					     tags{9}.. : Utility.Tag) : BOOLEAN;

PROCEDURE FreeAslRequest       * {base,-60}( req{8}  : ASL.ASLRequesterPtr );

PROCEDURE Error                * {base,-66}() : LONGINT;

(******************************************)
(* functions to be used in custom classes *)
(******************************************)

PROCEDURE SetError             * {base,-72}( num{0} : LONGINT ):LONGINT;

PROCEDURE GetClass             * {base,-78}( classname{8} : ARRAY OF CHAR ):Intuition.IClassPtr;

PROCEDURE FreeClass            * {base,-84}( classptr{8}: Intuition.IClassPtr );

PROCEDURE RequestIDCMP         * {base,-90}( obj{8}:Object; flags{0}:LONGSET );

PROCEDURE RejectIDCMP          * {base,-96}( obj{8}:Object; flags{0}:LONGSET );

PROCEDURE Redraw               * {base,-102}( obj{8}:Object; flags{0}:LONGSET );


PROCEDURE CreateCustomClass    * {base,-108}( base{8}     : Exec.LibraryPtr;
					      supername{9}: ARRAY OF CHAR;
					      supermcc{10}: CustomClassPtr;
					      datasize{0} : LONGINT;
					      dispfunc{11}: dispatcher ):CustomClassPtr;

PROCEDURE DeleteCustomClass    * {base,-114}( mcc{8} : CustomClassPtr ):BOOLEAN;


PROCEDURE MakeObject           * {base,-120}(objtype{0}  : LONGINT;
					     params{8}.. : SYSTEM.ADDRESS ):Object;

PROCEDURE MakeObjectA          * {base,-120}(objtype{0}  : LONGINT;
					     params{8}   : Exec.APTR ):Object;

PROCEDURE AddClipping          * {base,-150}(mri{8} : RenderInfoPtr;
					     left{0},top{1},width{2},height{3} : LONGINT): ClipHandle;

PROCEDURE RemoveClipping       * {base,-156}(mri{8} : RenderInfoPtr; handle{9}:ClipHandle);

(*************************************************************)
(* layout function, use only in custom layout callback hook! *)
(*************************************************************)

PROCEDURE Layout               * {base,-162}(obj{8}:Object;
					     left{0},top{1},width{2},height{3} : LONGINT;
					     flags{4}: LONGSET):BOOLEAN;


PROCEDURE DoMethod * {"_a_DoMethodA"} ( obj{10}: Object; msg{9}..: Utility.Tag );
PROCEDURE DOMethod * {"_a_DoMethodA"} ( obj{10}: Object; msg{9}..: Utility.Tag ) : LONGINT;
(* <*END*> $END *)

(*--- Library Base variable --------------------------------------------*)

(* <*IF OberonA THEN*> $IF OberonA *)
(* <*$LongVars-*> *)

(*------------------------------------*)
PROCEDURE* CloseLib (VAR rc : LONGINT);

BEGIN (* CloseLib *)
  IF base # NIL THEN Exec.CloseLibrary (base) END
END CloseLib;

BEGIN
  base := Exec.OpenLibrary (name, minVersion);
  IF base # NIL THEN Kernel.SetCleanup (CloseLib) END;

(* <* ELSE *> $ELSE *)
BEGIN
  base := Exec.OpenLibrary( name, minVersion);
  IF base=NIL THEN
    IF Intuition.DisplayAlert(0,"\x00\x64\x14missing muimaster.library V8\o\o",50) THEN END;
    HALT(0)
  END;
CLOSE
  IF base#NIL THEN Exec.CloseLibrary(base) END;             
(* <*END*> $END *)
END Mui.
