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.
Visual Image Display is used to decide whether or not you want the 'blob' displayed or not. If you choice not to have it display then the visual alarm ption is disabled for obvious reasons.
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.
0.8.8
Tried to sort out the session handling properly. Started work on a total rewrite to allow inclusion of new types of alarms and some extra fancy features such as including GnoCal alarms and a speech type alarm. Don't hold your breath waiting for this though ....
0.8.9
Added patches from Bruno Pires Marinho that fixed a few things and changed a few things for the better.
NB. This will probably be the last release that contains bug fixes/features that have been contributed by myself. If i find any horrendous bugs then i'll fix them, but if you want anything added from now on, then you'll have to do it yourself and send me a patch. Any new releases of the current code after this will be based on this new system of code modifcation and delegation ;)
