home *** CD-ROM | disk | FTP | other *** search
/ Gold Fish 2 / goldfish_vol2_cd1.bin / files / dev / gui / mui / developer / oberon / txt / muisimple.mod < prev    next >
Text File  |  1994-07-02  |  37KB  |  916 lines

  1. (*------------------------------------------
  2.  
  3.   :Module.      MuiSimple.mod
  4.   :Author.      Albert Weinert  [awn]
  5.   :Address.     Adamsstr. 83 , 51063 Köln, Germany
  6.   :EMail.       a.weinert@darkness.gun.de
  7.   :Phone.       +49-221-613100
  8.   :Revision.    R.1
  9.   :Date.        02-Jul-1994
  10.   :Copyright.   Albert Weinert
  11.   :Language.    Oberon-2
  12.   :Translator.  AmigaOberon V3.11
  13.   :Contents.    Contains the object creation on a simple manner (but not so easy)
  14.   :Remarks.     *Don't mix MuiBasics.mod and MuiSimple.mod objects!!* Do that
  15.   :Remarks.     only if you want do dynamic object creation.
  16.   :Bugs.        <Bekannte Fehler>
  17.   :Usage.       <Angaben zur Anwendung>
  18.   :History.     .1    [awn] 02-Jul-1994 : Erstellt
  19.  
  20. --------------------------------------------*)
  21. MODULE MuiSimple;
  22.  
  23. IMPORT e * := Exec,
  24.        I * := Intuition,
  25.        m * := Mui,
  26.        u * := Utility,
  27.        y   :=SYSTEM;
  28.  
  29. TYPE
  30.   Args     * = UNTRACED POINTER TO ArgsDesc;
  31.   ArgsDesc * = STRUCT END;
  32.  
  33.   HookDef * = PROCEDURE ( hook : u.HookPtr; object : m.Object; args : Args ):LONGINT;
  34.  
  35. (***************************************************************************
  36. ** Class Tree
  37. ****************************************************************************
  38. **
  39. ** rootclass               (B00PSI's base class)
  40. ** +--Notify               (implements notification mechanism)
  41. **    +--Family            (handles multiple children)
  42. **    !  +--Menustrip      (describes a complete menu strip)
  43. **    !  +--Menu           (describes a single menu)
  44. **    !  \--Menuitem       (describes a single menu item)
  45. **    +--Application       (main class for all applications)
  46. **    +--Window            (handles intuition window related topics)
  47. **    +--Area              (base class for all GUI elements)
  48. **       +--Rectangle      (creates (empty) rectangles)
  49. **       +--Image          (creates images)
  50. **       +--Text           (creates some text)
  51. **       +--String         (creates a string gadget)
  52. **       +--Prop           (creates a proportional gadget)
  53. **       +--Gauge          (creates a fule gauge)
  54. **       +--Scale          (creates a percentage scale)
  55. **       +--Boopsi         (interface to B00PSI gadgets)
  56. **       +--Colorfield     (creates a field with changeable color)
  57. **       +--List           (creates a line-oriented list)
  58. **       !  +--Floattext   (special list with floating text)
  59. **       !  +--Volumelist  (special list with volumes)
  60. **       !  +--Scrmodelist (special list with screen modes)
  61. **       !  \--Dirlist     (special list with files)
  62. **       +--Group          (groups other GUI elements)
  63. **          +--Register    (handles page groups with titles)
  64. **          +--Virtgroup   (handles virtual groups)
  65. **          +--Scrollgroup (handles virtual groups with scrollers)
  66. **          +--Scrollbar   (creates a scrollbar)
  67. **          +--Listview    (creates a listview)
  68. **          +--Radio       (creates radio buttons)
  69. **          +--Cycle       (creates cycle gadgets)
  70. **          +--Slider      (creates slider gadgets)
  71. **          +--Coloradjust (creates some RGB sliders)
  72. **          +--Palette     (creates a complete palette gadget)
  73. **          +--Colorpanel  (creates a panel of colors)
  74. **          +--Popstring   (base class for popups)
  75. **             +--Popobject(popup a MUI object in a window)
  76. **             \--Popasl   (popup an asl requester)
  77. **
  78. **************************************************************)
  79.   PROCEDURE FamilyObject*{"MuiSimple.FamilyObjectA"} ( tags{9}.. : u.Tag):m.Object;
  80.   PROCEDURE FamilyObjectA*( tags{9} : u.TagListPtr ):m.Object;
  81.     BEGIN
  82.       RETURN m.NewObject( m.cFamily, u.more, tags );
  83.     END FamilyObjectA;
  84.  
  85.   PROCEDURE MenustripObject*{"MuiSimple.MenustripObjectA"} ( tags{9}.. : u.Tag):m.Object;
  86.   PROCEDURE MenustripObjectA*( tags{9} : u.TagListPtr ):m.Object;
  87.     BEGIN
  88.       RETURN m.NewObject( m.cMenustrip, u.more, tags );
  89.     END MenustripObjectA;
  90.  
  91.   PROCEDURE MenuObject*{"MuiSimple.MenuObjectA"} ( tags{9}.. : u.Tag):m.Object;
  92.   PROCEDURE MenuObjectA*( tags{9} : u.TagListPtr ):m.Object;
  93.     BEGIN
  94.       RETURN m.NewObject( m.cMenu, u.more, tags );
  95.     END MenuObjectA;
  96.  
  97.   PROCEDURE MenuTObject*{"MuiSimple.MenuTObjectA"} ( name {8}: e.STRPTR; tags{9}.. : u.Tag):m.Object;
  98.   PROCEDURE MenuTObjectA*( name {8}: e.STRPTR; tags{9} : u.TagListPtr ):m.Object;
  99.     BEGIN
  100.       RETURN m.NewObject( m.cMenu, m.aMenuTitle, name, u.more, tags );
  101.     END MenuTObjectA;
  102.  
  103.   PROCEDURE MenuitemObject*{"MuiSimple.MenuitemObjectA"} ( tags{9}.. : u.Tag):m.Object;
  104.   PROCEDURE MenuitemObjectA*( tags{9} : u.TagListPtr ):m.Object;
  105.     BEGIN
  106.       RETURN m.NewObject( m.cMenuitem, u.more, tags );
  107.     END MenuitemObjectA;
  108.  
  109.   PROCEDURE WindowObject*{"MuiSimple.WindowObjectA"} ( tags{9}.. : u.Tag):m.Object;
  110.   PROCEDURE WindowObjectA*( tags{9} : u.TagListPtr ):m.Object;
  111.     BEGIN
  112.       RETURN m.NewObject( m.cWindow, u.more, tags );
  113.     END WindowObjectA;
  114.  
  115.   PROCEDURE ImageObject*{"MuiSimple.ImageObjectA"} ( tags{9}.. : u.Tag): m.Object;
  116.   PROCEDURE ImageObjectA*( tags{9} : u.TagListPtr ): m.Object;
  117.     BEGIN
  118.       RETURN m.NewObject( m.cImage, u.more, tags );
  119.     END ImageObjectA;
  120.  
  121.   PROCEDURE BitmapObject*{"MuiSimple.BitmapObjectA"} ( tags{9}.. : u.Tag):m.Object;
  122.   PROCEDURE BitmapObjectA*( tags{9} : u.TagListPtr ):m.Object;
  123.     BEGIN
  124.       RETURN m.NewObject( m.cBitmap, u.more, tags );
  125.     END BitmapObjectA;
  126.  
  127.   PROCEDURE BodychunkObject*{"MuiSimple.BodychunkObjectA"} ( tags{9}.. : u.Tag):m.Object;
  128.   PROCEDURE BodychunkObjectA*( tags{9} : u.TagListPtr ):m.Object;
  129.     BEGIN
  130.       RETURN m.NewObject( m.cBodychunk, u.more, tags );
  131.     END BodychunkObjectA;
  132.  
  133.   PROCEDURE NotifyObject*{"MuiSimple.NotifyObjectA"} ( tags{9}.. : u.Tag): m.Object;
  134.   PROCEDURE NotifyObjectA*( tags{9} : u.TagListPtr ): m.Object;
  135.     BEGIN
  136.       RETURN m.NewObject( m.cNotify, u.more, tags );
  137.     END NotifyObjectA;
  138.  
  139.   PROCEDURE ApplicationObject*{"MuiSimple.ApplicationObjectA"} ( tags{9}.. : u.Tag): m.Object;
  140.   PROCEDURE ApplicationObjectA*( tags{9} : u.TagListPtr ): m.Object;
  141.     BEGIN
  142.       RETURN m.NewObject( m.cApplication, u.more, tags );
  143.     END ApplicationObjectA;
  144.  
  145.   PROCEDURE TextObject*{"MuiSimple.TextObjectA"} ( tags{9}.. : u.Tag): m.Object;
  146.   PROCEDURE TextObjectA*( tags{9} : u.TagListPtr ): m.Object;
  147.     BEGIN
  148.       RETURN m.NewObject( m.cText, u.more, tags );
  149.     END TextObjectA;
  150.  
  151.   PROCEDURE RectangleObject*{"MuiSimple.RectangleObjectA"} ( tags{9}.. : u.Tag): m.Object;
  152.   PROCEDURE RectangleObjectA*( tags{9} : u.TagListPtr ): m.Object;
  153.     BEGIN
  154.       RETURN m.NewObject( m.cRectangle, u.more, tags );
  155.     END RectangleObjectA;
  156.  
  157.   PROCEDURE ListObject*{"MuiSimple.ListObjectA"} ( tags{9}.. : u.Tag): m.Object;
  158.   PROCEDURE ListObjectA*( tags{9} : u.TagListPtr ): m.Object;
  159.     BEGIN
  160.       RETURN m.NewObject( m.cList, u.more, tags );
  161.     END ListObjectA;
  162.  
  163.   PROCEDURE PropObject*{"MuiSimple.PropObjectA"} ( tags{9}.. : u.Tag): m.Object;
  164.   PROCEDURE PropObjectA*( tags{9} : u.TagListPtr ): m.Object;
  165.     BEGIN
  166.       RETURN m.NewObject( m.cProp, u.more, tags );
  167.     END PropObjectA;
  168.  
  169.   PROCEDURE StringObject*{"MuiSimple.StringObjectA"} ( tags{9}.. : u.Tag): m.Object;
  170.   PROCEDURE StringObjectA*( tags{9} : u.TagListPtr ): m.Object;
  171.     BEGIN
  172.       RETURN m.NewObject( m.cString, u.more, tags );
  173.     END StringObjectA;
  174.  
  175.   PROCEDURE ScrollbarObject*{"MuiSimple.ScrollbarObjectA"} ( tags{9}.. : u.Tag): m.Object;
  176.   PROCEDURE ScrollbarObjectA*( tags{9} : u.TagListPtr ): m.Object;
  177.     BEGIN
  178.       RETURN m.NewObject( m.cScrollbar, u.more, tags );
  179.     END ScrollbarObjectA;
  180.  
  181.   PROCEDURE ListviewObject*{"MuiSimple.ListviewObjectA"} ( tags{9}.. : u.Tag): m.Object;
  182.   PROCEDURE ListviewObjectA*( tags{9} : u.TagListPtr ): m.Object;
  183.     BEGIN
  184.       RETURN m.NewObject( m.cListview, u.more, tags );
  185.     END ListviewObjectA;
  186.  
  187.   PROCEDURE RadioObject*{"MuiSimple.RadioObjectA"} ( tags{9}.. : u.Tag): m.Object;
  188.   PROCEDURE RadioObjectA*( tags{9} : u.TagListPtr ): m.Object;
  189.     BEGIN
  190.       RETURN m.NewObject( m.cRadio, u.more, tags );
  191.     END RadioObjectA;
  192.  
  193.   PROCEDURE VolumelistObject*{"MuiSimple.VolumelistObjectA"} ( tags{9}.. : u.Tag): m.Object;
  194.   PROCEDURE VolumelistObjectA*( tags{9} : u.TagListPtr ): m.Object;
  195.     BEGIN
  196.       RETURN m.NewObject( m.cVolumelist, u.more, tags );
  197.     END VolumelistObjectA;
  198.  
  199.   PROCEDURE FloattextObject*{"MuiSimple.FloattextObjectA"} ( tags{9}.. : u.Tag): m.Object;
  200.   PROCEDURE FloattextObjectA*( tags{9} : u.TagListPtr ): m.Object;
  201.     BEGIN
  202.       RETURN m.NewObject( m.cFloattext, u.more, tags );
  203.     END FloattextObjectA;
  204.  
  205.   PROCEDURE DirlistObject*{"MuiSimple.DirlistObjectA"} ( tags{9}.. : u.Tag): m.Object;
  206.   PROCEDURE DirlistObjectA*( tags{9} : u.TagListPtr ): m.Object;
  207.     BEGIN
  208.       RETURN m.NewObject( m.cDirlist, u.more, tags );
  209.     END DirlistObjectA;
  210.  
  211.   PROCEDURE SliderObject*{"MuiSimple.SliderObjectA"} ( tags{9}.. : u.Tag): m.Object;
  212.   PROCEDURE SliderObjectA*( tags{9} : u.TagListPtr ): m.Object;
  213.     BEGIN
  214.       RETURN m.NewObject( m.cSlider, u.more, tags );
  215.     END SliderObjectA;
  216.  
  217.   PROCEDURE CycleObject*{"MuiSimple.CycleObjectA"} ( tags{9}.. : u.Tag): m.Object;
  218.   PROCEDURE CycleObjectA*( tags{9} : u.TagListPtr ): m.Object;
  219.     BEGIN
  220.       RETURN m.NewObject( m.cCycle, u.more, tags );
  221.     END CycleObjectA;
  222.  
  223.   PROCEDURE GaugeObject*{"MuiSimple.GaugeObjectA"} ( tags{9}.. : u.Tag): m.Object;
  224.   PROCEDURE GaugeObjectA*( tags{9} : u.TagListPtr ): m.Object;
  225.     BEGIN
  226.       RETURN m.NewObject( m.cGauge, u.more, tags );
  227.     END GaugeObjectA;
  228.  
  229.   PROCEDURE ScaleObject*{"MuiSimple.ScaleObjectA"} ( tags{9}.. : u.Tag): m.Object;
  230.   PROCEDURE ScaleObjectA*( tags{9} : u.TagListPtr ): m.Object;
  231.     BEGIN
  232.       RETURN m.NewObject( m.cScale, u.more, tags );
  233.     END ScaleObjectA;
  234.  
  235.   PROCEDURE BoopsiObject*{"MuiSimple.BoopsiObjectA"} ( tags{9}.. : u.Tag): m.Object;
  236.   PROCEDURE BoopsiObjectA*( tags{9} : u.TagListPtr ): m.Object;
  237.     BEGIN
  238.       RETURN m.NewObject( m.cBoopsi, u.more, tags );
  239.     END BoopsiObjectA;
  240.  
  241.   PROCEDURE ColorfieldObject*{"MuiSimple.ColorfieldObjectA"} ( tags{9}.. : u.Tag): m.Object;
  242.   PROCEDURE ColorfieldObjectA*( tags{9} : u.TagListPtr ): m.Object;
  243.     BEGIN
  244.       RETURN m.NewObject( m.cColorfield, u.more, tags );
  245.     END ColorfieldObjectA;
  246.  
  247.   PROCEDURE ColorpanelObject*{"MuiSimple.ColorpanelObjectA"} ( tags{9}.. : u.Tag):m.Object;
  248.   PROCEDURE ColorpanelObjectA*( tags{9} : u.TagListPtr ):m.Object;
  249.     BEGIN
  250.       RETURN m.NewObject( m.cColorpanel, u.more, tags );
  251.     END ColorpanelObjectA;
  252.  
  253.   PROCEDURE ColoradjustObject*{"MuiSimple.ColoradjustObjectA"} ( tags{9}.. : u.Tag): m.Object;
  254.   PROCEDURE ColoradjustObjectA*( tags{9} : u.TagListPtr ): m.Object;
  255.     BEGIN
  256.       RETURN m.NewObject( m.cColoradjust, u.more, tags );
  257.     END ColoradjustObjectA;
  258.  
  259.  PROCEDURE PaletteObject*{"MuiSimple.PaletteObjectA"} ( tags{9}.. : u.Tag): m.Object;
  260.   PROCEDURE PaletteObjectA*( tags{9} : u.TagListPtr ): m.Object;
  261.     BEGIN
  262.       RETURN m.NewObject( m.cPalette, u.more, tags );
  263.     END PaletteObjectA;
  264.  
  265.   PROCEDURE GroupObject*{"MuiSimple.GroupObjectA"} ( tags{9}.. : u.Tag): m.Object;
  266.   PROCEDURE GroupObjectA*( tags{9} : u.TagListPtr ): m.Object;
  267.     BEGIN
  268.       RETURN m.NewObject( m.cGroup, u.more, tags );
  269.     END GroupObjectA;
  270.  
  271.   PROCEDURE RegisterObject*{"MuiSimple.RegisterObjectA"} ( tags{9}.. : u.Tag): m.Object;
  272.   PROCEDURE RegisterObjectA*( tags{9} : u.TagListPtr ): m.Object;
  273.     BEGIN
  274.       RETURN m.NewObject( m.cRegister, u.more, tags );
  275.     END RegisterObjectA;
  276.  
  277.   PROCEDURE VirtgroupObject*{"MuiSimple.VirtgroupObjectA"} ( tags{9}.. : u.Tag): m.Object;
  278.   PROCEDURE VirtgroupObjectA*( tags{9} : u.TagListPtr ): m.Object;
  279.     BEGIN
  280.       RETURN m.NewObject( m.cVirtgroup, u.more, tags );
  281.     END VirtgroupObjectA;
  282.  
  283.   PROCEDURE ScrollgroupObject*{"MuiSimple.ScrollgroupObjectA"} ( tags{9}.. : u.Tag ): m.Object;
  284.   PROCEDURE ScrollgroupObjectA*( tags{9} : u.TagListPtr ): m.Object;
  285.     BEGIN
  286.       RETURN m.NewObject( m.cScrollgroup, u.more, tags );
  287.     END ScrollgroupObjectA;
  288.  
  289.   PROCEDURE PopstringObject*{"MuiSimple.PopstringObjectA"} ( tags{9}.. : u.Tag): m.Object;
  290.   PROCEDURE PopstringObjectA*( tags{9} : u.TagListPtr ): m.Object;
  291.     BEGIN
  292.       RETURN m.NewObject( m.cPopstring, u.more, tags );
  293.     END PopstringObjectA;
  294.  
  295.   PROCEDURE PopobjectObject*{"MuiSimple.PopobjectObjectA"} ( tags{9}.. : u.Tag): m.Object;
  296.   PROCEDURE PopobjectObjectA*( tags{9} : u.TagListPtr ): m.Object;
  297.     BEGIN
  298.       RETURN m.NewObject( m.cPopobject, u.more, tags );
  299.     END PopobjectObjectA;
  300.  
  301.   PROCEDURE PoplistObject*{"MuiSimple.PoplistObjectA"} ( tags{9}.. : u.Tag): m.Object;
  302.   PROCEDURE PoplistObjectA*( tags{9} : u.TagListPtr ): m.Object;
  303.     BEGIN
  304.       RETURN m.NewObject( m.cPoplist, u.more, tags );
  305.     END PoplistObjectA;
  306.  
  307.   PROCEDURE PopaslObject*{"MuiSimple.PopaslObjectA"} ( tags{9}.. : u.Tag): m.Object;
  308.   PROCEDURE PopaslObjectA*( tags{9} : u.TagListPtr ): m.Object;
  309.     BEGIN
  310.       RETURN m.NewObject( m.cPopasl, u.more, tags );
  311.     END PopaslObjectA;
  312.  
  313.   PROCEDURE ScrmodelistObject*{"MuiSimple.ScrmodelistObjectA"} ( tags{9}.. : u.Tag): m.Object;
  314.   PROCEDURE ScrmodelistObjectA*( tags{9} : u.TagListPtr ): m.Object;
  315.     BEGIN
  316.       RETURN m.NewObject( m.cScrmodelist, u.more, tags );
  317.     END ScrmodelistObjectA;
  318.  
  319.   PROCEDURE VGroup*{"MuiSimple.VGroupA"}( tags{9}.. : u.Tag ): m.Object;
  320.   PROCEDURE VGroupA*( tags{9} : u.TagListPtr ): m.Object;
  321.     BEGIN
  322.       RETURN m.NewObject( m.cGroup, u.more, tags );
  323.     END VGroupA;
  324.  
  325.   PROCEDURE HGroup*{"MuiSimple.HGroupA"}( tags{9}.. : u.Tag ): m.Object;
  326.   PROCEDURE HGroupA*( tags{9} : u.TagListPtr ): m.Object;
  327.     BEGIN
  328.       RETURN m.NewObject( m.cGroup, m.aGroupHoriz, e.true, u.more, tags );
  329.     END HGroupA;
  330.  
  331.   PROCEDURE ColGroup*{"MuiSimple.ColGroupA"} ( cols{3} : LONGINT; tags{9}.. : u.Tag );
  332.   PROCEDURE ColGroupA*( cols{3} : LONGINT; tags{9} : u.TagListPtr  ): m.Object;
  333.     BEGIN
  334.       RETURN m.NewObject( m.cGroup, m.aGroupColumns, cols, u.more, tags );
  335.     END ColGroupA;
  336.  
  337.   PROCEDURE RowGroup*{"MuiSimple.RowGroupA"}( rows{3} : LONGINT; tags{9}.. : u.Tag  ): m.Object;
  338.   PROCEDURE RowGroupA*( rows{3} : LONGINT; tags{9} : u.TagListPtr  ): m.Object;
  339.     BEGIN
  340.       RETURN m.NewObject( m.cGroup, m.aGroupRows, rows, u.more, tags );
  341.     END RowGroupA;
  342.  
  343.   PROCEDURE PageGroup*{"MuiSimple.PageGroupA"}( tags{9}.. : u.Tag ): m.Object;
  344.   PROCEDURE PageGroupA*( tags{9} : u.TagListPtr ): m.Object;
  345.     BEGIN
  346.       RETURN m.NewObject( m.cGroup, m.aGroupPageMode, e.true, u.more, tags );
  347.     END PageGroupA;
  348.  
  349.   PROCEDURE VGroupV*{"MuiSimple.VGroupVA"}( tags{9}.. : u.Tag ): m.Object;
  350.   PROCEDURE VGroupVA*( tags{9} : u.TagListPtr ): m.Object;
  351.     BEGIN
  352.       RETURN m.NewObject( m.cVirtgroup, u.more, tags );
  353.     END VGroupVA;
  354.  
  355.   PROCEDURE HGroupV*{"MuiSimple.HGroupVA"}( tags{9}.. : u.Tag ): m.Object;
  356.   PROCEDURE HGroupVA*( tags{9} : u.TagListPtr ): m.Object;
  357.     BEGIN
  358.       RETURN m.NewObject( m.cVirtgroup, m.aGroupHoriz, e.true, u.more, tags );
  359.     END HGroupVA;
  360.  
  361.   PROCEDURE ColGroupV*{"MuiSimple.ColGroupVA"} ( cols{3} : LONGINT; tags{9}.. : u.Tag ): m.Object;
  362.   PROCEDURE ColGroupVA*( cols{3} : LONGINT; tags{9} : u.TagListPtr  ): m.Object;
  363.     BEGIN
  364.       RETURN m.NewObject( m.cVirtgroup, m.aGroupColumns, cols, u.more, tags );
  365.     END ColGroupVA;
  366.  
  367.   PROCEDURE RowGroupV*{"MuiSimple.RowGroupVA"}( rows{3} : LONGINT; tags{9}.. : u.Tag  ): m.Object;
  368.   PROCEDURE RowGroupVA*( rows{3} : LONGINT; tags{9} : u.TagListPtr  ): m.Object;
  369.     BEGIN
  370.       RETURN m.NewObject( m.cVirtgroup, m.aGroupRows, rows, u.more, tags);
  371.     END RowGroupVA;
  372.  
  373.   PROCEDURE PageGroupV*{"MuiSimple.PageGroupAV"}( tags{9}.. : u.Tag ): m.Object;
  374.   PROCEDURE PageGroupAV*( tags{9} : u.TagListPtr ): m.Object;
  375.     BEGIN
  376.       RETURN m.NewObject( m.cVirtgroup, m.aGroupPageMode, e.true, u.more, tags );
  377.     END PageGroupAV;
  378.  
  379.   PROCEDURE RegisterGroup*{"MuiSimple.RegisterGroupA"}( t{8} : e.APTR; tags{9}.. : u.Tag ): m.Object;
  380.   PROCEDURE RegisterGroupA*( t{8} : e.APTR; tags{9} : u.TagListPtr ): m.Object;
  381.     BEGIN
  382.       RETURN m.NewObject( m.cRegister, m.aRegisterTitles, t, u.more, tags );
  383.     END RegisterGroupA;
  384.  
  385.  
  386. (***************************************************************************
  387. **
  388. ** Baring Procedures
  389. ** ------------------
  390. **
  391. ***************************************************************************)
  392.  
  393.   PROCEDURE HBar*(): m.Object;
  394.     BEGIN
  395.       RETURN m.NewObject( m.cRectangle,
  396.                           m.aRectangleHBar, e.true,
  397.                           m.aFixHeight, 2,
  398.                           u.done ) ;
  399.     END HBar;
  400.  
  401.   PROCEDURE VBar*(): m.Object;
  402.     BEGIN
  403.       RETURN m.NewObject( m.cRectangle,
  404.                           m.aRectangleVBar, e.true,
  405.                           m.aFixWidth, 2,
  406.                           u.done );
  407.     END VBar;
  408.  
  409. (***************************************************************************
  410. **
  411. ** Spacing Procedures
  412. ** ------------------
  413. **
  414. ***************************************************************************)
  415.  
  416.   PROCEDURE HVSpace*(): m.Object;
  417.     BEGIN
  418.       RETURN m.NewObject( m.cRectangle, u.done );
  419.     END HVSpace;
  420.  
  421. (*
  422.  *  PROCEDURE GroupSpacing*( x: LONGINT );
  423.  *  (*  *)
  424.  *    BEGIN
  425.  *      TagItem( m.aGroupSpacing, x );
  426.  *    END GroupSpacing;
  427.  *)
  428.  
  429.   PROCEDURE HSpace*( x : LONGINT ): m.Object;
  430.     VAR t : u.Tags3;
  431.     BEGIN
  432.       IF x # 0 THEN
  433.         t[0].tag := m.aFixWidth;
  434.         t[0].data := x;
  435.       ELSE
  436.         t[0].tag := u.ignore;
  437.       END;
  438.       t[1] := u.TagItem( m.aVertWeight, 0 );
  439.       t[2] := u.TagItem( u.done, 0 );
  440.       RETURN m.NewObjectA( m.cRectangle, t );
  441.     END HSpace;
  442.  
  443.   PROCEDURE VSpace*( x : LONGINT ): m.Object;
  444.     VAR t : u.Tags3;
  445.     BEGIN
  446.       IF x # 0 THEN
  447.         t[0].tag := m.aFixHeight;
  448.         t[0].data := x;
  449.       ELSE
  450.         t[0].tag := u.ignore;
  451.       END;
  452.       t[1] := u.TagItem( m.aHorizWeight, 0 );
  453.       t[2] := u.TagItem( u.done, 0 );
  454.       RETURN m.NewObjectA( m.cRectangle, t );
  455.     END VSpace;
  456.  
  457.  
  458.   PROCEDURE HCenterObject*( obj : m.Object ): m.Object;
  459.     VAR spL, spR : m.Object;
  460.     BEGIN
  461.       spL := HSpace( 0 );
  462.       spR := HSpace( 0 );
  463.       RETURN HGroup( m.aGroupSpacing, 0,
  464.                      m.aGroupChild, spL,
  465.                      m.aGroupChild, obj,
  466.                      m.aGroupChild, spR,
  467.                      u.end );
  468.     END HCenterObject;
  469.  
  470.   PROCEDURE VCenterObject*( obj : m.Object ): m.Object;
  471.     VAR spO, spU : m.Object;
  472.     BEGIN
  473.       spO := VSpace( 0 );
  474.       spU := VSpace( 0 );
  475.       RETURN VGroup( m.aGroupSpacing,0,
  476.                      m.aGroupChild, spO,
  477.                      m.aGroupChild, obj,
  478.                      m.aGroupChild, spU,
  479.                      u.end );
  480.     END VCenterObject;
  481.  
  482.  
  483. (*
  484.  *  PROCEDURE InnerSpacing*( h, v : LONGINT );
  485.  *  (*  *)
  486.  *    BEGIN
  487.  *      Tags( m.aInnerLeft   , h,
  488.  *            m.aInnerRight  , h,
  489.  *            m.aInnerTop    , v,
  490.  *            m.aInnerBottom , v,
  491.  *            u.end );
  492.  *    END InnerSpacing;
  493.  *)
  494.  
  495.  
  496. (***************************************************************************
  497. **
  498. ** String-Object
  499. ** -------------
  500. **
  501. ** The following procedure creates a simple string gadget.
  502. **
  503. ***************************************************************************)
  504.  
  505.   PROCEDURE String * {"MuiSimple.StringA"} ( contents{8} : e.STRPTR; maxlen{3} : LONGINT; tags{9}.. : u.Tag ):m.Object;
  506.   PROCEDURE StringA*( contents{8} : e.STRPTR; maxlen{3} : LONGINT; tags{9} : u.TagListPtr ):m.Object;
  507.     BEGIN
  508.       RETURN StringObject( m.aFrame, m.vFrameString,
  509.                            m.aStringMaxLen, maxlen,
  510.                            m.aStringContents, contents,
  511.                            u.more, tags );
  512.     END StringA;
  513.  
  514.   PROCEDURE KeyString * {"MuiSimple.KeyStringA"} ( contents{8} : e.STRPTR; maxlen{3} : LONGINT; controlchar{4}: CHAR; tags{9}.. : u.Tag ):m.Object;
  515.   PROCEDURE KeyStringA*( contents{8} : e.STRPTR; maxlen{3} : LONGINT; controlchar{4} : LONGINT; tags{9} : u.TagListPtr ):m.Object;
  516.     BEGIN
  517.       RETURN String( contents, maxlen, m.aControlChar, controlchar, u.more, tags );
  518.     END KeyStringA;
  519.  
  520. (***************************************************************************
  521. **
  522. ** Integer-Object
  523. ** --------------
  524. **
  525. ** The following procedure creates a simple integer string gadget.
  526. **
  527. ***************************************************************************)
  528.  
  529.   PROCEDURE Integer * {"MuiSimple.IntegerA"} ( contents{2} : LONGINT; maxlen{3} : LONGINT; tags{9}.. : u.Tag ):m.Object;
  530.   PROCEDURE IntegerA*( contents{2} : e.STRPTR; maxlen{3} : LONGINT; tags{9} : u.TagListPtr ):m.Object;
  531.     BEGIN
  532.       RETURN StringObject( m.aFrame, m.vFrameString,
  533.                            m.aStringMaxLen, maxlen,
  534.                            m.aStringInteger, contents,
  535.                            m.aStringAccept, y.ADR( "0123456789" ),
  536.                            u.more, tags );
  537.     END IntegerA;
  538.  
  539.   PROCEDURE KeyInteger * {"MuiSimple.KeyIntegerA"} ( contents{2} : LONGINT; maxlen{3} : LONGINT; controlchar{4}: CHAR; tags{9}.. : u.Tag ):m.Object;
  540.   PROCEDURE KeyIntegerA*( contents{2} : LONGINT; maxlen{3} : LONGINT; controlchar{4} : LONGINT; tags{9} : u.TagListPtr ):m.Object;
  541.     BEGIN
  542.       RETURN Integer( contents, maxlen, m.aControlChar, controlchar, u.more, tags );
  543.     END KeyIntegerA;
  544.  
  545. (***************************************************************************
  546. **
  547. ** CheckMark-Object
  548. ** ----------------
  549. **
  550. ** The following procedure creates a checkmark gadget.
  551. **
  552. ***************************************************************************)
  553.  
  554.   PROCEDURE CheckMark * {"MuiSimple.CheckMarkA"}( checked{4} : BOOLEAN; tags{9}.. : u.Tag ):m.Object;
  555.   PROCEDURE CheckMarkA*( checked{4} : e.LONGBOOL; tags{9} : u.TagListPtr ):m.Object;
  556.    BEGIN
  557.     RETURN ImageObject( m.aFrame, m.vFrameImageButton,
  558.                         m.aInputMode, m.vInputModeToggle,
  559.                         m.aImageSpec, m.iCheckMark,
  560.                         m.aImageFreeVert, e.true,
  561.                         m.aSelected, checked,
  562.                         m.aBackground, m.iButtonBack,
  563.                         m.aShowSelState, e.false,
  564.                         u.more, tags );
  565.     END CheckMarkA;
  566.  
  567.   PROCEDURE KeyCheckMark *{"MuiSimple.KeyCheckMarkA"}( checked{4} : BOOLEAN; key{3} : CHAR; tags{9}.. : u.Tag ):m.Object;
  568.   PROCEDURE KeyCheckMarkA*( checked{4} : e.LONGBOOL; key{3} : LONGINT; tags{9} : u.TagListPtr ):m.Object;
  569.    BEGIN
  570.     RETURN CheckMark( y.VAL(BOOLEAN,SHORT(SHORT(checked))), m.aControlChar, key, u.more, tags );
  571.     END KeyCheckMarkA;
  572.  
  573.  
  574. (***************************************************************************
  575. **
  576. ** Button-Objects
  577. ** --------------
  578. **
  579. ** Note: Use small letters for KeyButtons, e.g.
  580. **       KeyButton("Cancel",'c')  and not  KeyButton("Cancel",'C') !!
  581. **
  582. ***************************************************************************)
  583.  
  584.   PROCEDURE SimpleButton * {"MuiSimple.SimpleButtonA"} ( name{8} : ARRAY OF CHAR; tags{9}.. : u.Tag ):m.Object;
  585.   PROCEDURE SimpleButtonA * ( name{8} : e.STRPTR; tags{9} : u.TagListPtr ):m.Object;
  586.     BEGIN
  587.       RETURN TextObject( m.aFrame, m.vFrameButton,
  588.                          m.aTextContents, name,
  589.                          m.aTextPreParse, y.ADR("\033c"),
  590.                          m.aTextSetMax  , e.false,
  591.                          m.aInputMode   , m.vInputModeRelVerify,
  592.                          m.aBackground  , m.iButtonBack,
  593.                          u.more, tags );
  594.     END SimpleButtonA;
  595.  
  596.   PROCEDURE KeyButton * {"MuiSimple.KeyButtonA"} ( name{8} : ARRAY OF CHAR; key{4} : CHAR; tags{9}.. : u.TagListPtr ):m.Object;
  597.   PROCEDURE KeyButtonA * ( name{8} : e.STRPTR; key{4} : LONGINT; tags{9} : u.TagListPtr ):m.Object;
  598.     BEGIN
  599.       RETURN SimpleButton( name^, m.aTextHiChar, key, m.aControlChar, key, u.more, tags );
  600.     END KeyButtonA;
  601.  
  602. (***************************************************************************
  603. **
  604. ** Cycle-Object
  605. ** ------------
  606. **
  607. ***************************************************************************)
  608.  
  609.   PROCEDURE Cycle * {"MuiSimple.CycleA"} ( entries{10} : e.APTR; tags{9}.. : u.Tag ):m.Object;
  610.   PROCEDURE CycleA * ( entries{10} : e.APTR; tags{9} : u.TagListPtr ):m.Object;
  611.     BEGIN
  612.       RETURN CycleObject( m.aCycleEntries, entries, u.more, tags );
  613.     END CycleA;
  614.  
  615.   PROCEDURE KeyCycle * {"MuiSimple.KeyCycleA"} ( entries{10} : e.APTR; key{4} : CHAR; tags{9}.. : u.Tag ):m.Object;
  616.   PROCEDURE KeyCycleA * ( entries{10} : e.APTR; key{4} : LONGINT; tags{9} : u.TagListPtr ):m.Object;
  617.     BEGIN
  618.       RETURN Cycle( entries, m.aControlChar, key, u.more, tags );
  619.     END KeyCycleA;
  620.  
  621. (***************************************************************************
  622. **
  623. ** Radio-Object
  624. ** ------------
  625. **
  626. ***************************************************************************)
  627.  
  628.   PROCEDURE Radio * {"MuiSimple.RadioA"} ( name{8} : ARRAY OF CHAR; entries{10} : e.APTR; tags{9}.. : u.Tag ):m.Object;
  629.   PROCEDURE RadioA * ( name{8}: e.STRPTR; entries{10} : e.APTR; tags{9} : u.TagListPtr ):m.Object;
  630.     BEGIN
  631.       RETURN RadioObject( m.aFrame, m.vFrameGroup,
  632.                           m.aFrameTitle, name,
  633.                           m.aRadioEntries, entries,
  634.                           u.more, tags );
  635.     END RadioA;
  636.  
  637.   PROCEDURE KeyRadio * {"MuiSimple.KeyRadioA"} ( name{8} : ARRAY OF CHAR; entries{10} : e.APTR; key{4} : CHAR; tags{9}.. : u.Tag ):m.Object;
  638.   PROCEDURE KeyRadioA * ( name{8}: e.STRPTR; entries{10} : e.APTR; key{4} : LONGINT; tags{9} : u.TagListPtr ):m.Object;
  639.     BEGIN
  640.       RETURN Radio( name^, entries, m.aControlChar, key, u.more, tags );
  641.     END KeyRadioA;
  642.  
  643. (***************************************************************************
  644. **
  645. ** Slider-Object
  646. ** -------------
  647. **
  648. ***************************************************************************)
  649.  
  650.   PROCEDURE Slider * {"MuiSimple.SliderA"} ( min{2}, max{3}, level{4} : LONGINT; tags{9}.. : u.Tag ):m.Object;
  651.   PROCEDURE SliderA * ( min{2}, max{3}, level{4} : LONGINT; tags{9} : u.TagListPtr ):m.Object;
  652.     BEGIN
  653.       RETURN SliderObject( m.aSliderMin, min,
  654.                            m.aSliderMax, max,
  655.                            m.aSliderLevel, level,
  656.                            u.more, tags );
  657.     END SliderA;
  658.  
  659.   PROCEDURE KeySlider * {"MuiSimple.KeySliderA"} ( min{2}, max{3}, level{4} : LONGINT; key{5} : CHAR; tags{9}.. : u.Tag ):m.Object;
  660.   PROCEDURE KeySliderA * ( min{2}, max{3}, level{4}, key{5} : LONGINT; tags{9} : u.TagListPtr ):m.Object;
  661.     BEGIN
  662.       RETURN Slider( min, max, level, m.aControlChar, key, u.more, tags );
  663.     END KeySliderA;
  664.  
  665.   PROCEDURE VSlider * {"MuiSimple.VSliderA"} ( min{2}, max{3}, level{4} : LONGINT; tags{9}.. : u.Tag ):m.Object;
  666.   PROCEDURE VSliderA * ( min{2}, max{3}, level{4} : LONGINT; tags{9} : u.TagListPtr ):m.Object;
  667.     BEGIN
  668.       RETURN Slider( min, max, level, m.aGroupHoriz, e.false, u.more, tags );
  669.     END VSliderA;
  670.  
  671.   PROCEDURE KeyVSlider * {"MuiSimple.KeyVSliderA"} ( min{2}, max{3}, level{4} : LONGINT; key{5} : CHAR; tags{9}.. : u.Tag ):m.Object;
  672.   PROCEDURE KeyVSliderA * ( min{2}, max{3}, level{4}, key{5} : LONGINT; tags{9} : u.TagListPtr ):m.Object;
  673.     BEGIN
  674.       RETURN VSlider( min,  max, level, m.aControlChar, key, u.more, tags );
  675.     END KeyVSliderA;
  676.  
  677. (***************************************************************************
  678. **
  679. ** Scrollbar-Object
  680. ** -------------
  681. **
  682. ***************************************************************************)
  683.  
  684.   PROCEDURE Scrollbar * {"MuiSimple.ScrollbarA"} ( min{2}, max{3}, level{4} : LONGINT; tags{9}.. : u.Tag ):m.Object;
  685.   PROCEDURE ScrollbarA * ( min{2}, max{3}, level{4} : LONGINT; tags{9} : u.TagListPtr ):m.Object;
  686.     BEGIN
  687.       RETURN ScrollbarObject( m.aSliderMin, min,
  688.                               m.aSliderMax, max,
  689.                               m.aSliderLevel, level,
  690.                               m.aGroupHoriz, e.true,
  691.                               u.more, tags );
  692.     END ScrollbarA;
  693.  
  694.   PROCEDURE KeyScrollbar * {"MuiSimple.KeyScrollbarA"} ( min{2}, max{3}, level{4} : LONGINT; key{5} : CHAR; tags{9}.. : u.Tag ):m.Object;
  695.   PROCEDURE KeyScrollbarA * ( min{2}, max{3}, level{4}, key{5} : LONGINT; tags{9} : u.TagListPtr ):m.Object;
  696.     BEGIN
  697.       RETURN Scrollbar( min, max, level, m.aControlChar, key, u.more, tags );
  698.     END KeyScrollbarA;
  699.  
  700.   PROCEDURE VScrollbar * {"MuiSimple.VScrollbarA"} ( min{2}, max{3}, level{4} : LONGINT; tags{9}.. : u.Tag ):m.Object;
  701.   PROCEDURE VScrollbarA * ( min{2}, max{3}, level{4} : LONGINT; tags{9} : u.TagListPtr ):m.Object;
  702.     BEGIN
  703.       RETURN ScrollbarObject( m.aSliderMin, min,
  704.                               m.aSliderMax, max,
  705.                               m.aSliderLevel, level,
  706.                               u.more, tags );
  707.     END VScrollbarA;
  708.  
  709.   PROCEDURE KeyVScrollbar * {"MuiSimple.KeyVScrollbarA"} ( min{2}, max{3}, level{4} : LONGINT; key{5} : CHAR; tags{9}.. : u.Tag ):m.Object;
  710.   PROCEDURE KeyVScrollbarA * ( min{2}, max{3}, level{4}, key{5} : LONGINT; tags{9} : u.TagListPtr ):m.Object;
  711.     BEGIN
  712.       RETURN VScrollbar( min, max, level, m.aControlChar, key, u.more, tags );
  713.     END KeyVScrollbarA;
  714.  
  715. (***************************************************************************
  716. **
  717. ** Button to be used for popup objects
  718. **
  719. ***************************************************************************)
  720.  
  721.   PROCEDURE PopButton* {"MuiSimple.PopButtonA"} ( img{3} : LONGINT; tags{9}.. : u.Tag ):m.Object;
  722.   PROCEDURE PopButtonA*( img{3} : LONGINT; tags{9} : u.TagListPtr ):m.Object;
  723.     BEGIN
  724.       RETURN ImageObject( m.aFrame, m.vFrameImageButton,
  725.                           m.aImageSpec, img,
  726.                           m.aImageFontMatchWidth, e.true,
  727.                           m.aImageFreeVert, e.true,
  728.                           m.aInputMode, m.vInputModeRelVerify,
  729.                           m.aBackground, m.iBACKGROUND,
  730.                           u.more, tags );
  731.     END PopButtonA;
  732.  
  733. (***************************************************************************
  734. **
  735. ** Labeling Objects
  736. ** ----------------
  737. **
  738. ** Labeling objects, e.g. a group of string gadgets,
  739. **
  740. **   Small: |foo   |
  741. **  Normal: |bar   |
  742. **     Big: |foobar|
  743. **    Huge: |barfoo|
  744. **
  745. ** is done using a 2 column group:
  746. **
  747. ** ColGroup(2);
  748. **      Child; Label2( "Small:"  );
  749. **    Child; StringObject; end;
  750. **      Child; Label2( "Normal:" );
  751. **    Child; StringObject; end;
  752. **      Child; Label2( "Big:"    );
  753. **    Child; StringObject; end;
  754. **      Child; Label2( "Huge:"   );
  755. **    Child; StringObject; end;
  756. **    end;
  757. **
  758. ** Note that we have three versions of the label procedure, depending on
  759. ** the frame type of the right hand object:
  760. **
  761. ** Label1(): For use with standard frames (e.g. checkmarks).
  762. ** Label2(): For use with double high frames (e.g. string gadgets).
  763. ** Label() : For use with objects without a frame.
  764. **
  765. ** These procedures ensure that your label will look fine even if the
  766. ** user of your application configured some strange spacing values.
  767. ** If you want to use your own labeling, you'll have to pay attention
  768. ** on this topic yourself.
  769. **
  770. ***************************************************************************)
  771.  
  772.   PROCEDURE LLabel* {"MuiSimple.LLabelA"} ( label {8} : ARRAY OF CHAR; tags{9}.. : u.Tag ):m.Object;
  773.   PROCEDURE LLabelA * ( label{8} : e.STRPTR; tags{9} : u.TagListPtr ):m.Object;
  774.     BEGIN
  775.       RETURN TextObject( m.aTextContents, label,
  776.                          m.aWeight      , 0,
  777.                          m.aInnerLeft   , 0,
  778.                          m.aInnerRight  , 0,
  779.                          u.more, tags );
  780.     END LLabelA;
  781.  
  782.   PROCEDURE LLabel1* {"MuiSimple.LLabel1A"} ( label {8} : ARRAY OF CHAR; tags{9}.. : u.Tag ):m.Object;
  783.   PROCEDURE LLabel1A * ( label{8} : e.STRPTR; tags{9} : u.TagListPtr ):m.Object;
  784.     BEGIN
  785.       RETURN LLabel( label^, m.aFrame, m.vFrameButton,
  786.                              m.aFramePhantomHoriz, e.true,
  787.                              u.more, tags );
  788.     END LLabel1A;
  789.  
  790.   PROCEDURE LLabel2* {"MuiSimple.LLabel2A"} ( label {8} : ARRAY OF CHAR; tags{9}.. : u.Tag ):m.Object;
  791.   PROCEDURE LLabel2A * ( label{8} : e.STRPTR; tags{9} : u.TagListPtr ):m.Object;
  792.     BEGIN
  793.       RETURN LLabel( label^, m.aFrame, m.vFrameString,
  794.                              m.aFramePhantomHoriz, e.true,
  795.                              u.more, tags );
  796.     END LLabel2A;
  797.  
  798.   PROCEDURE Label* {"MuiSimple.LabelA"} ( label {8} : ARRAY OF CHAR; tags{9}.. : u.Tag ):m.Object;
  799.   PROCEDURE LabelA * ( label{8} : e.STRPTR; tags{9} : u.TagListPtr ):m.Object;
  800.     BEGIN
  801.       RETURN LLabel( label^, m.aTextPreParse, y.ADR("\033r"), u.more, tags );
  802.     END LabelA;
  803.  
  804.   PROCEDURE Label1* {"MuiSimple.Label1A"} ( label {8} : ARRAY OF CHAR; tags{9}.. : u.Tag ):m.Object;
  805.   PROCEDURE Label1A * ( label{8} : e.STRPTR; tags{9} : u.TagListPtr ):m.Object;
  806.     BEGIN
  807.       RETURN LLabel1( label^, m.aTextPreParse, y.ADR("\033r"), u.more, tags );
  808.     END Label1A;
  809.  
  810.   PROCEDURE Label2* {"MuiSimple.Label2A"} ( label {8} : ARRAY OF CHAR; tags{9}.. : u.Tag ):m.Object;
  811.   PROCEDURE Label2A * ( label{8} : e.STRPTR; tags{9} : u.TagListPtr ):m.Object;
  812.     BEGIN
  813.       RETURN LLabel2( label^, m.aTextPreParse, y.ADR("\033r"), u.more, tags );
  814.     END Label2A;
  815.  
  816.   PROCEDURE KeyLabel*{"MuiSimple.KeyLabelA"} ( label{8} : e.STRPTR; hichar{3} : LONGINT; tags{9}.. : u.Tag ):m.Object;
  817.   PROCEDURE KeyLabelA * ( label{8} : e.STRPTR; hichar{3} : LONGINT; tags{9} : u.TagListPtr ):m.Object;
  818.     BEGIN
  819.       RETURN Label( label^, m.aTextHiChar, hichar, u.more, tags );
  820.     END KeyLabelA;
  821.  
  822.   PROCEDURE KeyLabel1*{"MuiSimple.KeyLabel1A"} ( label{8} : e.STRPTR; hichar{3} : LONGINT; tags{9}.. : u.Tag ):m.Object;
  823.   PROCEDURE KeyLabel1A * ( label{8} : e.STRPTR; hichar{3} : LONGINT; tags{9} : u.TagListPtr ):m.Object;
  824.     BEGIN
  825.       RETURN Label1( label^, m.aTextHiChar, hichar, u.more, tags );
  826.     END KeyLabel1A;
  827.  
  828.   PROCEDURE KeyLabel2*{"MuiSimple.KeyLabel2A"} ( label{8} : e.STRPTR; hichar{3} : LONGINT; tags{9}.. : u.Tag ):m.Object;
  829.   PROCEDURE KeyLabel2A * ( label{8} : e.STRPTR; hichar{3} : LONGINT; tags{9} : u.TagListPtr ):m.Object;
  830.     BEGIN
  831.       RETURN Label2( label^, m.aTextHiChar, hichar, u.more, tags );
  832.     END KeyLabel2A;
  833.  
  834.   PROCEDURE KeyLLabel*{"MuiSimple.KeyLLabelA"} ( label{8} : e.STRPTR; hichar{3} : LONGINT; tags{9}.. : u.Tag ):m.Object;
  835.   PROCEDURE KeyLLabelA * ( label{8} : e.STRPTR; hichar{3} : LONGINT; tags{9} : u.TagListPtr ):m.Object;
  836.     BEGIN
  837.       RETURN LLabel( label^, m.aTextHiChar, hichar, u.more, tags );
  838.     END KeyLLabelA;
  839.  
  840.   PROCEDURE KeyLLabel1*{"MuiSimple.KeyLLabel1A"} ( label{8} : e.STRPTR; hichar{3} : LONGINT; tags{9}.. : u.Tag ):m.Object;
  841.   PROCEDURE KeyLLabel1A * ( label{8} : e.STRPTR; hichar{3} : LONGINT; tags{9} : u.TagListPtr ):m.Object;
  842.     BEGIN
  843.       RETURN LLabel1( label^, m.aTextHiChar, hichar, u.more, tags );
  844.     END KeyLLabel1A;
  845.  
  846.   PROCEDURE KeyLLabel2*{"MuiSimple.KeyLLabel2A"} ( label{8} : e.STRPTR; hichar{3} : LONGINT; tags{9}.. : u.Tag ):m.Object;
  847.   PROCEDURE KeyLLabel2A * ( label{8} : e.STRPTR; hichar{3} : LONGINT; tags{9} : u.TagListPtr ):m.Object;
  848.     BEGIN
  849.       RETURN LLabel2( label^, m.aTextHiChar, hichar, u.more, tags );
  850.     END KeyLLabel2A;
  851.  
  852. (***************************************************************************
  853. **
  854. ** Controlling Objects
  855. ** -------------------
  856. **
  857. ** Set() and Get() are two short stubs for BOOPSI GetAttr() and SetAttrs()
  858. ** calls:
  859. **
  860. **
  861. **    VAR x : e.STRPTR;
  862. **
  863. **    Set(obj,MUIA_String_Contents, y.ADR("foobar") );
  864. **    Get(obj,MUIA_String_Contents, x);
  865. **
  866. **    Dos.PrintF( "gadget contains '%s'\n" , x );
  867. **
  868. ** NNset() sets an attribute without triggering a possible notification.
  869. **
  870. **
  871. ***************************************************************************)
  872.  
  873.   PROCEDURE Set*( obj : m.Object; attr, value : e.APTR );
  874.     BEGIN
  875.       IF I.SetAttrs( obj, attr, value, u.end ) = 0 THEN END
  876.     END Set;
  877.  
  878.   PROCEDURE Get*( obj : m.Object; attr : LONGINT ; VAR store : ARRAY OF e.BYTE );
  879.     BEGIN
  880.       IF I.GetAttr( attr, obj, store) = 0 THEN END
  881.     END Get;
  882.  
  883.   PROCEDURE NNSet( obj : m.Object; attr, value : e.APTR );
  884.     BEGIN
  885.       IF I.SetAttrs( obj, m.aNoNotify, e.LTRUE, attr, value, u.end ) = 0 THEN END
  886.     END NNSet;
  887.  
  888.   PROCEDURE SetMutex * ( obj : m.Object; n : LONGINT );
  889.     BEGIN
  890.       Set( obj, m.aRadioActive, n );
  891.     END SetMutex;
  892.  
  893.   PROCEDURE SetCycle * ( obj : m.Object; n : LONGINT );
  894.     BEGIN
  895.       Set( obj, m.aCycleActive, n );
  896.     END SetCycle;
  897.  
  898.   PROCEDURE SetString * ( obj : m.Object; s : e.STRPTR );
  899.     BEGIN
  900.       Set( obj, m.aStringContents, s );
  901.     END SetString;
  902.  
  903.   PROCEDURE SetCheckmark * ( obj : m.Object; b : BOOLEAN );
  904.     BEGIN
  905.       Set( obj, m.aSelected, y.VAL(SHORTINT,b) );
  906.     END SetCheckmark;
  907.  
  908.   PROCEDURE SetSlider * ( obj : m.Object; l : LONGINT );
  909.     BEGIN
  910.       Set( obj, m.aSliderLevel, l );
  911.     END SetSlider;
  912.  
  913. END MuiSimple.
  914.  
  915.  
  916.