A Theme Manager for RISC OS
===========================


Overview
--------

This is a Theme Manager system for RISC OS. It is currently being developed for RISC OS 4.02 onwards. It consists of two elements:

- a !Themes application. This contains individual Theme Directories, which store the data needed to change the Desktop appearance. Place this in !Boot.Resources.
- a !ThemeMan theme manager application. This should go in !Boot.Resources.Configure.

(N.B. Version 1.01 of !ThemeMan was a bit different. If you installed this previously, please delete it.)

When in use, the system also involves writing a small file to the Choices directory according to RISC OS guidelines. No other files are installed or needed.

Once these two applications have been copied on to your hard drive, you're ready to go.


Selecting a Theme
-----------------

Once installed, you can run the Theme Manager by opening the Configure control panel (double click on !Boot in your main hard drive folder, or select 'Choices...' from the switcher icon). If running for the first time, there may not be a selected Theme (or even any installed Themes), so the field will be set to [No theme]. If there are installed Themes, you can select them from the drop-down menu. Clicking on 'Use' will make this the selected Theme. The desktop will then update.

Once a Theme has been selected, Configure will add a small file with the name of the selected Theme to the current user's Choices directory (Choices$Write.Themes.Choices). Next time the computer boots-up, the Desktop will check to see if there's a chosen theme, and if so will automatically update the desktop to reflect your selection. If you wish to select a different theme, or stop using themes and go back to the RISC OS defaults, use Configure again to alter your choice.


What's in a Theme?
------------------

Currently, Theme Directories control these visual aspects of the Desktop:

- Desktop icons
- Window tools
- Window textures, colours and 3D settings
- Button colours and border settings

The final option is only active in RISC OS Select. All other settings should work in any version of RISC OS from 4.02 onwards. For technical details of what settings are controlled, see the Docs folder within !ThemeMan.


Installing new Themes
---------------------

You can add as many new themes as you like as long as they are in the standard Theme Directory format. Simply drag the directory into the !Themes.Themes directory. Next time you run it, !ThemeMan will know about the new Theme Directory and will allow you to select it.


Creating New Themes
-------------------

Detailed notes on how to create your own themes, or alter settings in existing ones, are included in the Docs folder inside !ThemeMan.


Uninstalling the Theme Manager
------------------------------

To remove this program from your system, delete !ThemeMan from whichever location you've unpacked it to, and then delete !Themes from !Boot.Resources. This will prevent any themes being loaded and will restore your system start-up to its previous state.

If you want to be extra tidy, you can also delete the small text file in your Choices directory too (even though it's fine to leave it there). The location of this varies according to the OS and set-up you have. If you don't know where it is, open a Task Window and type:

*dir choices:
*ex

This will produce a list of the contents of your Choices directory, including its full pathname. You can now go to the named directory yourself and manually delete the Themes folder.


Taking advantage of the Theme system in Applications
----------------------------------------------------

A system variable, <Wimp$IconTheme> is set by !Themes. This will be the name of the theme, or '[No theme]' if one is not installed. Applications can make use of this to load suitable sprites if they wish to conform to the user's currently selected theme.


Current Issues, Plans and Omissions
---------------------------------

- The pointer settings are not preserved across a Theme Change: this is being looked at.
- WimpBorderIcon attributes are not all currently implemented.


Comments
--------

Comments are welcome: please send thoughts for improvements to cdwraight@yahoo.co.uk.


Little Yellow Moon, 2008.



