home *** CD-ROM | disk | FTP | other *** search
/ Amiga MA Magazine 1998 #3 / amigamamagazinepolishissue1998.iso / blabla / prefsexchange / mcc_prefsexchange.doc next >
Text File  |  1998-01-24  |  43KB  |  1,344 lines

  1. TABLE OF CONTENTS
  2.  
  3. PrefsExchange.mcc
  4. PrefsExchange.mcc/MUIA_PrefsExchange_Application
  5. PrefsExchange.mcc/MUIA_PrefsExchange_AppMask
  6. PrefsExchange.mcc/MUIA_PrefsExchange_CopyrightString
  7. PrefsExchange.mcc/MUIA_PrefsExchange_CreateIcons
  8. PrefsExchange.mcc/MUIA_PrefsExchange_DescriptionString
  9. PrefsExchange.mcc/MUIA_PrefsExchange_FileRequester
  10. PrefsExchange.mcc/MUIA_PrefsExchange_GadgetDisplay
  11. PrefsExchange.mcc/MUIA_PrefsExchange_InfoDisplay
  12. PrefsExchange.mcc/MUIA_PrefsExchange_Locale
  13. PrefsExchange.mcc/MUIA_PrefsExchange_MemPool
  14. PrefsExchange.mcc/MUIA_PrefsExchange_MinVersion
  15. PrefsExchange.mcc/MUIA_PrefsExchange_Name
  16. PrefsExchange.mcc/MUIA_PrefsExchange_ParentPCName
  17. PrefsExchange.mcc/MUIA_PrefsExchange_PEPageClass
  18. PrefsExchange.mcc/MUIA_PrefsExchange_PresetSupport
  19. PrefsExchange.mcc/MUIA_PrefsExchange_Priority
  20. PrefsExchange.mcc/MUIA_PrefsExchange_Window
  21. PrefsExchange.mcc/MUIA_PrefsExchange_VersionString
  22. PrefsExchange.mcc/MUIM_PrefsExchange_Action
  23. PrefsExchange.mcc/MUIM_PrefsExchange_AllocIFF
  24. PrefsExchange.mcc/MUIM_PrefsExchange_AllocNotifyRequest
  25. PrefsExchange.mcc/MUIM_PrefsExchange_ARexxCmd
  26. PrefsExchange.mcc/MUIM_PrefsExchange_ContextMenuBuild
  27. PrefsExchange.mcc/MUIM_PrefsExchange_ContextMenuChoice
  28. PrefsExchange.mcc/MUIM_PrefsExchange_CreateGUI
  29. PrefsExchange.mcc/MUIM_PrefsExchange_CreateImage
  30. PrefsExchange.mcc/MUIM_PrefsExchange_DataspaceToPrefs
  31. PrefsExchange.mcc/MUIM_PrefsExchange_DeleteGUI
  32. PrefsExchange.mcc/MUIM_PrefsExchange_DeleteImage
  33. PrefsExchange.mcc/MUIM_PrefsExchange_EndNotify
  34. PrefsExchange.mcc/MUIM_PrefsExchange_FileRequest
  35. PrefsExchange.mcc/MUIM_PrefsExchange_Finish
  36. PrefsExchange.mcc/MUIM_PrefsExchange_FreeIFF
  37. PrefsExchange.mcc/MUIM_PrefsExchange_FreeNotifyRequest
  38. PrefsExchange.mcc/MUIM_PrefsExchange_GetDiskObject
  39. PrefsExchange.mcc/MUIM_PrefsExchange_LoadFile
  40. PrefsExchange.mcc/MUIM_PrefsExchange_MemAllocBuffer
  41. PrefsExchange.mcc/MUIM_PrefsExchange_MemBufferSize
  42. PrefsExchange.mcc/MUIM_PrefsExchange_MemFreeBuffer
  43. PrefsExchange.mcc/MUIM_PrefsExchange_MemMakeBuffer
  44. PrefsExchange.mcc/MUIM_PrefsExchange_MemStrToBuffer
  45. PrefsExchange.mcc/MUIM_PrefsExchange_Message
  46. PrefsExchange.mcc/MUIM_PrefsExchange_NotifyMessage
  47. PrefsExchange.mcc/MUIM_PrefsExchange_PrefsToDataspace
  48. PrefsExchange.mcc/MUIM_PrefsExchange_ReportDOSError
  49. PrefsExchange.mcc/MUIM_PrefsExchange_ReportError
  50. PrefsExchange.mcc/MUIM_PrefsExchange_ReportIFFError
  51. PrefsExchange.mcc/MUIM_PrefsExchange_SaveFile
  52. PrefsExchange.mcc/MUIM_PrefsExchange_SaveIcon
  53. PrefsExchange.mcc/MUIM_PrefsExchange_StartNotify
  54.  
  55. PrefsExchange.mcc
  56.  
  57. 1. General info
  58.  
  59.  PrefsExchange.mcc is an external class; direct subclass of Notify.mui.
  60.  
  61.  This  class  is  the  superclass   for   all   PrefsExchange   modules
  62.  (#?.prefsclass).
  63.  
  64.  Every subclass of PrefsExchange.mcc is  a  preferences  editor,  which
  65.  provides    methods   for   loading/saving   preferences   files   and
  66.  creating/maintaining/disposing editor GUI.
  67.  
  68.  Please note that .prefsclasses are created in a slightly different way
  69.  than  .mcp  ones.
  70.  
  71. 2. Creating .prefsclasses
  72.  
  73.  Probably the best way to create a new .prefsclass is to use the MCCLib
  74.  code by Kai Hoffman (available on Aminet, devs/mui) You'll have to set
  75.  preprocessor symbols like this:
  76.  
  77. SUPERCLASS      - "PrefsExchange.mcc"
  78. CLASS           - should have the .prefsclass suffix
  79. COPYRIGHT
  80. AUTHOR
  81. VERSION         - this must be 16 or higher
  82. REVISION
  83. VERSIONSTR
  84.  
  85. Do NOT define these symbols:
  86.  
  87. ONLYGLOBAL
  88. PREFSIMAGE_COMPRESSION
  89. PREFSIMAGE_DEPTH
  90. PREFSIMAGE_MASKING
  91. PREFSIMAGE_WIDTH
  92. PREFSIMAGE_HEIGHT
  93.  
  94. For your private attributes/methods use your MUI serial number
  95. to get ID values (just like with .mcc/.mcp classes).
  96.  
  97. PrefsExchange.mcc/MUIA_PrefsExchange_Application
  98.  
  99.     NAME
  100.         MUIA_PrefsExchange_Application -- (V16) [..G], Object *
  101.  
  102.     FUNCTION
  103.         This attribute holds your application object.
  104.  
  105.         Please use this instead of _app(obj), as your
  106.         object is not guaranteed to be added to the application
  107.         tree.
  108.  
  109.     SEE ALSO
  110.         MUIA_PrefsExchange_Window
  111.  
  112. PrefsExchange.mcc/MUIA_PrefsExchange_AppMask
  113.  
  114.     NAME
  115.         MUIA_PrefsExchange_AppMask -- (V16) [ISG], ULONG
  116.  
  117.     FUNCTION
  118.         This attribute holds one or more of APPMASKF_xxx values.
  119.         These are:
  120.  
  121.         APPMASKF_DEFAULTS
  122.         APPMASKF_RESTORE
  123.         APPMASKF_LASTSAVED
  124.         APPMASKF_USE
  125.         APPMASKF_SAVE
  126.         APPMASKF_OPEN
  127.         APPMASKF_SAVEAS
  128.         APPMASKF_TEST
  129.         APPMASKF_CANCEL
  130.  
  131.         (Note they also exist as APPMASKB_xxx values, which specify
  132.          corresponding bit numbers).
  133.  
  134.         This bitmask specify which 'actions' are applicable for your
  135.         preferences. For example, if you only support 'Last Saved', 'Save'
  136.         and 'Reset to Defaults' set this attribute to
  137.         APPMASKF_LASTSAVED|APPMASKF_SAVE|APPMASKF_DEFAULTS.
  138.  
  139.         See MUIN_PrefsExchange_Action for more details.
  140.  
  141.         You must supply this tag during object creation time; you can
  142.         also change its value later.
  143.  
  144.         Every class must support DEFAULTS, at least one of 'input' and
  145.         at least one of 'output' actions.
  146.  
  147.         You're guaranteed not to receive MUIM_PrefsExchange_Action for
  148.         actions not included in this mask.
  149.  
  150.     SEE ALSO
  151.         MUIM_PrefsExchange_Action
  152.  
  153. PrefsExchange.mcc/MUIA_PrefsExchange_CopyrightString
  154.  
  155.     NAME
  156.         MUIA_PrefsExchange_CopyrightString -- (V16) [I.G], STRPTR
  157.  
  158.     FUNCTION
  159.         Set the copyright string for your class here.
  160.         You should pass this attribute during OM_NEW.
  161.  
  162.     SEE ALSO
  163.         MUIA_PrefsExchange_DescriptionString,
  164.         MUIA_PrefsExchange_Name,
  165.         MUIA_PrefsExchange_VersionString
  166.  
  167. PrefsExchange.mcc/MUIA_PrefsExchange_CreateIcons
  168.  
  169.     NAME
  170.         MUIA_PrefsExchange_CreateIcons -- (V16) [..G], ULONG
  171.  
  172.     FUNCTION
  173.         If it's TRUE, you should create an icon for preferences
  174.         file saved during SAVEAS and OPEN. This attribute
  175.         is changed whenever the user toggles the corresponding
  176.         menuitem.
  177.  
  178.         Generally, you're not required to support this.
  179.  
  180.     SEE ALSO
  181.         MUIM_PrefsExchange_GetDiskObject
  182.  
  183. PrefsExchange.mcc/MUIA_PrefsExchange_DescriptionString
  184.  
  185.     NAME
  186.         MUIA_PrefsExchange_DescriptionString -- (V16) [I.G], STRPTR
  187.  
  188.     FUNCTION
  189.         Set a short description for your class.
  190.         You should pass this tag during OM_NEW.
  191.  
  192.     SEE ALSO
  193.         MUIA_PrefsExchange_CopyrightString,
  194.         MUIA_PrefsExchange_Name
  195.         MUIA_PrefsExchange_VersionString
  196.  
  197. PrefsExchange.mcc/MUIA_PrefsExchange_FileRequester
  198.  
  199.     NAME
  200.         MUIA_PrefsExchange_FileRequester -- (V16) [..G] struct FileRequester *
  201.  
  202.     FUNCTION
  203.         It's a pointer to an ASL requester structure. You may use it
  204.         during MUIM_PrefsExchange_Action method (APPMASKB_OPEN and
  205.         APPMASKB_SAVEAS).
  206.  
  207.         It's guaranteed to be non-NULL.
  208.  
  209.         Don't cache this value - get it before every use.
  210.  
  211.         Read the autodocs for MUIM_PrefsExchange_FileRequest to get
  212.         more info.
  213.  
  214.     SEE ALSO
  215.         MUIM_PrefsExchange_FileRequest
  216.  
  217. PrefsExchange.mcc/MUIA_PrefsExchange_GadgetDisplay
  218.  
  219.     NAME
  220.         MUIA_PrefsExchange_GadgetDisplay -- (V16) [I..}, ULONG
  221.  
  222.     FUNCTION
  223.         Normally, PrefsExchange will create a toolbar for every
  224.         editor, which will contain gadgets for all actions
  225.         defined in MUIA_PrefsExchange_AppMask.
  226.  
  227.         If you don't want the toolbar, set this attr to FALSE.
  228.  
  229.     SEE ALSO
  230.         MUIA_PrefsExchange_InfoDisplay
  231.  
  232. PrefsExchange.mcc/MUIA_PrefsExchange_InfoDisplay
  233.  
  234.     NAME
  235.         MUIA_PrefsExchange_InfoDisplay -- (V16) [I..], ULONG
  236.  
  237.     FUNCTION
  238.         Normally, every page will have a little text object,
  239.         containing version and copyright strings.
  240.  
  241.         Set this attr to FALSE if you don't want it.
  242.  
  243.     SEE ALSO
  244.         MUIA_PrefsExchange_GadgetDisplay
  245.  
  246. PrefsExchange.mcc/MUIA_PrefsExchange_Locale
  247.  
  248.     NAME
  249.         MUIA_PrefsExchange_Locale -- (V16) [..G], struct Locale *
  250.  
  251.     FUNCTION
  252.         This attribute holds pointer to Locale used by PrefsExchange.
  253.  
  254.         However, you'll probably want to open your catalog file
  255.         during library initialisation, so this attr is not useful.
  256.  
  257. PrefsExchange.mcc/MUIA_PrefsExchange_MemPool
  258.  
  259.     NAME
  260.         MUIA_PrefsExchange_MemPool -- (V16) [..G], APTR
  261.  
  262.     FUNCTION
  263.         Get the address of memory pool used by PrefsExchange.
  264.         You may use it only from the main task context.
  265.  
  266.     SEE ALSO
  267.         MUIM_PrefsExchange_MemAllocBuffer,
  268.         MUIM_PrefsExchange_MemBufferSize,
  269.         MUIM_PrefsExchange_MemFreeBuffer,
  270.         MUIM_PrefsExchange_MemMakeBuffer,
  271.         MUIM_PrefsExchange_MemStrToBuffer
  272.  
  273. PrefsExchange.mcc/MUIA_PrefsExchange_MinVersion
  274.  
  275.     NAME
  276.         MUIA_PrefsExchange_MinVersion -- (V16) [I..], ULONG
  277.  
  278.     FUNCTION
  279.         During OM_NEW by passing this tag to DoSuperMethod()
  280.         you can specify minimal PrefsExchange.mcc version to use.
  281.  
  282.         If specified version is not available, DSM will fail.
  283.  
  284. PrefsExchange.mcc/MUIA_PrefsExchange_Name
  285.  
  286.     NAME
  287.         MUIA_PrefsExchange_Name -- (V16) [I.G], STRPTR
  288.  
  289.     FUNCTION
  290.         Set the name of your class (without the .prefsclass suffix).
  291.  
  292.     SEE ALSO
  293.         MUIA_PrefsExchange_CopyrightString,
  294.         MUIA_PrefsExchange_DescriptionString,
  295.         MUIA_PrefsExchange_VersionString
  296.  
  297. PrefsExchange.mcc/MUIA_PrefsExchange_PEPageClass
  298.  
  299.     NAME
  300.         MUIA_PrefsExchange_PEPageClass -- (V16) [..G], struct IClass *
  301.  
  302.     FUNCTION
  303.         This attribute is very important. It holds a pointer
  304.         to the PEPage class, which is a subclass of Group.mui.
  305.         You must return an object of this class during
  306.         MUIM_PrefsExchange_CreateGUI.
  307.  
  308.         This is guaranteed to be non-NULL.
  309.  
  310.     SEE ALSO
  311.         MUIM_PrefsExchange_CreateGUI
  312.  
  313. PrefsExchange.mcc/MUIA_PrefsExchange_PresetSupport
  314.  
  315.     NAME
  316.         MUIA_PrefsExchange_PresetSupport -- (V16) [ISG] ULONG
  317.  
  318.     FUNCTION
  319.         Set this to TRUE if you support the MUIM_PrefsExchange_PrefsToDataspace
  320.         and MUIM_PrefsExchange_DataspaceToPrefs mechanism.
  321.  
  322.         If you set this to FALSE, then the submenu 'Presets' will
  323.         not appear in your page context menu.
  324.  
  325.         Please note, that even if you set this attribute to FALSE,
  326.         then you still must ensure that both those methods will
  327.         reach your superclass.
  328.  
  329.         Default for this attribute is TRUE.
  330.  
  331.     SEE ALSO
  332.         MUIM_PrefsExchange_DataspaceToPrefs
  333.         MUIM_PrefsExchange_PrefsToDataspace
  334.  
  335. PrefsExchange.mcc/MUIA_PrefsExchange_Priority
  336.  
  337.     NAME
  338.         MUIA_PrefsExchange_Priority -- (V16) [I..}, LONG
  339.  
  340.     FUNCTION
  341.         Objects with high priority appear above objects with
  342.         lower pri in the listview. Objects with equal priority
  343.         are sorted alphabetically.
  344.  
  345.         You should set this atrribute to 0.
  346.  
  347.         The Info page has priority of 100000.
  348.  
  349. PrefsExchange.mcc/MUIA_PrefsExchange_Window
  350.  
  351.     NAME
  352.         MUIA_PrefsExchange_Window -- (V16) [..G], Object *
  353.  
  354.     FUNCTION
  355.         This attribute holds pointer to the PE window object.
  356.  
  357.         You must use this attribute instead of _win(obj),
  358.         as your object will never be added to a window.
  359.         Of course, you may use _win(obj) and _app(obj)
  360.         on your GUI object between MUIM_Setup
  361.         and MUIM_Cleanup.
  362.  
  363.         You may use this attribute to open a requester, for example.
  364.  
  365.     SEE ALSO
  366.         MUIA_PrefsExchange_Application
  367.  
  368. PrefsExchange.mcc/MUIA_PrefsExchange_VersionString
  369.  
  370.     NAME
  371.         MUIA_PrefsExchange_VersionString -- (V16) [I.G], STRPTR
  372.  
  373.     FUNCTION
  374.         Set a version string for your class.
  375.  
  376.     SEE ALSO
  377.         MUIA_PrefsExchange_CopyrightString,
  378.         MUIA_PrefsExchange_DescriptionString,
  379.         MUIA_PrefsExchange_Name
  380.  
  381. PrefsExchange.mcc/MUIM_PrefsExchange_Action
  382.  
  383.     NAME
  384.         MUIM_PrefsExchange_Action (V16)
  385.  
  386.     SYNOPSIS
  387.         DoMethod(obj,MUIM_PrefsExchange_Action, ULONG actionid, ULONG reserved, ULONG flags);
  388.  
  389.     FUNCTION
  390.         This is one of the most important methods.
  391.         PrefsExchange.mcc doesn't implement this method itself,
  392.         you'll have to override it.
  393.  
  394.         You must be prepared to handle this method even outside
  395.         the MUIM_PrefsExchange_CreateGUI/DeleteGUI pair.
  396.  
  397.         PrefsExchange issues this method whenever an I/O
  398.         action should be performed. 'actionid' will be one of
  399.         the following values:
  400.  
  401.         - APPMASKB_DEFAULTS -  just restore your prefs to default
  402.                                values. You must support this method,
  403.                                and it's not allowed to fail.
  404.         - APPMASKB_RESTORE -   load prefs file that is currently in use.
  405.                                It probably resides somewhere in ENV:.
  406.         - APPMASKB_LASTSAVED - load the 'last saved' prefs file.
  407.                                It probably resides somewhere in ENVARC:.
  408.         - APPMASKB_USE -       save prefs to ENV:.
  409.         - APPMASKB_SAVE -      save them to both ENVARC: and ENV:
  410.         - APPMASKB_OPEN -      open a file requester and let the user
  411.                                decide which prefs file to load.
  412.         - APPMASKB_SAVEAS -    just like above, but for saving.
  413.                                If MUIA_PrefsExchange_CreateIcons attr is
  414.                                set to TRUE, then you should also create
  415.                                an icon for the prefs file you save.
  416.                                Have a look at MUIM_PrefsExchange_GetDiskObject.
  417.         - APPMASKB_TEST -      temporary 'Use' the values. See notes below.
  418.         - APPMASKB_CANCEL -    undo the APPMASKB_TEST action.
  419.  
  420.         During startup, PE will issue the APPMASKB_DEFAULTS method, followed
  421.         by APPMASKB_RESTORE.
  422.  
  423.         If you don't support APPMASKB_RESTORE (see MUIA_PrefsExchange_AppMask)
  424.         or if it fails, you'll receive APPMASKB_LASTSAVED instead.
  425.  
  426.         If the user hits 'Save' gadget but you don't support APPMASKB_SAVE,
  427.         it will be translated to APPMASKB_USE. If APPMASKB_USE is also
  428.         not supported, your class will be simply skipped.
  429.         This is how PE translates unsupported APPMASKB_xxx values:
  430.  
  431.         RESTORE -> LASTSAVED -> DEFAULTS
  432.         LASTSAVED -> RESTORE -> nop
  433.         SAVE -> USE -> nop
  434.         USE -> SAVE -> nop
  435.  
  436.         For example, if the user clicks on 'Use', some classes may
  437.         receive APPMASKB_USE, but some will receive APPMASKB_SAVE.
  438.  
  439.         OPEN, SAVEAS, TEST and CANCEL are simply
  440.         not issued to classes which don't support them.
  441.  
  442.         All this translation is done automatically by PrefsExchange, so
  443.         you'll never receive an action which is not supported by
  444.         you. See MUIA_PrefsExchange_AppMask for details.
  445.  
  446.         You should implement the TEST just like USE, but you'll
  447.         have to store the previous prefs and reUSE them if you get CANCEL.
  448.         Some editors, like 'Input', have immediate feedback for every
  449.         user action. In this case you won't want to support both
  450.         TEST and CANCEL; just rely on MUIM_PrefsExchange_Finish.
  451.  
  452.         If the PREFSEXCHANGE_ACTION_QUIET flag is set, then don't
  453.         report any I/O errors.
  454.  
  455.         If the PREFSEXCHANGE_ACTION_CHANGED flag is set, then
  456.         you only need to actually save the file if user has
  457.         changed the preferences. This flag will only be set
  458.         for SAVEAS, SAVE and USE.
  459.  
  460.         If the PREFSEXCHANGE_ACTION_AREXX flag is set, then
  461.         this command was requested by an ARexx script.
  462.  
  463.         If the PREFSEXCHANGE_ACTION_INITIAL flag is set, then
  464.         PE is setting up at the moment.
  465.  
  466.         If the PREFSEXCHANGE_ACTION_FINISHING flag is set, then
  467.         PE is going to quit.
  468.  
  469.     NOTES
  470.         Application is locked (with MUIA_Application_Sleep) during
  471.         this call.
  472.  
  473.     INPUTS
  474.         actionid - (ULONG)  - one of APPMASKB_xxx values.
  475.         reserved - (ULONG)  - reserved for future
  476.         flags    - (ULONG)  - set of PREFSEXCHANGE_ACTION_xxx values
  477.  
  478.     SEE ALSO
  479.         MUIA_PrefsExchange_AppMask
  480.         MUIM_PrefsExchange_Finish
  481.  
  482. PrefsExchange.mcc/MUIM_PrefsExchange_AllocIFF
  483.  
  484.     NAME
  485.         MUIM_PrefsExchange_AllocIFF (V16)
  486.  
  487.     SYNOPSIS
  488.         DoMethod(obj,MUIM_PrefsExchange_AllocIFF, STRPTR name, ULONG mode, ULONG flags);
  489.  
  490.     FUNCTION
  491.         It's just a little shortcut.
  492.         This method will AllocIFF(), Open(), then InitIFFasDOS(),
  493.         finally OpenIFF().
  494.  
  495.         A pointer to struct IFFHandle will be returned (or 0).
  496.  
  497.         You may call MUIM_PrefsExchange_FreeIFF to free this handle.
  498.  
  499.     INPUTS
  500.         name - (STRPTR) - pointer to filename
  501.         mode - (ULONG) -  either MODE_OLDFILE or MODE_NEWFILE
  502.         flags - (ULONG) - if PREFSEXCHANGE_ACTION_QUIET is set, then
  503.                           no error messages will appear.
  504.                           if PREFSEXCHANGE_ACTION_INITIAL is set, then
  505.                           the DOS error 'object not found' will not
  506.                           be reported.
  507.  
  508.     RESULT
  509.         a struct IFFHandle * or NULL if something went wrong
  510.  
  511.     SEE ALSO
  512.         MUIM_PrefsExchange_FreeIFF,
  513.         MUIM_PrefsExchange_LoadFile,
  514.         MUIM_PrefsExchange_SaveFile
  515.  
  516. PrefsExchange.mcc/MUIM_PrefsExchange_AllocNotifyRequest
  517.  
  518.     NAME
  519.         MUIM_PrefsExchange_AllocNotifyRequest (V16)
  520.  
  521.     SYNOPSIS
  522.         DoMethod(obj,MUIM_PrefsExchange_AllocNotifyRequest,ULONG userdata);
  523.  
  524.     FUNCTION
  525.         This method is useful if you need to use DOS notification mechanism.
  526.         It will return a pointer to an initialized struct NotifyRequest;
  527.         you only have to set the nr_Name field. Do not modify any other
  528.         structure fields. PE will use nr_UserData for internal purposes, so
  529.         you have to specify your UserData when calling this method. .
  530.  
  531.         Instead of simple StartNotify() please call MUIM_PrefsExchange_StartNotify,
  532.         the same for EndNotify(): use MUIM_PrefsExchange_EndNotify.
  533.  
  534.         To free the NotifyRequest call MUIM_PrefsExchange_FreeNotifyRequest.
  535.  
  536.         Every time the notification is triggered you'll receive
  537.         MUIM_PrefsExchange_NotifyMessage.
  538.  
  539.         Using these methods saves task signal bits, as all NotifyRequests
  540.         share the same message port.
  541.  
  542.     INPUTS
  543.         userdata - (ULONG) - you may put some private data here. You'll
  544.                              receive this value during
  545.                              MUIM_PrefsExchange_NotifyMessage.
  546.     RESULT
  547.         a pointer to initialized struct NotifyRequest or 0.
  548.  
  549.     SEE ALSO
  550.         MUIM_PrefsExchange_EndNotify,
  551.         MUIM_PrefsExchange_FreeNotifyRequest,
  552.         MUIM_PrefsExchange_NotifyMessage,
  553.         MUIM_PrefsExchange_StartNotify
  554.  
  555. PrefsExchange.mcc/MUIM_PrefsExchange_ARexxCmd
  556.  
  557.     NAME
  558.         MUIM_PrefsExchange_ARexxCmd (V16)
  559.  
  560.     SYNOPSIS
  561.         MUIM_PrefsExchange_ARexxCmd(obj, MUIM_PrefsExchange_ARexxCmd, STRPTR command, ULONG reserved);
  562.  
  563.     FUNCTION
  564.         PE offers some basic ARexx support for its external classes.
  565.         Every time PE receives the PECMD ARexx command, this method
  566.         will be issued to the appropiate class.
  567.  
  568.         Syntax for the PECMD command is:
  569.         PECMD NAME/A, COMMAND/F
  570.  
  571.         Where 'NAME' stands for classname, and 'COMMAND' string will be
  572.         directly passed to you with this method.
  573.  
  574.         The value you return will be passed to ARexx as result code.
  575.         You may set the MUIA_Application_RexxString to hold an additional
  576.         result.
  577.  
  578.         Application will be locked (with MUIA_Application_Sleep)
  579.         during this call.
  580.  
  581.     INPUTS
  582.         - command (STRPTR) - pointer to commandstring for you or 0 if no
  583.                              arguments were given
  584.         - reserved (ULONG) - not used
  585.  
  586.     RESULT
  587.         result code for the operation.
  588.  
  589. PrefsExchange.mcc/MUIM_PrefsExchange_ContextMenuBuild
  590.  
  591.     NAME
  592.         MUIM_PrefsExchange_ContextMenuBuild (V16)
  593.  
  594.     SYNOPSIS
  595.         DoMethod(obj,MUIM_PrefsExchange_ContextMenuBuild, Object *menu);
  596.  
  597.     FUNCTION
  598.         If you want to have some custom menuitems in your page's contex
  599.         menu, you may override this method. Just create and add your
  600.         Menuitem.mui objects to the 'menu' parameter (which is a pointer
  601.         to Menu.mui object).
  602.  
  603.         The whole menustrip will be disposed by PE after use.
  604.  
  605.         Please pass this method to your superclass when you're done.
  606.  
  607.         Note, that this method is different than MUIM_ContextMenuBuild.
  608.  
  609.     INPUTS
  610.         menu - pointer to Menu.mui object. Add your menuitems
  611.                with OM_ADDMEMBER here.
  612.  
  613.     BUGS
  614.         Actually, this method belongs to PEPageClass (see
  615.         MUIA_PrefsExchange_PEPageClass), but for easier interface it will
  616.         be sent to your PrefsExchange.mcc object.
  617.  
  618.     SEE ALSO
  619.         MUIM_PrefsExchange_ContextMenuChoice
  620.  
  621. PrefsExchange.mcc/MUIM_PrefsExchange_ContextMenuChoice
  622.  
  623.     NAME
  624.         MUIM_PrefsExchange_ContextMenuChoice (V16)
  625.  
  626.     SYNOPSIS
  627.         DoMethod(obj,MUIM_PrefsExchange_ContextMenuChoice, Object *item);
  628.  
  629.     FUNCTION
  630.         You'll get this method when any of your menuitems created during
  631.         MUIM_PrefsExchange_ContextMenuBuild are selected by the user.
  632.  
  633.         This method is similar to MUIM_ContextMenuChoice.
  634.  
  635.     INPUTS
  636.         item - pointer to selected menu item
  637.  
  638.     SEE ALSO
  639.         MUIM_PrefsExchange_ContextMenuBuild
  640.  
  641. PrefsExchange.mcc/MUIM_PrefsExchange_CreateGUI
  642.  
  643.     NAME
  644.         MUIM_PrefsExchange_CreateGUI (V16)
  645.  
  646.     SYNOPSIS
  647.         DoMethod(obj,MUIM_PrefsExchange_CreateGUI, ULONG reserved);
  648.  
  649.     FUNCTION
  650.         This is one of the most important methods.
  651.  
  652.         When you receive this method, you have to create your GUI
  653.         object and return it.
  654.  
  655.         The created object should be an instance of PEPage class
  656.         (you may obtain its pointer from MUIA_PrefsExchange_PEPageClass).
  657.         You may talk to this class just like to the Group.mui.
  658.  
  659.         A simple example:
  660.  
  661.         struct IClass *PEPage;
  662.         Object *GUI;
  663.  
  664.         get(obj,MUIA_PrefsExchange_PEPageClass,&PEPage);
  665.         GUI=NewObject(PEPage,0, MUIA_Group_Horiz,TRUE,
  666.                                 Child, ...  /* let's add our gadgets here */
  667.  
  668.  
  669.         If you return 0, then your page will be empty when the user
  670.         clicks on your entry in the listview.
  671.  
  672.         You'll receive MUIM_PrefsExchange_DeleteGUI when your
  673.         GUI object is not required anymore.
  674.  
  675.         In fact, you'll receive CreateGUI/DeleteGUI pairs every
  676.         time the user changes current listview entry. For large
  677.         GUIs object creation may take some time, so you may
  678.         create your object only once and delete it during your
  679.         OM_DISPOSE method. In this case, simply do nothing on DeleteGUI
  680.         calls.
  681.  
  682.     INPUTS
  683.         - reserved (ULONG) - not used at present
  684.  
  685.     RESULT
  686.         Object pointer or 0
  687.  
  688.     SEE ALSO
  689.         MUIA_PrefsExchange_PEPageClass,
  690.         MUIM_PrefsEchange_DeleteGUI
  691.  
  692. PrefsExchange.mcc/MUIM_PrefsExchange_CreateImage
  693.  
  694.     NAME
  695.         MUIM_PrefsExchange_CreateImage (V16)
  696.  
  697.     SYNOPSIS
  698.         DoMethod(obj,MUIM_PrefsExchange_CreateImage, ULONG reserved);
  699.  
  700.     FUNCTION
  701.         When you receive this method, please create a Bodychunk or Bitmap
  702.         object containg an image for the listview. It should be 23x14 pixels.
  703.  
  704.         You may return 0 - in this case you'll get no image :^(.
  705.  
  706.     INPUTS
  707.         - reserved (ULONG) - not used at present
  708.  
  709.     RESULT
  710.         Object pointer or 0
  711.  
  712.     SEE ALSO
  713.         MUIM_PrefsExchange_DeleteImage
  714.  
  715.  
  716. PrefsExchange.mcc/MUIM_PrefsExchange_DataspaceToPrefs
  717.  
  718.     NAME
  719.         MUIM_PrefsExchange_DataspaceToPrefs (V16)
  720.  
  721.     SYNOPSIS
  722.         DoMethod(obj,MUIM_PrefsExchange_DataspaceToPrefs, Object *dataspace);
  723.  
  724.     FUNCTION
  725.         When you receive this one, just read all your preferences
  726.         from the dataspace object, then pass it to your superclass.
  727.         It's opposite to MUIM_PrefsExchange_PrefsToDataspace, please
  728.         read the autodocs to get all details.
  729.     INPUTS
  730.         dataspace (Object *) - pointer to Dataspace.mui
  731.  
  732.     RESULT
  733.         just return the value from your superclass
  734.  
  735.     SEE ALSO
  736.         MUIA_PrefsExchange_PresetSupport
  737.         MUIM_PrefsExchange_PrefsToDataspace
  738.  
  739. PrefsExchange.mcc/MUIM_PrefsExchange_DeleteGUI
  740.  
  741.     NAME
  742.         MUIM_PrefsExchange_DeleteGUI (V16)
  743.  
  744.     SYNOPSIS
  745.         DoMethod(obj,MUIM_PrefsExchange_DeleteGUI, Object *GUI);
  746.  
  747.     NAME
  748.         This method is sent to you when your GUI object is no more
  749.         needed. Just dispose it. Please note, that the GUI pointer
  750.         passed to you with this method may be NULL, simply do
  751.         nothing in this case.
  752.  
  753.     INPUTS
  754.         GUI (Object *) - pointer to an object created with
  755.                          MUIM_PrefsExchange_CreateGUI
  756.  
  757.     SEE ALSO
  758.         MUIM_PrefsExchange_CreateGUI
  759.  
  760. PrefsExchange.mcc/MUIM_PrefsExchange_DeleteImage
  761.  
  762.     NAME
  763.         MUIM_PrefsExchange_DeleteImage (V16)
  764.  
  765.     SYNOPSIS
  766.         DoMethod(obj, MUIM_PrefsExchange_DeleteImage, Object *Image);
  767.  
  768.     FUNCTION
  769.         Just like MUIM_PrefsExchange_DeleteGUI, but for the image
  770.         object created with MUIM_PrefsExchange_CreateImage.
  771.  
  772.     INPUTS
  773.         Image (Object *) - pointer to an object created with
  774.                            MUIM_PrefsExchange_DeleteGUI
  775.  
  776.     SEE ALSO
  777.         MUIM_PrefsExchange_CreateImage,
  778.         MUIM_PrefsExchange_DeleteGUI
  779.  
  780. PrefsExchange.mcc/MUIM_PrefsExchange_EndNotify
  781.  
  782.     NAME
  783.         MUIM_PrefsExchange_EndNotify (V16)
  784.  
  785.     SYNOPSIS
  786.         DoMethod(obj, MUIM_PrefsExchange_EndNotify, struct NotifyRequest *nr);
  787.  
  788.     FUNCTION
  789.         Use this method instead of simple EndNotify() for NotifyRequests
  790.         created with MUIM_PrefsExchange_AllocNotifyRequest.
  791.  
  792.         It is safe to call this method even if the notify request is not
  793.         currently active.
  794.  
  795.     INPUTS
  796.         nr (struct NotifyRequest *) - pointer to the structure allocated
  797.                                       by MUIM_PrefsExchange_AllocNotifyRequest
  798.  
  799.     SEE ALSO
  800.         MUIM_PrefsExchange_AllocNotifyRequest,
  801.         MUIM_PrefsExchange_FreeNotifyRequest,
  802.         MUIM_PrefsExchange_NotifyMessage,
  803.         MUIM_PrefsExchange_StartNotify
  804.  
  805. PrefsExchange.mcc/MUIM_PrefsExchange_FileRequest
  806.  
  807.     NAME
  808.         MUIM_PrefsExchange_FileRequest (V16)
  809.  
  810.     SYNOPSIS
  811.         DoMethod(obj,MUIM_PrefsExchange_FileRequest, APTR fr, ULONG savemode, ULONG reserved, ULONG tag1,...);
  812.  
  813.     FUNCTION
  814.         This method will open an ASL file requester. It's useful
  815.         during MUIM_PrefsExchange_Action APPMASKB_SAVEAS and APPMASKB_OPEN
  816.         calls.
  817.  
  818.         'fr' is a pointer to struct FileRequest *; you may set it to NULL,
  819.         and in this case pointer from MUIA_PrefsExchange_FileRequest
  820.         will be used. You should generally do that - this way the paths
  821.         will be remembered between different prefsclasses.
  822.  
  823.         'savemode' - set this to TRUE if this requester will be used
  824.         for saving. PE will set ASLFR_DoSaveMode accordingly and ASLFR_PositiveTest
  825.         will be assigned ("Save" or "Open"). You may however
  826.         use the tag ASLFR_PositiveText to override this. See notes below.
  827.  
  828.         'reserved' - leave it to 0
  829.  
  830.         'tag1' - you have to specify a complete taglist here. Remember
  831.         about TAG_DONE at the end. Please don't use the following tags,
  832.         they will be mantained by PE:
  833.          - ASLFR_Window (and ASLFR_PubScreenName, ASLFR_Screen etc.)
  834.          - ASLFR_SleepWindow (not applicable for MUI windows)
  835.          - ASLFR_DoSaveMode (see 'savemode' above)
  836.  
  837.         These attributes will also be set by PE, however you may override them:
  838.          - ASLFR_Locale
  839.          - ASLFR_RejectIcons (default: TRUE)
  840.          - ASLFR_PositiveText
  841.          - ASLFR_TitleText (default: 'Select prefs file' or similar)
  842.          - ASLFR_DrawersOnly (default: FALSE)
  843.  
  844.         Don't use these (it may change in future)
  845.          - ASLFR_PrivateIDCMP
  846.          - ASLFR_IntuiMsgFunc - perhaps some support for async reqs will be
  847.                                 available in future versions
  848.          - ASLFR_DoMultiSelect (must be always FALSE)
  849.          - any pattern/filtering related stuff, like ASLFR_DoPatterns etc.
  850.  
  851.     INPUTS
  852.         see above
  853.  
  854.     RESULT
  855.         0 if the requester was cancelled, pointer to a string (containing
  856.         selected file with path) otherwise. You may free the string
  857.         with a call to MUIM_PrefsExchange_MemFreeBuffer.
  858.  
  859.         If you specify ASLFR_DrawersOnly, you'll get a pointer to drawers
  860.         name.
  861.  
  862.     SEE ALSO
  863.         MUIA_PrefsExchange_FileRequester
  864.  
  865. PrefsExchange.mcc/MUIM_PrefsExchange_Finish
  866.  
  867.     NAME
  868.         MUIM_PrefsExchange_Finish (V16)
  869.  
  870.     SYNOPSIS
  871.         DoMethod(obj,MUIM_PrefsExchange_Finish);
  872.  
  873.     FUNCTION
  874.         This method will be sent to all classes just before PE exits.
  875.  
  876.         Some prefsclasses which support immediate feedback (like
  877.         Input for example) will want to restore all preferences
  878.         to their previous values during this method.
  879.  
  880.     SEE ALSO
  881.         MUIM_PrefsExchange_Action
  882.  
  883. PrefsExchange.mcc/MUIM_PrefsExchange_FreeIFF
  884.  
  885.     NAME
  886.         MUIM_PrefsExchange_FreeIFF (V16)
  887.  
  888.     SYNOPSIS
  889.         DoMethod(obj,MUIM_PrefsExchange_FreeIFF, struct IFFHandle *iff);
  890.  
  891.     FUNCTION
  892.         This method will delete the IFFHandle structure allocated with
  893.         MUIM_PrefsExchange_AllocIFF. It will CloseIFF(), Close()
  894.         and finally FreeIFF().
  895.  
  896.     INPUTS
  897.         iff (struct IFFHandle *) - pointer to the structure allocated
  898.                                    by MUIM_PrefsExchange_FreeIFF
  899.  
  900.     SEE ALSO
  901.         MUIM_PrefsExchange_AllocIFF
  902.  
  903. PrefsExchange.mcc/MUIM_PrefsExchange_FreeNotifyRequest
  904.  
  905.     NAME
  906.         MUIM_PrefsExchange_FreeNotifyRequest (V16)
  907.  
  908.     SYNOPSIS
  909.         DoMethod(obj, MUIM_PrefsExchange_FreeNotifyRequest, struct NotifyRequest *nr);
  910.  
  911.     FUNCTION
  912.         Call this method to free the NotifyRequest structure
  913.         allocated by MUIM_PrefsExchange_AllocNotifyRequest.
  914.  
  915.     INPUTS
  916.         nr (struct NotifyRequest *)
  917.  
  918.     SEE ALSO
  919.         MUIM_PrefsExchange_AllocNotifyRequest,
  920.         MUIM_PrefsExchange_EndNotify,
  921.         MUIM_PrefsExchange_NotifyMessage,
  922.         MUIM_PrefsExchange_StartNotify
  923.  
  924. PrefsExchange.mcc/MUIM_PrefsExchange_GetDiskObject
  925.  
  926.     NAME
  927.         MUIM_PrefsExchange_GetDiskObject (V16)
  928.  
  929.     SYNOPSIS
  930.         DoMethod(obj, MUIM_PrefsExchange_GetDiskObject, ULONG reserved);
  931.  
  932.     FUNCTION
  933.         If you want to save an icon together with prefs file,
  934.         You may call this method to obtain a pointer to DiskObject
  935.         structure. This way user will be able to configure icons
  936.         he/she wants to use
  937.  
  938.         You have to free the DiskObject yourself, using appropiate
  939.         function from icon.library.
  940.  
  941.         Please note, that this method may fail with a NULL pointer.
  942.  
  943.     INPUTS
  944.         reserved (ULONG) - not used at present
  945.  
  946.     RESULT
  947.         struct DiskObject * or NULL
  948.  
  949.     SEE ALSO
  950.         MUIA_PrefsExchange_CreateIcons,
  951.         icon.library autodocs
  952.  
  953. PrefsExchange.mcc/MUIM_PrefsExchange_LoadFile
  954.  
  955.     NAME
  956.         MUIM_PrefsExchange_LoadFile (V16)
  957.  
  958.     SYNOPSIS
  959.         DoMethod(obj, MUIM_PrefsExchange_LoadFile, STRPTR name, ULONG flags);
  960.  
  961.     FUNCTION
  962.         This method will open, examine and read the specified file
  963.         into allocated memory. If a DOS error occurs, user will see
  964.         some info about it unless the PREFSEXCHANGE_ACTION_QUIET flag
  965.         is  set.
  966.  
  967.         You may free the memory allocated by this function
  968.         with MUIM_PrefsExchange_MemFreeBuffer and get its size
  969.         with MUIM_PrefsExchange_MemBufferSize.
  970.  
  971.         This function is really trivial, you'll probably want to write
  972.         another one that will suit your needs better.
  973.  
  974.     INPUTS
  975.         name (STRPTR) - pointer to filename
  976.         flags (ULONG) - if PREFSEXCHANGE_ACTION_QUIET is set, then user won't be
  977.                         bothered with error messages
  978.                         if PREFSEXCHANGE_ACTION_INITIAL is set, then the DOS
  979.                         error 'object not found' will not be reported.
  980.  
  981.     RESULT
  982.         pointer to loaded data or 0 if failed.
  983.         use MUIM_PrefsExchange_MemFreeBuffer to free this memory.
  984.  
  985.     SEE ALSO
  986.         MUIM_PrefsExchange_SaveFile,
  987.         MUIM_PrefsExchange_MemAllocBuffer,
  988.         MUIM_PrefsExchange_MemBufferSize,
  989.         MUIM_PrefsExchange_MemFreeBuffer
  990.  
  991. PrefsExchange.mcc/MUIM_PrefsExchange_MemAllocBuffer
  992.  
  993.     NAME
  994.         MUIM_PrefsExchange_MemAllocBuffer (V16)
  995.  
  996.     SYNOPSIS
  997.         DoMethod(obj,MUIM_PrefsExchange_MemAllocBuffer, ULONG size, ULONG req);
  998.  
  999.     FUNCTION
  1000.         The MUIM_PrefsExchange_Memxxx methods provide an interface
  1001.         to internal PE pool-based memory routines. They're all very
  1002.         simple, but perhaps they will save you some work.
  1003.  
  1004.         This function allocates a memory block and keeps track of its size.
  1005.  
  1006.         The 'req' attribute should always be MEMF_ANY|MEMF_PUBLIC, because
  1007.         it's the only memory type you'll be able to obtain with this
  1008.         method. You may also set the MEMF_CLEAR flag to have the newly-
  1009.         allocated memory cleared with 0es.
  1010.  
  1011.         Passing NULL size is not a good idea.
  1012.  
  1013.         It's ok to call this function from subtasks.
  1014.  
  1015.     INPUTS
  1016.         size (ULONG) - how many bytes to allocate.
  1017.         req (ULONG) - requirement flags; just like with AllocMem()
  1018.  
  1019.     RESULT
  1020.         a pointer to your memory block. you may only free it with
  1021.         MUIM_PrefsExchange_MemFreeBuffer.
  1022.  
  1023.         WARNING: the pointer you get will be aligned to 2, so it's
  1024.                  unsafe to use it with some DOS calls, which require
  1025.                  pointers aligned to 4.
  1026.  
  1027.     SEE ALSO
  1028.         MUIM_PrefsExchange_MemBufferSize,
  1029.         MUIM_PrefsExchange_MemFreeBuffer,
  1030.         MUIM_PrefsExchange_MemMakeBuffer,
  1031.         MUIN_PrefsExchange_MemStrToBuffer
  1032.  
  1033. PrefsExchange.mcc/MUIM_PrefsExchange_MemBufferSize
  1034.  
  1035.     NAME
  1036.         MUIM_PrefsExchange_MemBufferSize (V16)
  1037.  
  1038.     SYNOPSIS
  1039.         DoMethod(obj,MUIM_PrefsExchange_MemBufferSize, APTR buffer);
  1040.  
  1041.     FUNCTION
  1042.         This method will return the length of  a 'buffer' allocated
  1043.         with MUIM_PrefsExchange_MemAllocBuffer/StrToBuffer/MakeBuffer.
  1044.  
  1045.     INPUTS
  1046.         buffer (APTR) - pointer to a memory block
  1047.  
  1048.     RESULT
  1049.         size of the memory block
  1050.  
  1051. PrefsExchange.mcc/MUIM_PrefsExchange_MemFreeBuffer
  1052.  
  1053.     NAME
  1054.         MUIM_PrefsExchange_MemFreeBuffer (V16)
  1055.  
  1056.     SYNOPSIS
  1057.         DoMethod(obj,MUIM_PrefsExchange_MemFreeBuffer, APTR buffer);
  1058.  
  1059.     FUNCTION
  1060.         This method will free memory allocated with
  1061.         MUIM_PrefsExchange_MemAllocBuffer/StrToBuffer/MakeBuffer.
  1062.  
  1063.     INPUTS
  1064.         buffer (APTR) - pointer to memory block or 0
  1065.  
  1066.     SEE ALSO
  1067.         MUIM_PrefsExchange_MemAllocBuffer,
  1068.         MUIM_PrefsExchange_MemBufferSize,
  1069.         MUIM_PrefsExchange_MemMakeBuffer,
  1070.         MUIM_PrefsExchange_MemStrToBuffer
  1071.  
  1072. PrefsExchange.mcc/MUIM_PrefsExchange_MemMakeBuffer
  1073.  
  1074.     NAME
  1075.         MUIM_PrefsExchange_MemMakeBuffer (V16)
  1076.  
  1077.     SYNOPSIS
  1078.         DoMethod(obj, MUIM_PrefsExchange_MemMakeBuffer, APTR mem, ULONG size);
  1079.  
  1080.     FUNCTION
  1081.         It will allocate a memory block (just like MUIM_PrefsExchange_AllocBuffer)
  1082.         which will be filled with data found at 'mem'.
  1083.  
  1084.         This method is useful when making 'snapshots' of some
  1085.         data structures.
  1086.  
  1087.     INPUTS
  1088.         mem (APTR) - pointer to some data to be copied into new buffer
  1089.         size (ULONG) - size of the data block
  1090.  
  1091.     RESULT
  1092.         pointer to the allocated memory block or 0
  1093.  
  1094.     SEE ALSO
  1095.         MUIM_PrefsExchange_MemAllocBuffer,
  1096.         MUIM_PrefsExchange_MemBufferSize
  1097.         MUIM_PrefsExchange_MemFreeBuffer,
  1098.         MUIM_PrefsExchange_MemStrToBuffer
  1099.  
  1100. PrefsExchange.mcc/MUIM_PrefsExchange_MemStrToBuffer
  1101.  
  1102.     NAME
  1103.         MUIM_PrefsExchange_MemStrToBuffer (V16)
  1104.  
  1105.     SYNOPSIS
  1106.         DoMethod(obj, MUIM_PrefsExchange_MemStrToBuffer, STRPTR string);
  1107.  
  1108.     FUNCTION
  1109.         This method will make a copy of the given string.
  1110.         You may free this copy with MUIM_PrefsExchange_MemFreeBuffer.
  1111.  
  1112.         Empty strings are okay for this method, however passing
  1113.         a NULL string pointer will simply cause this method to return
  1114.         0.
  1115.  
  1116.     INPUTS
  1117.         string (STRPTR) - pointer to string
  1118.  
  1119.     RESULT
  1120.         pointer to a copy of the given string or 0
  1121.  
  1122.     SEE ALSO
  1123.         MUIM_PrefsExchange_MemAllocBuffer,
  1124.         MUIM_PrefsExchange_MemBufferSize,
  1125.         MUIM_PrefsExchange_MemFreeBuffer,
  1126.         MUIM_PrefsExchange_MemMakeBuffer
  1127.  
  1128. PrefsExchange.mcc/MUIM_PrefsExchange_Message
  1129.  
  1130.     NAME
  1131.         MUIM_PrefsExchange_Message (V16)
  1132.  
  1133.     SYNOPSIS
  1134.         DoMethod(obj, MUIM_PrefsExchange_Message, STRPTR raw, ULONG arg1,...)
  1135.  
  1136.     FUNCTION
  1137.         This method will format a string using given parameters
  1138.         and display it in the bottom part of the main PE window.
  1139.  
  1140.         String is formated with RawDoFmt() function. You may
  1141.         not use newline (LF) codes in your string; however
  1142.         other MUI text engine formatting sequences are fine.
  1143.  
  1144.     INPUTS
  1145.         raw (STRPTR) - raw string
  1146.         arg1 (ULONG) - list of arguments for text formatting
  1147.  
  1148.     SEE ALSO
  1149.         MUIM_PrefsExchange_ReportDOSError,
  1150.         MUIM_PrefsExchange_ReportError,
  1151.         MUIM_PrefsExchange_ReportIFFError
  1152.  
  1153. PrefsExchange.mcc/MUIM_PrefsExchange_NotifyMessage
  1154.  
  1155.     NAME
  1156.         MUIM_PrefsExchange_NotifyMessage (V16)
  1157.  
  1158.     SYNOPSIS
  1159.         DoMethod(obj,MUIM_PrefsExchange_NotifyMessage, struct NotifyMessage *nm, ULONG userdata);
  1160.  
  1161.     FUNCTION
  1162.         Whenever DOS notification (started with MUIM_PrefsExchange_StartNotify)
  1163.         is triggered this method will be issued to you.
  1164.  
  1165.     INPUTS
  1166.         nm (struct NotifyMessage *) - don't reply it, PE will do it for you
  1167.         userdata (ULONG) - your ULONG, specified during structure allocation
  1168.  
  1169.     SEE ALSO
  1170.         MUIM_PrefsExchange_AllocNotifyRequest,
  1171.         MUIM_PrefsExchange_EndNotify,
  1172.         MUIM_PrefsExchange_FreeNotifyRequest,
  1173.         MUIM_PrefsExchange_StartNotify
  1174.  
  1175. PrefsExchange.mcc/MUIM_PrefsExchange_PrefsToDataspace
  1176.  
  1177.     NAME
  1178.         MUIM_PrefsExchange_PrefsToDataspace (V16)
  1179.  
  1180.     SYNOPSIS
  1181.         DoMethod(obj, MUIM_PrefsExchange_PrefsToDataspace, Object *dataspace);
  1182.  
  1183.     FUNCTION
  1184.         When you receive this method, first pass it to your superclass.
  1185.         If it returns TRUE, then write all your prefsdata to the
  1186.         Dataspace.mui object. Return TRUE if everything went OK, else
  1187.         return FALSE. As ID values, you should use values calculated
  1188.         from your MUI serial number (just like with .mcp classes).
  1189.  
  1190.         This mechanism is needed for creating 'preset' files, which
  1191.         combine all preferences from all editors in one file.
  1192.  
  1193.         You're generally not required to support this method.
  1194.  
  1195.     INPUTS
  1196.         dataspace (Object *) - pointer to an object of Dataspace.mui
  1197.  
  1198.     RESULT
  1199.         TRUE if everything went OK, FALSE on failure
  1200.  
  1201.     SEE ALSO
  1202.         Dataspace.mui autodocs,
  1203.         MUIA_PrefsExchange_PresetSupport
  1204.         MUIM_PrefsExchange_DataspaceToPrefs
  1205.  
  1206. PrefsExchange.mcc/MUIM_PrefsExchange_ReportDOSError
  1207.  
  1208.     NAME
  1209.         MUIM_PrefsExchange_ReportDOSError (V16)
  1210.  
  1211.     SYNOPSIS
  1212.         DoMethod(obj,MUIM_PrefsExchange_ReportDOSError, LONG ioerr, STRPTR name);
  1213.  
  1214.     FUNCTION
  1215.         It will display a DOS error message.
  1216.  
  1217.         'name' is a pointer to filename associated with the ioerr code; may be 0.
  1218.  
  1219.     INPUTS
  1220.         ioerr (LONG) - errorcode obtained from IoErr()
  1221.         name (STRPTR) - (optional) pointer to filename
  1222.  
  1223.     SEE ALSO
  1224.         MUIM_PrefsExchange_Message,
  1225.         MUIM_PrefsExchange_ReportError
  1226.         MUIM_PrefsExchange_ReportIFFError
  1227.  
  1228. PrefsExchange.mcc/MUIM_PrefsExchange_ReportError
  1229.  
  1230.     NAME
  1231.         MUIM_PrefsExchange_ReportError (V16)
  1232.  
  1233.     SYNOPSIS
  1234.         DoMethod(obj,MUIM_PrefsExchange_ReportError, STRPTR error);
  1235.  
  1236.     FUNCTION
  1237.         It will display an error-message.
  1238.  
  1239.     INPUTS
  1240.         error (STRPTR) - pointer to an error-string
  1241.  
  1242.     SEE ALSO
  1243.         MUIM_PrefsExchange_Message,
  1244.         MUIM_PrefsExchange_ReportDOSError,
  1245.         MUIM_PrefsExchange_ReportIFFError
  1246.  
  1247. PrefsExchange.mcc/MUIM_PrefsExchange_ReportIFFError
  1248.  
  1249.     NAME
  1250.         MUIM_PrefsExchange_ReportIFFError (V16)
  1251.  
  1252.     SYNOPSIS
  1253.         DoMethod(obj,MUIM_PrefsExchange_ReportIFFError, ULONG ifferr, STRPTR name);
  1254.  
  1255.     FUNCTION
  1256.         It will display an iffparse error message.
  1257.  
  1258.     INPUTS
  1259.         ifferr (ULONG) - errorcode returned by one of the iffparse.library functions
  1260.         name (STRPTR) - filename related to the error, may be 0
  1261.  
  1262.     SEE ALSO
  1263.         MUIM_PrefsExchange_Message,
  1264.         MUIM_PrefsExchange_ReportDOSError,
  1265.         MUIM_PrefsExchange_ReportError
  1266.  
  1267. PrefsExchange.mcc/MUIM_PrefsExchange_SaveFile
  1268.  
  1269.     NAME
  1270.         MUIM_PrefsExchange_SaveFile (V16)
  1271.  
  1272.     SYNOPSIS
  1273.         DoMethod(obj,MUIM_PrefsExchange_SaveFile, STRPTR name, APTR buffer, ULONG size, ULONG flags);
  1274.  
  1275.     FUNCTION
  1276.         This method will save a memoryblock to a file.
  1277.  
  1278.         All DOS errors will be reported, unless PREFSEXCHANGE_ACTION_QUIET flag
  1279.         is set.
  1280.  
  1281.     INPUTS
  1282.         name (STRPTR) - pointer to filename
  1283.         buffer (APTR) - data pointer
  1284.         size (ULONG - data size
  1285.         flags (ULONG) - if PREFSEXCHANGE_ACTION_QUIET is set, then no DOS errors
  1286.                         will be reported
  1287.  
  1288.     RESULT
  1289.         TRUE or FALSE
  1290.  
  1291. PrefsExchange.mcc/MUIM_PrefsExchange_SaveIcon
  1292.  
  1293.     NAME
  1294.         MUIM_PrefsExchange_SaveIcon (V16)
  1295.  
  1296.     SYNOPSIS
  1297.         DoMethod(obj,MUIM_PrefsExchange_SaveIcon, STRPTR filename, struct DiskObject *diskobj, ULONG flags)
  1298.  
  1299.     FUNCTION
  1300.         This function simply saves an icon file.
  1301.  
  1302.         'filename' is a pointer to string without the '.info' suffix.
  1303.         'diskobj' is a pointer to DiskObject structure or NULL - in this
  1304.         case default icon (got from MUIM_PrefsExchange_GetDiskObject)
  1305.         will be used.
  1306.         For 'flags', you may use the value passed to you with
  1307.         MUIM_PrefsExchange_Action. Currently, only PREFSEXCHANGE_ACTION_QUIET
  1308.         is recognized, and will suppress all error messages.
  1309.  
  1310.         You'll want to call this function during APPMASKB_SAVEAS
  1311.         if the MUIA_PrefsExchange_CreateIcons attribute is set to TRUE.
  1312.         Normally you should pass NULL for the 'do' parameter.
  1313.  
  1314.     INPUTS
  1315.         filename (STRPTR) - pointer to filename (without .font suffix)
  1316.         diskobj (struct DiskObject *) - pointer to a DiskObject structure or 0
  1317.         flags (ULONG) - PREFSEXCHANGE_ACTION_QUIET - supress error messages
  1318.  
  1319.     RESULT
  1320.         TRUE or FALSE
  1321.  
  1322. PrefsExchange.mcc/MUIM_PrefsExchange_StartNotify
  1323.  
  1324.     NAME
  1325.         MUIM_PrefsExchange_StartNotify (V16)
  1326.  
  1327.     SYNOPSIS
  1328.         DoMethod(obj,MUIM_PrefsExchange_StartNotify, struct NotifyRequest *nr);
  1329.  
  1330.     FUNCTION
  1331.         Use this method instead of simple StartNotify() for NotifyRequests
  1332.         created with MUIM_PrefsExchange_AllocNotifyRequest.
  1333.  
  1334.         Every time the notification is triggered you'll get
  1335.         MUIM_PrefsExchange_NotifyMessage method.
  1336.  
  1337.     INPUTS
  1338.         nr (struct NotifyRequest *) - pointer to structure allocated with
  1339.                                       MUIM_PrefsExchange_AllocNotifyRequest
  1340.  
  1341.     RESULT
  1342.         TRUE or FALSE
  1343.  
  1344.