HISTORY OF CHANGES TO NewAlarm

--------------------------------------------------------------------------------
v100	April-June 1999
	Unreleased version.
v101	Rewrote whole program to avoid use of DrWimp library (which was
	invaluable during development) and hence reduce Wimpslot.
	Provided option to configure repeat time/interval (see !Run file).
	It's intended to be program-friendly, not user-friendly.   If you
	don't pass any parameters it will revert to the old default (repeat
	every 5 minutes).
	You are no longer offered the option to repeat every 0 minutes!
	Fixed minor bug where window title was updated on change but not
	actually redrawn.
	Fixed AM/PM bug where 'twenty-five to midnight' counted as 'AM'
	(because the hour was counted as 'midnight' and not 'eleven')
	Fixed very stupid bug caused by typing ptr%?7 twice, instead of
	ptr%?7 followd by ptr%?8
v110	(1st April 2000)
	Alarms due to go off on the current day are now listed in red at the
	top of the alarm list window (to let the user know what his commitments
	for the day are!)
	Corrected lazy redrawing of alert window  should no longer be
	corrupted if other windows pop up on top of it.
	Program now beeps continuously while alert window is open (in case you
	were out of the room when alarm went off)
v111	(17th April 2000)
	Changed syntax of call to OS_GetEnv since this proved to be causing
	problems on a machine with 64Mb RAM.
v112	(1st June 2000)
	Corrected silly bug where alarm list was sometimes redrawn incorrectly
	if two or more alarms had been deleted since first running the program.
	Added key shortcuts  CTRL-R to toggle the repeat window and ESCAPE to
	abandon creation/editing of an alarm.
	Task alarms now concatenate the text from all three icons in the 'Set
	alarm' window instead of only reading the text from the top icon (thus
	implementing a 120-character command line rather than the previous
	almost unusable 40-character command line), allowing you to split long
	pathnames across several lines of text.
v113	(3rd June 2000)
	Rationalised handling of repeat window.   'Reset' button now also
	clears settings of repeat window (to user-defined default).   Clicking
	on 'Cancel' button or close icon of 'Set alarm' window' or pressing
	ESCAPE now clears setting of 'Repeat' icon.
v114	(9th June 2000)
	The 'next repeat' date displayed when a repeating alarm goes off now
	takes into account the valid weekdays set for that alarm;  i.e. a daily
	alarm defined as 'Mondays to Fridays only' will not claim on Fridays
	that the next repeat will be on Saturday, when in practice the alarm
	would be suppressed on that day.   Note that this is a purely cosmetic
	bug - alarms have always gone off correctly, despite the fact that they
	occasionally claimed otherwise!
v115	(15th June 2000)
	[This is getting silly!  6th minor update in last 1 months....]
	Passing of parameters in !Run file is now handled using OS_ReadArgs
	instead of my own custom procedure, allowing parameters to be assigned
	names (-repeat and -interval) and specified in any order.   More robust
	and slightly more user-friendly.
v116	(24th June 2000)
	"days", for red-text purposes, now run from 4am to 4am rather than from
	midnight to midnight.  Alarms set for the small hours are essentially a
	continuation of the previous day and it is more helpful to show them as
	such.
v120	(26th June 2000)
	Major desktop font upgrades:    text of all three icons now appears in
	alarm list window (a slight disagreement over what constitutes a string
	terminator between BASIC and Wimp_TextOp there)!   Maximum width of
	alarm list window now takes into account width of alarm text in desktop
	font.   'Date', 'Time' and 'Message' icons now filled in order to force
	the WIMP to anti-alias them with the correct background colour.
	Altered width of icons and repeats window to allow for desktop font.
	I really should have noticed all these before....   You can tell I use
	the system font myself, can't you?   :-)

	Editing a repeating alarm used to cause the repeat setting to be
	removed.   This bug, introduced (I think) in v113, now fixed.
	Repeating alarms marked in alarm list by a triangle on the left of text.
	Red text in alarm list window for all alarms prior to 'tomorrow', not
	just for current day  i.e. includes 'expired alarms' from previous
	days if you haven't run the program for a while.   Speeds up redraw
	slowed down by all the upgrades above....
