home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 13 / amigaformatcd13.iso / mui / mui_developer / autodocs / mui_window.doc < prev    next >
Text File  |  1997-03-10  |  35KB  |  1,218 lines

  1. TABLE OF CONTENTS
  2.  
  3. Window.mui/Window.mui
  4. Window.mui/MUIA_Window_Activate
  5. Window.mui/MUIA_Window_ActiveObject
  6. Window.mui/MUIA_Window_AltHeight
  7. Window.mui/MUIA_Window_AltLeftEdge
  8. Window.mui/MUIA_Window_AltTopEdge
  9. Window.mui/MUIA_Window_AltWidth
  10. Window.mui/MUIA_Window_AppWindow
  11. Window.mui/MUIA_Window_Backdrop
  12. Window.mui/MUIA_Window_Borderless
  13. Window.mui/MUIA_Window_CloseGadget
  14. Window.mui/MUIA_Window_CloseRequest
  15. Window.mui/MUIA_Window_DefaultObject
  16. Window.mui/MUIA_Window_DepthGadget
  17. Window.mui/MUIA_Window_DragBar
  18. Window.mui/MUIA_Window_FancyDrawing
  19. Window.mui/MUIA_Window_Height
  20. Window.mui/MUIA_Window_ID
  21. Window.mui/MUIA_Window_InputEvent
  22. Window.mui/MUIA_Window_IsSubWindow
  23. Window.mui/MUIA_Window_LeftEdge
  24. Window.mui/MUIA_Window_Menu
  25. Window.mui/MUIA_Window_MenuAction
  26. Window.mui/MUIA_Window_Menustrip
  27. Window.mui/MUIA_Window_MouseObject
  28. Window.mui/MUIA_Window_NeedsMouseObject
  29. Window.mui/MUIA_Window_NoMenus
  30. Window.mui/MUIA_Window_Open
  31. Window.mui/MUIA_Window_PublicScreen
  32. Window.mui/MUIA_Window_RefWindow
  33. Window.mui/MUIA_Window_RootObject
  34. Window.mui/MUIA_Window_Screen
  35. Window.mui/MUIA_Window_ScreenTitle
  36. Window.mui/MUIA_Window_SizeGadget
  37. Window.mui/MUIA_Window_SizeRight
  38. Window.mui/MUIA_Window_Sleep
  39. Window.mui/MUIA_Window_Title
  40. Window.mui/MUIA_Window_TopEdge
  41. Window.mui/MUIA_Window_UseBottomBorderScroller
  42. Window.mui/MUIA_Window_UseLeftBorderScroller
  43. Window.mui/MUIA_Window_UseRightBorderScroller
  44. Window.mui/MUIA_Window_Width
  45. Window.mui/MUIA_Window_Window
  46. Window.mui/MUIM_Window_AddEventHandler
  47. Window.mui/MUIM_Window_GetMenuCheck
  48. Window.mui/MUIM_Window_GetMenuState
  49. Window.mui/MUIM_Window_RemEventHandler
  50. Window.mui/MUIM_Window_ScreenToBack
  51. Window.mui/MUIM_Window_ScreenToFront
  52. Window.mui/MUIM_Window_SetCycleChain
  53. Window.mui/MUIM_Window_SetMenuCheck
  54. Window.mui/MUIM_Window_SetMenuState
  55. Window.mui/MUIM_Window_Snapshot
  56. Window.mui/MUIM_Window_ToBack
  57. Window.mui/MUIM_Window_ToFront
  58. Window.mui/Window.mui
  59.  
  60.     Objects of window class are used to generate windows and
  61.     supply a place where MUI gadgets feel well. It handles
  62.     the complicated task of window resizing fully automatic,
  63.     you don't need to worry about that.
  64.  
  65.     Windows are children of an application, you cannot use
  66.     a window object without having a parent application
  67.     object. On the other side, the gadgets in a window
  68.     are children of the window, you cannot use MUI gadgets
  69.     without having a parent MUI window.
  70.  
  71.     Creating a window object does not mean to open it
  72.     instantly. This is done later by setting the window's
  73.     MUIA_Window_Open attribute. If your application has
  74.     several windows, the usual way is to create them all
  75.     at once at startup time and open/close it later
  76.     just by setting MUIA_Window_Open.
  77.  
  78.     There is no difference in talking to gadgets whether
  79.     their parent window is open or not. If you e.g. set
  80.     the contents of a string gadget in an open window,
  81.     the gadget will refresh immediately. If the window is
  82.     closed, the gadget just remembers its new setting
  83.     and displays it later.
  84. Window.mui/MUIA_Window_Activate
  85.  
  86.     NAME
  87.     MUIA_Window_Activate -- (V4 ) [ISG], BOOL
  88.  
  89.     FUNCTION
  90.     Setting this to TRUE will activate the window.
  91.     Setting this to FALSE has no effect.
  92.     The attribute will change whenever the user
  93.     activates/deactivates the window.
  94.  
  95.     Specifying FALSE at object creation time will make
  96.     the window open in an inactive state.
  97. Window.mui/MUIA_Window_ActiveObject
  98.  
  99.     NAME
  100.     MUIA_Window_ActiveObject -- (V4 ) [.SG], Object *
  101.  
  102.     SPECIAL INPUTS
  103.     MUIV_Window_ActiveObject_None
  104.     MUIV_Window_ActiveObject_Next
  105.     MUIV_Window_ActiveObject_Prev
  106.  
  107.     FUNCTION
  108.     Set the active object in a window as if the user
  109.     would have activated it with the tab key. The
  110.     object has to be in the cycle chain for this
  111.     command to work.
  112.  
  113.     EXAMPLE
  114.     set(window,MUIA_Window_ActiveObject,okaybutton);
  115.  
  116.     SEE ALSO
  117.     MUIM_Window_SetCycleChain
  118. Window.mui/MUIA_Window_AltHeight
  119.  
  120.     NAME
  121.     MUIA_Window_AltHeight -- (V4 ) [I.G], LONG
  122.  
  123.     SPECIAL INPUTS
  124.     MUIV_Window_AltHeight_MinMax(p)
  125.     MUIV_Window_AltHeight_Visible(p)
  126.     MUIV_Window_AltHeight_Screen(p)
  127.     MUIV_Window_AltHeight_Scaled
  128.  
  129.     FUNCTION
  130.     Specify the alternate (zoomed) height of a window.
  131.     If not present, the alternate height will be the
  132.     minimum height.
  133.  
  134.     SEE ALSO
  135.     MUIA_Window_Height, MUIA_Window_AltWidth
  136. Window.mui/MUIA_Window_AltLeftEdge
  137.  
  138.     NAME
  139.     MUIA_Window_AltLeftEdge -- (V4 ) [I.G], LONG
  140.  
  141.     SPECIAL INPUTS
  142.     MUIV_Window_AltLeftEdge_Centered
  143.     MUIV_Window_AltLeftEdge_Moused
  144.     MUIV_Window_AltLeftEdge_NoChange
  145.  
  146.     FUNCTION
  147.     Specify the alternate (zoomed) left position of
  148.     a window. This defaults to the standard left
  149.     position.
  150.  
  151.     SEE ALSO
  152.     MUIA_Window_LeftEdge, MUIA_Window_AltTopEdge
  153. Window.mui/MUIA_Window_AltTopEdge
  154.  
  155.     NAME
  156.     MUIA_Window_AltTopEdge -- (V4 ) [I.G], LONG
  157.  
  158.     SPECIAL INPUTS
  159.     MUIV_Window_AltTopEdge_Centered
  160.     MUIV_Window_AltTopEdge_Moused
  161.     MUIV_Window_AltTopEdge_Delta(p)
  162.     MUIV_Window_AltTopEdge_NoChange
  163.  
  164.     FUNCTION
  165.     Specify the alternate (zoomed) top position of
  166.     a window. This defaults to the standard top
  167.     position.
  168.  
  169.     SEE ALSO
  170.     MUIA_Window_TopEdge, MUIA_Window_AltLeftEdge
  171. Window.mui/MUIA_Window_AltWidth
  172.  
  173.     NAME
  174.     MUIA_Window_AltWidth -- (V4 ) [I.G], LONG
  175.  
  176.     SPECIAL INPUTS
  177.     MUIV_Window_AltWidth_MinMax(p)
  178.     MUIV_Window_AltWidth_Visible(p)
  179.     MUIV_Window_AltWidth_Screen(p)
  180.     MUIV_Window_AltWidth_Scaled
  181.  
  182.     FUNCTION
  183.     Specify the alternate (zoomed) width of a window.
  184.     If not present, the alternate width will be the
  185.     minimum width.
  186.  
  187.     SEE ALSO
  188.     MUIA_Window_Width, MUIA_Window_AltHeight
  189. Window.mui/MUIA_Window_AppWindow
  190.  
  191.     NAME
  192.     MUIA_Window_AppWindow -- (V5 ) [I..], BOOL
  193.  
  194.     FUNCTION
  195.     Setting this attribute to TRUE will make this window an
  196.     AppWindow, the user will be able to drop icons on it.
  197.     You can hear about these events by listening to the
  198.     MUIA_AppMessage attribute.
  199.  
  200.     SEE ALSO
  201.     MUIA_AppMessage, MUIA_Application_DropObject
  202. Window.mui/MUIA_Window_Backdrop
  203.  
  204.     NAME
  205.     MUIA_Window_Backdrop -- (V4 ) [I..], BOOL
  206.  
  207.     FUNCTION
  208.     Make the window a backdrop window.
  209. Window.mui/MUIA_Window_Borderless
  210.  
  211.     NAME
  212.     MUIA_Window_Borderless -- (V4 ) [I..], BOOL
  213.  
  214.     FUNCTION
  215.     Make the window borderless.
  216. Window.mui/MUIA_Window_CloseGadget
  217.  
  218.     NAME
  219.     MUIA_Window_CloseGadget -- (V4 ) [I..], BOOL
  220.  
  221.     FUNCTION
  222.     Set this to FALSE and your window will not
  223.     have a close gadget.
  224. Window.mui/MUIA_Window_CloseRequest
  225.  
  226.     NAME
  227.     MUIA_Window_CloseRequest -- (V4 ) [..G], BOOL
  228.  
  229.     FUNCTION
  230.     When the user hits a windows close gadget, the
  231.     window isn't closed immediately. Instead MUI only
  232.     sets this attribute to TRUE to allow your application
  233.     to react.
  234.  
  235.     Usually, you will setup a notification that automatically
  236.     closes the window when a close request appears, but you
  237.     could e.g. pop up a confirmation requester or do some
  238.     other things first.
  239.  
  240.     EXAMPLE
  241.     /* automagically close a window     */
  242.     /* when the close gadget is pressed */
  243.  
  244.     DoMethod(window,MUIM_Notify,
  245.        MUIA_Window_CloseRequest, TRUE,
  246.        window,3,MUIM_Set,MUIA_Window_Open,0);
  247.  
  248.     SEE ALSO
  249.     MUIA_Window_Open
  250. Window.mui/MUIA_Window_DefaultObject
  251.  
  252.     NAME
  253.     MUIA_Window_DefaultObject -- (V4 ) [ISG], Object *
  254.  
  255.     FUNCTION
  256.     The default object in a window receives keyboard input
  257.     as long as no other object is active. Good candidates
  258.     for default objects are e.g. lonely listviews. Making
  259.     such a listview the default object will allow the user
  260.     to control it immediately without the need of several
  261.     tab strokes for activation.
  262.  
  263.     SEE ALSO
  264.     MUIA_Window_ActiveObject
  265. Window.mui/MUIA_Window_DepthGadget
  266.  
  267.     NAME
  268.     MUIA_Window_DepthGadget -- (V4 ) [I..], BOOL
  269.  
  270.     FUNCTION
  271.     Enable or disable the depth gadget. Defaults to TRUE.
  272.     There is no good reason to use this tag.
  273. Window.mui/MUIA_Window_DragBar
  274.  
  275.     NAME
  276.     MUIA_Window_DragBar -- (V4 ) [I..], BOOL
  277.  
  278.     FUNCTION
  279.     Tell MUI to give your window a dragbar.
  280.  
  281.     Defaults to TRUE.
  282.  
  283.     There is no good reason to disable the dragbar!
  284. Window.mui/MUIA_Window_FancyDrawing
  285.  
  286.     NAME
  287.     MUIA_Window_FancyDrawing -- (V8 ) [ISG], BOOL
  288.  
  289.     FUNCTION
  290.     Usually, the only possible place to do some rendering is
  291.     during a MUIM_Draw method. However, if you have a class
  292.     that really requires very high graphical output speed
  293.     (e.g. a module players scope or a game class), you can
  294.     set MUIA_Window_FancyDrawing to TRUE.
  295.  
  296.     This allows your class to render anywhere between
  297.     MUIM_Show and MUIM_Hide, e.g. directly after an
  298.     attribute change with OM_SET or from a seperate
  299.     task.
  300.  
  301.     Note that your rastport etc. is only valid between
  302.     MUIM_Show and MUIM_Hide. Keep that in mind!
  303.  
  304.     When drawing from a seperate task, you have to clone
  305.     the RastPort and use the copy for your rendering!
  306.  
  307.     NOTES
  308.     Please use this attribute sparingly. It might prevent
  309.     MUI from doing nice things with your window, e.g.
  310.     building an automatic virtual group when the screen
  311.     is too small.
  312.  
  313.     MUIA_Window_FancyDrawing is really only necessary for
  314.     very few types of applications. You should use the
  315.     traditional way (MUIM_Draw and MUI_Redraw()) whenever
  316.     and wherever possible!
  317. Window.mui/MUIA_Window_Height
  318.  
  319.     NAME
  320.     MUIA_Window_Height -- (V4 ) [I.G], LONG
  321.  
  322.     SPECIAL INPUTS
  323.     MUIV_Window_Height_MinMax(p)
  324.     MUIV_Window_Height_Visible(p)
  325.     MUIV_Window_Height_Screen(p)
  326.     MUIV_Window_Height_Scaled
  327.     MUIV_Window_Height_Default
  328.  
  329.     FUNCTION
  330.     Specify the height of a window. Usually, you won't give
  331.     a pixel value here but instead use one of the following
  332.     magic macros:
  333.  
  334.     MUIV_Window_Height_Default:
  335.        calculated from objects default sizes.
  336.  
  337.     MUIV_Window_Height_MinMax(0..100):
  338.        somewhere between the minimum height (0) and the
  339.        maximum height (100) of your window.
  340.  
  341.     MUIV_Window_Height_Visible(1..100):
  342.        percentage of the screens visible height.
  343.  
  344.     MUIV_Window_Height_Screen(1..100):
  345.        percentage of the screens total height.
  346.  
  347.     MUIV_Window_Height_Scaled:
  348.        height will be adjusted so that
  349.        width : height == minimum width : minimum height.
  350.        Note that a windows width and height may not
  351.        both be scaled.
  352.  
  353.     Default for this tag is MUIV_Window_Height_Default.
  354.  
  355.     As long as your window has a window id (MUIA_Window_ID),
  356.     choosing a size is not that important. MUI will always
  357.     remember a windows last position and size and these
  358.     values will simply override your settings. Positioning
  359.     and sizing should be completely under user control,
  360.     a programmer doesn't need to worry about it.
  361.  
  362.     SEE ALSO
  363.     MUIA_Window_Width, MUIA_Window_ID
  364. Window.mui/MUIA_Window_ID
  365.  
  366.     NAME
  367.     MUIA_Window_ID -- (V4 ) [ISG], ULONG
  368.  
  369.     FUNCTIONS
  370.     For most of your windows, you should define a longword
  371.     as id value. Only a window with an id is able to
  372.     remember its size and position.
  373.  
  374.     Additionally, when you use an ascii id (e.g. 'MAIN'),
  375.     your window can be controlled from ARexx.
  376.  
  377.     Of course all windows of your application must have
  378.     unique ids.
  379.  
  380.     SEE ALSO
  381.     MUIA_Window_LeftEdge, MUIM_Window_Snapshot
  382. Window.mui/MUIA_Window_InputEvent
  383.  
  384.     NAME
  385.     MUIA_Window_InputEvent -- (V4 ) [..G], struct InputEvent *
  386.  
  387.     FUNCTION
  388.     This attribute gets set whenever your window receives
  389.     an input event. You can react on this by creating
  390.     a notification event containing a standard
  391.     commodities.library input description string.
  392.  
  393.     Due to performance reasons, only IDCMP_RAWKEY,
  394.     IDCMP_DISKINSERTED and IDCMP_DISKREMOVED events
  395.     are translated to a MUIA_Window_InputEvent
  396.     notification.
  397.  
  398.     Prior to MUI 3.0, the input description string needed
  399.     to remain valid as long as the notification lasts. MUI 3.0
  400.     converts the string to a struct IX immediately, speeding
  401.     up the comparision and eliminating the need to keep
  402.     the description strings allocated.
  403.  
  404.     NOTE
  405.     Notification on MUIA_Window_InputEvent is inefficient.
  406.     You should only use this notification for a few keyboard events
  407.     that are "general" to the window, e.g. F-Keys for certain
  408.     program actions. Keyboard control for single user interface
  409.     elements should be implemented by using subclasses and
  410.     requesting rawkey input events from there.
  411.  
  412.     EXAMPLE
  413.     DoMethod(window, MUIM_Notify,
  414.        MUIA_Window_InputEvent, "-repeat f1",
  415.        txobj, 3,
  416.        MUIM_Set, MUIA_Text_Contents, "f1 pressed/repeated");
  417. Window.mui/MUIA_Window_IsSubWindow
  418.  
  419.     NAME
  420.     MUIA_Window_IsSubWindow -- (V4 ) [ISG], BOOL
  421.  
  422.     FUNCTION
  423.     Windows with this flag set to TRUE dont get disposed
  424.     when the application object is disposed. You should set
  425.     this if your window belongs to an object placed in another
  426.     window (e.g. popup windows) and you want to dispose the
  427.     window object yourself during the OM_DISPOSE method
  428.     of the parent object.
  429. Window.mui/MUIA_Window_LeftEdge
  430.  
  431.     NAME
  432.     MUIA_Window_LeftEdge -- (V4 ) [I.G], LONG
  433.  
  434.     SPECIAL INPUTS
  435.     MUIV_Window_LeftEdge_Centered
  436.     MUIV_Window_LeftEdge_Moused
  437.  
  438.     FUNCTION
  439.     Specify the left edge of a window. Usually, you shouldn't
  440.     define a pixel value here but instead use one of the
  441.     following macros:
  442.  
  443.     MUIV_Window_LeftEdge_Centered:
  444.        window appears centered on the visible area of screen.
  445.  
  446.     MUIV_Window_LeftEdge_Moused
  447.        window appears centered under the mouse pointer.
  448.  
  449.     Default for this tag is MUIV_Window_LeftEdge_Centered.
  450.  
  451.     As long as your window has a window id (MUIA_Window_ID),
  452.     choosing a position is not that important. MUI will always
  453.     remember a windows last position and size and these
  454.     values will simply override your settings. Positioning
  455.     and sizing should be completely under user control,
  456.     a programmer doesn't need to worry about it.
  457.  
  458.     SEE ALSO
  459.     MUIA_Window_TopEdge, MUIA_Window_ID
  460. Window.mui/MUIA_Window_Menu
  461.  
  462.     NAME
  463.     MUIA_Window_Menu -- (V4 ) [I..], struct NewMenu * (OBSOLETE)
  464.  
  465.     SPECIAL INPUTS
  466.     MUIV_Window_Menu_NoMenu
  467.  
  468.     FUNCTION
  469.     Obsolete, use MUIA_Window_Menustrip instead.
  470.  
  471.     SEE ALSO
  472.     MUIA_Window_Menustrip
  473. Window.mui/MUIA_Window_MenuAction
  474.  
  475.     NAME
  476.     MUIA_Window_MenuAction -- (V8 ) [ISG], ULONG
  477.  
  478.     FUNCTION
  479.     Whenever a menu item is selected, this attribute will be
  480.     set to the corresponding UserData field of the gadtools
  481.     NewMenu structure. This allows reacting on menu items
  482.     via broadcasting.
  483.  
  484.     SEE ALSO
  485.     MUIA_Window_Menu
  486. Window.mui/MUIA_Window_Menustrip
  487.  
  488.     NAME
  489.     MUIA_Window_Menustrip -- (V8 ) [I.G], Object *
  490.  
  491.     FUNCTION
  492.     Specify a menu strip object for this window. The object
  493.     is treated as a child of the window and will be disposed
  494.     when the window is disposed.
  495.  
  496.     Menustrip objects defined for a window will override an
  497.     applications Menustrip object.
  498.  
  499.     MUIA_Window_Menustrip replaces the old and obsolete
  500.     MUIA_Window_Menu tag.
  501.  
  502.     Usually, you will create the menu object with MUI's builtin
  503.     object library from a gadtools NewMenu structure, but its
  504.     also OK to define the menu tree "by hand" using the
  505.     Family class.
  506.  
  507.     If you have a global menu for all your applications windows
  508.     but you want some windows to have no menu, use the
  509.     MUIA_Window_NoMenus tag.
  510.  
  511.     SEE ALSO
  512.     MUIA_Window_NoMenus
  513. Window.mui/MUIA_Window_MouseObject
  514.  
  515.     NAME
  516.     MUIA_Window_MouseObject -- (V10) [..G], Object *
  517.  
  518.     FUNCTION
  519.     When MUIA_Window_NeedsMouseObject is enabled for this window,
  520.     you can setup notificationns on MUIA_Window_MouseObject to
  521.     find out on which object the mouse pointer is located.
  522.  
  523.     SEE ALSO
  524.     MUIA_Window_NeedsMouseObject
  525. Window.mui/MUIA_Window_NeedsMouseObject
  526.  
  527.     NAME
  528.     MUIA_Window_NeedsMouseObject -- (V10) [I..], BOOL
  529.  
  530.     FUNCTION
  531.     If you want to react on changes of the MUIA_Window_MouseObject
  532.     attribute, you have to set this to TRUE when creating your
  533.     window.
  534.  
  535.     SEE ALSO
  536.     MUIA_Window_MouseObject
  537. Window.mui/MUIA_Window_NoMenus
  538.  
  539.     NAME
  540.     MUIA_Window_NoMenus -- (V4 ) [IS.], BOOL
  541.  
  542.     FUNCTION
  543.     Temporarily disable the menu strip of a window.
  544.  
  545.     SEE ALSO
  546.     MUIA_Window_Menu
  547. Window.mui/MUIA_Window_Open
  548.  
  549.     NAME
  550.     MUIA_Window_Open -- (V4 ) [.SG], BOOL
  551.  
  552.     FUNCTION
  553.     This little attribute can be used to open and close
  554.     a window. When opening a window, MUI does lots of
  555.     stuff to calculate sizes and positions of all
  556.     gadgets. Minimum and maximum window sizes will be
  557.     adjusted automatically.
  558.  
  559.     When the minimum size of a window is too big to fit
  560.     on the screen, MUI tries to reduce font sizes and
  561.     does a new calculation. You should always design
  562.     your windows to fit on a 640*200 screen with
  563.     all fonts set to topaz/8.
  564.  
  565.     When a window is closed (and you specified a
  566.     MUIA_Window_ID), MUI remembers its position
  567.     and size and uses these values during the next
  568.     opening.
  569.  
  570.     After setting MUIA_Window_Open to TRUE, you should
  571.     test if MUI was able to open the window by getting
  572.     the attribute again. If you don't and if this was
  573.     the only window of your application, the user won't
  574.     be able to do any input and your application will
  575.     seem to hang.
  576.  
  577.     EXAMPLE
  578.     set(window,MUIA_Window_Open,TRUE);
  579.     get(window,MUIA_Window_Open,&open);
  580.     if (!open)
  581.     {
  582.        MUI_Request(app,0,0,0,"Ok","Failed to open window.");
  583.        exit(20);
  584.     }
  585.  
  586.     SEE ALSO
  587.     MUIA_Window_RootObject
  588. Window.mui/MUIA_Window_PublicScreen
  589.  
  590.     NAME
  591.     MUIA_Window_PublicScreen -- (V6 ) [ISG], STRPTR
  592.  
  593.     FUNCTION
  594.     Force the window to appear on the public screen who's name
  595.     is specified by this attribute. This tag overrides the
  596.     user preferences setting and is overridden by
  597.     MUIA_Window_Screen.
  598.  
  599.     Please use this tag sparely, overriding user prefs is
  600.     not a good idea!
  601.  
  602.     SEE ALSO
  603.     MUIA_Window_Screen
  604. Window.mui/MUIA_Window_RefWindow
  605.  
  606.     NAME
  607.     MUIA_Window_RefWindow -- (V4 ) [IS.], Object *
  608.  
  609.     FUNCTION
  610.     Setting MUIA_Window_RefWindow to another MUI window
  611.     object will make the left and top position relative
  612.     to this reference window. Using
  613.     MUIA_Window_LeftEdge, MUIV_Window_LeftEdge_Centered or
  614.     MUIA_Window_TopEdge, MUIV_Window_TopEdge_Centered tag,
  615.     you can easily open one window within another.
  616.  
  617.     Note that if your window has an id, the window will
  618.     remember its last position and reopen there. Thus,
  619.     this tag is only useful if you omit MUIA_Window_ID,
  620.     maybe for some small requester windows.
  621.  
  622.     SEE ALSO
  623.     MUIA_Window_ID, MUIA_Window_LeftEdge
  624. Window.mui/MUIA_Window_RootObject
  625.  
  626.     NAME
  627.     MUIA_Window_RootObject -- (V4 ) [ISG], Object *
  628.  
  629.     FUNCTION
  630.     This is a pointer to a MUI object and defines the
  631.     contents of your window. Usually, this root object
  632.     will be of class MUIC_Group since you surely want to
  633.     have more than one gadget.
  634.  
  635.     The root object is treated as child of a window
  636.     and will be disposed when the window is disposed.
  637.     Note that windows can only have one child.
  638.  
  639.     NOTES
  640.     Although you may create a window without root object,
  641.     you have to set one before the window is openend!
  642.  
  643.     You can *only* use MUIA_Window_RootObject in a SetAttrs()
  644.     call if your window is not open yet!
  645.  
  646.     EXAMPLE
  647.     win = WindowObject, MUIA_Window_RootObject,
  648.        VGroup,
  649.           Child, ...,
  650.           Child, ...,
  651.           End,
  652.        End;
  653.  
  654.     SEE ALSO
  655.     MUIA_Window_Open
  656. Window.mui/MUIA_Window_Screen
  657.  
  658.     NAME
  659.     MUIA_Window_Screen -- (V4 ) [ISG], struct Screen *
  660.  
  661.     FUNCTION
  662.     You can get a pointer to the parent screen of a window by 
  663.     getting this attribute. The result will be NULL when the
  664.     window is currently closed.
  665.  
  666.     Specifying MUIA_Window_Screen at object creation time or
  667.     with a SetAttrs() call allows you to explicitly tell MUI
  668.     on which screen the window should be opened. You normally
  669.     won't need this feature and leave the decision about
  670.     screens to the users preferences setting.
  671.  
  672.     SEE ALSO
  673.     MUIA_Window_PublicScreen, MUIA_Window_Window
  674. Window.mui/MUIA_Window_ScreenTitle
  675.  
  676.     NAME
  677.     MUIA_Window_ScreenTitle -- (V5 ) [ISG], STRPTR
  678.  
  679.     FUNCTION
  680.     This text will appear in the screens title bar
  681.     when the window is active.
  682.  
  683.     SEE ALSO
  684.     MUIA_Window_Title
  685. Window.mui/MUIA_Window_SizeGadget
  686.  
  687.     NAME
  688.     MUIA_Window_SizeGadget -- (V4 ) [I..], BOOL
  689.  
  690.     FUNCTION
  691.     Tell MUI if you want a sizing gadget for this window.
  692.     Usually you won't need this attribute since MUI
  693.     will automatically disable the sizing gadget when
  694.     your window is not sizeable because of your gadget
  695.     layout.
  696. Window.mui/MUIA_Window_SizeRight
  697.  
  698.     NAME
  699.     MUIA_Window_SizeRight -- (V4 ) [I..], BOOL
  700.  
  701.     FUNCTION
  702.     When set to TRUE, the size gadget will reside
  703.     in the right window border.
  704. Window.mui/MUIA_Window_Sleep
  705.  
  706.     NAME
  707.     MUIA_Window_Sleep -- (V4 ) [.SG], BOOL
  708.  
  709.     FUNCTION
  710.     This attribute can be used to put a window to sleep.
  711.     The window gets disabled and a busy pointer appears.
  712.  
  713.     The attribute contains a nesting count, if you tell
  714.     your window to sleep twice, you will have to tell
  715.     it to wake up twice too.
  716.  
  717.     A sleeping window cannot be resized.
  718.  
  719.     SEE ALSO
  720.     MUIA_Application_Sleep
  721. Window.mui/MUIA_Window_Title
  722.  
  723.     NAME
  724.     MUIA_Window_Title -- (V4 ) [ISG], STRPTR
  725.  
  726.     FUNCTION
  727.     Specify the title of a window.
  728.  
  729.     SEE ALSO
  730.     MUIA_Window_ScreenTitle
  731. Window.mui/MUIA_Window_TopEdge
  732.  
  733.     NAME
  734.     MUIA_Window_TopEdge -- (V4 ) [I.G], LONG
  735.  
  736.     SPECIAL INPUTS
  737.     MUIV_Window_TopEdge_Centered
  738.     MUIV_Window_TopEdge_Moused
  739.     MUIV_Window_TopEdge_Delta(p)
  740.  
  741.     FUNCTION
  742.     Specify the top edge of a window. Usually, you shouldn't
  743.     define a pixel value here but instead use one of the
  744.     following macros:
  745.  
  746.     MUIV_Window_TopEdge_Centered:
  747.        window appears centered on the visible area of screen.
  748.  
  749.     MUIV_Window_TopEdge_Moused
  750.        window appears centered under the mouse pointer.
  751.  
  752.     MUIV_Window_TopEdge_Delta(p)
  753.        window appears p pixels below the screens title bar.
  754.  
  755.     Default for this tag is MUIV_Window_TopEdge_Centered.
  756.  
  757.     As long as your window has a window id (MUIA_Window_ID),
  758.     choosing a position is not that important. MUI will always
  759.     remember a windows last position and size and these
  760.     values will simply override your settings. Positioning
  761.     and sizing should be completely under user control,
  762.     a programmer doesn't need to worry about it.
  763.  
  764.     SEE ALSO
  765.     MUIA_Window_LeftEdge, MUIA_Window_ID
  766. Window.mui/MUIA_Window_UseBottomBorderScroller
  767.  
  768.     NAME
  769.     MUIA_Window_UseBottomBorderScroller -- (V13) [ISG], BOOL
  770.  
  771.     FUNCTION
  772.     If set to TRUE, the window will feature a scrollbar in its
  773.     bottom border. You must set this for the window object if
  774.     any children are going to use this window border scroller,
  775.     e.g. prop gadgets with the MUIA_Prop_UseWinBorder attribute.
  776.  
  777.     NOTES
  778.     Obviously, scroll gadgets in window borders wont look good
  779.     with borderless or non-resizable windows.
  780.  
  781.     SEE ALSO
  782.     MUIA_Window_UseLeftBorderScroller, 
  783.     MUIA_Window_UseRightBorderScroller
  784.     Prop.mui/MUIA_Prop_UseWinBorder,
  785.     Scrollgroup.mui/MUIA_Scrollgroup_UseWinBorder
  786. Window.mui/MUIA_Window_UseLeftBorderScroller
  787.  
  788.     NAME
  789.     MUIA_Window_UseLeftBorderScroller -- (V13) [ISG], BOOL
  790.  
  791.     FUNCTION
  792.     If set to TRUE, the window will feature a scrollbar in its
  793.     left border. You must set this for the window object if
  794.     any children are going to use this window border scroller,
  795.     e.g. prop gadgets with the MUIA_Prop_UseWinBorder attribute.
  796.  
  797.     NOTES
  798.     Obviously, scroll gadgets in window borders wont look good
  799.     with borderless or non-resizable windows.
  800.  
  801.     SEE ALSO
  802.     MUIA_Window_UseBottomBorderScroller,
  803.     MUIA_Window_UseRightBorderScroller
  804.     Prop.mui/MUIA_Prop_UseWinBorder,
  805.     Scrollgroup.mui/MUIA_Scrollgroup_UseWinBorder
  806. Window.mui/MUIA_Window_UseRightBorderScroller
  807.  
  808.     NAME
  809.     MUIA_Window_UseRightBorderScroller -- (V13) [ISG], BOOL
  810.  
  811.     FUNCTION
  812.     If set to TRUE, the window will feature a scrollbar in its
  813.     right border. You must set this for the window object if
  814.     any children are going to use this window border scroller,
  815.     e.g. prop gadgets with the MUIA_Prop_UseWinBorder attribute.
  816.  
  817.     NOTES
  818.     Obviously, scroll gadgets in window borders wont look good
  819.     with borderless or non-resizable windows.
  820.  
  821.     SEE ALSO
  822.     MUIA_Window_UseLeftBorderScroller,
  823.     MUIA_Window_UseBottomBorderScroller
  824.     Prop.mui/MUIA_Prop_UseWinBorder,
  825.     Scrollgroup.mui/MUIA_Scrollgroup_UseWinBorder
  826. Window.mui/MUIA_Window_Width
  827.  
  828.     NAME
  829.     MUIA_Window_Width -- (V4 ) [I.G], LONG
  830.  
  831.     SPECIAL INPUTS
  832.     MUIV_Window_Width_MinMax(p)
  833.     MUIV_Window_Width_Visible(p)
  834.     MUIV_Window_Width_Screen(p)
  835.     MUIV_Window_Width_Scaled
  836.     MUIV_Window_Width_Default
  837.  
  838.     FUNCTION
  839.     Specify the width of a window. Usually, you won't give
  840.     a pixel value here but instead use one of the following
  841.     magic macros:
  842.  
  843.     MUIV_Window_Width_Default:
  844.        calculated from objects default sizes.
  845.  
  846.     MUIV_Window_Width_MinMax(0..100):
  847.        somewhere between the minimum width (0) and the
  848.        maximum width (100) of your window.
  849.  
  850.     MUIV_Window_Width_Visible(1..100):
  851.        percentage of the screens visible width.
  852.  
  853.     MUIV_Window_Width_Screen(1..100):
  854.        percentage of the screens total width.
  855.  
  856.     MUIV_Window_Width_Scaled:
  857.        width will be adjusted so that
  858.        width : height == minimum width : minimum height.
  859.        Note that a windows width and height may not
  860.        both be scaled.
  861.  
  862.     Default for this tag is MUIV_Window_Width_Default.
  863.  
  864.     As long as your window has a window id (MUIA_Window_ID),
  865.     choosing a size is not that important. MUI will always
  866.     remember a windows last position and size and these
  867.     values will simply override your settings. Positioning
  868.     and sizing should be completely under user control,
  869.     a programmer doesn't need to worry about it.
  870.  
  871.     SEE ALSO
  872.     MUIA_Window_Height, MUIA_Window_ID
  873. Window.mui/MUIA_Window_Window
  874.  
  875.     NAME
  876.     MUIA_Window_Window -- (V4 ) [..G], struct Window *
  877.  
  878.     FUNCTION
  879.     When your window is open, you can obtain a pointer
  880.     to the intuition Window structure with this tag
  881.     and use it e.g. in an asl.library requester call.
  882.  
  883.     Since the user can close your window any time
  884.     (e.g. iconification), you must be prepared to
  885.     receive a NULL pointer as result.
  886.  
  887.     SEE ALSO
  888.     MUIA_Window_Screen
  889. Window.mui/MUIM_Window_AddEventHandler
  890.  
  891.     NAME
  892.     MUIM_Window_AddEventHandler (V16)
  893.  
  894.     SYNOPSIS
  895.     DoMethod(obj,MUIM_Window_AddEventHandler,struct MUI_EventHandlerNode *ehnode);
  896.  
  897.     FUNCTION
  898.     Event handlers introduced in muimaster.library V16 offer a
  899.     new way for custom classes to receive user input. They work
  900.     a little like the previously introduced input handlers
  901.     (MUIM_Application_AddInputHandler). You fill out a struct
  902.     MUI_EventHandlerNode (preferably located somewhere in the
  903.     instance data of your custom class) with the type of events
  904.     you wish to receive and then call MUIM_Window_AddEventHandler
  905.     to add your node to a windows event handler queue.
  906.  
  907.     Whenever an input event arrives, MUIs window class iterates
  908.     through the list of event handlers. The class of the input
  909.     event is matched against the event handlers class field and
  910.     in case of a match, the method MUIM_HandleEvent is invoked on
  911.     the specified object.
  912.  
  913.     Each event handler may decide to "eat" the input event, this
  914.     means window class will abort iterating the handler queue
  915.     after calling this handler.
  916.  
  917.     MUI follows certain priority rules when iterating through
  918.     the handler queue of a window. If there are handler entries
  919.     for the active object (MUIA_Window_ActiveObject) or for the
  920.     default object (MUIA_Window_DefaultObject), their nodes are
  921.     checked before all other nodes. Active objects are checked
  922.     before default objects. If there was no active and no
  923.     default object or if none of them ate the event, the rest
  924.     of the handler queue is checked according to their
  925.     ehn_Priority field.
  926.  
  927.     A good place to add/remove event handlers is the
  928.     MUIM_Setup/MUIM_Cleanup method pair of your custom class.
  929.  
  930.     If you wish to change certain fields (e.g. ehn_Events)
  931.     in an active handler (one that is currently added to a
  932.     windows), you must deactivate (remove) the handler, make 
  933.     your changes and then add it again. Do not change fields
  934.     of an active handler without removing it first!
  935.  
  936.     INPUTS
  937.     Pointer to an initialized struct MUI_EventHandler node:
  938.  
  939.     ehn_Priority - event handlers are inserted according to their
  940.                    priority. 0 is fine in almost all cases.
  941.  
  942.     ehn_Flags    - no flags are defined yet. Always use 0 here!
  943.  
  944.     ehn_Events   - Exclusive OR of all IDCMP_* flags you want this
  945.                    handler to react on.
  946.  
  947.     ehn_Object   - insert a pointer to yourself here.
  948.  
  949.     ehn_Class    - if you point this to your class, MUI will invoke
  950.                    MUIM_HandleEvent with CoerceMethod(ehn_Class,...)
  951.                    instead as with DoMethod(obj,...). This will bypass
  952.                    any subclasses you might have and directly hand
  953.                    the input event to the dispatcher. If you dont
  954.                    set ehn_Class, MUIM_HandleEvent is sent like any
  955.                    other method to the true class of your object.
  956.  
  957.                    Since every class should add a handler itself
  958.                    if it needs some input, MUIM_HandleEvent methods
  959.                    are different from other MUI methods which usually
  960.                    travel from class to class in an objects class
  961.                    tree. MUIM_HandleEvent is more treated like a
  962.                    hook function instead of a method: in almost all
  963.                    cases you will want it to be passed directly to
  964.                    a specific class dispatcher (by setting ehn_Class).
  965.                    Also, this dispatcher will usually not pass the
  966.                    method to its super class but instead return
  967.                    directly.
  968.  
  969.     RESULT
  970.     MUIM_Window_AddEventHandler cannot fail, the result
  971.     value of the method is currently undefined.
  972.  
  973.     NOTES
  974.     Event handlers are more flexible and more efficient than the
  975.     pre-V16 functions MUI_RequestIDCMP() and MUI_RejectIDCMP().
  976.     Also, event handlers dont suffer from problems that arise if
  977.     more than one class of an object calls MUI_RequestIDCMP().
  978.     Though the old functions will remain working for
  979.     compatibility reasons, it's suggested that only event
  980.     handlers are used in new code.
  981.  
  982.     You must match each MUIM_Window_AddEventHandler with
  983.     exactly one MUIM_Window_RemEventHandler method.
  984.  
  985.     EXAMPLE
  986.     MUIM_Setup:
  987.        data->ehnode.ehn_Object = obj;
  988.        data->ehnode.ehn_Class  = cl;
  989.        data->ehnode.ehn_Events = IDCMP_MOUSEBUTTONS;
  990.        DoMethod(_win(obj),MUIM_Window_AddEventHandler,&data->ehnode);
  991.  
  992.     MUIM_Cleanup:
  993.        DoMethod(_win(obj),MUIM_Window_RemEventHandler,&data->ehnode);
  994.  
  995.     Changing the trigger events of an active handler:
  996.        DoMethod(_win(obj),MUIM_Window_RemEventHandler,&data->ehnode);
  997.        data->ehnode.ehn_Events |= IDCMP_MOUSEMOVE;
  998.        DoMethod(_win(obj),MUIM_Window_AddEventHandler,&data->ehnode);
  999.  
  1000.     More examples can be found in the MUI demo source codes that
  1001.     deal with custom classes.
  1002.  
  1003.     SEE ALSO
  1004.     MUIM_Window_RemEventHandler, MUIM_HandleEvent
  1005. Window.mui/MUIM_Window_GetMenuCheck
  1006.  
  1007.     NAME
  1008.     MUIM_Window_GetMenuCheck (V4 ) (OBSOLETE)
  1009.  
  1010.     SYNOPSIS
  1011.     DoMethod(obj,MUIM_Window_GetMenuCheck,ULONG MenuID);
  1012.  
  1013.     FUNCTION
  1014.     Ask whether a checkmark menu item has its
  1015.     checkmark set or cleared.
  1016.  
  1017.     INPUTS
  1018.     MenuID - the value you wrote into the
  1019.                  UserData field of struct NewMenu.
  1020.  
  1021.     SEE ALSO
  1022.     MUIM_Window_SetMenuCheck, MUIA_Window_Menu
  1023. Window.mui/MUIM_Window_GetMenuState
  1024.  
  1025.     NAME
  1026.     MUIM_Window_GetMenuState (V4 ) (OBSOLETE)
  1027.  
  1028.     SYNOPSIS
  1029.     DoMethod(obj,MUIM_Window_GetMenuState,ULONG MenuID);
  1030.  
  1031.     FUNCTION
  1032.     Ask whether a menu item is enabled or disabled.
  1033.  
  1034.     INPUTS
  1035.     MenuID - the value you wrote into the
  1036.                  UserData field of struct NewMenu.
  1037.  
  1038.     SEE ALSO
  1039.     MUIM_Window_SetMenuState, MUIA_Window_Menu
  1040. Window.mui/MUIM_Window_RemEventHandler
  1041.  
  1042.     NAME
  1043.     MUIM_Window_RemEventHandler (V16)
  1044.  
  1045.     SYNOPSIS
  1046.     DoMethod(obj,MUIM_Window_RemEventHandler,struct MUI_EventHandlerNode *ehnode);
  1047.  
  1048.     FUNCTION
  1049.     Remove an event handler.
  1050.  
  1051.     RESULT
  1052.     MUIM_Window_RemEventHandler cannot fail, the result
  1053.     value of the method is currently undefined.
  1054.  
  1055.     INPUTS
  1056.     ehnode - event handler node structure you passed to
  1057.              MUIM_Window_AddEventHandler previously.
  1058.  
  1059.     NOTES
  1060.     Every call to MUIM_Window_AddEventHandler must be matched
  1061.     by exactly one call to MUIM_Window_RemEventHandler.
  1062.  
  1063.     SEE ALSO
  1064.     MUIM_Window_RemEventHandler, MUIM_HandleEvent
  1065. Window.mui/MUIM_Window_ScreenToBack
  1066.  
  1067.     NAME
  1068.     MUIM_Window_ScreenToBack (V4 )
  1069.  
  1070.     SYNOPSIS
  1071.     DoMethod(obj,MUIM_Window_ScreenToBack);
  1072.  
  1073.     FUNCTION
  1074.     Put the window's screen to back. This command is
  1075.     only valid when the window is opened.
  1076.  
  1077.     SEE ALSO
  1078.     MUIM_Window_ScreenToFront, MUIM_Window_ToFront,
  1079.     MUIM_Window_ToBack
  1080. Window.mui/MUIM_Window_ScreenToFront
  1081.  
  1082.     NAME
  1083.     MUIM_Window_ScreenToFront (V4 )
  1084.  
  1085.     SYNOPSIS
  1086.     DoMethod(obj,MUIM_Window_ScreenToFront);
  1087.  
  1088.     FUNCTION
  1089.     Put the window's screen to font. This command is
  1090.     only valid when the window is opened.
  1091.  
  1092.     SEE ALSO
  1093.     MUIM_Window_ScreenToBack, MUIM_Window_ToFront,
  1094.     MUIM_Window_ToBack
  1095. Window.mui/MUIM_Window_SetCycleChain
  1096.  
  1097.     NAME
  1098.     MUIM_Window_SetCycleChain (V4 ) (OBSOLETE)
  1099.  
  1100.     SYNOPSIS
  1101.     DoMethod(obj,MUIM_Window_SetCycleChain,Object *obj[1]);
  1102.  
  1103.     FUNCTION
  1104.     Set the cycle chain for a window. To make MUI's keyboard
  1105.     control work, you need to setup a chain of objects that
  1106.     should be activatable with the tab key. This can be
  1107.     any objects you wish, MUI supports complete keyboard
  1108.     handling even for sliders or listviews.
  1109.  
  1110.     If you forget to set a cycle chain because you
  1111.     are a mouse-man, you certainly will annoy some
  1112.     users of your application!
  1113.  
  1114.     INPUTS
  1115.     One or more objects, terminated with a NULL.
  1116.  
  1117.     EXAMPLE
  1118.     DoMethod(window,MUIM_Window_SetCycleChain,
  1119.        str1,str2,slide1,list,radio,cycle1,cycle2,NULL);
  1120.  
  1121.     SEE ALSO
  1122.     MUIA_Window_ActiveObject, Area.mui/MUIA_CycleChain
  1123. Window.mui/MUIM_Window_SetMenuCheck
  1124.  
  1125.     NAME
  1126.     MUIM_Window_SetMenuCheck (V4 ) (OBSOLETE)
  1127.  
  1128.     SYNOPSIS
  1129.     DoMethod(obj,MUIM_Window_SetMenuCheck,ULONG MenuID, LONG stat);
  1130.  
  1131.     FUNCTION
  1132.     Set or clear the checkmark of a menu item.
  1133.  
  1134.     INPUTS
  1135.     MenuID - the value you wrote into the
  1136.                  UserData field of struct NewMenu.
  1137.  
  1138.     set    - TRUE to set checkmark, FALSE to clear
  1139.  
  1140.     SEE ALSO
  1141.     MUIM_Window_GetMenuCheck, MUIA_Window_Menu,
  1142. Window.mui/MUIM_Window_SetMenuState
  1143.  
  1144.     NAME
  1145.     MUIM_Window_SetMenuState (V4 ) (OBSOLETE)
  1146.  
  1147.     SYNOPSIS
  1148.     DoMethod(obj,MUIM_Window_SetMenuState,ULONG MenuID, LONG stat);
  1149.  
  1150.     FUNCTION
  1151.     Enable or disable a menu item.
  1152.  
  1153.     INPUTS
  1154.     MenuID - the value you wrote into the
  1155.                  UserData field of struct NewMenu.
  1156.  
  1157.     set    - TRUE to enable item, FALSE to disable.
  1158.  
  1159.     SEE ALSO
  1160.     MUIM_Window_GetMenuState, MUIA_Window_Menu,
  1161. Window.mui/MUIM_Window_Snapshot
  1162.  
  1163.     NAME
  1164.     MUIM_Window_Snapshot (V11)
  1165.  
  1166.     SYNOPSIS
  1167.     DoMethod(obj,MUIM_Window_Snapshot,LONG flags);
  1168.  
  1169.     FUNCTION
  1170.     MUIM_Window_Snapshot is the programmer's interface to MUI's
  1171.     window position remembering facility.
  1172.  
  1173.     NOTES
  1174.     Snapshotting a window is only possible if it has a
  1175.     non-NULL MUIA_Window_ID.
  1176.  
  1177.     INPUTS
  1178.     flags - use 0 to unsnapshot the window.
  1179.             This is equal to the user doubleclicking
  1180.             on the window's snapshot gadget.
  1181.  
  1182.           - use 1 to snapshot the window.
  1183.             This is equal to the user clicking
  1184.             on the window's snapshot gadget.
  1185.  
  1186.     SEE ALSO
  1187.     MUIA_Window_ID
  1188. Window.mui/MUIM_Window_ToBack
  1189.  
  1190.     NAME
  1191.     MUIM_Window_ToBack (V4 )
  1192.  
  1193.     SYNOPSIS
  1194.     DoMethod(obj,MUIM_Window_ToBack);
  1195.  
  1196.     FUNCTION
  1197.     Put the window to back. When the window is not currently open,
  1198.     this command does simply nothing.
  1199.  
  1200.     SEE ALSO
  1201.     MUIM_Window_ToFront, MUIM_Window_ScreenToFront,
  1202.     MUIM_Window_ScreenToBack
  1203. Window.mui/MUIM_Window_ToFront
  1204.  
  1205.     NAME
  1206.     MUIM_Window_ToFront (V4 )
  1207.  
  1208.     SYNOPSIS
  1209.     DoMethod(obj,MUIM_Window_ToFront);
  1210.  
  1211.     FUNCTION
  1212.     Put the window to front. When the window is not currently open,
  1213.     this command does simply nothing.
  1214.  
  1215.     SEE ALSO
  1216.     MUIM_Window_ToBack, MUIM_Window_ScreenToFront,
  1217.     MUIM_Window_ScreenToBack
  1218.