Help for !Save (Part 7 of the Tutorial)
---------------------------------------

!Save takes a file dropped onto the baricon and writes a small file as specified with the save window.

Breakdown:
----------
Like !Drop, !Save opens a save window if a file is dropped onto the baricon, but this time a drag of the icon or modification of the save path will actually save a file to that directory.

The main bulk of handling the saving is done using the DeskLib function Save_InitSaveWindowHandler(), which handles all the dragging/typing/clicking for you.  The actual creation of the file is done by the function save_file(), which is called by Save_InitSaveWindowHandler().
You might have noticed that the window handling is still the same as in !Drop.  It turned out that Save_InitSaveWindowHandler() seems to only hide the save window when it vanishes, so that it can be re-displayed by Window_Show() every time the function drag() is called.  Aren't I the lucky person :)

Unlike the other functions called by various elements of DeskLib, save_file() has a character string as its first parameter rather than the event pollblock. Make sure you declare it correctly or Save_InitSaveWindowHandler() will bomb out when you're compiling!
Anyway, the character string holds the filename selected by the user.  !Save appends the string "_x" to the filename, just in case somebody wants to try the program by dragging an important file (such as !boot :) onto the icon and clicking OK in the save window...

The file created consists of a few lines of text for your information.