Ursula Filer Changes

Functional Specification

 COMPANY CONFIDENTIAL

Document Ref:  1309,211/FS
Project:  Ursula
Revision:  H *** PROVISIONAL AND SUBJECT TO CHANGE WITHOUT NOTICE ***
Date:  28th January 1998
Author(s):  Richard Leggett
Change:  Updated User Interface

Contents:
1.0 Overview.
2.0 Outstanding Issues.
3.0 Technical Background.
4.0 User Interface.
5.0 Programming Interface.
6.0 Data Interchange.
7.0 Data Formats.
8.0 External Dependencies.
9.0 Acceptance Test.
10.0 Non Compliances.
11.0 Development Test Strategy.
12.0 Product Organisation.
13.0 Future Enhancements.
14.0 Glossary.
15.0 References.
16.0 History.

1.0 Overview

This document covers the changes proposed to Filer for the Ursula release of RISC OS. While more drastic changes are being made to Filecore to bring it up to date with modern discs, the changes to Filer are mainly cosmetic and designed to improve the user interface. The following lists the intended changes in a rough order of priority:

In parallel with the above, an attempt will be made to fix some long-standing Filer bugs.

2.0 Outstanding Issues

No further detail on autoscrolling windows is given, as this will be determined by the Window Manager spec.

The Ursula OS will deliver a new look for the GUI and as part of this, all Filer related icons are to be redesigned in 256 colours. Though not within the scope of this specification, it is worth mentioning the memory implications of the new icons.

The current Sprites22 file within the Wimp Resources, which includes Filer icons and other GUI icons, is 257k. Converting all these icons to 256 colours will increase their size by around 1.6 - 2 times, depending on how much wastage there is at present (due to word alignment). This would make the whole spritefile something like 450k. The addition of different icons for highlighted files would probably add around 100k, bringing the total size to about 550k.

3.0 Technical Background

Because this FS covers user interface changes, it is more appropriate to mention some of the technical background alongside the details about the changes (in section 4).

4.0 User Interface

4.1 Renaming

If the user clicks Select, with either Alt key held down on a filename in a Filer window, then the text of the filename will be replaced with a writable icon containing the text. The caret will be placed at the position within the text nearest to where the pointer was at the moment of the click, and the window highlighted in the normal manner. The user is then able to edit the icon as with any normal writable icon. Pressing Return causes the file to be renamed to the contents of the writable icon. The following actions will cause the icon to vanish :

An attempt to Alt+Select click on a file in a read-only file system (eg. ResourceFS) will be ignored.

4.2 Options

In line with a general policy on the Ursula project, the Filer's global option setting will be moved to within the Configure application. The Filer's Options menu will remain, but the options set from it will only apply during the current desktop session and will be lost when the machine is switched off.

As well as all the options currently present (Confirm, Verbose, Force and Newer), the 'Faster' option will be made a more permanent option (it currently applies only to one particular FilerAction). Additionally, 'Confirm' will become 'Confirm all' and a new option, 'Confirm deletes' added, which as the name implies will only prompt for confirmation when deleting files.

The Filer's options menu will be changed to take account of these changes:

When a FilerAction operation is started, the calling task specifies a flags word containing the options for the operation. This word will need to be updated to include the two new options.

So that Configure has an easy way of setting Filer options, a new *Command will be provided with the syntax:

*Filer_Options [-ConfirmAll | -ConfirmDeletes] [-Verbose] [-Force][-Newer]

[-Faster]

Configure will include the command in an appropriate file which will be run on bootup (see the Configure specification).

The defaults (should no FilerOptions command have been issued) will be 'Verbose' and 'Newer'.

For greater consistency, and to remove reliance on CMOS RAM, the directory layout will also be specified by *command, with the syntax:

*Filer_Layout [-LargeIcons | -SmallIcons | -FullInfo]

[-SortByName | -SortByType | -SortBySize | -SortByDate]

The default values will be 'LargeIcons' and 'SortByName'.

4.3 Filename truncation

To avoid Filer viewers having columns too wide and looking ugly as a result, Filer will truncate the visible filenames to a set pixel width, replacing hidden characters with an ellipsis ('...'). A typical directory viewer is shown in the following image:

The user will be able to set the truncation width via the Configure application. This width may be specified in terms of number of characters but Configure will pass this on to Filer as a width in OS units.

A *command will be provided for Configure to set the truncation widths. It's syntax will be:

*Filer_Truncation [-LargeIconDisplay <n>] [-SmallIconDisplay <n>]

[-FullInfoDisplay <n>]

Where LargeIconDisplay specifies the maximum visible width, in pixels, of a filename in a Large Icon display, SmallIconDisplay specifies the maximum visible width for a Small Icon display and FullInfoDisplay specifies the maximum visible width for a Full Info display.

Specifying a width of zero indicates that no truncation should take place. The default values, should no Filer_Truncation command be issues, are:

4.4 New directory

For consistency with other areas of RISC OS, The 'New directory' option will lead to a SaveAs style box instead of a writable menu entry. The user is then able to drag the directory to any open filer window.

If an object already exists with the name 'Directory', an error will be reported to the user.

4.5 Blank icons

In the old Filer, the same blank icon was used for three types of file:

For the new Filer, three new icons will be designed and used in place of the one icon.

4.6 Dragging

Dragging of a file will be changed so that a translucent image of both the icon and (truncated) filename are dragged by the pointer, rather than just the icon as in the old Filer.

