Showing changes from revision #2 to #3:
Added | Removed | Changed
Warning: The current and/or previous revision contained markup errors which prevented proper diff analysis. A guess at markup correction has been made but the diff may not be a truly accurate reflection of the real changes.
Since InRISC OS 2, 2 the Wimp provided support for numerous screen resolutions and colour depths, depths. but In it was with the introduction ofRISC OS 3 that it saw became the possible introduction to of use using alternative alternate sprites for displaying system icons.
RISCThe system icons (title bar, close icon, scroll bars etc…) can easily be customized. OS provides a method to customise the system icons (title bar, close icon, scroll bars etc…) with relative ease.
Please note: This document assumes RISC OS 3 or above.
To So ensure that system icons look as good well as possible regardless of screen mode, up to four different sets of system icons may be provided, each tailored to a particular resolution and colour depth.RISC OS can provide up to four different sets of system icons specifically tailored to resolution and colour depth.
The four sets of system area icons are:
|<^. # |<^. Name |<^. DPI |_<^. Standard Dimensions |<^. 16 Cols |<^. 256 Cols |<^. 32K/16M Cols |
|<^. 1 |<^. !Sprites|<^. 90 × 45 |<^. 34 × 17 |<^. 12 |<^. 15|<^. new format |
|<^. 2 |<^. !Sprites22 |<^. 90 × 90 |<^. 34 × 34|<^. 20 or 27|<^. 21 or 28|<^. new format |
|<^. 3 |<^. !Sprites23 |\5=^{background:#ccc}. (obsolete hi res mono mode 23)|
|<^. 4 |<^. !Sprites11 |<^. 180 × 180 |<^. 68 × 68 |<^. new format |<^. new format |<^. new format|
Note: Sprites with a full alpha mask do not currently work on RISC OS 5.xx and should be avoided.
Each set of system area icons should based on the same ‘look and feel’, but and be designed for optimised appearance on in a specific screen mode.
The minimum requirement is the !Sprites file, as and the Wimp will fall back to this icon set if no other can be found.
RISC OS automatically decides which sprite set is to best use used by checking thenx and ny values of the current screen mode and using this these returned value values as a suffix to the !Sprites file to load (see above).
The code below returns the nx and ny suffix.
"Wimp_ReadSysInfo", 2
i.e. Thus A a value returned value of 11 would mean that the Wimp would automatically try and to load a !Sprites11, and fall back to the !Sprites file if is no such file existed.
For Each the Wimp to know which sprite to map to each system icon, icon has a name special must name. be assigned to each.
For sake of simplicity, the icons will be divided grouped into by how where they are shown within a window. This Thus: being:
1 | Top Bar consisting of the Title Bar, Close Icon, Back Icon etc… |
2 | Vertical Scroll Bar |
3 | Horizontal Scroll Bar |
Description | Un-clicked | Clicked | Plot Order |
---|---|---|---|
Back icon | bicon | pbicon | 1st |
Close icon | cicon | pcicon | 2nd |
Title bar (left end cap) | tbarlcap | ptbarlcap | 3rd |
Title bar1 (middle bottom) | tbarmidb | ptbarmidb | 4th |
Title bar1 (middle top) | tbarmidt | ptbarmidt | 5th |
Title bar (right end cap) | tbarrcap | ptbarrcap | 6th |
Iconize icon | iicon | piicon | 7th |
Notes:
Description | Un-clicked | Clicked | Plot Order |
---|---|---|---|
Scroll Up Arrow | uicon | puicon | 1st |
Scroll Down Arrow | dicon | pdicon | 2nd |
Page Down Area (end cap) | vwellbcap | - | 3rd |
Page Down Area (section) | vwellb | - | 4th |
Slider (bottom end cap) | vbarb | pvbarb | 5th |
Slider (middle section) | vbarmid | pvbarmid | 6th |
Slider (top end cap) | vbart | pvbart | 7th |
Page Up Area (section) | vwellt | - | 8rd |
Page Up Area (end cap) | vwelltcap | - | 9nd |
Toggle Size icon2 | ticon, ticon1 | pticon, pticon1 | 10th |
Adjust Size icon3 | sicon, blicon | psicon | 11th |
Note: All these icons have to be the same width.
Description | Un-clicked | Clicked | Plot Order |
---|---|---|---|
Scroll Left Arrow | licon | plicon | 1st |
Scroll Right Arrow | ricon | pricon | 2nd |
Page Left Area (end cap) | hwelllcap | - | 3rd |
Page Left Area (section) | hwelll | - | 4th |
Slider (left end cap) | hbarl | phbarl | 5th |
Slider (middle section) | hbarmid | phbarmid | 6th |
Slider (right end cap) | hbarr | phbarr | 7th |
Page Right Area (section) | hwellr | - | 8rd |
Page Right Area (end cap) | hwellrcap | - | 9nd |
Note: All these icons have to be the same height.
Annotations
fn1. These Title Bar icons must be have the same width, but can be have different heights.
2 The Toggle Size icon must be have the same height as the icons in the Top bar and Horizontal scroll bar (see above and below). Two different icons may be used depending on the state of the window (maximum size or previous size). The width of these icons must also be the same as that of the vertical scroll bar.
3 The blicon sprite is used when it the Adjust Size icon is not present but both horizontal and vertical scrollbars are shown.
To So ensure that some icons do not overlap others and results so in produce an unwanted effect, effects, it is necessary for some rows and columns to be made transparent.
The table below details which icons must be designed to cater for this.
Description | Location | Transparency |
---|---|---|
Back icon | Top Bar | right edge 1 pixel |
Close icon | Top Bar | right edge 1 pixel |
Title bar (left end cap) | Top Bar | solid |
Title bar (right end cap) | Top Bar | solid |
Toggle Size icon | Vertical Scroll Bar | left edge 1 pixel |
Adjust Size icon2 | Vertical Scroll Bar | top edge 1 pixel |
Scroll Up Arrow | Vertical Scroll Bar | top edge 1 pixel |
Scroll Down Arrow | Vertical Scroll Bar | top edge 1 pixel |
Page Up Area (end cap) | Vertical Scroll Bar | solid |
Page Down Area (end cap) | Vertical Scroll Bar | solid |
Scroll Left Arrow | Vertical Scroll Bar | left edge = black vertical |
Scroll Left Arrow | Vertical Scroll Bar | right edge 1 pixel |
Page Left Area (end cap) | Horizontal Scroll Bar | solid |
Page Right Area (end cap) | Horizontal Scroll Bar | solid |
Icon sprite sets can be further sub subdivided divided into 7 categories. They are:
# | Category | Most Commonly used Icons |
---|---|---|
1 | Filer Icons | directory, directory, directoryo, small_dir, small_diro, small_app, file_xxx, small_xxx |
2 | Icon Bar Icons | switcher, !configure, display, floppydisc, harddisc, ramfs, romapps, small_fs, network |
3 | Dialog Box Icons | yes, no, dontcare, radiooff, radioon, optoff, opton, tick, up, down, left, right, tick, ←, → |
4 | Pointer Icons1 | ptr_default, ptr_double, ptr_menu, ptr_write, ptr_hand, ptr_direct, ptr_cross, ptr_confirm |
5 | Pinboard Icons | ic_edit, ic_filer, ic_draw, ic_paint, ic_? |
6 | Application Icons | !Draw, !Edit, !Paint, etc… |
7 | Miscellaneous Icons | error |
Each icon set (!Sprites22 etc…) should be have styled a as similar as style. possible.
Text is not recommended in system icons.
Icons should not attempt to be photographic photographic-quality quality pictures. They should be clear, iconic representations of whatever their is referends. trying to be communicated.
To The define the active point of a pointer pointer-icon, icon, the pixel should be set as to a transparent mask. pixel, If if the mask is present.
To System icons get the drawn fastest method when of drawing system icons, it is recommended that the most iconset appropriate icon to set the be screen mode is used. That is, the same number of bits per pixel should be the same as the screen mode mode. with which they are to be used.
The Wimp caches all the memory addresses of all the icons in use so that it does not have to search by sprite name. The cache is updated after an screen mode change or*ToolSprites equivalent command.
To Searching further speed up searching for the most common icons by is the faster Wimp, when they should are be placed at the beginning of the |!Sprite file.
From RISC OS 3 onwards, the Wimp utilizes uses a module called ColourTrans when preparing sprites for plotting plotting, so that it can map the sprites logical colours are mapped to the actual available colours.