home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 18 / amigaformatcd18.iso / mui / mui_developer / autodocs / mui_area.doc < prev    next >
Text File  |  1997-03-10  |  42KB  |  1,533 lines

  1. TABLE OF CONTENTS
  2.  
  3. Area.mui/Area.mui
  4. Area.mui/MUIA_Background
  5. Area.mui/MUIA_BottomEdge
  6. Area.mui/MUIA_ContextMenu
  7. Area.mui/MUIA_ContextMenuTrigger
  8. Area.mui/MUIA_ControlChar
  9. Area.mui/MUIA_CycleChain
  10. Area.mui/MUIA_Disabled
  11. Area.mui/MUIA_Draggable
  12. Area.mui/MUIA_Dropable
  13. Area.mui/MUIA_ExportID
  14. Area.mui/MUIA_FillArea
  15. Area.mui/MUIA_FixHeight
  16. Area.mui/MUIA_FixHeightTxt
  17. Area.mui/MUIA_FixWidth
  18. Area.mui/MUIA_FixWidthTxt
  19. Area.mui/MUIA_Font
  20. Area.mui/MUIA_Frame
  21. Area.mui/MUIA_FramePhantomHoriz
  22. Area.mui/MUIA_FrameTitle
  23. Area.mui/MUIA_Height
  24. Area.mui/MUIA_HorizDisappear
  25. Area.mui/MUIA_HorizWeight
  26. Area.mui/MUIA_InnerBottom
  27. Area.mui/MUIA_InnerLeft
  28. Area.mui/MUIA_InnerRight
  29. Area.mui/MUIA_InnerTop
  30. Area.mui/MUIA_InputMode
  31. Area.mui/MUIA_LeftEdge
  32. Area.mui/MUIA_MaxHeight
  33. Area.mui/MUIA_MaxWidth
  34. Area.mui/MUIA_Pressed
  35. Area.mui/MUIA_RightEdge
  36. Area.mui/MUIA_Selected
  37. Area.mui/MUIA_ShortHelp
  38. Area.mui/MUIA_ShowMe
  39. Area.mui/MUIA_ShowSelState
  40. Area.mui/MUIA_Timer
  41. Area.mui/MUIA_TopEdge
  42. Area.mui/MUIA_VertDisappear
  43. Area.mui/MUIA_VertWeight
  44. Area.mui/MUIA_Weight
  45. Area.mui/MUIA_Width
  46. Area.mui/MUIA_Window
  47. Area.mui/MUIA_WindowObject
  48. Area.mui/MUIM_AskMinMax
  49. Area.mui/MUIM_Cleanup
  50. Area.mui/MUIM_ContextMenuBuild
  51. Area.mui/MUIM_ContextMenuChoice
  52. Area.mui/MUIM_CreateBubble
  53. Area.mui/MUIM_CreateShortHelp
  54. Area.mui/MUIM_DeleteBubble
  55. Area.mui/MUIM_DeleteShortHelp
  56. Area.mui/MUIM_DragBegin
  57. Area.mui/MUIM_DragDrop
  58. Area.mui/MUIM_DragFinish
  59. Area.mui/MUIM_DragQuery
  60. Area.mui/MUIM_DragReport
  61. Area.mui/MUIM_Draw
  62. Area.mui/MUIM_DrawBackground
  63. Area.mui/MUIM_HandleEvent
  64. Area.mui/MUIM_HandleInput
  65. Area.mui/MUIM_Hide
  66. Area.mui/MUIM_Setup
  67. Area.mui/MUIM_Show
  68. Area.mui/Area.mui
  69.  
  70.     Area class is a super class for every other MUI class
  71.     except windows and applications. It holds information
  72.     about an objects current position, size and weight
  73.     and manages frames, fonts and backgrounds.
  74.  
  75.     Additionally, area class handles the user input. By
  76.     setting an objects MUIA_InputMode, you can make it
  77.     behave like a button or like a toggle gadget. That's
  78.     why MUI doesn't offer an extra button class. A button
  79.     is simply a text object with a raised frame and a relverify
  80.     input mode. Since especially group class is a subclass
  81.     of area, you can create rather complex buttons consisting
  82.     of many other display elements.
  83. Area.mui/MUIA_Background
  84.  
  85.     NAME
  86.     MUIA_Background -- (V4 ) [IS.], LONG
  87.  
  88.     FUNCTION
  89.     Adjust the background for an object.
  90.  
  91.     Every MUI object has its own background setting.
  92.     The background is displayed "behind" the actual
  93.     object contents, e.g. behind a the text of a
  94.     text object or behind the image of an image object.
  95.  
  96.     This attribute takes the same values as MUIA_Image_Spec,
  97.     please refer to autodocs of image class for a complete
  98.     description.
  99.  
  100.     An object without a specific background setting will
  101.     inherit the pattern from its parent group. The default
  102.     background for a window and many other background
  103.     patterns are adjustable with the preferences program.
  104.  
  105.     Only a few MUII_xxxxxxx tags make sense as background.
  106.     Important are:
  107.  
  108.     MUII_ButtonBack:
  109.        You have to set this when you create a button gadget.
  110.        Thus, your button will be displayed in the users
  111.        preferred style.
  112.  
  113.     MUII_TextBack:
  114.        Set this when you create a text object with a TextFrame,
  115.        e.g. some kind of status line. Do *not* use MUII_TextBack
  116.        for simple text without frame (e.g. gadget labels).
  117.  
  118.     MUII_BACKGROUND
  119.     MUII_SHADOW
  120.     MUII_SHINE
  121.     MUII_FILL
  122.     MUII_SHADOWBACK
  123.     MUII_SHADOWFILL
  124.     MUII_SHADOWSHINE
  125.     MUII_FILLBACK
  126.     MUII_FILLSHINE
  127.     MUII_SHINEBACK
  128.     MUII_SHINEBACK2:
  129.        One of MUI's predefined pattern. These are not
  130.        configurable by the user and will always look the
  131.        same.
  132.  
  133.     Note: It is *important* that you test your programs with
  134.           a fancy pattern configuration. With the default
  135.           setting you won't notice any errors in your backgrounds.
  136. Area.mui/MUIA_BottomEdge
  137.  
  138.     NAME
  139.     MUIA_BottomEdge -- (V4 ) [..G], LONG
  140.  
  141.     FUNCTION
  142.     You can use this to read the current position and
  143.     dimension of an object, if you e.g. need it to pop
  144.     up some requester below.
  145.  
  146.     Of course, this attribute is only valid when the
  147.     parent window of the object is currently open.
  148.  
  149.     SEE ALSO
  150.     MUIA_TopEdge, MUIA_Width, MUIA_Height,
  151.     MUIA_RightEdge, MUIA_LeftEdge
  152. Area.mui/MUIA_ContextMenu
  153.  
  154.     NAME
  155.     MUIA_ContextMenu -- (V11) [ISG], Object *
  156.  
  157.     FUNCTION
  158.     Specifies a context sensitive popup menu for the current
  159.     object. For MUI, popup menus are nothing else but standard
  160.     intuition menus, so you must specify a pointer to a
  161.     MUI menustrip object (e.g. something returned from
  162.     MUI_MakeObject(MUIO_MenustripNM,...)) here.
  163.  
  164.     Whenever the user hits the RMB and the mouse is above the parent
  165.     object, MUI will present the popup menu instead of the windows
  166.     menu.
  167.  
  168.     Note: MUI will *not* dispose the MUIA_ContextMenu object when
  169.     the object is disposed. You must take care of the menustrip
  170.     object yourself. This is because menustrip objects of
  171.     MUIA_ContextMenu do not actually "belong" to their parent
  172.     objects, it's just a "reference". You are allowed to use
  173.     a single menustrip object as MUIA_ContextMenu for different
  174.     objects of the same window. Do *not* share with objects in
  175.     other windows or with the default menu of a window or
  176.     an application!
  177.  
  178.     If the user selects an item, the object will receive
  179.     a MUIM_ContextMenuChoice method containing the selected
  180.     menuitem object. If you built your menustrip tree with
  181.     MUI_MakeObject(MUIO_MenustripNM,...), you will find the
  182.     nm_UserData of your menu entry in muiUserData(menuitem).
  183.     If you have control over methods because you are a
  184.     subclass, you can immediately take approriate actions 
  185.     when receiving MUIM_ContextMenuChoice.
  186.  
  187.     If you dont have a subclass or dont override
  188.     MUIM_ContextMenuChoice, the method will finally reach
  189.     area class and will set the attribute MUIA_ContextMenuTrigger
  190.     to the appropriate menuitem object. This allows you to react on
  191.     context menu selections by simple notification and eliminates
  192.     the need of writing a subclass just for this purpose.
  193.  
  194.     Note: Subclasses are always the better solution!
  195.  
  196.     There is also a possibility to dynamically create popup menus
  197.     on the fly. See MUIM_ContextMenuBuild for details.
  198.  
  199.     NOTES
  200.     MUI uses the same tree-like technique as always (e.g. with
  201.     drag&drop) to find out whichs context menu to use on a
  202.     certain mouse position. This allows you to have a context
  203.     menu for a group and different context menus for its
  204.     children. The MUI preferences program makes use of that
  205.     feature by allowing to control a single gadget or a whole
  206.     page of gadgets with popup menus.
  207.  
  208.     SEE ALSO
  209.     MUIA_ContextMenuTrigger, MUIM_ContextMenuChoice,
  210.     MUIM_ContextMenuBuild
  211. Area.mui/MUIA_ContextMenuTrigger
  212.  
  213.     NAME
  214.     MUIA_ContextMenuTrigger -- (V11) [..G], Object *
  215.  
  216.     FUNCTION
  217.     Allows reacting on context menus with notificaton.
  218.     When the MUIM_ContextMenuChoice method reaches area class
  219.     because you did not override it in a subclass, it sets
  220.     MUIA_ContextMenuTrigger to the received paremeter which
  221.     is a pointer to the user-selected menuitem object.
  222.  
  223.     See MUIA_ContextMenu for details.
  224.  
  225.     SEE ALSO
  226.     MUIA_ContextMenu, MUIM_ContextMenuChoice, MUIM_ContextMenuBuild
  227. Area.mui/MUIA_ControlChar
  228.  
  229.     NAME
  230.     MUIA_ControlChar -- (V4 ) [ISG], char
  231.  
  232.     FUNCTION
  233.     Pressing the control char will have the same effect
  234.     as pressing return if the object was active.
  235.     
  236.     This can be used to create old style key shortcuts.
  237.  
  238.     Note: Using an uppercase control char will force
  239.           the user to press shift.
  240.  
  241.     SEE ALSO
  242.     mui.h / KeyButton() macro
  243. Area.mui/MUIA_CycleChain
  244.  
  245.     NAME
  246.     MUIA_CycleChain -- (V11) [ISG], LONG
  247.  
  248.     FUNCTION
  249.     MUI 3 introduces a new keyboard cycle chain system. All you 
  250.     have to do is to set  MUIA_CycleChain to 1 for every object 
  251.     that you want to have in your chain, MUI does the rest 
  252.     automatically. The old MUIM_Window_SetCycleChain will continue 
  253.     to work but is considered obsolete.
  254.  
  255.     SEE ALSO
  256.     Window.mui/MUIM_Window_SetCycleChain
  257. Area.mui/MUIA_Disabled
  258.  
  259.     NAME
  260.     MUIA_Disabled -- (V4 ) [ISG], BOOL
  261.  
  262.     FUNCTION
  263.     Disable or enable a gadget. Setting this attribute
  264.     causes a gadget to become disabled, it gets a ghost
  265.     pattern and doesn't respond to user input any longer.
  266.  
  267.     Disabled gadgets cannot be activated with the TAB key.
  268.  
  269.     Using MUIA_Disable on a group of objects will disable
  270.     all objects within that group.
  271.  
  272.     EXAMPLE
  273.     /* we have a radio button gadget with three         */
  274.     /* entries, the third should enable a string gadget */
  275.     /* with additional parameters                       */
  276.  
  277.     DoMethod(radio, MUIM_Notify, MUIA_Radio_Active, 0,
  278.        string, 3, MUIM_Set, MUIA_Disabled, TRUE);
  279.  
  280.     DoMethod(radio, MUIM_Notify, MUIA_Radio_Active, 1,
  281.        string, 3, MUIM_Set, MUIA_Disabled, TRUE);
  282.  
  283.     DoMethod(radio, MUIM_Notify, MUIA_Radio_Active, 2,
  284.        string, 3, MUIM_Set, MUIA_Disabled, FALSE);
  285. Area.mui/MUIA_Draggable
  286.  
  287.     NAME
  288.     MUIA_Draggable -- (V11) [ISG], BOOL
  289.  
  290.     FUNCTION
  291.     Set this if you want the complete object to be
  292.     dragable for D&D operations.
  293. Area.mui/MUIA_Dropable
  294.  
  295.     NAME
  296.     MUIA_Dropable -- (V11) [ISG], BOOL
  297.  
  298.     FUNCTION
  299.     Only objects with this attribute set to TRUE will be asked
  300.     if they want to become an active Drag & Drop destination
  301.     at all. Though this attribute defaults to TRUE, this doesnt
  302.     mean that every object automatically aceppts D&D actions,
  303.     because the MUIM_DragQuery method is answered FALSE when
  304.     it arrives at area class.
  305.  
  306.     SEE ALSO
  307.     MUIM_DragQuery
  308. Area.mui/MUIA_ExportID
  309.  
  310.     NAME
  311.     MUIA_ExportID -- (V4 ) [ISG], ULONG (OBSOLETE)
  312.  
  313.     FUNCTION
  314.     Objects with a non NULL MUIA_ExportID export their
  315.     contents during MUIM_Application_Save and import
  316.     them during MUIM_Application_Load.
  317.  
  318.     You have to use different ExportIDs for your objects!
  319.  
  320.     NOTE
  321.     This attribute is renamed to MUIA_ObjectID since
  322.     muimaster.library V12.
  323.  
  324.     SEE ALSO
  325.     MUIM_Application_Save, MUIM_Application_Load
  326. Area.mui/MUIA_FillArea
  327.  
  328.     NAME
  329.     MUIA_FillArea -- (V4 ) [IS.], BOOL
  330.  
  331.     FUNCTION
  332.     Set this if you are a custom class and dont want area class to
  333.     clear your background during the DoSuperMethod() in your
  334.     draw method. Note that if you set this, your draw method
  335.     is responsible for filling every pixel of your objects
  336.     rectangle, otherwise some display trash will remain there.
  337. Area.mui/MUIA_FixHeight
  338.  
  339.     NAME
  340.     MUIA_FixHeight -- (V4 ) [I..], LONG
  341.  
  342.     FUNCTION
  343.     Give your object a fixed pixel height. This tag is
  344.     absolutely not needed in a general MUI application
  345.     and only present for emergency situations. Please
  346.     think twice before using it!
  347.  
  348.     EXAMPLE
  349.     /* create an 8x8 pixel rectangle with FILLPEN */
  350.  
  351.     RectangleObject,
  352.        MUIA_FixWidth  , 8,
  353.        MUIA_FixHeight , 8,
  354.        MUIA_Background, MUII_FILL,
  355.        End;
  356.  
  357.     SEE ALSO
  358.     MUIA_FixWidth, MUIA_FixWidthTxt, MUIA_FixHeightTxt
  359. Area.mui/MUIA_FixHeightTxt
  360.  
  361.     NAME
  362.     MUIA_FixHeightTxt -- (V4 ) [I..], STRPTR
  363.  
  364.     FUNCTION
  365.     Give your object a fixed pixel height. The height
  366.     will match the height of the given string. This tag is
  367.     absolutely not needed in a general MUI application
  368.     and only present for emergency situations. Please
  369.     think twice before using it!
  370.  
  371.     EXAMPLE
  372.     /* create a fixed size rectangle with FILLPEN */
  373.  
  374.     RectangleObject,
  375.        MUIA_FixWidthTxt , "00:00:00",
  376.        MUIA_FixHeightTxt, "\n\n",
  377.        MUIA_Background  , MUII_FILL,
  378.        End;
  379.  
  380.     SEE ALSO
  381.     MUIA_FixHeight, MUIA_FixWidth, MUIA_FixWidthTxt
  382. Area.mui/MUIA_FixWidth
  383.  
  384.     NAME
  385.     MUIA_FixWidth -- (V4 ) [I..], LONG
  386.  
  387.     FUNCTION
  388.     Give your object a fixed pixel width. This tag is
  389.     absolutely not needed in a general MUI application
  390.     and only present for emergency situations. Please
  391.     think twice before using it!
  392.  
  393.     EXAMPLE
  394.     /* create an 8x8 pixel rectangle with FILLPEN */
  395.  
  396.     RectangleObject,
  397.        MUIA_FixWidth  , 8,
  398.        MUIA_FixHeight , 8,
  399.        MUIA_Background, MUII_FILL,
  400.        End;
  401.  
  402.     SEE ALSO
  403.     MUIA_FixHeight, MUIA_FixWidthTxt, MUIA_FixHeightTxt
  404. Area.mui/MUIA_FixWidthTxt
  405.  
  406.     NAME
  407.     MUIA_FixWidthTxt -- (V4 ) [I..], STRPTR
  408.  
  409.     FUNCTION
  410.     Give your object a fixed pixel width. The width
  411.     will match the width of the given string. This tag is
  412.     absolutely not needed in a general MUI application
  413.     and only present for emergency situations. Please
  414.     think twice before using it!
  415.  
  416.     EXAMPLE
  417.     /* create a fixed size rectangle with FILLPEN */
  418.  
  419.     RectangleObject,
  420.        MUIA_FixWidthTxt , "00:00:00",
  421.        MUIA_FixHeightTxt, "\n\n",
  422.        MUIA_Background  , MUII_FILL,
  423.        End;
  424.  
  425.     SEE ALSO
  426.     MUIA_FixHeight, MUIA_FixWidth, MUIA_FixHeightTxt
  427. Area.mui/MUIA_Font
  428.  
  429.     NAME
  430.     MUIA_Font -- (V4 ) [I.G], struct TextFont *
  431.  
  432.     SPECIAL INPUTS
  433.     MUIV_Font_Inherit
  434.     MUIV_Font_Normal
  435.     MUIV_Font_List
  436.     MUIV_Font_Tiny
  437.     MUIV_Font_Fixed
  438.     MUIV_Font_Title
  439.     MUIV_Font_Big
  440.     MUIV_Font_Button
  441.  
  442.     FUNCTION
  443.     Every MUI object can have its own font, just set it with
  444.     this tag. Objects without an explicit font setting will
  445.     inherit it from their parent group.
  446.  
  447.     You normally won't need to open a font yourself, just
  448.     use one of the predefined values to get a font from
  449.     the users preferences.
  450.  
  451.     EXAMPLE
  452.     /* since the text contains tabs,           */
  453.     /* use the fixed width font for displaying */
  454.  
  455.     msgread = FloattextObject,
  456.        MUIA_Font, MUIV_Font_Fixed,
  457.        ...,
  458.        End;
  459. Area.mui/MUIA_Frame
  460.  
  461.     NAME
  462.     MUIA_Frame -- (V4 ) [I..], LONG
  463.  
  464.     SPECIAL INPUTS
  465.     MUIV_Frame_None
  466.     MUIV_Frame_Button
  467.     MUIV_Frame_ImageButton
  468.     MUIV_Frame_Text
  469.     MUIV_Frame_String
  470.     MUIV_Frame_ReadList
  471.     MUIV_Frame_InputList
  472.     MUIV_Frame_Prop
  473.     MUIV_Frame_Gauge
  474.     MUIV_Frame_Group
  475.     MUIV_Frame_PopUp
  476.     MUIV_Frame_Virtual
  477.     MUIV_Frame_Slider
  478.     MUIV_Frame_Count
  479.  
  480.     FUNCTION
  481.     Define a frame for the current object. Since area class
  482.     is a superclass for all elements in a window, you can
  483.     assign frames to every object you wish.
  484.  
  485.     You don't adjust the style of your frame directly,
  486.     instead you only specify a type:
  487.  
  488.     MUIV_Frame_Button
  489.        for standard buttons with text in it.
  490.  
  491.     MUIV_Frame_ImageButton
  492.        for small buttons with images, e.g. the arrows
  493.        of a scrollbar.
  494.  
  495.     MUIV_Frame_Text
  496.        for a text field, e.g. a status line display.
  497.  
  498.     MUIV_Frame_String
  499.        for a string gadget.
  500.  
  501.     MUIV_Frame_ReadList
  502.        for a read only list.
  503.  
  504.     MUIV_Frame_InputList
  505.        for a list that handles input (has a cursor).
  506.  
  507.     MUIV_Frame_Prop
  508.        for proportional gadgets.
  509.  
  510.     MUIV_Frame_Group
  511.        for groups.
  512.  
  513.     How the frame is going to look is adjustable via the
  514.     preferences program.
  515.  
  516.     Four spacing values belong to each frame that tell
  517.     MUI how many pixels should be left free between the
  518.     frame and its contents. These spacing values are also
  519.     user adjustable as long as you don't override them
  520.     with one of MUIA_InnerLeft, MUIA_InnerRight, MUIA_InnerTop,
  521.     or MUIA_InnerBottom.
  522.  
  523.     Note: The first object in a window (MUIA_Window_RootObject)
  524.           may *not* have a frame. If you need this you will have
  525.           to create a dummy group with just one child.
  526.  
  527.     EXAMPLE
  528.     strobj = StringObject,
  529.        MUIA_Frame, MUIV_Frame_String,
  530.        End;
  531.  
  532.     SEE ALSO
  533.     MUIA_InnerLeft, MUIA_InnerRight, MUIA_InnerTop,
  534.     MUIA_InnerBottom
  535. Area.mui/MUIA_FramePhantomHoriz
  536.  
  537.     NAME
  538.     MUIA_FramePhantomHoriz -- (V4 ) [I..], BOOL
  539.  
  540.     FUNCTION
  541.     Setting this to TRUE causes the specified frame to be
  542.     a horizontal phantom frame. The frame will not appear
  543.     but its vertical components (frame height, inner
  544.     top and inner bottom spacing) will be used to calculate
  545.     positions and dimensions (horizontal components are
  546.     treated as 0).
  547.  
  548.     This is extremely useful for a correct labeling of objects.
  549.     You would e.g. label a string gadget by using a text object
  550.     with a phantom string frame. Thus, the label text will
  551.     be always on the same vertical position as the string
  552.     gadget text, no matter what spacing values the user
  553.     configured.
  554.  
  555.     SEE ALSO
  556.     Label() macros in "mui.h".
  557. Area.mui/MUIA_FrameTitle
  558.  
  559.     NAME
  560.     MUIA_FrameTitle -- (V4 ) [I..], STRPTR
  561.  
  562.     FUNCTION
  563.     This tag identifies a text string that will be displayed
  564.     centered in the top line of a frame. This can become
  565.     handy if you want to name groups of objects.
  566.  
  567.     You may not use MUIA_FrameTitle without defining
  568.     a MUIA_Frame.
  569.  
  570.     EXAMPLE
  571.     VGroup,
  572.        MUIA_Frame     , MUIV_Frame_Group,
  573.        MUIA_FrameTitle, "Spacing",
  574.        ...
  575.  
  576.     SEE ALSO
  577.     MUIA_Frame
  578. Area.mui/MUIA_Height
  579.  
  580.     NAME
  581.     MUIA_Height -- (V4 ) [..G], LONG
  582.  
  583.     FUNCTION
  584.     You can use this to read the current position and
  585.     dimension of an object, if you e.g. need it to pop
  586.     up some requester below.
  587.  
  588.     Of course, this attribute is only valid when the
  589.     parent window of the object is currently open.
  590.  
  591.     SEE ALSO
  592.     MUIA_TopEdge, MUIA_Width, MUIA_LeftEdge,
  593.     MUIA_RightEdge, MUIA_BottomEdge
  594. Area.mui/MUIA_HorizDisappear
  595.  
  596.     NAME
  597.     MUIA_HorizDisappear -- (V11) [ISG], LONG
  598.  
  599.     FUNCTION
  600.     Objects with a disappear level disappear automatically
  601.     when their parent window gets too small to display them.
  602.     Use this for things that make your GUI look nicer
  603.     (e.g. Imagery) but are not absolutely necessary.
  604.  
  605.     By using disappearing objects, you can make nice GUIs
  606.     which still work on crappy 640x200 screens.
  607.  
  608.     You can give horizontal or vertical disappear levels
  609.     to objects which are used for horizontal or vertical
  610.     layout calculations respectively.
  611.  
  612.     Objects with a small disappear level disappear before
  613.     objects with a big disappear level.
  614.  
  615.     SEE ALSO
  616.     MUIA_VertDisappear
  617. Area.mui/MUIA_HorizWeight
  618.  
  619.     NAME
  620.     MUIA_HorizWeight -- (V4 ) [ISG], WORD
  621.  
  622.     FUNCTION
  623.     Adjust the horizontal weight of an object. Usually
  624.     you can simply use MUIA_Weight instead of this tag
  625.     but in some two-dimensional groups it may become
  626.     handy to have different horizontal and vertical 
  627.     weights.
  628.  
  629.     SEE ALSO
  630.     MUIA_Weight
  631. Area.mui/MUIA_InnerBottom
  632.  
  633.     NAME
  634.     MUIA_InnerBottom -- (V4 ) [I.G], LONG
  635.  
  636.     FUNCTION
  637.     Adjust the space between an object and its frame.
  638.     Usually you shouldn't use this tag since you will
  639.     override the users preferred default setting.
  640.  
  641.     SEE ALSO
  642.     MUIA_Frame
  643. Area.mui/MUIA_InnerLeft
  644.  
  645.     NAME
  646.     MUIA_InnerLeft -- (V4 ) [I.G], LONG
  647.  
  648.     FUNCTION
  649.     Adjust the space between an object and its frame.
  650.     Usually you shouldn't use this tag since you will
  651.     override the users preferred default setting.
  652.  
  653.     SEE ALSO
  654.     MUIA_Frame
  655. Area.mui/MUIA_InnerRight
  656.  
  657.     NAME
  658.     MUIA_InnerRight -- (V4 ) [I.G], LONG
  659.  
  660.     FUNCTION
  661.     Adjust the space between an object and its frame.
  662.     Usually you shouldn't use this tag since you will
  663.     override the users preferred default setting.
  664.  
  665.     SEE ALSO
  666.     MUIA_Frame
  667. Area.mui/MUIA_InnerTop
  668.  
  669.     NAME
  670.     MUIA_InnerTop -- (V4 ) [I.G], LONG
  671.  
  672.     FUNCTION
  673.     Adjust the space between an object and its frame.
  674.     Usually you shouldn't use this tag since you will
  675.     override the users preferred default setting.
  676.  
  677.     SEE ALSO
  678.     MUIA_Frame
  679. Area.mui/MUIA_InputMode
  680.  
  681.     NAME
  682.     MUIA_InputMode -- (V4 ) [I..], LONG
  683.  
  684.     SPECIAL INPUTS
  685.     MUIV_InputMode_None
  686.     MUIV_InputMode_RelVerify
  687.     MUIV_InputMode_Immediate
  688.     MUIV_InputMode_Toggle
  689.  
  690.     FUNCTION
  691.     Adjust the input mode for an object.
  692.  
  693.     MUI has no distinct button class. Instead you can make
  694.     every object (even groups) behave like a button by
  695.     setting an input mode for them. Several input modes
  696.     area available:
  697.  
  698.     MUIV_InputMode_None:
  699.        No input, this is not a gadget.
  700.  
  701.     MUIV_InputMode_RelVerify:
  702.        For buttons and similar stuff.
  703.  
  704.     MUIV_InputMode_Immediate:
  705.        Used e.g. in a radio button object.
  706.  
  707.     MUIV_InputMode_Toggle:
  708.        For things like checkmark gadgets.
  709.  
  710.     The input mode setting determines how a user action
  711.     will trigger the attributes MUIA_Selected, MUIA_Pressed
  712.     and MUIA_Timer. See their documentation for details.
  713.  
  714.     EXAMPLE
  715.     /* A traditional button, just a text object with */
  716.     /* a button frame and a relverify input mode:    */
  717.  
  718.     okbutton = TextObject,
  719.        MUIA_Frame        , MUIV_Frame_Button,
  720.        MUIA_InputMode    , MUIV_InputMode_RelVerify,
  721.        MUIA_Text_Contents, "OK",
  722.        ...
  723.  
  724.     SEE ALSO
  725.     MUIA_Selected, MUIA_Timer, MUIA_Pressed
  726. Area.mui/MUIA_LeftEdge
  727.  
  728.     NAME
  729.     MUIA_LeftEdge -- (V4 ) [..G], LONG
  730.  
  731.     FUNCTION
  732.     You can use this to read the current position and
  733.     dimension of an object, if you e.g. need it to pop
  734.     up some requester below.
  735.  
  736.     Of course, this attribute is only valid when the
  737.     parent window of the object is currently open.
  738.  
  739.     SEE ALSO
  740.     MUIA_TopEdge, MUIA_Width, MUIA_Height,
  741.     MUIA_RightEdge, MUIA_BottomEdge
  742. Area.mui/MUIA_MaxHeight
  743.  
  744.     NAME
  745.     MUIA_MaxHeight -- (V11) [I..], LONG
  746.  
  747.     FUNCTION
  748.     Specify a maximum height for an object (in pixels).
  749.  
  750.     SEE ALSO
  751.     MUIA_MaxWidth, MUIA_FixWidth, MUIA_FixHeight
  752. Area.mui/MUIA_MaxWidth
  753.  
  754.     NAME
  755.     MUIA_MaxWidth -- (V11) [I..], LONG
  756.  
  757.     FUNCTION
  758.     Specify a maximum width for an object (in pixels).
  759.  
  760.     SEE ALSO
  761.     MUIA_MaxHeight, MUIA_FixWidth, MUIA_FixHeight
  762. Area.mui/MUIA_Pressed
  763.  
  764.     NAME
  765.     MUIA_Pressed -- (V4 ) [..G], BOOL
  766.  
  767.     FUNCTION
  768.     Learn if a button is pressed (or released).
  769.     The MUIA_Pressed attribute of a gadget is triggered
  770.     by some user action, depending on the input mode:
  771.  
  772.     MUIV_InputMode_RelVerify:
  773.        - set when lmb is pressed.
  774.        - cleared when lmb is released and the mouse
  775.          is still over the gadget (otherwise it will
  776.          be cleared too, but without triggering a
  777.          notification event).
  778.  
  779.     MUIV_InputMode_Immediate:
  780.        - undefined, use MUIA_Selected for this.
  781.  
  782.     MUIV_InputMode_Toggle:
  783.        - undefined, use MUIA_Selected for this.
  784.  
  785.     Waiting for MUIA_Pressed getting FALSE is the usual
  786.     way to react on button gadgets.
  787.  
  788.     EXAMPLE
  789.     DoMethod(btcancel,MUIM_Notify,MUIA_Pressed,FALSE,
  790.        app,2,MUIM_Application_ReturnID,ID_CANCEL);
  791.  
  792.     SEE ALSO
  793.     MUIA_Selected, MUIA_Timer, MUIA_ShowSelState, MUIA_InputMode
  794. Area.mui/MUIA_RightEdge
  795.  
  796.     NAME
  797.     MUIA_RightEdge -- (V4 ) [..G], LONG
  798.  
  799.     FUNCTION
  800.     You can use this to read the current position and
  801.     dimension of an object, if you e.g. need it to pop
  802.     up some requester below.
  803.  
  804.     Of course, this attribute is only valid when the
  805.     parent window of the object is currently open.
  806.  
  807.     SEE ALSO
  808.     MUIA_TopEdge, MUIA_Width, MUIA_Height,
  809.     MUIA_LeftEdge, MUIA_BottomEdge
  810. Area.mui/MUIA_Selected
  811.  
  812.     NAME
  813.     MUIA_Selected -- (V4 ) [ISG], BOOL
  814.  
  815.     FUNCTION
  816.     Get and set the selected state of a gadget.
  817.     This attribute can be triggered by the user
  818.     clicking on the gadget (or using the keyboard),
  819.     depending on the input mode:
  820.  
  821.     MUIV_InputMode_RelVerify:
  822.        - set when lmb is pressed.
  823.        - cleared when lmb is released.
  824.        - cleared when the gadget is selected and the
  825.          mouse leaves the gadget box.
  826.        - set when the mouse reenters the gadget box.
  827.  
  828.     MUIV_InputMode_Immediate:
  829.        - set when lmb is pressed.
  830.  
  831.     MUIV_InputMode_Toggle:
  832.        - toggled when lmb is pressed.
  833.  
  834.     Of course you may set this attribute yourself, e.g.
  835.     to adjust the state of a checkmark gadget.
  836.  
  837.     A selected gadget will display its border reverse
  838.     and get the configured MUII_SelectedBack background.
  839.     This can be avoided using the MUIA_ShowSelState tag.
  840.  
  841.     SEE ALSO
  842.     MUIA_Pressed, MUIA_Timer, MUIA_ShowSelState, MUIA_InputMode
  843. Area.mui/MUIA_ShortHelp
  844.  
  845.     NAME
  846.     MUIA_ShortHelp -- (V11) [ISG], STRPTR
  847.  
  848.     FUNCTION
  849.     Specify a string that is to be used as bubble help for this
  850.     object.
  851. Area.mui/MUIA_ShowMe
  852.  
  853.     NAME
  854.     MUIA_ShowMe -- (V4 ) [ISG], BOOL
  855.  
  856.     FUNCTION
  857.     Objects with this attribute set are not displayed. You can
  858.     set MUIA_ShowMe at any time, causing objects to appear and
  859.     to disappear immediately. A new layout is calculated whenever
  860.     some objects are shown or hidden. When necessary, MUI will
  861.     resize the parent window to make place for the new objects.
  862.  
  863.     NOTE
  864.     Currently, MUI does a complete window refresh after
  865.     showing/hiding objects. This behaviour might get improved
  866.     in the future.
  867. Area.mui/MUIA_ShowSelState
  868.  
  869.     NAME
  870.     MUIA_ShowSelState -- (V4 ) [I..], BOOL
  871.  
  872.     FUNCTION
  873.     Normally a gadget will reverse its frame and
  874.     display the configured MUII_SelectetBack background
  875.     pattern in its selected state. For some objects
  876.     (e.g. checkmarks) this is not recommended and
  877.     can be supressed by setting MUIA_ShowSelState
  878.     to FALSE.
  879.  
  880.     SEE ALSO
  881.     MUIA_Selected
  882. Area.mui/MUIA_Timer
  883.  
  884.     NAME
  885.     MUIA_Timer -- (V4 ) [..G], LONG
  886.  
  887.     FUNCTION
  888.     MUIA_Timer gets triggered when a relverify button is 
  889.     pressed and (after a little delay) increases every 
  890.     INTUITICK as long as the mouse remains over the gadget.
  891.  
  892.     This makes it possible to have buttons repeatedly
  893.     cause some actions, just like the arrow gadgets of
  894.     a scrollbar.
  895.  
  896.     EXAMPLE
  897.     DoMethod(btmore,MUIM_Notify,MUIA_Timer,MUIV_EveryTime,
  898.        app,2,MUIM_Application_ReturnID,ID_MORE);
  899.  
  900.     DoMethod(btless,MUIM_Notify,MUIA_Timer,MUIV_EveryTime,
  901.        app,2,MUIM_Application_ReturnID,ID_LESS);
  902.  
  903.     SEE ALSO
  904.     MUIA_Pressed, MUIA_Selected
  905. Area.mui/MUIA_TopEdge
  906.  
  907.     NAME
  908.     MUIA_TopEdge -- (V4 ) [..G], LONG
  909.  
  910.     FUNCTION
  911.     You can use this to read the current position and
  912.     dimension of an object, if you e.g. need it to pop
  913.     up some requester below.
  914.  
  915.     Of course, this attribute is only valid when the
  916.     parent window of the object is currently open.
  917.  
  918.     SEE ALSO
  919.     MUIA_LeftEdge, MUIA_Width, MUIA_Height,
  920.     MUIA_RightEdge, MUIA_BottomEdge
  921. Area.mui/MUIA_VertDisappear
  922.  
  923.     NAME
  924.     MUIA_VertDisappear -- (V11) [ISG], LONG
  925.  
  926.     FUNCTION
  927.     Objects with a disappear level disappear automatically
  928.     when their parent window gets too small to display them.
  929.     Use this for things that make your GUI look nicer
  930.     (e.g. Imagery) but are not absolutely necessary.
  931.  
  932.     By using disappearing objects, you can make nice GUIs
  933.     which still work on crappy 640x200 screens.
  934.  
  935.     You can give horizontal or vertical disappear levels
  936.     to objects which are used for horizontal or vertical
  937.     layout calculations respectively.
  938.  
  939.     Objects with a small disappear level disappear before
  940.     objects with a big disappear level.
  941.  
  942.     SEE ALSO
  943.     MUIA_HorizDisappear
  944. Area.mui/MUIA_VertWeight
  945.  
  946.     NAME
  947.     MUIA_VertWeight -- (V4 ) [ISG], WORD
  948.  
  949.     FUNCTION
  950.     Adjust the vertical weight of an object. Usually
  951.     you can simply use MUIA_Weight instead of this tag
  952.     but in some two-dimensional groups it may become
  953.     handy to have different horizontal and vertical
  954.     weights.
  955.  
  956.     SEE ALSO
  957.     MUIA_Weight
  958. Area.mui/MUIA_Weight
  959.  
  960.     NAME
  961.     MUIA_Weight -- (V4 ) [I..], WORD
  962.  
  963.     FUNCTION
  964.     This tag is a shorthand for MUIA_HorizWeight and
  965.     MUIA_VertWeight, it sets both weights at once.
  966.  
  967.     The weight of an object determines how much room it
  968.     will get during the layout process. Imagine you have
  969.     a 100 pixel wide horizontal group with two string
  970.     gadgets. Usually, each gadget will get half of the
  971.     room and be 50 pixels wide. If you feel the left
  972.     gadget is more important and should be bigger,
  973.     you can give it a weight of 200 (and 100 for
  974.     the right gadget). Because the left gadget is
  975.     twice as "heavy" as the right gadget, it will
  976.     become twice as big (about 66 pixel) as the
  977.     right one (34 pixel).
  978.  
  979.     Of course giving weights only makes sense if the
  980.     object is resizable. A MUIA_VertWeight for a
  981.     (always fixed height) string gadget is useless.
  982.  
  983.     An object with a weight of 0 will always stay
  984.     at its minimum size.
  985.  
  986.     By default, all objects have a weight of 100.
  987.  
  988.     EXAMPLE
  989.     HGroup,
  990.        StringGadget, MUIA_Weight,  50, End,
  991.        StringGadget, MUIA_Weight, 100, End,
  992.        StringGadget, MUIA_Weight, 200, End,
  993.        End;
  994.  
  995.     SEE ALSO
  996.     MUIA_HorizWeight, MUIA_VertWeight
  997. Area.mui/MUIA_Width
  998.  
  999.     NAME
  1000.     MUIA_Width -- (V4 ) [..G], LONG
  1001.  
  1002.     FUNCTION
  1003.     You can use this to read the current position and
  1004.     dimension of an object, if you e.g. need it to pop
  1005.     up some requester below.
  1006.  
  1007.     Of course, this attribute is only valid when the
  1008.     parent window of the object is currently open.
  1009.  
  1010.     SEE ALSO
  1011.     MUIA_TopEdge, MUIA_LeftEdge, MUIA_Height,
  1012.     MUIA_RightEdge, MUIA_BottomEdge
  1013. Area.mui/MUIA_Window
  1014.  
  1015.     NAME
  1016.     MUIA_Window -- (V4 ) [..G], struct Window *
  1017.  
  1018.     FUNCTION
  1019.     This attribute can be used to get a pointer to the
  1020.     intuition window structure of the parent window 
  1021.     ot the object. This pointer could e.g. be used
  1022.     in calls to asl.library.
  1023.  
  1024.     The result is only valid when the window is opened.
  1025.  
  1026.     SEE ALSO
  1027.     MUIA_Window_Window
  1028. Area.mui/MUIA_WindowObject
  1029.  
  1030.     NAME
  1031.     MUIA_WindowObject -- (V4 ) [..G], Object *
  1032.  
  1033.     FUNCTION
  1034.     You can obtain a pointer to the window object
  1035.     that some gadget belongs to by using this attribute.
  1036.     Useful mainly within callback hooks if you do not want
  1037.     to deal with global variables.
  1038.  
  1039.     SEE ALSO
  1040.     MUIA_ApplicationObject
  1041. Area.mui/MUIM_AskMinMax
  1042.  
  1043.     NAME
  1044.     MUIM_AskMinMax (V4 )
  1045.     [For use within custom classes only]
  1046.  
  1047.     SYNOPSIS
  1048.     DoMethod(obj,MUIM_AskMinMax,struct MUI_MinMax *MinMaxInfo);
  1049.  
  1050.     FUNCTION
  1051.     see developer documentation.
  1052. Area.mui/MUIM_Cleanup
  1053.  
  1054.     NAME
  1055.     MUIM_Cleanup (V4 )
  1056.     [For use within custom classes only]
  1057.  
  1058.     SYNOPSIS
  1059.     DoMethod(obj,MUIM_Cleanup);
  1060.  
  1061.     FUNCTION
  1062.     see developer documentation.
  1063. Area.mui/MUIM_ContextMenuBuild
  1064.  
  1065.     NAME
  1066.     MUIM_ContextMenuBuild (V11)
  1067.  
  1068.     SYNOPSIS
  1069.     DoMethod(obj,MUIM_ContextMenuBuild,LONG mx, LONG my);
  1070.  
  1071.     FUNCTION
  1072.     Allows dynamic creation of context menus.
  1073.     When MUI is about to show a new context menu, it does not
  1074.     simply use the MUIA_ContextMenu field of area class. Instead,
  1075.     it sends a MUIM_ContextMenuBuild to the object in question and
  1076.     uses the return value as the new menustrip object.
  1077.  
  1078.     When MUIM_ContextMenuBuild reaches area class, it just return
  1079.     the contents of MUIA_ContextMenu so you neednt care about this
  1080.     method if you only have static, non-changing context menus.
  1081.  
  1082.     However, if your context menus depend on some internal states
  1083.     of your objects or on the mouse position within your objects,
  1084.     you have to have a subclass which overrides
  1085.     MUIM_ContextMenuBuild, creates a nice menustrip object and
  1086.     returns it.
  1087.  
  1088.     INPUTS
  1089.     mx - current x position of mouse
  1090.     my - current y position of mouse
  1091.  
  1092.     Since MUI does (unfortunately) not use relative coordinates 
  1093.     at all, these two aren't relative either.
  1094.  
  1095.     RESULT
  1096.     You must return a pointer to a menustrip object or NULL if
  1097.     you failed to create one.
  1098.  
  1099.     NOTES
  1100.     MUI will never dispose the object you return. You must be
  1101.     take care of this yourself, e.g. by storing a pointer somewhere
  1102.     in your instance data and killing it on the next invocation
  1103.     of MUIM_ContextMenuBuild and on OM_DISPOSE.
  1104.  
  1105.     Even when overriding MUIM_ContextMenuBuild, you *must* set
  1106.     MUIA_ContextMenu of your object to something different from NULL.
  1107.     MUI will find out that your object actually has a popup menu
  1108.     by directly checking the contents of MUIA_ContextMenu in the
  1109.     instance data of area class due to speed reasons.
  1110.  
  1111.     SEE ALSO
  1112.     MUIA_ContextMenu, MUIA_ContextMenuTrigger, MUIM_ContextMenuChoice,
  1113. Area.mui/MUIM_ContextMenuChoice
  1114.  
  1115.     NAME
  1116.     MUIM_ContextMenuChoice (V11)
  1117.  
  1118.     SYNOPSIS
  1119.     DoMethod(obj,MUIM_ContextMenuChoice,Object *item);
  1120.  
  1121.     FUNCTION
  1122.     Allows reacting on context menus in subclasses.
  1123.  
  1124.     See MUIA_ContextMenu for details.
  1125.  
  1126.     SEE ALSO
  1127.     MUIA_ContextMenuTrigger, MUIM_ContextMenuChoice,
  1128.     MUIM_ContextMenuBuild
  1129. Area.mui/MUIM_CreateBubble
  1130.  
  1131.     NAME
  1132.     MUIM_CreateBubble (V18)
  1133.  
  1134.     SYNOPSIS
  1135.     DoMethod(obj,MUIM_CreateBubble,LONG x, LONG y, char *txt, ULONG flags);
  1136.  
  1137.     FUNCTION
  1138.     Together with MUIM_DeleteBubble, this method provides an
  1139.     interface for MUIs bubble mechanism. Applications can use
  1140.     bubbles for their own purpose, e.g. for indicating error
  1141.     conditions on certain gadgets.
  1142.  
  1143.     MUIM_CreateBubble creates a bubble at the specified
  1144.     coordinates with the specified (textual) contents. It
  1145.     returns a bubble "handle" that has to be passed to
  1146.     MUIM_DeleteBubble when the bubble shall disappear.
  1147.  
  1148.     There's no limitation on the number of bubbles, you can create
  1149.     lots of them at a time if you wish. Also, these custom bubbles
  1150.     are completely independant of MUI's bubble help system and won't
  1151.     disappear automatically when the mouse is moved.
  1152.  
  1153.     Note that bubbles will only show up when the object in question
  1154.     is visible. Otherwise MUIM_CreateBubble returns NULL. You are
  1155.     responsible for deleting the bubble *before* the object get's
  1156.     invisible. Good place to remove a custom bubble is e.g. the
  1157.     MUIM_Hide method of your object.
  1158.  
  1159.     INPUTS
  1160.     - x,y: window-relative coordinates of the bubble.
  1161.  
  1162.     - txt: custom text for the bubble. If you pass NULL here, MUI
  1163.            will query the object with MUIM_CreateShortHelp method
  1164.            for a text (like the automatic help system does).
  1165.  
  1166.     - flags: always set to 0 for now!
  1167.  
  1168.     RESULT
  1169.     This method returns a pointer to a (black box) bubble handle or
  1170.     NULL on failure. You have to pass the bubble handle to 
  1171.     MUIM_DeleteBubble if you want to delete the bubble later.
  1172.  
  1173.     SEE ALSO
  1174.     MUIM_DeleteBubble, MUIM_CreateShortHelp, MUIM_DeleteShortHelp
  1175. Area.mui/MUIM_CreateShortHelp
  1176.  
  1177.     NAME
  1178.     MUIM_CreateShortHelp (V11)
  1179.  
  1180.     SYNOPSIS
  1181.     DoMethod(obj,MUIM_CreateShortHelp,LONG mx, LONG my);
  1182.  
  1183.     FUNCTION
  1184.     yet undocumented, complain in the beta mailing list :)
  1185.  
  1186.     INPUTS
  1187.  
  1188.     RESULT
  1189.  
  1190.     BUGS
  1191.  
  1192.     SEE ALSO
  1193.  
  1194. Area.mui/MUIM_DeleteBubble
  1195.  
  1196.     NAME
  1197.     MUIM_DeleteBubble (V18)
  1198.  
  1199.     SYNOPSIS
  1200.     DoMethod(obj,MUIM_DeleteBubble,APTR bubble);
  1201.  
  1202.     FUNCTION
  1203.     Together with MUIM_CreateBubble, this method provides an
  1204.     interface for MUIs bubble mechanism. Applications can use
  1205.     bubbles for their own purpose, e.g. for indicating error
  1206.     conditions on certain gadgets.
  1207.  
  1208.     MUIM_DeleteBubble deletes a bubble that was previously
  1209.     created with MUIM_CreateBubble. Not that bubbles have to
  1210.     be deleted before an object get's invisible!
  1211.  
  1212.     INPUTS
  1213.     - bubble: pointer to black box bubble handle as returned by
  1214.       MUIM_CreateBubble. 
  1215.  
  1216.     RESULT
  1217.     The bubble will be removed. The return value is undefined.
  1218.  
  1219.     SEE ALSO
  1220.     MUIM_CreateBubble, MUIM_CreateShortHelp, MUIM_DeleteShortHelp
  1221. Area.mui/MUIM_DeleteShortHelp
  1222.  
  1223.     NAME
  1224.     MUIM_DeleteShortHelp (V11)
  1225.  
  1226.     SYNOPSIS
  1227.     DoMethod(obj,MUIM_DeleteShortHelp,STRPTR help);
  1228.  
  1229.     FUNCTION
  1230.     yet undocumented, complain in the beta mailing list :)
  1231.  
  1232.     INPUTS
  1233.  
  1234.     RESULT
  1235.  
  1236.     BUGS
  1237.  
  1238.     SEE ALSO
  1239.  
  1240. Area.mui/MUIM_DragBegin
  1241.  
  1242.     NAME
  1243.     MUIM_DragBegin (V11)
  1244.  
  1245.     SYNOPSIS
  1246.     DoMethod(obj,MUIM_DragBegin,Object *obj);
  1247.  
  1248.     FUNCTION
  1249.     Inform an object that it has become the active destination
  1250.     of a drag&drop action. An object will only receive this if
  1251.     it has responded positively to a previous MUIM_DragQuery.
  1252.  
  1253.     SEE ALSO
  1254.     MUIM_DragQuery, MUIM_DragFinish, MUIM_DragReport, MUIM_DragDrop
  1255. Area.mui/MUIM_DragDrop
  1256.  
  1257.     NAME
  1258.     MUIM_DragDrop (V11)
  1259.  
  1260.     SYNOPSIS
  1261.     DoMethod(obj,MUIM_DragDrop,Object *obj, LONG x, LONG y);
  1262.  
  1263.     FUNCTION
  1264.         Indicate that the user dropped something on the current
  1265.     object.
  1266.  
  1267.     SEE ALSO
  1268.     MUIM_DragBegin, MUIM_DragFinish, MUIM_DragReport, MUIM_DragQuery
  1269. Area.mui/MUIM_DragFinish
  1270.  
  1271.     NAME
  1272.     MUIM_DragFinish (V11)
  1273.  
  1274.     SYNOPSIS
  1275.     DoMethod(obj,MUIM_DragFinish,Object *obj);
  1276.  
  1277.     FUNCTION
  1278.     Indicate that an object is no longer the active destination
  1279.     object of a drag&drop action.
  1280.  
  1281.     SEE ALSO
  1282.     MUIM_DragQuery, MUIM_DragBegin, MUIM_DragReport, MUIM_DragDrop
  1283. Area.mui/MUIM_DragQuery
  1284.  
  1285.     NAME
  1286.     MUIM_DragQuery (V11)
  1287.  
  1288.     SYNOPSIS
  1289.     DoMethod(obj,MUIM_DragQuery,Object *obj);
  1290.  
  1291.     FUNCTION
  1292.     MUI offers complete drag & drop capabilities for every object.
  1293.     If enabled, the user is able to grab an object, drag it around
  1294.     and drop it on another object. Currently, D&D is limited to
  1295.     single applications, i.e. you cannot take an object from one
  1296.     program and drop it into another one. D&D between different
  1297.     windows of the same application, however, is fine.
  1298.  
  1299.     MUI controls the D&D actions with a set of five methods:
  1300.     MUIM_DragQuery, MUIM_DragBegin, MUIM_DragReport, MUIM_DragDrop
  1301.     and MUIM_DragFinish. Basically things work this way:
  1302.  
  1303.     Lets assume the user has taken an object (called the source
  1304.     object) and is now starting to drag it around. During
  1305.     dragging, MUI will find out which object is currently under
  1306.     the mouse pointer and if it found one, send it the
  1307.     MUIM_DragQuery method. An object that receives MUIM_DragQuery
  1308.     can now determine it it wishes to accept drops from the source
  1309.     object or not. If it responds positively, the object will
  1310.     become the current destination object.
  1311.  
  1312.     Due to the nature of MUIs layout system, a specific x,y pair
  1313.     of coordinates cannot be bound to a specific object
  1314.     immediately. Instead, the coordinates belong to a whole tree
  1315.     of objects, for example some cycle gadget, its parent group,
  1316.     the parent group of the parent group and so on until the tree
  1317.     reaches the windows root object. To allow complete groups of
  1318.     objects to participate in D&D business, the MUIM_DragQuery is
  1319.     first sent to the deepest nested object (the cycle gadget in
  1320.     the above example). If this one doesn't respond, MUI sends a
  1321.     MUIM_DragQuery to its parent group and so on until it either
  1322.     finds some object who accepts the drop or reaches the end of
  1323.     the tree. If there is an accepting object, it will become the
  1324.     current destination, if there isnt, no destination will be
  1325.     set.
  1326.  
  1327.     Objects becoming active destinations of a drag process learn
  1328.     about their current state by receiving a MUIM_DragBegin
  1329.     method. This method, when reaching area class, e.g. draws a
  1330.     special frame around the object to indicate the current state
  1331.     to the user.
  1332.  
  1333.     The opposite of MUIM_DragBegin is MUIM_DragFinish will be sent
  1334.     as soon as the object stops being destination of the drag
  1335.     process, i.e. because the user aborted the drag or moved out
  1336.     of the bounding box. MUIM_DragFinish will also be sent after a
  1337.     successful drop, you cant count on receiving a MUIM_DragFinish
  1338.     if you received a MUIM_DragBegin before. Furthermore, only one
  1339.     object will be between MUIM_DragBegin and MUIM_DragFinish at
  1340.     any time.
  1341.  
  1342.     Active destination objects (between MUIM_DragBegin and
  1343.     MUIM_DragFinish) receive MUIM_DragReport methods as long as
  1344.     the user moves the mouse within the object. MUIM_DragReport
  1345.     contains the mouse coordinates, so the object can update its
  1346.     display according to the position of the source object. A
  1347.     listview would e.g. indicate the insert position to give the
  1348.     user an idea where the source would be inserted in case of a
  1349.     drop.
  1350.  
  1351.     All the method mentioned above are just interim messages that
  1352.     help visualizing the drag process. When the user actually
  1353.     decides to drop its source object, the current destination
  1354.     object (if any) receives a MUIM_DragDrop method and can
  1355.     perfrom whatever operatoin it thinks is suited to handle a D&D
  1356.     action from the source object.
  1357.  
  1358.     You probably have noticed that D&D is controlled by methods.
  1359.     This means that you need to write subclasses if you intend to
  1360.     use it. However, you neednt implement all the above mentioned
  1361.     things to reach your goal. In fact, MUIM_DragQuery and
  1362.     MUIM_DragDrop are enough for almost all D&D invocations.
  1363.     Here's a little example of how MUI implements D&D between
  1364.     objects of Pendisplay class. These few lines allow the user to
  1365.     take any Pendisplay (or subclasses from Pendisplay like e.g.
  1366.     Poppen class) and drop it onto another one:
  1367.  
  1368.     ULONG mDragQuery(cl,obj,struct MUIP_DragQuery *msg)
  1369.     {
  1370.         char *spec;
  1371.  
  1372.         /* refuse to drop on ourselves */
  1373.         if (msg->obj==obj)
  1374.             return(MUIV_DragQuery_Refuse);
  1375.  
  1376.         /* if the source object offers the attribute */
  1377.         /* we want, show that we would accept it. */
  1378.         if (get(msg->obj,MUIA_Pendisplay_Spec,&spec))
  1379.             return(MUIV_DragQuery_Accept);
  1380.  
  1381.         /* refuse otherwise */
  1382.         return(MUIV_DragQuery_Refuse);
  1383.     }
  1384.  
  1385.  
  1386.     ULONG mDragDrop(cl,obj,struct MUIP_DragDrop *msg)
  1387.     {
  1388.         char *spec;
  1389.  
  1390.         /* copy the attribute from the source object */
  1391.         get(msg->obj,MUIA_Pendisplay_Spec,&spec);
  1392.         set(obj,MUIA_Pendisplay_Spec,spec);
  1393.  
  1394.         return(0);
  1395.     }
  1396.  
  1397.     SEE ALSO
  1398.     MUIM_DragBegin, MUIM_DragFinish, MUIM_DragReport, MUIM_DragDrop
  1399. Area.mui/MUIM_DragReport
  1400.  
  1401.     NAME
  1402.     MUIM_DragReport (V11)
  1403.  
  1404.     SYNOPSIS
  1405.     DoMethod(obj,MUIM_DragReport,Object *obj, LONG x, LONG y, LONG update);
  1406.  
  1407.     FUNCTION
  1408.     Interim messages from MOUSEMOVEs and INTUITICKs sent as long
  1409.     as an object is active destination of a drag&drop action.
  1410.  
  1411.     SEE ALSO
  1412.     MUIM_DragQuery, MUIM_DragFinish, MUIM_DragBegin, MUIM_DragDrop
  1413. Area.mui/MUIM_Draw
  1414.  
  1415.     NAME
  1416.     MUIM_Draw (V4 )
  1417.     [For use within custom classes only]
  1418.  
  1419.     SYNOPSIS
  1420.     DoMethod(obj,MUIM_Draw,ULONG flags);
  1421.  
  1422.     FUNCTION
  1423.     see developer documentation.
  1424. Area.mui/MUIM_DrawBackground
  1425.  
  1426.     NAME
  1427.     MUIM_DrawBackground (V11)
  1428.  
  1429.     SYNOPSIS
  1430.     DoMethod(obj,MUIM_DrawBackground,LONG left, LONG top, LONG width, LONG height, LONG xoffset, LONG yoffset, LONG flags);
  1431.  
  1432.     FUNCTION
  1433.     If you decided to use MUIA_FillArea, FALSE for your custom
  1434.     class, i.e. if you care about background rendering yourself,
  1435.     you can use this method to draw a specific part of your
  1436.     objects background with the defined MUIA_Background.
  1437.  
  1438.     INPUTS
  1439.     - left, top, right, bottom: rectangle to draw, be sure to
  1440.       add your objects _mleft and _mtop coordinates.
  1441.  
  1442.     - xoffset, yoffset: offset to use when background is a pattern.
  1443.  
  1444.     - flags: always set to 0 for now!
  1445.  
  1446.     RESULT
  1447.     The result value of this method is currently undefined.
  1448.  
  1449.     SEE ALSO
  1450.     MUIA_Background
  1451. Area.mui/MUIM_HandleEvent
  1452.  
  1453.     NAME
  1454.     MUIM_HandleEvent (V16)
  1455.     [For use within custom classes only]
  1456.  
  1457.     SYNOPSIS
  1458.     DoMethod(obj,MUIM_HandleEvent,struct IntuiMessage *imsg, LONG muikey);
  1459.  
  1460.     FUNCTION
  1461.     This method is invoked whenever one of an event handlers
  1462.     trigger signals arrives. It's described in area class
  1463.     context but does not really belong here.
  1464.  
  1465.     INPUTS
  1466.     imsg - pointer to a struct IntuiMessage that caused the event.
  1467.            note well that this may be NULL in which case you
  1468.            simply not parse imsg.
  1469.  
  1470.     muikey - if the imsg translates to a predefined keystroke,
  1471.              this parameter holds the corresponding MUIKEY_XXXX
  1472.              value. Otherwise it will be MUIKEY_NONE.
  1473.  
  1474.     NOTES
  1475.     You must not rely on imsg being non-NULL, regardless whether
  1476.     muikey is set or unset.
  1477.  
  1478.     RESULT
  1479.     The result is a bitfield. Currently, only one bit is defined:
  1480.  
  1481.     - MUI_EventHandlerRC_Eat
  1482.       Set this if this event was for you and you want MUI to stop
  1483.       calling other event handlers in the chain.
  1484.  
  1485.     All other bits are reserved for future use and must be zero!
  1486.  
  1487.     SEE ALSO
  1488.     window.mui/MUIM_Window_AddEventHandler
  1489. Area.mui/MUIM_HandleInput
  1490.  
  1491.     NAME
  1492.     MUIM_HandleInput (V4 )
  1493.     [For use within custom classes only]
  1494.  
  1495.     SYNOPSIS
  1496.     DoMethod(obj,MUIM_HandleInput,struct IntuiMessage *imsg, LONG muikey);
  1497.  
  1498.     FUNCTION
  1499.     see developer documentation.
  1500. Area.mui/MUIM_Hide
  1501.  
  1502.     NAME
  1503.     MUIM_Hide (V4 )
  1504.     [For use within custom classes only]
  1505.  
  1506.     SYNOPSIS
  1507.     DoMethod(obj,MUIM_Hide);
  1508.  
  1509.     FUNCTION
  1510.     see developer documentation.
  1511. Area.mui/MUIM_Setup
  1512.  
  1513.     NAME
  1514.     MUIM_Setup (V4 )
  1515.     [For use within custom classes only]
  1516.  
  1517.     SYNOPSIS
  1518.     DoMethod(obj,MUIM_Setup,struct MUI_RenderInfo *RenderInfo);
  1519.  
  1520.     FUNCTION
  1521.     see developer documentation.
  1522. Area.mui/MUIM_Show
  1523.  
  1524.     NAME
  1525.     MUIM_Show (V4 )
  1526.     [For use within custom classes only]
  1527.  
  1528.     SYNOPSIS
  1529.     DoMethod(obj,MUIM_Show);
  1530.  
  1531.     FUNCTION
  1532.     see developer documentation.
  1533.