In order for the change to occur, Filer will have to make use of the DragAnObject module, rather than the DragASprite one it currently uses.

In the case of a selection, the package icon will continue to be used.

4.7 Removing selections

In the old Filer, if the user made a selection in one Filer window, then pressed Menu over another window, the File ' ' option is greyed out on the menu, but the selection remains. This situation is potentially confusing, so the new Filer will also remove the selection from the previous Filer window.

4.8 FS Filer changes

File drags from save boxes to icon bar Filer icons will cause the file to be saved in a specified directory of the device, most sensibly the root. The Filer will then open the directory viewer. In combination with the autofronting icon bar in the new window manager, the user will now never face the situation of having a save box open, but nowhere to drag the file to.

For consistency, drags from Filer windows to icon bar icons will cause files to be copied/moved to the directory. As with saves, the Filer will open the directory viewer.

The directory which a file is saved/copied to will be specified by a system variable and will default to the root directory. The system variable will be of the form:

THISFiler$DefaultPath

so for example ADFSFiler$DefaultPath, NETFiler$DefaultPath etc.

The modules which need to be updated are:

5.0 Programming Interface

In FilerAction, the SWI FilerAction_SendStartOperation (PRM p2-506) will be changed to allow setting of the two new options (Confirm deletes and Faster). The new format is therefore:

FilerAction_SendStartOperation (SWI &40F82)

On entry

R0 = task handle to which to send the message

R1 = reason code

R2 = option bits:

bit meaning when set

0 Verbose

1 Confirm

2 Force

3 Newer

4 Recurse

5 Confirm deletes only (ignored if bit 1 set)

6 Faster

R3 = pointer to option specific data

R4 = length of option specific data

On exit

6.0 Data Interchange

6.1 Icon bar save protocol

In order for files to be saved to icon bar device icons, the FS Filers will now be required to intercept the WIMP message Message_DataSave. They will reply with Message_DataSaveAck specifying a pathname for the saved file. They will also intercept Message_DataLoad on completion of the save and use this as the trigger for opening the Filer window of the directory the file has been saved in.

6.2 Icon bar copy protocol

For file copies to work, a different system is necessary. Without modification, when a file is dragged from a Filer viewer to a device icon, the Filer will send a Message_DataLoad to the FS Filer responsible for the device. All the FS filers will be changed to receive this message and then to reply with a new message:

Message number &408 Message_FilerDevicePath

This message is returned by the FS Filer to the Filer and specifies the path to which files should be copied to. The format of the message data is:

R1+20 path name, zero terminated.

This path name is made up of:

DevicePath.<ThisFiler$DefaultPath>

where:

An example may help to clarify. If the user has set <ADFSFiler$DefaultPath> to be "Files.Junk" and they drag a file from a Filer viewer to the HardDisc4 icon, then the ADFS Filer should return a Message_FilerDevicePath, with the path name:

ADFS::HardDisc4.$.Files.Junk

and the Filer will copy the file into that directory (if it exists).

The FS Filer will also prompt the Filer to open the directory viewer for the directory who's path it has just specified.

If the path name consists of no characters and then the terminator, it is assumed that the root directory is read only.

6.3 FilerAction messages

Because of the new FilerAction options, Message_FilerAction (PRM p3-236) will be changed. The new format of the data for this message will be:

Word Meaning

0 Operation to be performed

1 Option bits:

Bit Meaning when set

0 Verbose

1 Confirm

2 Force

3 Newer

4 Recurse (only applies to access)

5 Confirm deletes only (ignored if bit 1 set)

6 Faster

2 onwards Information specific to the particular operation

7.0 Data Formats

No new data formats are involved.

8.0 External Dependencies

Third party authors of FS Filers will need to be informed of the new WIMP messages so that they can update their icon bar actions.

9.0 Acceptance Test

Key areas for acceptance of the new Filer (and associated FS Filer modules) are:

10.0 Non Compliances

N/A

 

11.0 Development Test Strategy

The key thing with all the Filer changes is to test them as widely as possible with as many filing systems as is practically possible, including ADFS, NFS, RAMFS, ShareFS and NetFS. With the FS Filer changes, it's important to test the saving mechanism with as many 3rd party applications as is practically possible.

Once development has demonstrated good stability, volunteers within Acorn will be asked to use the software on a day-to-day basis on their own machines and to report any bugs or inconsistencies.

In addition, a team of dedicated testers will be brought in to extensively test both the Filer and the new Filecore.

12.0 Product Organisation

The new versions of Filer, FilerAct, ADFSFiler, RAMFSFiler, NetFiler and ShareFS are intended to be built into the Ursula ROMs.

14.0 Glossary

N/A

15.0 References

1309,214/FS Ursula !Configure Changes

1309,213/FS Ursula Window Manager Changes

16.0 History

 
Revision Who Date Comment
 A RML 03-06-1997 Started 
B RML 08-07-1997 Updated
C RML 29-07-1997 Updated after spec review
D RML 12-08-1997 Released for further comments
E RML 19-08-1997 Updated
F RML 24-09-1997 Updated
G RML 20-11-1997 Updated with Filer_Layout command.
H RML 28-01-1998 Further update to keep level with implementation. Revision changed from 0.06 to G.
This document is issued under license and must not be copied, reproduced or disclosed in part or whole outside the terms of the license. © Acorn Computers Ltd 1997.
645 Newmarket Road, Cambridge, UK