Calendar was written by: Leland C. Sheppard Sheppard Software Company 4621 Luneman Road Placerville, CA 95667 CIS ID: 70574,2146 from the Internet: 70574.2146@Compuserve.com The Calendar program is shareware. If you use the program regularly and are interested in having us continue to develop it and other such programs, you should register the program with us. You may register Calendar for $6.00. In order to register, fill in the Register.Txt form, make out a check payable to Leland C. Sheppard and mail both to the address shown above. If you are interested in the Utility Pack and you have a Compuserve ID and you prefer to register online, simply Go SWREG and register #6193 for UTLPAR.ZIP or #6194 for UTLPAK.ZIP. Because of price constraints on SWREG, only the Utility Pack can be registered online; individual programs may be registered directly with us as described in the preceding paragraph. Please note that this file can be accessed either from the Sheppard Utilities folder or by pressing F1 when Calendar is active and has the focus on the desktop. Calendar was written in VX-REXX 2.1 and requires the VX-REXX 2.1 (or higher) runtime module (VROBJ.DLL) in order to function. Also, REXX and REXXUTIL must be installed on your system; both REXX and REXXUTIL come with OS/2. File CALNRR.ZIP contains the VROBJ.DLL module; file CALNDR.ZIP does not. Only one copy of VROBJ.DLL is required for all of the VX-REXX programs on your system; if you have previously downloaded a copy of it, you do NOT need to download it again. HOW TO OPERATE CALENDAR: The left and right arrows in the upper corners of the monthly calendar change the month being displayed to the previous and next months respectively. The left and right arrows along side the year button change the year being displayed to the previous and next years respectively. Pressing the year pushbutton displays a calendar for the entire year (or 2 semiannual windows if you are running at standard VGA resolution - 640x480). If you change the year in the monthly window, push the year button again to update the annual calendar display. The two rows of month buttons allow immediate access to any given month. The year buttons at the bottom of the display allow direct access to any of the years shown in the buttons. The left and right arrow buttons on this bottom line will display the previous or next 6 years respectively. Right-clicking on a date which you have set up as a holiday or other special day will open a message box which will display the description you have supplied for the occasion (if any). This feature works in either the monthly display or the annual display. The current date is highlighted. If you right-click on the current date in the monthly display, one of two things will happen: If the current date is defined as a special day, a popup menu will be displayed with 2 choices: To Do List or Description. If you select description, the description you supplied for the day will be displayed. If you select "To Do List", your choice of editors, or by default the system editor (e.exe) will open a file called "todo.lst". This file can be of any size and can contain any information you wish. It will always be accessed by right-clicking the current date. I use it to contain a running To Do list. If the current date is NOT defined as a special day, the menu is bypassed and the To Do List is opened automatically. You can specify foreground and background colors for various types of dates: holidays, birthdays, etc. The sample ini file below shows each of the types currently supported and there is a list of valid types and valid entry formats later in this document. You can update Calendar.Ini while Calendar is active. Left-click the month name button and Calendar will load E.Exe (unless you have specified a different editor) and display the Calendar.Ini file for you to edit. When you have finished editing the file, save it and exit the editor. Calendar will immediately process the updated Ini file. If you have the annual or semiannual calendar windows open, press the year button on the month display to update those displays with the new information from the updated Ini file. Calendar gets the actual date when it first comes up. If you have it running at midnight, the current date will not be updated since Calendar is not monitoring the system date and time as a clock would be. To compensate for this, you can right-click the month name button. Calendar will then get the current date from the system and refresh the monthly window to the current day, month and year. If you have the annual/semiannual window open, you will need to press the year button to refresh the today display in those windows. For color changes, the available color names are: Background: Black, Blue, Brown, Cyan, DarkBlue, DarkCyan, DarkGray, DarkGreen, DarkPink, DarkRed, Green, PaleGray, Pink, Red, White, Yellow Foreground: same choices as background For each type of date there is a foreground and a background color. Specifying both colors for a type requires 2 lines in the Calendar.Ini file, for example for Holidays: HolidayFore = White (or the color of your choice) HolidayBack = Red (or the color of your choice) The information that precedes the color must be set up as shown above with a space before and after the equal sign. You can also specify a set of numbers which will be recognized as RGB or RedGreenBlue values where each of the numbers representing Red, Green or Blue will be a number between 0 (zero) and 255. The syntax for specifying colors this way is: (Red,Green,Blue) or, for example, (25,200,3) To specify the Holiday background color this way: HolidayBack = (25,200,3) If you make an error in the setup of your color specifications, the change will be ignored. When the .Ini file has been processed, simply press the month button again, correct the error and resave the Ini file. You can specify dates to be highlighted as shown in the samples below for whatever purposes you choose. If you specify a type that Calendar does not recognize, it will give you an error message. The descriptions of the various dates are optional. If you supply them, they must begin with "Desc: " and the space after the colon is required. You can also put comment entries after the dates if you wish; they are simply ignored. If you put a comment after a description, it will end up being displayed as part of the description. The valid date types are: H - Holiday V - Vacation A - Anniversary B - Birthday 1 - User-defined type 1 2 - User-defined type 2 3 - User-defined type 3 NOTE: the spacing shown in the sample ini file below is required; i.e., a space before and after the equal sign is required and for the date specifications, the spaces between the pieces of information is required. If you omit the spaces, Calendar will not understand what it is that you want to do. If you make an error in a date entry, a message will be displayed showing the line in error. When you press OK, that line will be ignored and processing of the .Ini file will continue. When the .Ini file has been processed, simply press the month button again, correct the error and resave the Ini file. Your .Ini file can contain comments. Comments entered on a line by themselves must begin with "/*" and there must be a space after the "/*". Comments entered on the same line as other data must also begin with "/*" and there must be a space before AND after the "/*". Comments are not displayed by the right-click mechanism for displaying descriptions unless they follow a description. Valid date entry formats are: DDMMM T DDMMM L T DDMMMYYYY T DDMMMYYYY L T O Dayofweek MMM T Where: DD - is day of month and must be a 2 digit number between 01 and 31. MMM - is the 3 character month name: Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec T - is one of the valid types listed above L - is the length in days to be highlighted; although this number is not checked, if you specify an amount that will run beyond the end of the month specified, the unused balance will simply be ignored. YYYY - is the 4 digit year and must be between 1900 and 2099 O - is the occurrence during the month which can be "first", "last" or a single digit number from 1 to 5 Dayofweek - is the name of the day of week: Sunday, Monday, Tuesday, Wednesday, Thursday, Friday or Saturday Any of these formats can have "Desc: " or "/* " added to them. To end Calendar, double-click on the button in the upper left corner of the Calendar window or press Alt-F4. Sample Calendar.Ini file contents: HolidayFore = Black - foreground color for holiday display HolidayBack = Red - background color for holiday display VacationFore = Black - etc. VacationBack = Blue TodayFore = White - foreground color for the current date TodayBack = DarkGray - background color for the current date BirthdayFore = Black BirthdayBack = Green AnniversaryFore = Black AnniversaryBack = Cyan User1Fore = Yellow User1Back = Red User2Fore = Blue User2Back = White User3Fore = Green User3Back = White Editor = E.Exe - defaults to System Editor; you can override with this statement containing the editor name of your choice 01Jan H Desc: US New Years Day - specific date, every year, holiday, description 17Jan H Desc: US Martin Luther King Day - same, holiday, description 04Jul H Desc: US Independence Day - same, holiday, description 25Dec H Desc: US Christmas Day - same, holiday, description 22Jan B Desc: somebody's birthday - specific date, every year, birthday, description 23Jun B - same, no description supplied 17Nov A /* comment */ - specific date, every year, anniversary, comment but no description 21May1996 4 V Desc: Vacation - start date, this year only, number of days, vacation, description 19Dec 4 V - every year, 4 days, same dates, vacation, no description 3 Monday Feb H Desc: US President's Day - third occurrence, day-of-week, of month, holiday, description last Monday May H Desc: US Memorial Day - last occurrence, day-of-week, of month, holiday, description 1 Monday Sep H Desc: US Labor Day - first occurrence, day-of-week, of month, holiday, description 4 Thursday Nov H Desc: US Thanksgiving Day - fourth occurrence, day-of-week, of month, holiday, description 15Mar1996 1 Desc: Something - specific date, this year, User type 1, description 17Mar1996 2 Desc: Something else - same, User type 2 19Mar1996 3 Desc: Really something else - same, User type 3 /* comments are ignored... */ LIMITATIONS: Calendar does not automatically update at midnight. In order to refresh the current date, right-click the month name button and Calendar will get the current date from the system and update the monthly window to the current day, month and year. In order to update the Today display in the annual/semiannual windows you must press the year button. Calendar will not calculate across the end of a month for the options with a duration in days. You will need to make 2 entries to handle this situation, 1 for each month in which a portion of the designated time falls. For example, if you wanted to highlight a 10 day period starting 27 May, you would need to code: 27May 5 V and 01Jun 5 V. Holidays and other highlighted dates are calculated for the "current" year only. The "current" year is the one showing in the year button in the monthly window. If you change the current year in the monthly window and do NOT immediately press the year button to update the annual/semiannual windows, some of the highlighted dates in the annual and semiannual windows will no longer match the highlighted dates displayed in the monthly window and right-clicking dates in the annual/semiannual window may not work. Where the highlights are the same in each year (e.g., US July 4th, December 25th, etc.), it won't matter but where the date is calculated (e.g., last Monday in May for US Memorial Day) it will. As long as you don't attempt to right-click to get descriptions, the information displayed in the annual/semiannual windows is still accurate. If you always refresh the annual/semiannual window as soon as you update the current year, you won't notice this limitation. Descriptions of dates to be highlighted exceeding 40 characters will be truncated. Thank you for your interest in our software. Leland C. Sheppard, Mar-27-1996 Version 5.0 Changes from version 4.1 to 5. Added To Do List option. Fixed problem where annual (and semiannual) windows opened, closed and reopened when year button was pushed. Changes from version 4.0 to 4.1: Added the date selected to the title of the message window showing highlighted date description. Fixed problem with current date refresh feature where holidays didn't get recalculated when the year changed. Added "Today" display to annual/semiannual windows. Corrected days-of-week header on 800x600 and 640x480 screens so Sa (Saturday) doesn't disappear. Changes from version 3.5 to 4.0: Added ability to right-click on highlighted dates in annual and semiannual windows to see your description (if any) for that day. Added ability to right-click the month name button to update the current date. Added 3 user-defined date types (1, 2 and 3). Changes from version 3.1 to 3.5: Error handling problem corrected. Added ability to right-click on highlighted dates in monthly window and see your description for that day. Added ability to specify descriptions or comments on same line as dates to be highlighted. Changes from version 3.0 to 3.1: Add code to improve error handling of .Ini file data. Alter installation routine to copy .Ini file only if it didn't previously exist. Elongate monthly calendar window so bottom row of buttons doesn't get chopped off on 800x600 screen. Changes from version 2.1 to 3.0: Push buttons for each month added. Push buttons for 6 years added. Documentation added explaining color choices and options. "Today" highlight changed to actually highlight ONLY the current date. Changes from version 2.0 to 2.1: Fix error when month name not valid. Fix error when either semiannual window closed (640x480 resolution or parameter of "Semi" only). Change dates under 10 to align properly. Changes from version 1.2 to 2.0: Added Calendar.Ini file which contains color combinations for various types of days (holidays, birthdays, etc.) Also added ability to specify various types and ranges of dates in the Ini file which are to be highlighted. Added ability to split annual calendar into 2 semiannual windows for VGA resolution screens. Changed window alignment so that both monthly and annual windows will show at the same time without you having to move either. Added ability to update Ini file and reprocess it while Calendar is active. Added display of holidays, etc. to annual and semiannual windows. Changes from version 1.1 to 1.2: Implemented internal method for determining screen resolution. Parameter no longer needed for SVGA resolution. Add logic to increase font size on annual display for 1024x768 and higher SVGA screen resolutions. Changes from version 1.0 to 1.1: Change the annual calendar to fit VGA and SVGA screen resolutions. (c) Copyright Leland C. Sheppard, 1994-1996. All rights reserved.