v121	(16th August 2000)
	Very minor upgrade  time display now updates on mode change (i.e. you
	no longer have to wait up to a minute after  quitting a single-tasking
	application/game before NewAlarm 'catches up'.   After resetting the
	internal clock, just press F12 then RETURN to force an update.
v122	(3rd September 2000)
	Fixed two things that irritated me:
	 Finally got round to implementing proper 'Save'/'Cancel'/'Discard'
	options for unsaved data on shutdown.   During the course of this I
	ended up rewriting the handling of the main poll loop and implementing
	proper Message_PreQuit and desktop shutdown handling at last.
	 The alert and shutdown warning windows now give the input focus back
	when they have finished with it!
	Also removed close icon from edit alarms window in accordance with
	Style Guide (& in order to prevent perversely-minded persons from
	iconising it).
v123	(4th November 2000)
	Noticed that during desktop closedown the pointer was still confined to
	the shutdown window area even after NewAlarm had quit - causing
	problems with any error boxes subsequently displayed by other programs.
	The third line of the alarm text for repeating alarms was being
	displayed too close to the OK button in the alert window.   Moved all
	alarm text 26 OS units up window (you really wanted to know that,
	didn't you?)
v124	(1st December 2000)
	BUG FIX: error handling no longer closes ALL open files (oops!)
	Changed handling of alarms list - no longer resized to maximum every
	time you edit/create an alarm, and no longer opened initially as a
	'temporary window' (menu).
	Position and size of alarms list is now saved along with its contents -
	every time you run the program it should reopen where you last saved it.
	These changes finally make scrolling/resizing this window worthwhile!
v130	(15th December 2000)
	Major bug-fix which unfortunately later proved not to have been
	entirely effective....
	Minor change:  position of main window now saved along with position of
	alarm list.
v131	(11 May 2001)
	Fixed bug causing address exception when MENU clicked at very top of
	alarms list
	Alarms list no longer accessible as a submenu item - this proved
	incompatible with the new handling of this window introduced in version
	124 (and I never used it anyway).
	Vile bug finally fixed by RMEnsuring BorderUtils - turned out to be
	known RISC OS 31 problem, not my fault at all!
	Added 'Show most recent alarm' and 'Edit most recent alarm' options
	Altered 'Copy alarm';  copied alarm no longer created until 'OK'
	actually pressed in edit window
	Added 'Defer until next repeat' option
	NewAlarm now stores its alarm/position files in Choices:NewAlarm if
	available
	Suppressed MessageTrans errors
	Tweaked alarm sorting - repeating alarms are always sorted below any
	one-off alarms due at the same time
v132	(1st July 2001)
	Fixed minor bug causing flickering; screen area is now only marked for
	update if alarm list is actually open.
	Removed inadvertant recursion which used to cause the program to run
	out of memory if multiple alarms went off in succession.
	Cleaned up null-poll handling and deleted large sections of program -
	oh, I just love it when that happens!   The program now updates its
	window every 6 seconds instead of every 60 seconds, making it much more
	responsive while retaining what is in effect a zero processor load
	(particularly in comparison to, say, !Alarm...)
	Added 'autosave' option (set by default)
	Fixed 'Too far in the future' bug caused by Sliding_Heap sliding
	unexpectedly.
v133	(5th October 2001)
	Fixed 'feature' which allowed the mouse pointer to get lost off the
	edge of the screen after releasing it from constraint within error
	box.   I was under the impression that resetting to an infinite
	bounding box was the RISC OS norm.   It isn't!
	Instant update on mode change reinstated (from v121).   I had assumed
	the new six-second update would be fast enough not to be annoying when
	returning to desktop after single-tasking.   It isn't!
	No longer causes errors when <Choices$Write> is not writable, i.e. when
	FSLock is in use.
	Title bar update now only redraws actual titlebar area and *really*
	only takes place when the window is open!   (Bugfix from v132 above -
	I was checking for bits set in the window handle by mistake, instead of
	in the window flags...)
v134	(17th January 2003)
	Now supplied with updated 32-bit (Iyonix-compatible) SlidingHeap module.
v135	(15th April 2003)
	Now reads (correctly) from Choices$Path, instead of from Choices$Write
	as it has been doing for the last couple of years....
v136	(13th July 2003)
	Dragging ADJUST on the background of the main icon now drags the entire
	window as well as dragging ADJUST on the border.   Moved alarm list
	short-cut to ADJUST-double-click instead.
	Added Help option on main menu as per Castle's advice (and because I
	think it's a good idea).
v137	(12th January 2004)
	Moved all command-line options out from !Run file into a
	NewAlarm$Options system variable as per Edit$Options, etc.  This avoids
	the need to edit the !Run file to maintain non-default options every
	time a new version is released!
	Added a new option, by request:   "-nowindow", which suppresses the
	opening of the alarm display on startup.
	Added Castle's "NewAlarm$Title" etc. info system variables
	Split this History off into a separate file (it had come to occupy most
	of the !Help file) and moved all help files into subdirectory.   Added
	a dummy HTML file to satisfy Castle.
v1.38	(9th December 2005)
	Added special behaviour for ADJUST-clicks on 'OK'/'Cancel' icons as per
	Style Guide.   Edit window now remains open after function (i.e. create
	alarm/discard changed alarm data) has been carried out.   (ADJUST-click
	on 'Cancel' while creating a new alarm equals 'Reset' and is explicitly
	mapped to this icon!)
	Updated !NewAlarm.Generator file to work with alarm files stored in
	Choices$Write as well as those stored inside the !NewAlarm application.