RISCOS Select 3 - Planned Features
Building upon the work done in Select 1 and 2, Select 3 improves upon both
the significant changes made to both the graphics and networking components
as well as adding many new features. The focus on Select 3 has been mostly
based around stablising features from Select 2 and improving the desktop
usability of the Operating system.
- Cut and paste
Text in writeable icons provided by the Window Manager is now able to be
selected by keyboard and mouse. Such icons can be used with the standard
The filer can now display images as thumbnails, allowing photo albums and
other image collections to be browsed more easily.
- Improved 'buttons'
Action buttons, as well as groups and other 3D-style icons have been
improved and may be made round or given colours. Support for button styles
is a 'plugin' interface and other clients may provide different button
- Alpha-channel sprites
A new class of sprites has been created for alpha-channel sprites. These
sprites can be used whereever the standard sprite operations would be
used through system sprite rendering calls. Alpha-channel sprites allow
each pixel to have variable translucency, which means that sprites can
blend better to their backgrounds.
- Recycle bin
Files deleted by the user can, optionally, be sent to a recycling bin
from which they can be retrieved if necessary.
- Improved Paint application
!Paint's internal and external operation has had a major overhaul to
cater for some of the new features of Select 3, including alpha-channel
In the following breakdown, not all changes have been listed. In particular,
fixes to components are not listed unless their effect is significant.
Select is supplied with a more complete breakdown of the changes on a
- New !Recyclone application provides a rubbish bin into which files
deleted by the user will be placed. A configuration tool is provided to
allow the bin to be expired and its location changed.
- New !NetLights application displays network activity on the iconbar.
- !Draw can now import any type handled by ImageFileConvert where the type
can be converted to a type which is handled natively by Draw. This means
that PNG files, Artworks, BMP and other images types can now be imported.
- !Paint has been given a major overhaul. See the separate section for
- DragASprite no longer uses a 'drop' shadow when translucency is
- DragAnObject's sprite creation code has been optimised slightly.
- Wimp now supports a 'priority' sprite pool which is able to forcibly
override anything in the other sprite pools.
- 'IconBorder' plugin system allows the default slabbed borders to be
rendered in a customisable manner. FilterManager has been updated
to support multiple icon border filter clients. Example bordering
source code will be supplied.
- 'Auto-open submenus' option now opens submenus and windows in the correct
position regardless of where the mouse is placed.
- Selection of text within writeable icons and its use with cut and paste
operations is now supported by the Window Manager. This furthers the
work started in Select 1 to make the entire OS capable of using the
cut and paste system.
- Tinting of icons is now more reliable and can use any tint type provided
by the ColourMap module.
- Command windows generated by single tasking applications when run from
the desktop are now centred on the screen.
- FilerAction proxying is now an option which may be disabled under the
clients control. This might be used by rubbish bin applications to
invoke 'delete' operations on items already in the bin.
- When in EY0 modes, Pinboard now correctly sizes its background
window on a mode change.
- Pinboard configuration application can now be accessed by its main menu.
Optimisation for redraw speed of tiled ImageFileRender images.
- Pinboard and Filer have both been updated to provide StyleGuide compliant
save dialogue boxes.
- Attempting to delete !Boot will now raise a warning.
- Attempting to copy a directory called !Boot over your !Boot
directory will now invoke the boot merge tool.
- Should Filer fail to launch the filer action window for a delete
operation, the confirm deletes option is now honoured.
- In Filer, the Help option is now greyed if a directory and
application combination are selected.
- Filer windows have been updated to be more style-guide compliant
and to address issues raised by the use of icon bordering.
- Filer now offers to share directories as read only by default, rather
than read-write. It makes sense not to share folders as public
read/write by default.
- Filer now provides a fourth display option beside those for Large, Small
and information icons. The 'Thumbnails' display renders images using
the ImageFileRender components, allowing any known image format to be
displayed within the Filer.
- Directories starting with a ! but without a !Run file are no longer
treated as an application, allowing such names to be used safely if
- RAMFSFiler will share the disc as read only by default.
- The Sprite Pool has been updated with a number of slight modifications:
- RAMFS icon now fits in with the new style of icons
- JPEG icon now follows the bitmap style
- Shared CD discs now look more like the CDROM icon
- Addition of Zip, GIF, PNM, XBM, Sun raster, PCX, ICO, Clear,
and BMP sprite icons.
- LanManFS icon updated to fit better with correct style.
- TaskManager can now launch Configure from the menu.
The info box now describes the OS as RISC OS Select, and has been
improved to address some issues with Icon Bordering.
- Toolbox "Discard, Cancel, Save" icons have been resized to be 'standard'
- TextGadget scrolling list boxes now display associated sprites more
sensibly when selected; previously these would be displayed lighter than
the rest of the line.
The text is now positioned a little further across the window, away from
the sprite in order to reduce the tight look that had been created.
- ImageFileGadget correctly positions its window now; previously it would
inset the window by a pixel.
When resizing the gadget, the entire window is redrawn to ensure that it
remains up to date.
The facilities provided to developers for using ImageFileGadget have been
- ImageFileGadget is now able to report mouse click events and has a much
greater array of image manipulation options.
- TextArea gadget now supports standard clipboard operations properly,
allows for 'key notifications', and renders much more quickly in most
- Toolbox slider gadgets would respond to clicks and scrolls over the wells
of the gadget even when the slider was set to be display only. They no
longer react to such events.
- Free space client templates tweaked to address issues relating to Icon
- The sprite file DesktopBanner$File is now loaded by the Desktop module,
if it is present, and used as the welcome banner on entry to the desktop.
- ShareFS 'Share directory' window is now updated to represent the current
settings of the share if one is present, including the name of the Share.
- TaskWindow now includes a fix for 'The MessageTrans Bug'.
- Rendering of sprites with 1bpp masks, using no scaling or colour
translation, where the sprite data ends on a word boundary, but
the mask data does not end on a word boundary, and the output
alignment is not a word boundary due to a graphics window being
present... now works properly.
- SpriteExtend would fail to generate code when translucent sprites
were rendered in paletted screen modes where the eigen factor was
EX0 or EY0. This allows sprites to be visibly dragged in such modes.
- FontManager can now safely resize its dynamic area. The version
supplied in Select 2 had problems on certain systems which has now
- ImageFileRender now provides *ImageFileRenderers command for listing the
supported renderers. This is mirrored in a new SWI to enumerate the
- A default viewer application can now be specified through ImageFileRender
and will be set up as system variables for all renderable types.
- ImageFileRender's sprite renderer now supports information requests
previous versions were would return the colour type incorrectly for
certain sprite types.
Sprite rendering will now render sprites of 8bpp or less through a wide
translation table which improves their appearance when colourmapping is
used in 16bbp or higher.
- New ImageFileConvert module is used with the Convert* modules to provide
a generic conversion method, allowing conversion between different file
formats through a number of SWI calls. *ImageFileConverters will list
the supported converters.
- DrawFile will now render sprites in 8bpp or less through a wide
translation table which improves their appearance when colourmapping is
used in 16bbp or higher.
- JPEG rendering where DPI based JPEGs are given as ratios are now taken
into account in a similar manner to that used by !Draw.
JPEGs which supply a ratio, DPI or DPC (dots per centimetre) of 0 will
now be treated as 90 DPI. JPEGs with low values for DPI or DPC will now
be treated as is this was a ratio.
- CompressJPEG module now registers as a sprite to JPEG converter with
- JPEG handling is much more robust now, and should never generate aborts
for either valid or corrupt compressed data.
- ImageFileRender_Artworks module added to render Artworks documents.
- New ConvertGIF added to ROM to generate a 'dummy' image. This is a
placeholder module which avoids the requirement for a Unisys patent for
the use of the LZW algorithm.
- New ConvertXBM added to ROM to convert XBM image files to sprites.
- New ConvertSun added to ROM to convert Sun raster image files to sprites.
- New ConvertBMP added to ROM to convert Windows BMP image files to sprites.
- New ConvertPNM added to ROM, supporting type 1-6 PNM files.
- New ConvertICO added to ROM to convert Windows .ico files to sprites.
- New ConvertPCX added to ROM to convert PCX files to sprites.
- New ConvertClear added to ROM to convert Translator 'Clear' files to
- New ConvertSprite module added , which supports creation of sprites through
ImageFileConvert from any format which ImageFileRender can handle.
ConvertSprite provides a proxy ImageFileConvert handler for
ImageFileRender in much the same way that ImageFileRender automatically
provides a proxy ImageFileRender handler for ImageFileConvert.
ConvertSprite can also provide callback and SWI functions to render
images to a sprite.
- ConvertPNG has almost full support for creating PNGs from sprites
(including alpha-channel sprites), with only CMYK sprites presently
unsupported. Sprites can be created from any form of PNG, generating
alpha-channel sprites where necessary.
- DrawFile module now supports creation of SVG files from DrawFiles using
the ImageFileConvert interface.
- New ColourMap module allows generation of colourmapping descriptors
without recourse to assembler. Currently supported mappings are :
Blend, Brighten, Contrast, Gamma, Identity, Invert, Monochrome,
Monochrome and scale and User.
Colour map descriptors can be chained together to create more complex
- SpriteExtend, Kernel and ColourTrans have been updated to provide a new
sprite type for alpha-channel sprites. Alpha-channel sprites allow the
images to be rendered with varying levels of translucency per pixel.
Previously, sprites could only provide binary (pixel on or off) masks.
- SpriteUtil (System sprite area provider) has had a number of commands
fixed to remove errors when no system sprite area is present.
- InverseTable 'destination tracking' is now improved and should no longer
result in corrupt font colours or alpha channel rendering.
- Internet, ShareFS and Freeway have had issues relating to large
file transfers addressed.
- InetConfigure can now configure static IP addresses properly.
Previous versions would retain the addresses stored in CMOS rather
than using the new addresses supplied by the user.
- Internet module has had a fix for interfaces with no addresses
never issuing service calls.
- Aliased interfaces are no longer dynamically named; the names used on
their creation are now retained, allowing deterministic operation.
- Internet can now handle changes in interface addresses more reliably.
Previous versions had issues relating to multiple aliased interfaces and
ARP requests which could cause machines to seemingly 'vanish'.
- Added support for ZeroConf IP configuration. ZeroConf is a means by
which an address can be obtained for a machine on a network without
any configuration process. This is similar to the configuration used
by the Access, but standardised across multiple platforms by a global
- DHCPClient and ZeroConf client both respond to *ShowStat to provided
- DHCP client now supports address changed due to its deletion of
the interface address. Previously this was not an issue, because
Internet never issued service for address deletion, but now that
this has been done it is now aware of this case.
- The AppleTalk client is now supplied in ROM. This allows RISC OS systems
to contact AppleTalk file and print servers.
- LanManFS has been improved, resulting in faster resolution of names
on local networks. The 'Transact' SWI call has been updated to allow
a larger number of Transact communications to be made, including old
- OS_CLI is handled by an external module, CLIV.
- Some calls have been moved from the kernel to a new module called
- BEL (VDU 7) no longer uses OS_Word 7, but is passed to Sound calls
- FileTypes now declares PCX, PNG, SunRaster, BMP, Clear, ICO and XBM file
- FileSwitch is now able to reference path variables (pseudo-filing systems)
through $, eg Music:$ for <Music$Path>. Writing to a path variable with
multiple entries where a <path>$Write variable exists will now use the
$Write directory for the operation.
- FileSwitch no longer leaves streams open if a 'close' fails.
- ResourceFS will now only issue 'changed' messages where the files changed
are opened by it, thus reducing the impact on menus opened by the user
when ShareFS discs become available over the network.
- ParallelDeviceDriver is now capable of reading Device IDs.
This allows the auto-detection of the make and model of Printer
- PCI memory reservation has been removed from the kernel, freeing 256M of
logical address space for use by dynamic areas.
- Conversions module has a minor for for ReadUnsigned returning an invalid
V flag on some conversions.
- ScreenBlanker now supports a second-level blanking using DPMS.
ScreenBlanker no longer uses CMOS to get its initial settings and defaults
- CDFS legacy support for built in conversions removed.
- EvaluateExpression module takes over from the Kernel's
OS_EvaluateExpression. Additionally, expressions can now extract
directory or leaf names from a string, canonicalise a filename and
generate a string from the current time.
- Softload ROM images are now sorted into date order, making selection
of ROMs much simpler. ROM images are now supplied in archives together
with their change lists; these lists are recorded with the ROM when
installed to allow them to be viewed at a later date.
- Resolver configuration is now able to locate DNS servers on the local
network, even with bind variants.
- Interface configuration can now take effect immediately, rather than
requiring a reboot.
- Re-written Filer configuration tool includes the new thumbnail
- All tools now warn if the configuration application is closed when
changes have been made. Tools where changes have been made are indicated
by a '*' in the title of the window, in line with standard RISC OS
- CPIShell is now able to be passed command line arguments to pass to the
launched plugin. This is used to allow installation of components through
Filer_Action (dragging over !Boot).
- TimeSetup is now capable of setting the timezone.
Previously, when a network interface is active on a machine the
ScrapDirectory is set to a Directory named after the MAC Address of the
first installed Network card. If NetFS was active, this would be replaced
by the station ID.
With Select 3, the scrap directory naming is now based solely on the
hardware configuration, as detected by HWScan. For most users this will
be disabled and so the scrap directory will be named 'Disabled'.
New IconSetUp Configuration Tool
The new IconSetup configuration tool allows the setting of options for the
standard IconBorderRound module. The following options are supported for
buttons and borders :
Rounded edges with Small, Medium, Normal or Large curves
Apply to (sunken) writeable fields, display fields, or groups
'Special' colour schemes
with choice of Foreground and Background colour for
Action buttons, Default buttons, and Groups
All the above colours may be applied as solid colour or as a tint of the
Furthermore button icons and information fields may have the colour applied
as a Blend (top to bottom blend of the border colours, applying the button
colour as a strong tint).
Button icons may have a rim highlight and may have either thick or thin
The Paint application has been updated to support the new alpha-channel
sprite format provided by Select 3. Paint can create sprites with
alpha-channels, add an alpha-channel to an existing sprite, and allow
editing of the alpha-channel.
Paint's user interface has also been brought up to date, with a separate
attached toolbox for each sprite (similar to !Draw) so each sprite has
it's own "working set" of toolbox settings. Shortcuts for zoom and
select colour have been added along with a new colour display area. The
menu tree has been revised to be more logical and Styleguide compliant.
Paint makes better use of the ImageFileConvert system in Select 3 and can
directly load any filetypes supported by ImageFileConvert (PNG, JPEG,
Clear, ICO, BMP etc). Paint allows saving of an image in JPEG and PNG
format as well as sprite.
A good number of bug fixes and performance improvements have also been
added along with usability features such as a true graphic brush display
and improved clipboard support.
Return to section Index