DeskFiler Documentation


Author: Gavin Stark
Status: Documentation for Relese 0.01 of DeskFiler
History:
        12-Oct-89   0.01 Documentation for release 0.01
              

This document describes the facilities supplied by the Desk Filer application.

Outline
-------
The DeskFiler is the successor to TinyDirs. It allows file objects (files,
directories or applications) to be placed as icons on the icon bar. Once
there they can be selected, double-clicked, dragged, etc. in ways very similar
to the standard Filer windows.

The DeskFiler contains two * commands:
 *AddDeskApp <full pathname>    , to add an icon to the bar
 *RemoveDeskApp <full pathname> , to remove all icons matching the name
                                  from the bar

The DeskFiler responds to Save Desktop messages, creating *AddDeskApp commands
for the icons currently on the bar. The DeskFiler also understands the Help
Request message, and so is usable with !Help.


Facilities provided by Desk Filer
---------------------------------
The Desk Filer always puts an Apps icon on the icon bar. This icon is not
removeable. It represents the 'Deskfs:$.Apps' directory - i.e. the ROM
applications directory.

File objects, or selections of file objects, can be dragged from Filer
windows to any Desk Filer icon. This will result in the objects being
given icons, and these will be placed on the icon bar to the right of
the icon at which the drag finished. They will be placed in the same order
in which they appeared in the Filer window (i.e. in order of type/size/date).

Desk Filer icons on the icon bar can be selected using 'SELECT'. More icons
can be added to the selection using the 'ADJUST' button, which toggles the
state of the icon underneath it.

Pressing 'MENU' produces the DeskFiler menu. If 'MENU' was pressed when there
was no DeskFiler selection then the icon under the pointer when 'MENU' was
pressed will be temporarily selected, as in the Filer.

The menu allows the selection to be cleared, or all the icons to be selected,
or the current selection to be removed from the icon bar (this does not delete
them from the disc). Also, if the menu was created with no current selection
(i.e. an icon was temporarily selected) then the user can open the parent
directory of the temporarily selected icon, but only if the object for this
icon has a parent (i.e. is not $ % & etc.).

Dragging of selections of Desk Filer icons can be performed. At the end of the
drag the Desk Filer can take one of five actions, depending on the destination
of the drag:
        1) Onto a Filer window. This causes a Copy operation to be set up for
                each icon selected. Desk Filer will call Filer Action if there
                is enough RAM, otherwise it will call *COPY.
        2) Onto a non-Filer window. This causes a DataLoad message to be sent
                to the application owning the destination window, and hence
                the selection will be inserted at the current insertion point
                for the window
        3) Onto a non-DeskFiler icon on the icon bar. This causes a DataLoad
                message to be sent to the application owning the destination
                icon, so the application will try to load the selection.
        4) Onto a DeskFiler icon on the icon bar. This will cause the selection
                of icons to be moved from their current positions, to the right
                of the destination icon. The operation preserves the order of
                the unselected icons, and of the selected icons. (i.e. the
                leftmost icon of the selection will appear at the left of the
                reinserted icons.)
        5) Onto a blank portion of the icon bar. This will cause any
                applications in the selection to be run. Non-applications will
                be ignored.

Double-clicking with 'SELECT' on an icon causes the icon to be run. This means
applications starting up, files being sent to the relevant application, and
directories being opened.

Double-clicking with 'ADJUST' on an icon causes the icon to be run, and then
removed from the Desk Filer list on the bar.


Desk Filer * commands
---------------------
The Desk Filer includes two * commands, for adding and removing icons from the
bar:
  *AddDeskApp <full pathname>
        This causes the file or directory specified by the pathname to be found,
                and if it exists then it will be appended to the queue of items
                to be added to the icon bar after the next Wimp_Poll call. This
                means that icons will appear almost immediately if *AddDeskApp
                is called from a WIMP task, but only when the WIMP is entered if
                from a Boot sequence.
  *RemoveDeskApp <full pathname>
        This causes any icons currently on the bar which have the same full
                pathname as that given in the command to be removed at the next
                Wimp_Poll.
                  

Known mis-features and possible enhancements
--------------------------------------------
The RemoveDeskApp command should not just remove those icons currently on the
bar, but also those in the buffered list which will be added to the icon bar
at the next Wimp_Poll. At the moment:
 *AddDeskApp adfs:$.fred
 *RemoveDeskApp adfs:$.fred
will cause all icons on the bar corresponding to adfs:$.fred to be removed, and
then one added!     

*AddDeskApp adfs:$ produces an icon with an unknown file type (i.e. a white box)
It should produce a directory icon.

Shuffling icons by dragging could shuffle to the left if the shift key is pressed

Dragging selections onto DeskFiler icons with the control key down could cause the
selection to be sent to the application corresponding to the destination icon.

Dragging with adjust (onto the icon bar or to Filer windows, or even application
windows) should remove the DeskFiler icon.
