home *** CD-ROM | disk | FTP | other *** search
/ Gold Fish 2 / goldfish_vol2_cd1.bin / files / dev / gui / mui / developer / autodocs / mui_notify.doc < prev    next >
Text File  |  1994-08-08  |  19KB  |  638 lines

  1. TABLE OF CONTENTS
  2.  
  3. Notify.mui/Notify.mui
  4. Notify.mui/MUIM_CallHook
  5. Notify.mui/MUIM_FindUData
  6. Notify.mui/MUIM_GetUData
  7. Notify.mui/MUIM_KillNotify
  8. Notify.mui/MUIM_MultiSet
  9. Notify.mui/MUIM_NoNotifySet
  10. Notify.mui/MUIM_Notify
  11. Notify.mui/MUIM_Set
  12. Notify.mui/MUIM_SetAsString
  13. Notify.mui/MUIM_SetUData
  14. Notify.mui/MUIM_WriteLong
  15. Notify.mui/MUIM_WriteString
  16. Notify.mui/MUIA_AppMessage
  17. Notify.mui/MUIA_HelpFile
  18. Notify.mui/MUIA_HelpLine
  19. Notify.mui/MUIA_HelpNode
  20. Notify.mui/MUIA_NoNotify
  21. Notify.mui/MUIA_Revision
  22. Notify.mui/MUIA_UserData
  23. Notify.mui/MUIA_Version
  24. Notify.mui/Notify.mui
  25.  
  26.     Notify class is superclass of all other MUI classes.
  27.     It's main purpose is to handle MUI's notification
  28.     mechanism, but it also contains some other methods
  29.     and attributes useful for every object.
  30. Notify.mui/MUIM_CallHook
  31.  
  32.     NAME
  33.     MUIM_CallHook (V4)
  34.  
  35.     SYNOPSIS
  36.     DoMethod(obj,MUIM_CallHook,struct Hook *Hook, ULONG param1, /* ... */);
  37.  
  38.     FUNCTION
  39.     Call a standard amiga callback hook, defined by a Hook
  40.     structure. Together with MUIM_Notify, you can easily
  41.     bind hooks to buttons, your hook will be called when
  42.     the button is pressed.
  43.  
  44.     The hook will be called with a pointer to the hook
  45.     structure in a0, a pointer to the calling object in a2
  46.     and a pointer to the first parameter in a1.
  47.  
  48.     INPUTS
  49.     Hook       pointer to a struct Hook.
  50.     param1,... zero or more parameters. The hook function will
  51.                receive a pointer to the first parameter in
  52.                register a1.
  53.  
  54.     EXAMPLE
  55.  
  56.     standalone:
  57.  
  58.     DoMethod(obj,MUIM_CallHook,&hookstruct,13,42,"foobar","barfoo");
  59.  
  60.     within a notification statement:
  61.  
  62.     DoMethod(propobj,MUIM_Notify,MUIA_Prop_First,MUIV_EveryTime,
  63.              propobj,3,MUIM_CallHook,&prophook,MUIV_TriggerValue);
  64.  
  65.     prophook will be called every time the knob is moving and gets
  66.     a pointer to the knobs current level in a1.
  67. Notify.mui/MUIM_FindUData
  68.  
  69.     NAME
  70.     MUIM_FindUData (V8)
  71.  
  72.     SYNOPSIS
  73.     DoMethod(obj,MUIM_FindUData,ULONG udata);
  74.  
  75.     FUNCTION
  76.     This method tests if the MUIA_UserData of the object
  77.     contains the given <udata> and returns the object
  78.     pointer in this case.
  79.  
  80.     Although this is not very useful for single objects,
  81.     performing this method on objects that handle children
  82.     can become very handy. In this case, all the children
  83.     (any maybe their children) are tested against <udata>
  84.     and the first matching object is returned.
  85.  
  86.     This method is especially useful if you created your
  87.     menu tree with a NewMenu structure and you want to
  88.     find the object pointer for a single menu item.
  89.  
  90.     INPUTS
  91.     udata - userdata to look for.
  92.  
  93.     RESULT
  94.     A pointer to the first object with the specified user data
  95.     or NULL if no object is found.
  96.  
  97.     NOTES
  98.     If you have many objects in your application, MUIM_FindUData
  99.     may take quite long. You can limit the amount of time
  100.     by performing the method not on the application but on the
  101.     window or even on the group/family your object is placed in.
  102.  
  103.     SEE ALSO
  104.     MUIM_GetUData, MUIM_SetUData
  105. Notify.mui/MUIM_GetUData
  106.  
  107.     NAME
  108.     MUIM_GetUData (V8)
  109.  
  110.     SYNOPSIS
  111.     DoMethod(obj,MUIM_GetUData,ULONG udata, ULONG attr, ULONG *storage);
  112.  
  113.    FUNCTION
  114.     This method tests if the MUIA_UserData of the object
  115.     contains the given <udata> and gets <attr> to
  116.     <storage> for itself in this case.
  117.  
  118.     Although this is not very useful for single objects,
  119.     performing this method on objects that handle children
  120.     can become very handy. In this case, all the children
  121.     (any maybe their children) are searched against <udata>
  122.     and the first matching objects will be asked for the
  123.     specified attribute.
  124.  
  125.     INPUTS
  126.     udata   - userdata to look for.
  127.     attr    - attribute to get.
  128.     storage - place to store the attribute.
  129.  
  130.     NOTES
  131.     If you have many objects in your application, MUIM_GetUData
  132.     may take quite long. You can limit the amount of time
  133.     by performing the method not on the application but on the
  134.     window or even on the group/family your objects are place in.
  135.  
  136.     SEE ALSO
  137.     MUIM_SetUData, MUIM_FindUData
  138. Notify.mui/MUIM_KillNotify
  139.  
  140.     NAME
  141.     MUIM_KillNotify (V4)
  142.  
  143.     SYNOPSIS
  144.     DoMethod(obj,MUIM_KillNotify,ULONG TrigAttr);
  145.  
  146.     FUNCTION
  147.     MUIM_KillNotify kills previously given notifications on specific 
  148.     attributes.
  149.  
  150.     INPUTS
  151.     TrigAttr - Attribute for which the notify was specified. If you
  152.                set up more than one notify for an attribute, only
  153.                the first one will be killed.
  154.  
  155.     EXAMPLE
  156.     DoMethod(button,MUIM_KillNotify,MUIA_Pressed);
  157.  
  158.     SEE ALSO
  159.     MUIM_Notify
  160. Notify.mui/MUIM_MultiSet
  161.  
  162.     NAME
  163.     MUIM_MultiSet (V7)
  164.  
  165.     SYNOPSIS
  166.     DoMethod(obj,MUIM_MultiSet,ULONG attr, ULONG val, APTR obj, /* ... */);
  167.  
  168.     FUNCTION
  169.     Set an attribute for multiple objects.
  170.     Receiving an attribute/value pair and a list of objects,
  171.     this method sets the new value for all the objects in the list.
  172.     This is especially useful for disabling/enabling lots of
  173.     objects with one singe function call.
  174.  
  175.     The object that executes this method isn't affected!
  176.  
  177.     Note: This method was implemented in version 7 of notify class.
  178.  
  179.     INPUTS
  180.     attr     attribute to set.
  181.     value    new value for the attribute.
  182.     obj, ... list of MUI objects, terminated with a NULL pointer.
  183.  
  184.     EXAMPLE
  185.     /* disable all the address related gadgets... */
  186.  
  187.     DoMethod(xxx, MUIM_MultiSet, MUIA_Disabled, TRUE,
  188.        ST_Name, ST_Street, ST_City, ST_Country, ST_Phone, NULL);
  189.  
  190.     /* note that the xxx object doesn't get disabled! */
  191.  
  192.     SEE ALSO
  193.     MUIM_Set, MUIM_Notify
  194. Notify.mui/MUIM_NoNotifySet
  195.  
  196.     NAME
  197.     MUIM_NoNotifySet (V9)
  198.  
  199.     SYNOPSIS
  200.     DoMethod(obj,MUIM_NoNotifySet,ULONG attr, char *format, ULONG val, /* ... */);
  201.  
  202.     FUNCTION
  203.     Acts like MUIM_Set but doesn't trigger any notification.
  204.     This can become useful to avoid deadlocks with bi-directional
  205.     connections.
  206.  
  207.     INPUTS
  208.     attr  attribute you want to set.
  209.     val   value to set the attribute to.
  210.  
  211.     EXMAPLE
  212.     DoMethod(editor,MUIM_Notify,EDIT_Top,MUIV_EveryTime,
  213.        sbar,3,MUIM_NoNotifySet,MUIA_Prop_First,MUIV_TriggerValue);
  214.  
  215.     DoMethod(sbar,MUIM_Notify,MUIA_Prop_First,MUIV_EveryTime,
  216.        editor,3,MUIM_NoNotifySet,EDIT_Top,MUIV_TriggerValue);
  217.  
  218.     SEE ALSO
  219.     MUIM_Set
  220. Notify.mui/MUIM_Notify
  221.  
  222.     NAME
  223.     MUIM_Notify (V4)
  224.  
  225.     SYNOPSIS
  226.     DoMethod(obj,MUIM_Notify,ULONG TrigAttr, ULONG TrigVal, APTR DestObj, ULONG FollowParams, /* ... */);
  227.  
  228.     FUNCTION
  229.     Add a notification event handler to an object. Notification
  230.     is essential for every MUI application.
  231.  
  232.     A notification statement consists of a source object,
  233.     an attribute/value pair, a destination object and a
  234.     notification method. The attribute/value pair belongs
  235.     to the source object and determines when the notification
  236.     method will be executed on the destination object.
  237.  
  238.     Whenever the source object gets the given attribute set to
  239.     the given value (this can happen because of the user
  240.     pressing some gadgets or because of your program explicitly
  241.     setting the attribute with SetAttrs()), the destination
  242.     object will execute the notification method.
  243.  
  244.     With some special values, you can trigger the notification
  245.     every time the attribute is changing. In this case, you
  246.     can include the triggering attributes value within the
  247.     notification method. See below.
  248.  
  249.     One big problem with notification are endless loops.
  250.     Imagine you have a prop gadget and want to show its
  251.     state with a gauge object. You connect MUIA_Prop_First
  252.     with MUIA_Gauge_Max and everything is fine, the gauge
  253.     gets updated when the user drags around the gadget. On
  254.     the other hand, if your program sets the gauge to a new
  255.     value, you might want your prop gadget to immediately
  256.     show this change and connect MUIA_Gauge_Max width
  257.     MUIA_Prop_First. Voila, a perfect endless loop.
  258.  
  259.     To avoid these conditions, MUI always checks new
  260.     attribute values against the current state and
  261.     cancels notification when both values are equal.
  262.     Thus, setting MUIA_Prop_First to 42 if the prop
  263.     gadgets first position is already 42 won't trigger
  264.     any notification event.
  265.  
  266.     INPUTS
  267.     TrigAttr     attribute that triggers the notification.
  268.  
  269.     TrigValue    value that triggers the notification. The
  270.                  special value MUIV_EveryTime makes MUI execute
  271.                  the notification method every time when
  272.                  TrigAttr changes. In this case, the special
  273.                  value MUIV_TriggerValue in the notification
  274.                  method will be replaced with the value
  275.                  that TrigAttr has been set to. You can use
  276.                  MUIV_TriggerValue up to four times in one
  277.                  notification method. Since version 8 of
  278.                  muimaster.library, you can also use
  279.                  MUIV_NotTriggerValue here. In this case,
  280.                  MUI will replace TRUE values with FALSE
  281.                  and FALSE values with TRUE. This
  282.                  can become quite useful when you try to set
  283.                  "negative" attributes like MUIA_Disabled.
  284.  
  285.     DestObj      object on which to perform the notification
  286.                  method.
  287.  
  288.     FollowParams number of following parameters. If you e.g.
  289.                  have a notification method with three parts
  290.                  (maybe MUIM_Set,attr,val), you have to set
  291.                  FollowParams to 3. This allows MUI to copy
  292.                  the complete notification method into a
  293.                  private buffer for later use.
  294.  
  295.     ...          following is the notification method.
  296.  
  297.     EXAMPLE
  298.  
  299.     /*
  300.     ** Every time when the user releases a button
  301.     ** (and the mouse is still over it), the button object
  302.     ** gets its MUIA_Pressed attribute set to FALSE.
  303.     ** Thats what a program can react on with notification,
  304.     ** e.g. by openening another window.
  305.     */
  306.  
  307.     DoMethod(buttonobj,MUIM_Notify,
  308.        MUIA_Pressed, FALSE,                /* attribute/value pair */
  309.        windowobj,                          /* destination object   */
  310.        3,                                  /* 3 following words    */
  311.        MUIM_Set, MUIA_Window_Open, TRUE);  /* notification method  */
  312.  
  313.     /*
  314.     ** Lets say we want to show the current value of a
  315.     ** prop gadget somewhere in a text field:
  316.     */
  317.  
  318.     DoMethod(propobj,MUIM_Notify,      /* notification is triggered   */
  319.        MUIA_Prop_First, MUIV_EveryTime /* every time the attr changes */
  320.        textobj                         /* destination object */
  321.        4,                              /* 4 following words  */
  322.        MUIM_SetAsString, MUIA_Text_Contents,
  323.        "value is %ld !", MUIV_TriggerValue);
  324.        /* MUIV_TriggerValue will be replaced with the
  325.           current value of MUIA_Prop_First */
  326.  
  327.     /*
  328.     ** Inform our application when the user hits return
  329.     ** in a string gadget:
  330.     */
  331.  
  332.     DoMethod(stringobj,MUIM_Notify,
  333.        MUIA_String_Acknowledge, MUIV_EveryTime,
  334.        appobj, 2, MUIM_Application_ReturnID, ID_FOOBAR);
  335. Notify.mui/MUIM_Set
  336.  
  337.     NAME
  338.     MUIM_Set (V4)
  339.  
  340.     SYNOPSIS
  341.     DoMethod(obj,MUIM_Set,ULONG attr, ULONG val);
  342.  
  343.     FUNCTION
  344.     Set an attribute to a value. Normally, you would set
  345.     attributes with intuition.library SetAttrs() or with
  346.     the OM_SET method as with any other boopsi objects.
  347.     But since these calls need a complete tag list, not
  348.     just a single attribute/value pair, they are not
  349.     useful within a MUIM_Notify method.
  350.  
  351.     INPUTS
  352.     attr  attribute you want to set.
  353.     val   value to set the attribute to.
  354.  
  355.     EXMAPLE
  356.     DoMethod(strobj,MUIM_Set,MUIA_String_Contents,"foobar");
  357.     and
  358.     SetAttrs(strobj,MUIA_String_Contents,"foobar",TAG_DONE);
  359.     are equal.
  360.  
  361.     SEE ALSO
  362.     MUIM_SetAsString, MUIM_Notify, MUIM_NoNotifySet
  363. Notify.mui/MUIM_SetAsString
  364.  
  365.     NAME
  366.     MUIM_SetAsString (V4)
  367.  
  368.     SYNOPSIS
  369.     DoMethod(obj,MUIM_SetAsString,ULONG attr, char *format, ULONG val, /* ... */);
  370.  
  371.     FUNCTION
  372.     Set a (text kind) attribute to a string. This can be useful
  373.     if you want to connect a numeric attribute of an object with
  374.     a text attribute of another object.
  375.  
  376.     INPUTS
  377.     attr    attribute to set.
  378.     format  C like formatting string, remember to use "%ld" !
  379.     val,... one or more paremeters for the format string.
  380.  
  381.     EXAMPLE
  382.  
  383.     stand alone:
  384.  
  385.     DoMethod(txobj,MUIM_SetAsString,MUIA_Text_Contents,
  386.              "My name is %s and I am %ld years old.",name,age);
  387.  
  388.     within a notification statement:
  389.  
  390.     DoMethod(propobj,MUIM_Notify,MUIA_Prop_First,MUIV_EveryTime,
  391.              txobj,4,MUIM_SetAsString,MUIA_Text_Contents,
  392.              "prop gadget shows %ld.",MUIV_TriggerValue);
  393.  
  394.     SEE ALSO
  395.     MUIM_Set, MUIM_Notify
  396. Notify.mui/MUIM_SetUData
  397.  
  398.     NAME
  399.     MUIM_SetUData (V8)
  400.  
  401.     SYNOPSIS
  402.     DoMethod(obj,MUIM_SetUData,ULONG udata, ULONG attr, ULONG val);
  403.  
  404.    FUNCTION
  405.     This method tests if the MUIA_UserData of the object
  406.     contains the given <udata> and sets <attr> to
  407.     <val> for itself in this case.
  408.  
  409.     Altough this is not very useful for single objects,
  410.     performing this method on objects that handle children
  411.     can become very handy. In this case, all the children
  412.     (any maybe their children) are tested against <udata>
  413.     and all matching objects will get the attribute set.
  414.  
  415.     If you e.g. want to clear several string gadgets in
  416.     your applciation at once, you simply give them the
  417.     same MUIA_UserData and use
  418.  
  419.     DoMethod(app,MUIM_SetUData,MyUDATA,MUIA_String_Contents,NULL);
  420.  
  421.     INPUTS
  422.     udata - userdata to look for.
  423.     attr  - attribute to set.
  424.     val   - value to set attribute to.
  425.  
  426.     NOTES
  427.     If you have many objects in your application, MUIM_SetUData
  428.     may take quite long. You can limit the amount of time
  429.     by performing the method not on the application but on the
  430.     window or even on the group your gadgets are place in.
  431.  
  432.     SEE ALSO
  433.     MUIM_GetUData, MUIM_FindUData
  434. Notify.mui/MUIM_WriteLong
  435.  
  436.     NAME
  437.     MUIM_WriteLong (V6)
  438.  
  439.     SYNOPSIS
  440.     DoMethod(obj,MUIM_WriteLong,ULONG val, ULONG *memory);
  441.  
  442.     FUNCTION
  443.     This method simply writes a longword somewhere to memory.
  444.     Although this seems quite useless, it might become handy
  445.     if used within a notify statement. For instance, you could
  446.     easily connect the current level of a slider with some
  447.     member of your programs data structures.
  448.  
  449.     INPUTS
  450.     val    - value to write
  451.     memory - location to write the value to
  452.  
  453.     EXAMPLE
  454.  
  455.     /* Let the slider automagically write its level to a variable */
  456.  
  457.     static LONG level;
  458.  
  459.     DoMethod(slider,MUIM_Notify,MUIA_Slider_Level,MUIV_EveryTime,
  460.        slider,3,MUIM_WriteLong,MUIV_TriggerValue,&level);
  461.  
  462.     SEE ALSO
  463.     MUIM_WriteString, MUIM_Notify
  464. Notify.mui/MUIM_WriteString
  465.  
  466.     NAME
  467.     MUIM_WriteString (V6)
  468.  
  469.     SYNOPSIS
  470.     DoMethod(obj,MUIM_WriteString,char *str, char *memory);
  471.  
  472.     FUNCTION
  473.     This method simply copies a string somewhere to memory.
  474.     Although this seems quite useless, it might become handy
  475.     if used within a notify statement. For instance, you could
  476.     easily connect the current contents of a string gadget
  477.     with some member of your programs data structures.
  478.  
  479.     Note: The string is copied with strcpy(), you must assure
  480.               that the destination points to enough memory.
  481.  
  482.     INPUTS
  483.     str    - string to copy
  484.     memory - location to write the value to
  485.  
  486.     EXAMPLE
  487.  
  488.     static char buffer[256];
  489.  
  490.     DoMethod(string,MUIM_Notify,MUIA_String_Contents,MUIV_EveryTime,
  491.        string,3,MUIM_WriteString,MUIV_TriggerValue,buffer);
  492.  
  493.     SEE ALSO
  494.     MUIM_WriteLong, MUIM_Notify
  495. Notify.mui/MUIA_AppMessage
  496.  
  497.     NAME
  498.     MUIA_AppMessage -- (V5) [..G], struct AppMessage *
  499.  
  500.     FUNCTION
  501.     When your window is an AppWindow, i.e. you have set the
  502.     MUIA_Window_AppWindow attribute to TRUE, you will be able
  503.     to get AppMessages by listening to MUIA_AppMessage.
  504.     Whenever an AppMessage arrives, this attribute will
  505.     be set to a pointer to that message.
  506.  
  507.     MUIA_AppMessage is object specific. You can e.g. set up
  508.     different notifications for different objects in your window,
  509.     they will only get exectued when icons are dropped over the
  510.     specific object.
  511.  
  512.     If you wait on MUIA_AppMessage with a window object, your
  513.     notify will always get executed when icons are dropped on
  514.     the window.
  515.  
  516.     Notes:
  517.  
  518.     - You should use the MUIM_CallHook method to call a
  519.       hook function when an AppMessage arrives (see below).
  520.       The pointer to the AppMessage is valid only as long as 
  521.       the notification method is executed.
  522.  
  523.     - AppWindows are only possible on the workench screen.
  524.  
  525.  
  526.     EXAMPLE
  527.  
  528.     /* Call the AppMsgHook when an icon is dropped on a listview */
  529.  
  530.     DoMethod(lvobj,MUIM_Notify,MUIA_AppMessage,MUIV_EveryTime,
  531.              lvobj,3,MUIM_CallHook,&AppMsgHook,MUIV_TriggerValue);
  532.  
  533.     /* Call the AppMsgHook when an icon is dropped on the window */
  534.  
  535.     DoMethod(winobj,MUIM_Notify,MUIA_AppMessage,MUIV_EveryTime,
  536.              winobj,3,MUIM_CallHook,&AppMsgHook,MUIV_TriggerValue);
  537.  
  538.     SEE ALSO
  539.     MUIA_Window_AppWindow, MUIA_Application_DropObject, MUIM_CallHook
  540. Notify.mui/MUIA_HelpFile
  541.  
  542.     NAME
  543.     MUIA_HelpFile -- (V4) [ISG], STRPTR (OBSOLETE)
  544.  
  545.     FUNCTION
  546.     Since muimaster.library V8, this attribute is obsolete and
  547.     replaced by MUIA_Application_HelpFile.
  548.  
  549.     SEE ALSO
  550.     MUIA_Application_HelpFile, MUIA_HelpNode, MUIA_HelpLine
  551. Notify.mui/MUIA_HelpLine
  552.  
  553.     NAME
  554.     MUIA_HelpLine -- (V4) [ISG], LONG
  555.  
  556.     FUNCTION
  557.     Define a line in a help file specified with 
  558.     MUIA_Application_HelpFile.
  559.  
  560.     SEE ALSO
  561.     MUIA_Application_HelpFile, MUIA_HelpNode
  562. Notify.mui/MUIA_HelpNode
  563.  
  564.     NAME
  565.     MUIA_HelpNode -- (V4) [ISG], STRPTR
  566.  
  567.     FUNCTION
  568.     Define a node in a help file specified with
  569.     MUIA_Application_HelpFile.
  570.  
  571.     SEE ALSO
  572.     MUIA_Application_HelpFile, MUIA_HelpLine
  573. Notify.mui/MUIA_NoNotify
  574.  
  575.     NAME
  576.     MUIA_NoNotify -- (V7) [.S.], BOOL
  577.  
  578.     FUNCTION
  579.     If you set up a notify on an attibute to react on user input,
  580.     you will also recognize events when you change this attribute
  581.     under program control with SetAttrs(). Setting MUIA_NoNotify
  582.     together with your attribute will prevent this notification
  583.     from being triggered.
  584.  
  585.     NOTE
  586.     MUIA_NoNotify is a "one time" attribute. Its only valid during
  587.     the current SetAttrs() call!
  588.  
  589.     EXAMPLE
  590.     SetAttrs(slider,MUIA_NoNotify,TRUE,MUIA_Slider_Level,26,TAG_DONE);
  591. Notify.mui/MUIA_Revision
  592.  
  593.     NAME
  594.     MUIA_Revision -- (V4) [..G], LONG
  595.  
  596.     FUNCTION
  597.     Get the revision number of an objects class. Although
  598.     MUIA_Revision is documented at notify class, you will
  599.     of course receive the revision number of the objects true
  600.     class.
  601.  
  602.     EXAMPLE
  603.     strobj = MUI_NewObject(MUIC_String,...,TAG_DONE);
  604.         ...
  605.     get(strobj,MUIA_Version ,&v);
  606.     get(strobj,MUIA_Revision,&r);
  607.     printf("String class version %ld.%ld\n",v,r);
  608.  
  609.     SEE ALSO
  610.     MUIA_Version
  611. Notify.mui/MUIA_UserData
  612.  
  613.     NAME
  614.     MUIA_UserData -- (V4) [ISG], ULONG
  615.  
  616.     FUNCTION
  617.     A general purpose value to fill in any kind of information.
  618. Notify.mui/MUIA_Version
  619.  
  620.     NAME
  621.     MUIA_Version -- (V4) [..G], LONG
  622.  
  623.     FUNCTION
  624.     Get the version number of an objects class. Although
  625.     MUIA_Version is documented at notify class, you will
  626.     of course receive the version number of the objects true
  627.     class.
  628.  
  629.     EXAMPLE
  630.     strobj = MUI_NewObject(MUIC_String,...,TAG_DONE);
  631.         ...
  632.     get(strobj,MUIA_Version ,&v);
  633.     get(strobj,MUIA_Revision,&r);
  634.     printf("String class version %ld.%ld\n",v,r);
  635.  
  636.     SEE ALSO
  637.     MUIA_Revision
  638.