ALARM APPLET
============

This is a very simple applet that provides a way of notifying you
that a particular time has arrived. It allows you to display a dialog
box with a message in it, execute a command, play a sound file or 
make the applet flash on and off at a particular time of day. 

This all came about because on numerous occasions there has been something
that i needed to be doing, but was late for because i had become engrossed
in programming something or other. Well, here is a little panel applet
that should hopefully help. It might even help keep a few girlfriends 
happy :))


All code is released under the GPL license. See the file COPYING
for more details.


The pixmaps that are currently used are from the another_clock 
applet that comes with the gnome packages. So credit for those should
go to the respective people.



USE
===

As of version 0.8 there are four different types of alarms. 

Dialog:
The dialog option pops up a dialog box in the center of your screen when
the time arrives. It can be used to display a message of your choice.

Visual:
This causes the applet to flash red. To stop the alarm simply double click
on the applet with the left mouse button.

Command:
This is used to run the specified command at the required time.

Sound:
This will play a looping sound file (.wav only !!) at the time the
alarm is set for. To stop the alarm simply double click on the applet
with the left mouse button.



Clicking the button on the applet provides a popup list of the alarms
that are currently stored. In future versions you will be able to 
modify alarm properties from this list.



PROPERTIES DIALOG
=================

The properties dialog allows you to modify several options relating
to the applet. 

The alarm check timeout defines how many seconds between when the list of
alarms is checked to see if one should be activated. 

The alarm redraw timeout is used to control how quickly the applet will
flash when a visual alarm is ringing.

The sound file option allows you to select which sound file will be played
when a sound alarm is selected. This sound will be used for all sound
alarms at the moment. Later i may allow you to select which file for each
alarm individually. This option may also be changed by dragging and dropping
a .wav file onto the applet.

The animation file option doesn't work at the moment. It may be implemented
later.

The volume level is used to control the sound level for sound alarms.



LIMITATIONS
===========

The sound file that is used for sound alarms can be changed on the fly
and the next sound alarm will use the new file. This may or may not
cause a memory leak if you change the file a lot, so be careful for the
moment. ;)


The volume control doesn't work yet, so you'll have to change that manually
using a mixer program.


I have only tested this applet myself, so there are probably bugs that
i haven't found yet, or better ways of doing things. If you find any,
then let me know :)) (igbarn@yahoo.com)


If you compile the applet withou sound support, the option to have a
sound alarm is still available, although it doesn't actually do anything.
I could sort this out by putting loads of #ifdef's all over the place,
but i happen to agree with Linus that it makes for ugly code which is 
difficult to maintain, so for the moment ... lump it !!!



APPLET HISTORY
==============

0.1

Basic applet. Flashes on and off.


0.2

Rewrote to clean up design.

Added the dialog stuff and added basis for sound alarm support.


0.3

Added alarm list button. 

Cleaned up dialog for adding alarms and added command alarm type


0.4

Minor bug fixes and a few minor layout changes.


0.5

Fixed a few minor problems.

Added simple DND support. Still need to finish it off though


0.6

Added the ability to remove alarms from the list


0.7

Fixed the bug where the applet would segfault if it was closed with 
the very first alarm still in the list.

Added simple properties that allow you to set the number of secs between
checking of the list of alarms to see if one should be activated. Also
added value for the speed at which the visual alarm should be flashed.
Not really necessary but nice non the less :))

Added functionality to the extra menu entry when looking at the alarms.

Still need to get that bloody sound option working. Must get around
to that SOON !!!.


0.8

Modified the main callback function to be a little better. Allowing
multiple alarms at the same time. This was partly needed because of 
the new persistant alarms feature.

Added persistant alarms. These are inter-session and will survive 
between reboots. Now this thing can wake you up at the same time
every morning :))

Finally (YEAH !!!) got the sound alarm working. Might be a tad flaky
though, so let me know of any problems.

Improved the layout of the properties dialog and added a few more
options. The volume option doesn't yet work.

You can now drag a .wav file onto the applet and it will be used
for the sound alarms.


0.8.1

Fixed a stupid bug/mistake by me where the applet session information,
such as it's position on the panel, wouldn't be saved. All because of 
one line ;-)


0.8.5

Got the volume control for the sound alarm working. It's probably not
totally right, but it kinda works ;) ie. it changes the loudness !!!


0.8.6

Slight cosmetic changes, and a few modifications to try and sort out
the problem that started when using gtk+-1.2.4 where the popup window
would trigger a gtk_widget_size_allocate error every so often. Rewrote
the show_popup_dialog method which solved the problem.


0.8.7

Added support for panel orientation, so that now the applet will stack
vertically on a vertical panel. Added an option to show or hide the 
'blob' that is used for the visual alarms if you don't want it.

Reduced binary size slightly by properly defining some functions static.

Changed dialog so that if the 'blob' is hidden then you can't add a 
visual alarm, which seems sensible, and if the applet isn't compiled
with sound support, you can't have a sound alarm.
