Pointer sets
A pointer set is up to 17 pictures, one for each role Windows has a pointer for. Stillward draws sets from SVG at exactly the size they are shown, so a pointer is as sharp at 150% as at 100%, and on a second monitor at another scale it is drawn again for that monitor.
The roles
Name each file after its role: Arrow, Help, AppStarting, Wait, Crosshair, IBeam, NWPen, No, SizeNS, SizeWE, SizeNWSE, SizeNESW, SizeAll, UpArrow, Hand, Pin, Person. The program also recognises the usual names other sets use (normal, link, busy, text and so on), and reads install.inf when a set has one.
Drawing one in SVG
- Draw on a
viewBox="0 0 32 32". The program scales the drawing to the size each monitor needs, from 16 to 256 pixels. - Put
data-hotspot="x y"on the root element: the point that points, in the drawing's own units. Without it, the arrow and the hand point with their topmost pixel, the pen with its lowest, and the rest with their middle. - The point is in the drawing's own units, whatever size the editor exports it at: a drawing saved at 64 px or in millimetres keeps its point.
- For a pointer that turns while it waits, put
data-spin="x y"on the root andid="spin"on the part that turns. It becomes a 24-frame animation that turns once in 1.2 seconds. - For a pointer of your own frames, give each frame an id:
id="frame-0",id="frame-1"and on, up to 64. One shows at a time, in the order of their numbers, each for itsdata-ms(100 ms when it does not say; 17 to 10000). What is outside every frame shows in all of them. - Use real colours, or the words
$fill,$lineand$accwith the colours named in the set'sscheme.json(below). A thin dark edge around a light outline keeps it visible on white. - Shapes only: text and pictures inside a drawing are not drawn, and a drawing cannot reach for a font or another file. Each file is at most 512 KB, no number in it may pass 10,000,000, and it may come to at most 20,000 shapes once every
<use>is unfolded: a drawing past either would take the program seconds to draw.
The template is the house steel set with its colours written in. Change the shapes, the colours or both.
The set's file
A set is a folder: the pointers and a scheme.json beside them. The template has one; change its name.
{
"$schema": "https://stillwarddisplay.com/schema/pointers.json",
"name": "Steel, rounded",
"files": { "Arrow": "Arrow.svg", "Wait": "Wait.svg", "Hand": "Hand.cur" },
"paint": { "fill": "#dde3ea", "line": "#1b2027", "acc": "#4f7299" },
"hotspots": { "Hand": [9, 2] }
}
files: a role and a file in the same folder. A role left out shows the person's own Windows pointer for it.paint: what the colour words in the drawings become, plus an optionalhalo, the edge drawn round the whole pointer. Or"accent": trueto paint them in the person's Windows accent colour.hotspots: the point that points, by role, over the drawing's owndata-hotspot; for a.curor.ani, in pixels of its largest picture. A file with points is version 2.- At most 64 KB. The schema is at /schema/pointers.json.
Checking a set
stillward-display.exe --check <folder> says, pointer by pointer, whether the program would take it, what it would draw, which roles are left to Windows and why anything was refused. Nothing of the program starts.
Importing and publishing
On the Pointer page, Choose files takes SVG drawings, .cur and .ani files (up to 8 MB each) and install.inf. Every file is read and written again by the program before Windows sees it, whoever made it, and the same happens to every set that arrives from the Workshop. An imported set has Publish; share only a set you drew or may share.