FiliAgenda 1.5 written in november 1992 by Tako Schotanus Copyright (c) 1992 Tako Schotanus All Rights Reserved Public Domain ============= ============= This program is Public Domain, that means it may be freely distributed to anybody anywhere you like. It also means that it shouldn't cost you anything to obtain it. Nobody distributing this program may make money on it except maybe for a nominal copying fee. That nobody may make money on this program hold true for me too but I won't mind ofcourse if you want to show your appreciation by sending me money... but cards and letters will do the same (if not better) job. CONTENTS ======== ======== Public Domain General information about the program About the User Interface Adding new appointments to the Agenda Command line options Tooltypes when running from WorkBench Using the program for the first time Bug reports, suggestions, flames etc. General information about the program ===================================== ===================================== This is a preliminary release of both program and help guide/document! FiliAgenda is a commodity which can keep track of your appointments and special occasions you want to remember. It's especially written for 2.x systems and won't work on computers with a pre-2.0 operating system. FiliAgenda has all the properties of a normal commodity, ie. you can pop it up, hide, (de)activate and remove using the Exchange commodity and it has a hotkey to pop up the Event Editor in which you can add or delete your appointments. Several properties like if it should pop up on startup or if it should beep when something happens can be controlled with the command line when run from a shell or with its icon's ToolTypes when run from the WorkBench. Adding appointments to the Agenda is very simple, just enter the date and time of your appointment and an appropriate message and you're ready! But for the demanding user it's at the same time still possible to make highly complex constructions. Imagine for example a message telling you about a holiday which is on the 3rd tuesday of april or being warned about your favourite TV-program which starts at 7 o'clock but not on sundays! You can also use it to tell you about the birthdays of your friends and family, but the best is: it can remind you some days BEFORE that you still have got to buy a present! And all this in just one event, no difficulties with multiple entries, you just say: this is the date of the birthday and warn me 1, 2 and/or 3 days before. One of the special features supported by this program is that you'll be able to enter a primary AND a secondary event. The primary event is the one that will be shown in the list view. The secondary event can be used as a seperate thing used for a second message which related closely enough to the primary one to justify storing it in one event. But it's much more useful when used with the special addition only secondary events have: to ability to enter the date and time RELATIVE to the primary event. In this way it's possible to do what was said before: to get a warning a couple of days before the primary event activates because it's somebody's birthday. About the User Interface ======================== ======================== The following will be explained: - The list view - Buttons and other gadgets - Menu items - Selecting and changing events - The ShowID string The list view ============= When the Event Editor's window pops up you'll see a window a list gadget in the top middle part with a scroll bar. In this list your events/appointments will be displayed. The list is divided into three colums, the first showing a description of the event and corresponds to the contents of the Info string when clicked upon. The second column shows an identifier with which it's possible to group events with the same identifier together. This value corresponds to the contents of the ID string. The last colums displays the date or time when this event will next activate. It corresponds to the earliest date and time in the future the program could compute from the contents of the Date and Time strings. Buttons and other gadgets ========================= Hide - The Editor's window will disappear, you can pop it up again using the HotKey or the Exchange commodity. Save - The current list of events will be saved. Help - Display this help guide. The program 'AmigaGuide' should be in your C: directory. Quit - Quit the program. Changes made to the event list will be lost if you didn't save first! 1st/2nd - Switch between the primary and secondary event settings. The primary event is the one displayed in the list. Msg/Cmd - Switch between the message that should be displayed and/or the command run on activation of the event. Add - Add a new event to the list. See Adding a new event for more information on adding events. Del - Delete the currently selected event from the list. The action is immediate and can only be reversed by selecting 'Reset Agenda' from the menu BEFORE saving! ID - A short description identifying the event Info - A somewhat longer description about the event Date - The day at which the event should activate Time - The time at which the event should activate Msg/Cmd - The message that is to be displayed or the command that is to be run when the event activates. (See Adding a new event for more info on these strings) ShowID - Pattern telling the program which events to show. (See "The ShowID string" below) Menu items ========== Project Reset Agenda - Re-read the datafile containing the information about all events. Save Agenda - The same as the Save button Save Config - Save the current position of the Editor window and contents of the ShowID string. About - Shows some info about the author Hide - The same as the Hide button Quit - The same as the Quit button Extra Copy date to all - Copy contents of the Date string to ALL events in the list. Copy time to all - Copy contents of the Time string to ALL events in the list. Copy Msg/Cmd to all - Copy contents of the Msg or Cmd string (whatever to state of the Msg/Cmd gadget) to ALL events. Show last messages - Show last 30 messages. Useful if the output went to a console window which you closed. The "Copy ... to all" items in the "Extra" menu act upon all events that are currently in the list. So if you've used the ShowID string to show a subset of the entire list, eg. only Birthdays are displayed, only the ones shown in the list will be affected. Selecting and changing events ============================= To select a certain event you click on the appropriate line in the list view. Use the scroll bar to move the list up and down if the event is currently not visible. Make sure that the ShowID string (See below) is set to the proper value (or just set it to '*' to display ALL events), otherwise you might wonder where your event went. Once you've selected an event it's very easy to change it, just alter the contents of the strings displayed in the window. The ShowID string ================= This will make it possible for you to show only a certain subset of all the events in the list. The program will try to match the IDs of all the events against the contents of the ShowID string and only those that match are displayed. Multiple entries can be seperated by commas (,) and entries can end in a asterisk (*) to indicate that only the part before it is needed to match (eg. foo* matches foo, foo123 and foolish). The default for this string is '*' which means that everything matches. Adding new appointments to the Agenda ===================================== ===================================== When you click the "Add" button in the Editor window you'll be presented with new values in the string gadgets, most will be empty but "ID" will read "New" and "Info" will read "New Entry". You can now start entering your new appointment. ID == The ID string can be used to group appointments/event together, use a word of max. 8 letters to describe the event you're entering. (eg. "Birthday", "TV Serie", "Meeting" etc.). Info ==== The Info string can hold a more elaborate discription of the event. You can enter a sentence of up to 30 characters. (eg. The name of the person when the ID is "Birthday"). Date ==== The Date string takes the date when the event should be activated. It has the following format: // or - Where is a (set of) year(s) from 1992 to max. 2054. is a (set of) month(s). A month can be entered using a number from 1 to 12 or a 3-letter abreviation. These abreviations are the normal ones for the English language: Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov and Dec. is a (set of) day(s). A day can be entered using a number from 1 to 31 or a 3-letter abreviation of the day of the week. These abreviations are: Sun, Mon, Tue, Wed, Thu, Fri, Sat. In fact you would be entering four days at the same time if you used only the abreviation, therefore it's possible to add a digit from 1-5 after the 3-letter code, specifying which week you refer to. So it's possible to enter: Mon3, Fri1 or Sun2 etc. (To people wondering about why it should be possible to say Wed5 or Sat5 I point out that most months have more than 28 days :-) The second form ( - ) can only be used as the secondary event. (See About the User Interface for information on primary and secondary events) When used in this form the secondary event will be RELATIVE to the primary event. in this case means the number of days BEFORE the primary event will activate. will only take numbers not Mon, Tue etc. With , , and it's mentioned every time that it's possible to enter a SET of years, months or days. These SETs is what gives this program its flexibility when it comes to determining when a certain event is to take place. SETs take the following form: * or [,]... (ie. "mon,tue,fri,sun" etc.) where '*' means 'all' or 'any year/month/day' and where is: - (ie. "1992-1999") or - (ie. "mar-aug") or - (ie. "sun-wed") Using all this it's possible to make the following constructions: "*/jun-aug/sun" --> "It's a sun(ny) day in summer!" "1992/dec/4-6,24-31" --> "Presents!!!" (We've got special festivities in the beginning of december :-) "*/*/mon1" --> "The airial alarm sirens go off" (At least they do in Holland :-) Warning: the values in the sets will always be ordered from earlier to later dates. This means that "fri-tue" is the same as "tue-fri" and not friday and saturday of week one and monday and tuesday of week two as you might expect. Maybe this will change in the future, but it poses some problems (eg. what to do about "1992/12-2/*" --> "It's a winter's day!"? Month 1 and 2 not being in 1992 anymore!) Time ==== The Time string takes the time when the event should be activated. It has the following format: // or -// or Startup The format is the same as that of the Date string with the only differences that takes numbers from 0 to 23 and both and take numbers from 0 to 59. The second form (the one with the minus sign) specifies a time RELATIVE to the primary event. 'Startup' means that the event will be activated the moment the program is started on the day as specified in the Date string. Msg/Cmd ======= The Msg/Cmd string can take both a message to display and a command to run. The meaning of the current contents is dictated by the Cycle gadget in the right of the string which can be switched from "Msg" to "Cmd" by clicking on it. Both the message string and the command string can contain special symbols which will be replaced by text on activation. The following symbols are supported: %i - Insert the contents of the Info string %x - Insert the contents of the ID string %y, %m, %d - Insert the current year, month or day %h, %n, %s - Insert the current hour, minute or second %Y, %M, %D - Insert the year, month or day when the PRIMARY event will be activated. (Is the same as %y, %m and %d if the current event is the primary one) %H, %N, %S - Insert the hour, minute or second when the PRIMARY event will be activated. (Is the same as %h, %n and %s if the current event is the primary one) So if the Info string contained "Aunt Maud" and the Cmd string "It's %i's birthday today!" the result would be "It's Aunt Maud's birthday today!". This is very useful in combination with the Copy ... to all menu item, it's now possible to add a large number of the same kind of events (eg. birthdays) without having to type the same text in the Cmd string every time and still be able to distinguish between the events when they activate. The alternatives if this was not ossible would be to enter a different message for every event telling for example whose birthday it is, or to have one general message for all just saying that it's somebody birthday. Command line options ==================== ==================== The following command line options can be used when you start FiliAgenda from a Shell: CX_POPUP - Pop the window up on startup CX_POPKEY - The HotKey key combination (default:CTRL ALT A) CX_PRI - The priority of the commodity (default:0) NOBEEP - Don't beep when an appointment activates WPOS , - Startup x,y position of the Editor's window SHOW - ID match for the Editor's event list (default:*) OUTPUT - Output file for messages (default:"con:////Blah") Tooltypes when running from WorkBench ===================================== ===================================== The following ToolType entries can be used when you start FiliAgenda from the WorkBench: CX_POPUP= - Pop the window up on startup CX_POPKEY= - The HotKey key combination (default:CTRL ALT A) CX_PRI= - The priority of the commodity (default:0) NOBEEP - Don't beep when an appointment activates WPOS=, - Startup x,y position of the Editor's window SHOW= - ID match for the Editor's event list (default:*) OUTPUT= - Output file for messages (default:"con:////Blah") You can enter these by using the "Information" item from the "Icon" menu of the WorkBench. Use the "Add" gadget below the ToolTypes list and enter one or more (click "Add" every time) of the above listed items in the string gadget. Using the program for the first time ==================================== ==================================== The distribution package should contain the following files: s/FiliAgenda.guide - This help guide s/FiliAgenda.doc - A human readable form of the above s/FiliAgenda.dat - Your appointments will be stored here (This is an example file) Agenda - The program... Agenda.info - and its icon Install - A script to copy the files from s/ to s: Install.info - and its icon Docs - A script to show this document Docs.info - and its icon Agenda.c/h/smake - The source and makefile for the program SCOPTIONS - Some options for the SAS/C 6.0 C-Compiler Copy the program anywhere you like but the directory "WBStartup" is a good choise if you want to run FiliAgenda every time you boot. Copy the contents of the "s" directory to S: The program 'AmigaGuide' or 'More' should be in the C: directory for the help button on the Editor Window to work. Bug reports, suggestions, flames etc. ===================================== ===================================== FiliAgenda was written by Tako Schotanus in October/November 1992. This program is Public Domain but Copyright remains with the author. No changes may be made to the distribution package and it may only be added to a Public Domain list after written permission from me or if the author personally sent it to that list. For bug reports, suggestions, thanks, greetings and flames the author can be reached at: snail-mail: Tako Schotanus Klokkengieterstraat 5 1825 AJ Alkmaar The Netherlands e-mail: v882500 @ si.hhs.nl (personal, not regularly checked) aegee @ bu.tudelft.nl (not personal, regularly checked) Thanks to: Jan v/d Baard for his wonderful GadToolsBox. Sunset Adria for her help with the testing of the program.