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