This program is freeware. You may distribute it freely (provided that all files are left in their original state), but all copyright remains with me, Steve Potts.
The latest version of the software should always be available from:
Although every effort has been made to ensure this program does not crash ungracefully or otherwise, I will not be held liable for your use / misuse of this program. You use this program entirely at your own risk.
This was primarily written as an exercise in programming with the Toolbox modules using BBC BASIC. I also wanted to produce something which was slightly useful too though. I'm sure there are other programs out there which do a similar job as this one, but I wrote this for *me*. It just happens that you have found a copy somewhere. Although this is freeware, any donations will be gratefully received.
The program allows the user to specify a number of pictures (basically sprites, although RISC OS 4 supports JPEGs for Pinboards too) to be used as a RISC OS Pinboard backdrop and to specify whether those pictures should be centred, scaled or tiled as backdrops. Then at configurable intervals whilst the program is running, it will change the backdrop randomly to any picture in the configured list.
If you have never used this application before, then all you need to do is copy it to the directory of your choice and run it from there. The program will configure its own defaults, from which you may then begin to customise the configuration.
If you find that a warning about ABCLib appears, this means that you system does not have a version, or a version recent enough of the ABCLibrary for the program to run. A copy of this is supplied within the distribution archive, follow the instructions in the ReadMe file to install this.
If you are upgrading from an earlier version (from 1.24 or later) you should be able to just copy the new version over the top of the existing one and any components which require updating should be automatically updated (If you have the "Newer" option set in the Filer). If you do not have "Newer" set in the Filer configuration, then all files will be overwritten, but from version 1.24, no default Backdrops file is supplied, so your configuration *should* be preserved.
From version 1.31 the backdrops file no longer lives within the application. This change should have been made much earlier but kept falling down the priority list. The application will transparently migrate your settings to the "Choices" area of the Boot Sequence when you first run 1.31 or later.
The easiest way is to drag and drop picture files onto the window and then use the save button to have them be remembered next time the program runs. You can modify the choices text file in BgrndCtrl's Choices directory if you prefer (this was the only way to configure things in early versions), but read the information about the file format first.
This program is based around a text file configuration. The file consists of a list of full pathnames to pictures on your system, with an attribute as to whether they should be centred, scaled or tiled.
From version 2.xx, the file format also includes support for a dynamic directory entry or Pinboard Text Colour.
The file format is very precise and anything other than that specified will result in unexpected behaviour of the application. In the future, the program will be made more robust to deal with incorrect file formats, but for the moment....... YOU HAVE BEEN WARNED!
If you run BgrndCtrl as supplied, it will install itself onto the Iconbar and wait for you to configure it. As supplied, the program will create a default backdrop configuration file containing a single entry.
Clicking with the Select mouse button on the Iconbar Icon will open the configuration window. This is the heart of the program where most settings are edited.
At the top of the main window is a display field listing the currently selected backdrop (or dynamically read directory), to left of this are two arrows which allow you to scroll through the list of configured Backdrop pictures. Below this is a summary of how many pictures there are in the list and which one in the sequence the current one is. Just to the right of the summary icon are three Radio option buttons. These specify how the current backdrop will be displayed on the Pinboard.
Below the Display field, summary icon and display option buttons are four buttons which assist in configuration. The "Try Now" button will attempt to display the selected picture file with the selected display option on the Pinboard. "Random" will choose a picture from the available list at Random and attempt to display this (with its configured display setting) on the Pinboard. "Remove" takes the current Backdrop out of the list - if it is the only one present, a default entry will be added in its place. "Open Dir." Will open the directory containing the currently selected Backdrop picture, or if the current entry is a directory, this will be opened.
Further down the window, we have "Global Settings". These operate on the application or configured pictures as a whole as follows:
Change every (s)
determines the interval between automatic, random backdrop changes. This can be adjusted with the up and down arrows.
New backdrops will be:
determines what the default display option for newly dropped pictures or directories of pictures will be. This can be changed at any time to apply different defaults to groups of dropped pictures.
Instant effect
determines whether buttons within the "Current Backdrop" section of the configuration window will take immediate effect with regard to the Pinboard's displayed Backdrop picture.
All...
All Centred, All Scaled and All Tiled will go through the current list of backdrop entries and set all to the relevant option.
Save
Saves the current list of backdrop configurations for all pictures in the list, along with their configured display settings. Also saved are the settings for "Change every (s)" and "Instant effect".
Cancel
Will restore the last set of saved backdrops, losing any changes made since the last save.
Set
Will close the Choices window leaving the current unsaved settings active but unsaved. Cancel would still restore the previously saved settings at any time later.
Addition of new pictures is simply a matter of drag and drop of either individual files or of a directory containing pictures onto the main window or the Iconbar icon. If a directory is added, all files within that directory which are sprites will be added to the list of available Backdrops.
If you decide to put this into your boot sequence to run at start up, then be aware that the Pinboard may finish initialising after this program has started and therefore the initial backdrop may be overwritten by the Pinboard settings. On RISC OS 4.02, this can be corrected by commenting out the last line in
!Boot.Choices.Boot.Tasks.PinSetup
This last line issues a *Backdrop command and overrides the BgrndCtrl setting, which may have got in first.
More recently I've added a couple of command line switches which may be used to change the behaviour of the application when it is run. The switches are used in the Run command of the !Run obey file within the application. The two variants are in the file but commented out.
-quit
causes the application to run, set the backdrop and then immediately quit (only useful if you ensure that the RISC OS Boot sequence does not override this).
-noicon
Removes the Iconbar icon from view but leaves the application running with the parameters that have been setup. From version 1.22, if started in this mode, the icon may be restored to the Iconbar with a hot key combination which hides or restores the Iconbar icon. The hot key combination is CTRL and the minus sign "-" (^-).
From the Iconbar menu, you can load up this help file by clicking on the Documentation menu item from the Help Submenu.
Also on the Iconbar menu is an option to Hide the Iconbar icon, an option to randomly select a Backdrop and "Choices", which will open the main window.
The main Choices window has a menu of its own. This also gives access to Hide Icon and Backdrop options. Also on this menu is Help, which loads the interactive help system. This is equivalent to selecting Help, Interactive Help from the Iconbar menu. Finnally, you may also quit the application from this menu.
The first line of the backdrops file (inside <Choices$Write...> ) should contain a number which is the number of 1/100ths of a second between each picture change. For 30 seconds, the number should be 3000 (30 100ths). All subsequent lines, each denoted by a line feed character (ASCII 10), should contain a text string specifying the pathname, followed by a comma, followed by either a C, T, or S to specify Centre, Tile, or Scale.
For version 2.00 and later, picture definition lines may have a "D" directly following the "C", "T", or "S", with the "D" signifying a Dynamic Directory entry rather than a picture itself.
The file must not contain any blank lines, even at the end.
The original backdrops file lived inside the application. This is now depreciated and backdrops are stored in <Choices$Write> (within the Boot sequence choices area by default). If a backdrops file is found there, any backdrops file within the application will be ignored.
From version 2.03, a new feature was added to support specification of Text Colour for icons on the backdrop. Backdrop files from this version also contain the colour specification, following the C, T, or S. Dynamic directories do not support this feature and will always be white text.
Special Thanks got to the following people who've taken out some time to test the application on machines I've not got access to and / or who've provided constructive feedback, bug reports and feature suggestions:
Colin Sutton
Ruth Gunstone
Tim Powys-Libbe
Andrew Pinder
Steve Fryatt
Andrew Hill (Drew)
John Cartmell
This section lists the history of the application's development.
Released only to one person for comments & feedback. Functioning, reads data file and randomly changes background at specified intervals but no where near finished. Basically nobody should have this version. If you have, destroy it now!
Added display update of "change every" field, more comments in the code. Wrote this !Help file.
Improved Error Handling / graceful exit if no datafile found. Removed some debug code. This is a special version which basically nobody should have.
Re-coded random function. Improved error handling. Convert Iconsprite to 256 Colour (displayed blank in 256 Colour modes) - intended release to Archive Magazine.
Last minute bug fix.
Completed implementation of time adjustment in configuration window. Added Random button for instant random change of backdrop (and update to window to reflect the random change).
Fixed typing error in error handler ("%" was appearing in error messages)
Fixed minor bug - When Random was chosen, it was correctly setting the backdrop and icons in the control window, but not updating the currently selected item number for other operations, so "Try now" acted upon the currently selected item, which was out of step with the new randomly selected backdrop. Also changed the initial display of the control window to show the randomly selected entry at startup. Took out erroneous space at end of a line in the default config file (caused a beep due to incorrect file format).
Fixed bug - Upon a timed random background change, the control window didn't update the "current" backdrop field, but did when clicking "Random". Moved code which updates the icons to within the "makebackground" procedure instead of calling just prior to it.
New Features: Drag & Drop addition of pictures (filetype restricted), plus removal with 1 click. Addition of information in the control window (Picture X of Y). Addition of "default" picture feature if all others are removed.
Based on feedback, added various features: "Adjust Click" to Iconbar icon for random change to backdrop without opening the setting window. Help and Choices options to Iconbar menu. Configurable "Instant effect" to drag drop & Radio icons. This uses Choices$Write to remember the setting. Prevent more than one copy of the program running at once. Added change monitoring (put a "*" in the title of window when changes are not saved). Plus warn if quitting without saving. Created a better default sprite. Put check in to prevent looping error if configured pictures are not found. Time limited version for testing.
Fixed problem in !Run file - if application hadn't been Filer_Booted, then "Unknown Operand" error was given when checking if already running.
Removed preconfigured picture files, due to the fact that these contained specific references to a Hard Drive & IDEFS. Updated the !Help file (now refers to drag & drop configuration).
Added check to prevent random backdrop if only1 item is configured.
Added support for parameter passing from command line / Obey file - to facilitate "-noicon" option when loading the application. Plus a "Hide Icon" entry on the Iconbar menu. Removed "!" from taskname in resources file. Tidied up code variables. Added online help to items where it had been missing.
Published & removed time limit feature.
Added "-quit" feature. This allows the program to run only once, change the backdrop and then automatically quit. Aimed at people who use the application during Boot. Updated this help file to briefly explain the switches.
Minor change to behaviour of "Instant Effect" to allow instant changes for removal of pictures (updates backdrop to match current picture in the configuration window) and also to include scrolling up and down the list of pictures. Also modified Iconbar menu to ignore clicks on "Info" item - to avoid floating Info window. Minor adjustments to Interactive Help messages.
Recreated !RunImage to be 32-Bit compatible. Tested on the A9 Home computer.
Implemented DCS Quit compliance - Warns of unsaved changes when quitting, in Multi-tasking Dialogue box.
Minor Bugfix to loading procedure to ensure that backdrop always reflects choices window after a load, if "Instant Effect" is switched on. More cosmetic changes - Added a menu to the main window. Added Website button to Program Information window.
Completed / Fixed DCS Quit compliance with regard to desktop shutdown protocol. Now interrupts / resumes shutdown as appropriate.
Added Hot Key to hide and reveal Iconbar Icon (^-). Updated Sprites. Attempt to fix problem with lack of support for UnsqueezeAIF on the Iyonix PC - currently untested on either Iyonix PC or A9Home though.
Changes to !Run to attempt to resolve "There are still DCS tasks active" error. Also does not demand version 1.17 of DCS_Quit as this seems to be too high for some.
Added new global Centre, Scale and Tiled buttons. Redesigned main window and added scroll bar / toggle size. Tidied up code and debugging information. Added Load and Save (With F3 Short Cut) to the Configuration Window's menu. Updated this help file with extra features and more detail about existing feature use (previously relied on people reading the Online Help). No longer supply an empty backdrops file, as this is generated when required within the application (therefore you don't loose your settings if you upgrade the application). Added Thanks Section to this file.
Fixed no random backdrop bug if used with -quit option.
Fixed bug with silent starting (-noicon parameter) ignoring keyboard shortcut to access Iconbar.
Added Keyboard Short-cuts for Random Backdrop (CTRL+B) and Close Window (CTRL+F2). Added Low Resolution Sprites file for use on Bush Settop Box.
Slightly increased Wimpslot due to heap becoming full under certain scenarios.
Added Backdrops file backup feature - backdrops file is renamed before a new version overwrites the current one. Not publicly released.
Added support for User specific backdrops (stored in Choices directory), with option to switch between User or Global backdrops file. Not exhaustively tested but works in conjunction with Instant effect feature. The status of Instant effect used to only get saved when the backdrops were saved, now it is instantly saved - along with the User / Global Backdrops setting. Finally spell checked this !Help file! ;-)
Overhauled User Interface in line with user suggestion / More Style Guide compliance. Added Default Display Option for newly dropped in backdrops. Added up / down cursor key shortcuts for navigation of backdrop lists. Ensured global keypresses were ignored if Window does not have focus (except for Hide Icon and Random Backdrop). Added transparent migration of user settings to <Choices$Write> if they don't already exist there. Incomplete.
Implemented Escape Key Cancel in Settings window. Implemented Setting of Window Focus on Window / Gadget Clicks. Implemented Settings window F1 Help shortcut (now loads Interactive Help instead of application !Help file).
Removed support for user selectable backdrops location and removed icons from settings window to more closely match the Style Guide. Renamed "Settings" window to Background Control "Choices".
Added support for dynamic reading of directories, with many adjustments to cope with this significant change. Wanted to do this for a long time, but never quite got around to it, due to the nature of changes required.
User now has a choice whether to statically add files from a directory (as previously handled) or whether to dynamically use the directory and read files within it each time a backdrop is called for. This version of the application will upgrade older backdrops files as required, but older versions will not cope with new backdrops files that use dynamic directories.
Added visual percentage Slider to indicate current backdrop displayed and to allow user to directly jump to any entry in the list of backdrops without the need to scroll through all entries. Testing Incomplete.
Improved internal tracing and included a couple of stability fixes to prevent certain things from failing much earlier.
Fixed bug with file existing detection code and improved robustness of file handling, will not give "Access Violation" in certain circumstances where it did previously. Fixed minor bug with dynamic reading of directories when looking for suitable pictures. Fixed minor bug with popup window displaying partially off screen in some circumstances.
Removed time limitation of the application.
Fixed "Heap Full" error when dropping lots of picture files onto the application.
Added Pinboard text colour selection for individual files. Dynamic directories are fixed with a text colour of white. Restricted Release.
Added support for "Instant effect" checking on Text Colour changes. Updated Interactive Help messages on various windows. Fixed !Run file to RMEnsure ColourDbox. Updated this help documentation.
Allow PNG files to be used in addition to Sprite and JPEGs.
Improved error checking around missing backdrop files.
Fixed bug with "-quit" switch functionality not working on command line in !Run.
Updated this documentation. Increased the Wimp Slot and improved code efficiency slightly. Fixed hang when 120 (ish) pictures was reached.