FWCalendar(v 4.35)
and
FWCAddEvent(v 4.12)

Ron Goertz
161 Granite St
Biddeford ME 04005
rgoertz@midmaine.com

These macros are made available for your personal use and no-cost distribution. Permission for any other use must be obtained from the author. The most current version can always be found by following the "Apps" link on my homepage (http://home.midmaine.com/~rgoertz/Ron/). If you would like to be notified of updates, send me an email telling me what you like/don't like about FWCalendar or FWCAddEvent.

FWCalendar is Y2K Compliant!


Features of FWCalendar and FWCAddEvent

A macro for creating calendars in PageStream v3+ and Final Writer v4+, and a macro for adding events to those calendars. Note that some of these features are only available when the Class Act/Reaction interface is used.



Installation

Simply use the installation icon. This will install all the appropriate components in directories of your choosing. If you are updating a previous installation, any existing data files will not be overwritten. Due to ARexx variable parsing limitations, the path to the FWCalendar files must not contain any spaces!

If you prefer doing a manual installation, copy FWCalendar.rexx, FWCAddEvent.rexx, and the appropriate FWCalendar.prefs and FWCTranslations.txt files (found in the folder corresponding to your country; the optional translation file may or may not exist, depending on your country) to the same directory. If desired, the FWCHistory directory and the FWCRandom.txt file can be copied to the same directory used for FWCalendar.rexx. Due to ARexx variable parsing limitations, the path to the the FWCalendar files must not contain any spaces! Although any directory can be used, the ARexx macros, the translation file, the FWCHistory directory, and the FWCRandom.txt file must be in the same directory. The preference file(s) can be stored anywhere; the file requestor used for loading preference files defaults to the directory for the current preference file or the directory where FWCalendar.rexx is found. If you want to have images inserted on specified dates, copy the "Images" directory to the same directory as the macros (this location can be changed; see the images section).


Support Programs
Required
Preferred    
ClassAct v42.80+   Also known as Reaction on OS3.5 machines, this provides the actual GUI used for requesters in FWCalendar and FWCAddEvent. Should already be installed on OS3.5 machines.
AWNPipe v2.48+
(Bill Parker)
  Required to pass commands from ARexx (the programming language used for FWCalendar) to ClassAct. Should already be installed on OS3.5 machines.
or    
Alternative    
BGUI
(Jan van den Baard)
  Provides the actual GUI used for requesters in FWCalendar and FWCAddEvent. Note: Some features of FWCalendar and FWCAddEvent are not available with this interface, and the listing of program variables may not be entirely possible. Bug fixes to this interface will be incorporated, but no improvements or enhancements are being made to this interface.
BGUIRexx
(Jilles Tjoelker)
  Required to pass commands from ARexx (the programming language used for FWCalendar) to BGUI.

"Version" command   This must be the standard Amiga Version command, or one that is output compatible with it. "Version" replacement programs, such as WBVersion and VersionWB, may not provide outputs suitable for FWCalendar to work properly.

Suggested
FrontPubScreen
(John Fieber)
or
Publican
(Lee Kindness)
or
MagicPubName
(Franz Schwarz)
  Possibilities for getting requesters to open on the proper screen. Also see the HostScreen variable.

rexxmathlib.library
(Thomas Richter)
or
date.library
(Kai Hofmann)
  Required if you want to include the phases of the moon on your calendars. Although much larger, Date.library is also much faster in determining the phases of the moon. If RexxMathLib is used, it must be v38.1+.
CAUTION: FFPpatch 1.8beta © 1997 by Jess Sosnoski causes problems with the math routines in rexxmathlib.library and may make it impossible to calculate/insert the phases of the moon.

SunCalc
(Brian Savage)
  Required to determine sunrise/sunset times
None of these libraries are included with this distribution, but are available from Aminet.


Adding to Menus

If you want to add the macros to Final Writer's "User" menu, follow the instructions in the Final Writer manual.

If you want to add the macros to Pagestream's "Scripts" palette (note that <path> refers to the actual path of the directory you used for the installation):

Select "New..." from the Scripts Palette menu
Enter "FWCalendar" as the Name
Enter "RX <path>/FWCalendar.rexx" in the Script box
Select a shortcut combination if desired
Click on "OK"

Select "New..." from the Scripts Palette menu
Enter "FWCAddEvent" as the Name
Enter "RX <path>/FWCAddEvent.rexx" in the Script box
Select a shortcut combination if desired
Click on "OK"

Select "Save" from the Scripts Palette menu



Getting Started

PageStream
You must close all open documents before starting this script. Select the FWCalendar macro entry from Pagestream's "Scripts" palette (if you followed the installation procedures included with this guide), otherwise select the "Scripts/Play External Script ..." menu item and find the FWCalendar macro.

Final Writer
Select the Calendar macro entry from Final Writer's "User" menu (if you installed it there) or select the "User/Other/ARexx Script ..." menu item and find the FWCalendar macro.

Both PageStream & Final Writer
It is normal for there to be a delay as the requester is created.

The main requester allows you to change the various options. Initially, the settings in this requestor reflect the defaults hard-coded in the FWCalendar macro. To load a preference file (for example, one localized to your country, such as was installed as part of the installation routine), select the "Project->Load" menu item and select the desired preference file. Note that both FWCalendar and FWCAddEvent use the same preference file for initializing variables; the results may be unpredictable when changing this file between using FWCalendar and FWCAddEvent. See notes on the Variable Editor for more details.

After the required information is entered, the screen's magnification is reduced to speed up rendering and it's off and running. Highlights contained in the preference file will be rendered automatically ("highlight" is the term used to describe holidays, anniversaries, birthdays, and other notable dates added to the calendar as it is being generated). When the macro is finished, the screen magnification will be restored to normal. Note that updating is turned off during rendering, so the calendar may look strange while being rendered.

To add events that do not repeat themselves at the same time every year, use FWCAddEvent, a separate program included in this distribution. These events are added after the calendar is generated.

In order for FWCAddEvent to work, specific information is written in the upper left corner of the generated calendar; as this is written in white, it will be "invisible." If you are using PageStream as the host application, don't render any objects at the location 0,0 or FWCAddEvent will fail.



Adding Events

FWCAddEvent is used to add events to a calendar that has already been generated. These events do not repeat themselves every year (at least not at the same time). This differs from the Highlight Editor called from FWCalendar itself. Events entered in the Highlight Editor represent holidays, anniversaries, birthdays, and other notable dates and are added to the calendar as it is being generated.

The requestor is generated "on the fly," so a delay between placing a call to FWCAddEvent and the requestor showing up is normal.

Note that both FWCalendar and FWCAddEvent use the same preference file for initializing variables; caution should be exercised when changing the file between using FWCalendar and FWCAddEvent or the results may be unpredictable.

Use
Create a calendar with FWCalendar or load a previously created calendar; FWCAddEvent will not work unless a generated calendar is present! To run FWCAddEvent for Final Writer, select the "FWCAddEvent" item from the "User" menu (if you didn't follow the installation procedures included with this guide, select the "User/Other/ARexx Script ..." menu item and find the FWCAddEvent macro). For PageStream, select the FWCAddEvent macro entry from the "Scripts" palette (if you followed the installation procedures included with this guide), otherwise select the "Scripts/Play External Script ..." menu item and find the FWCAddEvent macro.

Help bubbles can be accessed by placing the mouse pointer over a gadget and pressing the 'Help' key on the keyboard. The bubble will go away after a short time (as defined by the HelpTime variable) or upon pressing the 'Help' key a second time (in the help-bubble window).

The FWCAddEvent consists of the following fields, settings, and gadgets:

Event Type: The top-left gadget cycles through "Event," "Image," and "File" choices. When the "Event" choice is selected, you can enter the desired event in the Event text box. When the "Image" choice is selected, the file requester gadget to the right will allow you to select the desired image. When the "File" choice is selected, the file requester gadget to the right will allow you to select the desired pre-defined event data file (see Prefs & Data for the format of this file). In the case where a file is chosen, most of the remaining gadgets will be ghosted as the values are either read from the data file or set to the defaults.

Event: Enter the event or the name of the event file here. Any quotes (single or double) entered as part of the event will be included in the event when it is added to the calendar. If the "event" is the <path>name of an image file, then that image will be inserted. See the section on Prefs & Data for information on formatting event data files. Note: Periodic events are only possible by way of an event data file.

File Requester: Allows the selection of image or data files. The default directory for data files can be changed by setting the FWCAddEventData variable by way of the variable requestor at the startup of FWCalendar.

Font: Shows the currently-selected font. The font button ("Ff") must be used to change the font.

Font Size: The small box to the right of the font name shows the font size currently in use (always a whole number when the host application is Final Writer); this can be changed as desired. Note that, although any font size can be entered, the positioning of the added line will be determined according to the AddEventRows variable and internal calculations. Looking at the image above, for example, the default font size is 9 pts. If an event with a font size of 18 pts is entered on line 3, that event will cover both lines 3 and 4; attempts to add other events on line 4 would result in the text of the events overlapping. Except for special effects, it is best to keep the font size as calculated by FWCAddEvent. This field accepts simple math calculations.

Ff: The font requester must be used to change the font. When the host application is Final Writer, a standard file requestor will appear from which you can locate and select the desired font; when the host appliction is PageStream, a list of all installed fonts will appear.

Reset: The "Reset" button will reset the font to Font.Highlight (as determined by either the internal defaults or the loaded preference file) and the font size to the value calculated by FWCalendar.

Date Selectors: The majority of the requestor consists of buttons representing the days of the month (including days of the previous and next months as appropriate). Unless a vertical-format calendar was created (MonthlyDayOrder = 'V'), the dates clicked will alternate between being entered as the Start and End dates, shown to the right of the calendar buttons. The first date clicked will be entered as the Start date, the next as the End date, the next as the Start date, the next as the End date, and so on. If a vertical-format calendar was created, only single-day events can be entered.

Start: Displays the selected start date for an event. The Start date does not need to be designated when the "File" option is selected; in this case, the Start dates in the data file will be taken as actual days and not offset days (see data files for more information on the format of files used with the "File" option). If the Start date is after the End date, the dates will be switched in the macro.

End: Displays the selected end date for an event. The End date does not need to be designated for single-day events, and can't be designated if the "File" choice is selected. If the Start date is after the End date, the dates will be switched in the macro. If a vertical-format calendar was created (MonthlyDayOrder = 'V'), only single-day events can be entered.

Text: Used to select a color for the event text. When this button is pressed, a list of available colors will be presented (if the host application is Final Writer, the actual color will be shown as well). The default for the text color is determined by Color.AddEvent.

Line: Determines on which line of the date cell the event will be inserted, ranging from 0 to the maximum number of lines that will fit in a calendar cell (defaults to line 1). Note that these are the lines that will fit on a full-sized day; half-size days (those days at the end of the month that are split) will not be able to hold the full complement of lines. Certain lines may also be filled by Highlights added during generation of the calendar; events added to these lines would overwrite the highlight text.

Boxed: This checkbox tells whether events should be outlined in a box or not. All multi-day events WILL BE boxed. Boxed entries will have text lines centered; unboxed multi-line events will have the second and subsequent lines indented. An empty (text-less) box can be generated if desired.

Box: Used to select a color for the outline/background box. When this button is pressed, a list of available colors will be presented (if the host application is Final Writer, the actual color will be shown as well). The default for the box color is determined by Background.AddEvent, or <Clear> if that variable has not been set. <Clear> will result in any background picture showing through the box.

Frequency: Events can be added Once, Weekly, or Biweekly. Weekly and Biweekly events will be repeated from the starting point to the end of the month. All events can be single-day (Staff Mtg every Wednesday) or multi-day (Thursday/Friday seminar every week this month), and can wrap around the weekend.

OK: Once the desired information has been entered, click the OK gadget. The text will be drawn on the screen one or more times as it is sized to fit in the span of days you selected. After it is sized properly, it will be placed in the proper location.

Cancel: The requestor will keep reappearing automatically until the requestor is cancelled or closed.

Undo: Will undo all levels of added events, from the time the requester was initialized until the time it is canceled. The Undo button works in the same manner as the undo button on PageStream or Final Writer, although no "Redo" capability is provided..

FWCAddEvent is designed to work on calendars generated by FWCalendar. To determine the calendar layout, FWCAddEvent macro reads specific information used to create the calendar from the calendar itself and from the preference file used to generate the calendar; caution should be exercised when changing the file between using FWCalendar and FWCAddEvent or the results may be unpredictable.

Texts added via FWCAddEvent are simply text objects. If one of these text objects is no longer desired (perhaps it ended up in the wrong place), it must be deleted using the "Undo" capability or, if the FWCAddEvent interface has been closed, via the host application (Final Writer or PageStream) itself. There is no provision for FWCAddEvent to delete previously added event text.



Data Files

This section describes the five data files that support creation of calendars: preference files, translation files, FWCAddEvent data files, history files, and random files. The preference file is used both to generate a calendar and to later add events to that calendar. The translation file is used to translate the information in the requesters to your language. The FWCAddEvent data file is used to enter pre-defined event data with FWCAddEvent. The history file allows you to add a 'day in history' event to the generated calendar. Finally, the random file allows you to add a random entry to the generated calendar. None of these files are necessary for FWCalendar or FWCAddEvent to work properly; if the files are absent, internal defaults will be used as appropriate.

Preference Files
Preference files contain highlight and image information and variable values that differ from FWCalendar's defaults. There are over 100 user-definable
variables that contain, among others, format, color, and font information; the variables are set using the Variable Editor. Different preference files can be maintained for generating different calendar styles.

To create a new preference file, select the "Project->Reset" menu item; this will set all variables to their default values. When you change variables from the default values and generate a calendar, you will be prompted for the filename of the new preference file. The loaded preference file, along with any changes just made, can be saved under a new name using the "Project->Save as" menu item.

Both FWCalendar and FWCAddEvent use the same preferences file for initializing variables, so you should not change the preferences between using FWCalendar and FWCAddEvent. See notes on the Variable Editor for more details.

Highlights are also contained in the preference file, and are added using the Highlight Editor (see the Variables tab of the Variable Editor). Highlight is the term used to describe holidays, anniversaries, birthdays, and other notable dates added to the calendar as it is being generated. Events that do not repeat themselves at the same time every year are added after the calendar is generated using FWCAddEvent). There is no design limitation on the number of highlights that can be assigned, since multiple highlights can be assigned for each day of the year.

Images (also added using the Highlight Editor (see the Variables tab of the Variable Editor)) can be inserted in the center of certain dates such as birthdays, anniversaries, and other days. The images can be inserted whether or not a highlight is inserted on that date. Only one image can be inserted for a given day.

Translation Files
Translation files exist for several of the supported languages (thanks in large part to those non-American users who want to make FWCalendar look good for their country). To create a translation file, simply take the FWCTranslations file (found in the American folder in this distribution) and translate the American phrases to phrases in your language. If you develop new translation file, please submit it to me so I can include it with future distributions.

FWCAddEvent Data
Certain events may need to be added to the calendar each month, always in the same order and always the same number of days apart (such as a rotating work schedule or a periodically repeating event such as being "on call."). Or you may want to add the same events to numerous calendars with different formats. In these cases, it may be convenient to pre-define these events and enter them automatically. To do so, select the "File" option from the upper-left gadget of the FWCAddEvent requester, then select the pre-defined event data file.

The pre-defined event data file can have any name and be located anywhere. When the file requester appears, the default directory will be the same as the location of the other FWCalendar files or be as defined by the FWCAddEventData variable. The data file consists of sets of lines containing the following keywords:

Start    The actual start day of the event. If a start day was entered in the FWCAddEvent requester, this value represents the offset from that "root date" (this value is used to calculate the event's actual start date. For example, if 12 was selected as the start day and Start is set to 4, then the actual start date of the event would be the 16th). This keyword is required.
End    The actual end day of the event. If a start day was entered in the FWCAddEvent requester, this value represents the offset from that "root date" (this value is used to calculate the event's actual end date. For example, if 12 was selected as the start day and End is set to 6, then the actual end date of the event would be the 18th). If omitted, End will be set equal to Start.. If a vertical-format calendar was created (MonthlyDayOrder = 'V'), only single-day events can be entered.
PeriodicBase    The "root" or "base" date of a periodic event in YYYYMMDD format. This is an actual date on which the periodic event has taken place (or will take place). If it's a multi-day event, this is the first day of the event. Do not use Start or End in conjunction with this variable.
Interval    The interval, in days, between periodic events (or the interval between event starts if it's a multi-day event). This keyword is required for periodic events.
Duration    The duration, in days, of the periodic event. If omitted, the duration will be one day.
Font    If the host application is Final Writer, the full path and name of the desired font; if the host application is PageStream, the name of an installed font. If omitted, the font defined by Font.Highlight will be used.
Size    The desired font size (will be truncated to a whole number if the host application is Final Writer). If omitted, the calculated font size (based on AddEventRows) will be used.
Line    The line number to used for the event (0 - 16) (see note 1). If omitted, the event will be printed on line one.
Options    B for boxed, W for Weekly, 2 for Biweekly (only one of W or 2 can be used, but either can be used in conjunction with B.). If omitted, the event will not be boxed (unless it is a multi-day event) and it will not be repeated for succeeding weeks.
TextColor    The color (eg, blue or red) to be used for the event text. If omitted, the event will be printed in black or in the color defined by Color.AddEvent.
BoxColor    The color (eg, blue or red) to be used for the box's background. If omitted, the box (if drawn) will be clear or the color defined by Background.AddEvent.
Event    The event (if single or double quotes are used, they will be included on the calendar). This keyword is required.
EventType    If the "event" is an image, then this keyword must be set to Image.

These keywords and their values can appear in any order, but there must be a blank space on either side of the "= " sign. Events groups are separated by a blank line, and comment lines (beginning with '/*') will be ignored. Only Start and Event are required; this will cause the event to be printed on line one of start day (unless a day was selected as the "root date" in the FWCAddEvent requester).

In addition to the keyword lines defined above, user-defined variables can be defined. These variables must not contain any spaces, and must begin with the pound sign (#). A possible use of this capability would be to assign the color used for a particular type of event to an easy-to-remember variable. If you use different colors for work-related and home-related events, for example, you could add the following lines to the beginning of your data file:

  #Work = 'Green'
  #Home = 'Blue'

With these variables defined, you could then enter the following line:

  TextColor = #Work

for a work-related event and not have to remember what color you are using.

Unboxed, single-day events will have subsequent lines indented. The text will be split between lines automatically, so there is no need to indicate specific line breaks; if desired, line breaks can be indicated by inserting ' //' where the line break is desired. Boxed events have all lines centered.

IMPORTANT: note that if a Start day is given in the FWCAddEvent requester, both Start and End are offsets from the "root date" selected in the FWCAddEvent requester. If the "root date" is the first day of October, for example, the keyword pair Start = 5, End = 8 will cause the event to span October 6 through October 9.

Examples (assume no Start day given in the FWCAddEvent requester):
Start = 1
Event = Testing
Testing (without quotes) will be inserted on line one of the first day of the month
Start = 5
End = 6
Line = 2
Event = "Testing"
"Testing" (including quotes) will be inserted (and boxed because it spans more than one day) on line 2 of the 5th and 6th of the month
Start = 4
Line = 1
Font = Zapf-Chancery
Size = 12
TextColor = Green
BoxColor = Blue
Options = bw
Event = 'FWCalendar is Great!'
'FWCalendar is Great!' (including single quotes) will be inserted with green, 12-pt, Zapf-Chancery text, backed by a blue box, on line 1 of the 4th of the month. This will be repeated weekly through the end of the calendar
Start = 15
Line = 4
Options = 'B'
Event = Teacher Conferences//No School
Teacher Conferences will be centered on line 4 and No School will be centered on line 5 of the 15th of the month. The pair of lines will be backed by a box of the color defined in the appropriate data file (or white if the default data was used).
PeriodicBase = 20020104
Interval = 21
Duration = 3
Line = 3
Event = On call
On call will be printed in a box (because it is a multi-day event) on line 3, stretching from January 4th to January 6th, and will also be printed every three weeks as a three-day event.

History Data
The history data is a directory (named FWCHistory and located in the same directory as FWCalendar.rexx) containing 12 text files (named 01, 02, 03, ..., 12), one for each month of the year. Each text file contains lines of data to be associated with specific days of the month. The data can be whatever you'd like it to be, including historical birthdays or historical events (the history data included with this distribution includes historical birthdays garnered from the internet).

If there is only one event noted for a particular date, that event will be entered on the calendar as it is generated. If there are multiple events noted for a date, however, one will be chosen at random and entered on the calendar as it is generated.

Each line in the data files has the format

|4 1643 - Sir Isaac Newton

Every line begins with "|" to allow quick location of new lines and to provide a method for counting events.

The next part of the data line consists of the day of the month with which the event is associated. In the example above, the 4 indicates that the event should be associated with the 4th of the month. Everything following the day will be entered as the event, exactly as shown on the line.

Groups of days are separated by single lines containing only the "|" character:

|4 1643 - Sir Isaac Newton
|4 1809 - Louis Braille
|
|5 1779 - Stephen Decatur
|5 1938 - Juan Carlos I
|

Random Data
The random file is named FWCRandom.txt and must be located in the same directory as FWCalendar.rexx.

This feature is similar to adding a random tagline to the end of emails as they are sent. The data file simply consists of text lines, each preceded by the "|" character. Everything after the "|" will be entered on the calendar as it is generated. The file included with this distribution contains thoughts for the day that are intended not to offend anyone.


Note 1: The number of lines that will actually fit in a given date is determined by the font and the HighlightRows variable. The number of lines that will fit on half-size days (days at the end of the month that are split) will be less than the full complement of lines. Certain lines may also be filled by Highlights added during generation of the calendar; events added to these lines would overwrite the highlights.



Variables

There are over 100 variables that the user can set to customize either the calendars generated or the behavior of FWCalendar while the calendar is being created.

User variables are contained in localized preferences files generated with the Variable Editor. This allows you to keep your variables separate so you don't have to change them every time the macros are updated.

Both FWCalendar and FWCAddEvent use the same preferences file for initializing variables, so the preferences file should not be changed between using FWCalendar and FWCAddEvent. See notes on the Variable Editor for more details.

There should be no need to change variables in the macro itself, or to edit the preferences file by hand.

All font sizes are computed according to the size of the TextArea and the MiniCal heights relative to the area available to the calendar. The font used for dates, highlights, and FWCAddEvent text can have the width adjusted.

Localization strings
Localized preferences files are included with the distribution. Each file includes all of the currently used translation strings (ending in '$'). If you would like to include your language, please contact the author. If you would like to improve the translation strings for your language, please email the author the updated preferences file.

Variables
Special variable pairs are available to allow variations in sentence structure for different languages and to customize parts of the calendars. The variable pairs and their defaults are:

GeneratingM$ = 'Generating %s %s calendar'
GenMVars = 'Month.Month EnteredYear'

GeneratingY$ = 'Generating %s calendar'
GenYVars = 'EnteredYear'

Header$ = '%s %s'
HeaderVars = 'Month.Month EnteredYear'

SubHeader$ = ''
SubHeaderVars = (undefined)

Each of the %s place holders in the first of each variable pair is replaced by one of the internal variables identified in the second of each variable pair. Although any internal variable can be used, the most useful variables are:

Month for the number of the calendar month
Month.Month for the name of the calendar month
EnteredYear for the calendar year

With a little knowledge of ARexx, variations of these variables can be created:

left(Month.Month,3) for the 3-letter abbreviation of the calendar month
right(EnteredYear,2) for the last two digits of the calendar year

Note: the replacement variables must not contain any spaces.

The defaults result in requesters saying 'Generating August 2000 calendar' and 'Generating 2000 calendar', and a calendar header of 'August 2000' (depending on the selected month/year, of course), respectively.

 

Variable Index
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
AddEventRows
AdjustDST
AdventHighlights
AltColor.
Background.
BelzierFactor
Bold.
CalendarBorder
CalendarShadow
CenterHistory
CenterMiniDates
CenterRandom
Color.
CornerRadius
CountPartialWeek
DateBoxImage
DateOffset
DoHide
DSTEnd
DSTStart
EndWeek
FinalView
Font.
ForceBGUI
FWCAddEventData
GenMVars
GenYVars
GfxApp
GfxAppPath
HeaderLoc
HeaderSize
Header$
HeaderVars
HelpTime
HighlightRows
HostScreen
Image.
ImageClass.
JulianSepChar
LaunchM
LaunchY
Leading
Limit.
Line.
MagnifyExtras
Marker.
MaxImgHeight
MaxImgWidth
MinHistoryWidth
MiniCalDayOrder
MiniCalHeight
MiniCalWidth
MinRandomWidth
MinWidth
MonthlyDayOrder
MoonRadius
PageHeight
PageWidth
PhaseType
PrefsName
ShadowType
ShiftLMini
ShiftRMini
StartWeek
StretchDateH
StretchDateW
SubHeaderLoc
SubHeaderSize
SubHeader$
SubHeaderVars
SunCalcPath
SunRiseSepChar
Text.
TextAdj
TTextArea
WeekdaySize
WTextArea
YearlyCalColumns
YearlyCalMonthOrder
YearlyCalSpacing
 

 
Variables by Function
Calendar Format
CalendarBorder
CalendarShadow
CornerRadius
DateBoxImage
EndWeek
Marker.
MiniCalDayOrder
MiniCalHeight
MiniCalWidth
MonthlyDayOrder
PageHeight
PageWidth
ShadowType
ShiftLMini
ShiftRMini
StartWeek
TTextArea
WTextArea
YearlyCalColumns
YearlyCalMonthOrder
YearlyCalSpacing
Calendar Content
AdventHighlights
CountPartialWeek
Header$
HeaderVars
Image.
ImageClass.
PhaseType
SubHeader$
SubHeaderVars
Text.
Content Format
AddEventRows
BelzierFactor
CenterHistory
CenterMiniDates
CenterRandom
DateOffset
HeaderLoc
HeaderSize
HighlightRows
JulianSepChar
Leading
Limit.
MagnifyExtras
MaxImgHeight
MaxImgWidth
MinHistoryWidth
MinRandomWidth
MinWidth
MoonRadius
StretchDateH
StretchDateW
SubHeaderLoc
SubHeaderSize
SunRiseSepChar
TextAdj
WeekdaySize
Fonts & Colors
AltColor.
Background.
Bold.
Color.
Font.
Line.
Miscellaneous
AdjustDST
DoHide
DSTEnd
DSTStart
FinalView
ForceBGUI
FWCAddEventData
GenMVars
GenYVars
GfxApp
GfxAppPath
HelpTime
HostScreen
LaunchM
LaunchY
PrefsName
SunCalcPath

 
Miscellaneous Variables
AddEventRows The maximum number of rows of FWCAddEvent text allowed on each day; affects the point size of the FWCAddEvent font (see note 3)
Values: any decimal number (larger = smaller text)
Default: 9
AdjustDST Take daylight savings time changes into account when using SunCalc (see note 3)
Values: 0 = don't adjust, 1 = adjust (requires RexxTricks.library)
Default: 1
AdventHighlights Insert Advent Sundays. Text used is changed by adding Advent$.1 through Advent$.4 to the FWCTranslations.txt file.
Values: 0 = don't include, 1 = include
Default: 1
BelzierFactor Adjust the "curvature" of moon phases (Final Writer only) (see note 3)
Values: any decimal number (smaller = more angular; larger = more square)
Default: 0.55
CalendarBorder Percentage of calendar width to offset the calendar outline box (see notes 2 & 3)
Values: Decimal number (0 = no outline box)
Default: 0
CalendarShadow Percentage of calendar width to offset the calendar shadow box (see notes 2 & 3)
Values: Decimal number (0 = no shadowbox)
Default: 0
CenterHistory Flag indicating whether or not the history entry should be centered
Values: 0 = don't center, 1 = center
Default: 1
CenterMiniDates Flag indicating whether or not the dates in the mini-calendars should be centered or left-adjusted
Values: 0 = don't center, 1 = center
Default: 1
CenterRandom Flag indicating whether or not the random entry should be centered
Values: 0 = don't center, 1 = center
Default: 1
CornerRadius Cause day-boxes to have rounded corners rather than be rectangular boxes. If Final Writer is the host application, then don't use with DoDateBox (see note 3)
Values: FW = Actual radius fixed by FW, but adjust this value to shift dates away from corners
PGS = Any small decimal number (represents percentage of day-cell height) (see note 3)
Default: 0
CountPartialWeek Flag indicating whether or not the first whole week should be counted as week one, or the first (possibly partial) week should be counted as week one.
Values: 0 = Count whole week only, 1 = Count partial week
Default: 0
DateBoxImage The image to use around the date number when BoxDates is set. If set to 'Default' then a rectangle will be drawn
Values: See Images for format.
Default: Default
DateOffset Percent of box width to offset dates from edge of box (see notes 2 & 3)
Values: any decimal number
Default: 2
DoHide Hide PageStream window while rendering (see Tips & Solutions)
Values: 0 = don't hide, 1 = hide
Default: 0
DSTEnd Set the ending date for Daylight Saving Time (put the cursor in the text field and press the "Enter" key; the Highlight Editor will be brought up enabling the date to be set)
Values: Any valid floating date
Default: The last Saturday in March
DSTStart Set the starting date for Daylight Saving Time (put the cursor in the text field and press the "Enter" key; the Highlight Editor will be brought up enabling the date to be set)
Values: Any valid floating date
Default: The last Saturday in October
EndWeek Day of the week to use in the last calendar column. When used in conjunction with StartWeek, a range of days (e.g., Monday through Friday) can be printed.
Values: -1 = Day before StartWeek
0 = Sunday
1 = Monday
2 = Tuesday
3 = Wednesday
4 = Thursday
5 = Friday
6 = Saturday
Default: -1 (day before StartWeek)
FinalView Sets the magnification percent of the calendar after it is created (see notes 2 & 3)
Values: FW = Any whole number (20 - 400)
PGS = Any number (5 - 3000)
Default: 75
ForceBGUI Force BGUI to be used as the GUI (if you can't get the ClassAct GUI to work for some reason, you may have to set ForceBGUI = 1 in your preference file using a text editor.
Values: 0 = don't force, 1 = force use of BGUI
Default: 0
FWCAddEventData The default file to use for FWCAddEvent data. This can be a directory, a file, or a file with a "variable" indicating where to insert the information for the current month. To have the event requestor always point to a particular file, enter the path and name of that file (e.g., Rexx:FWCalendar/Event.data). To use a different data file for each month and have the file requestor automatically point to the right data file, enter %% where the two-digit month indicator should be inserted. For example, if your data files are named Event01.data (for January) through Event12.data (for December), entering Rexx:FWCalendar/Event%%.data would have the proper month's data file set as the default.
Values: Any legal path or path and file, with or without month placeholders
Default: '', resulting in looking for FWCAddEvent.data in the same directory in which the calendar's preference file is located.
GenMVars The variables substituted for the %s placeholders in GeneratingM$ (found in the FWCTranslations.txt file)
Values: Any internal FWCalendar variable
Default: 'Month.Month EnteredYear'
GenYVars The variables substituted for the %s placeholders in GeneratingY$ (found in the FWCTranslations.txt file)
Values: Any internal FWCalendar variable
Default: 'EnteredYear'
GfxApp The name of the graphics application used to determine the datatype, width, and height of images to be inserted (set to FWCalendar.rexx to use the internal parser)
Values: see Images
Default: 'FWCalendar'
GfxAppPath Path to graphics application
Values: : or / terminated path to the graphics application; don't include the application name with the path!
Default: None
HeaderLoc Percent down the text area (TTextArea or WTextArea, as appropriate) the header (month/year) will be placed (see notes 2 & 3)
Values: any decimal number
Default: 25
HeaderSize Percent of text area (TTextArea or WTextArea, as appropriate) to be used for the header text (Header$) (see notes 2 & 3)
Values: any decimal number
Default: 50
Header$ The text used for the header, with %s placeholders for the varibles found in HeaderVars
Values: Any text
Default: '%s %s'
HeaderVars The variables substituted for the %s placeholders in Header$
Values: Any internal FWCalendar variable
Default: 'Month.Month EnteredYear'
HelpTime Set the time (approximately in seconds) that Help balloons remain open (see note 3)
Values: Any decimal number
Default: 4
HighlightRows The maximum number of rows of Highlight text desired in each day; affects point size of Highlight font (see note 3)
Values: any decimal number (larger = smaller text)
Default: 9
HostScreen Identifies the public screen to be used for requesters (also see Tips & Solutions)
Values: The case-sensitive name of the public sreen to use for requesters.
Default: None
Image. Images to be used in place of boxes in several places.
Default: ''
Advent - Inserted on Advent Sundays.
DateBox - Surrounds the date on the main calendar; the "Box Date" option must also be set. Image must be actual size; it will not be scaled
DateSquare - Surrounds the day on the main calendar, scaled to fit the confines of the area allowed. Set the Line.Grid and other line-drawing colors to >Clear< for best results.
Holiday - Indicates Holiday highlights on the minicalendar. Image must be actual size; it will not be scaled
Special - Indicates Special highlights on the minicalendar. Image must be actual size; it will not be scaled
ImageClass. Image files to be used for common events (see Images) (see note 1)
Vaules: The name of an image file
Default: None
JulianSepChar Character(s) used between current Julian day and Julian days remaining when both values are printed in the same location.
Values: Any printable character(s)
Default: '/'
LaunchM Variable to be INTERPRETed upon completion of monthly calendar
Values: See Launch Program
Default: None
LaunchY Variable to be INTERPRETed upon completion of yearly calendar
Values: See Launch Program
Default: None
Leading The height of each text line expressed as a percentage of the font height (see notes 2 & 3)
Values: any decimal number (larger = lines farther apart)
Default: 100
Limit. Limits the day on which the item will be printed
Values: 0 to 6 to limit the item to a specific day, 7 to print it on all days.
0 = Sunday
1 = Monday
2 = Tuesday
3 = Wednesday
4 = Thursday
5 = Friday
6 = Saturday
Julian - Default: 7
Sunrise - Default: 7
MagnifyExtras The font size of the extras (sunrise, julian, etc) text; expressed as a percentage of the internally calculated highlight font size (see notes 2 & 3)
Values: any decimal number (<100 will shrink extras text, >100 will make extras text larger)
Default: 100
Marker. Indicators for Special and Holiday highlights
Values: Any single character (other than the asterisk (*)) that won't otherwise end up at the end of a highlight.
Holiday - Default: #
Special - Default: ~
MaxImgHeight Maximum percentage of boxheight to be used for images (see notes 2 & 3)
Values: Decimal number less than 1
Default: 75
MaxImgWidth Maximum percentage of boxwidth to be used for images (see notes 2 & 3)
Values: Decimal number less than 1
Default: 75
MiniCalDayOrder Indicates how the days increase in mni-calendars
Values: H to increase days horizontally or V to increase days vertically
Default: H
MiniCalHeight Percentage of text area height used for minicals (see notes 2 & 3)
Values: any decimal number
Default: 60
MiniCalWidth Percent of the minical height (MiniCalHeight) to use for the width of the minicals (see notes 2 & 3)
Values: any decimal number
Default: 200
MinHistoryWidth The smallest font width allowed when compressing history entries, expressed as a percent of the normal width (see notes 2 & 3)
Values: any decimal number (lower = more compression allowed)
Default: 70
MinRandomWidth The smallest font width allowed when compressing random entries, expressed as a percent of the normal width (see notes 2 & 3)
Values: any decimal number (lower = more compression allowed)
Default: 70
MinWidth The smallest font width allowed when compressing highlights and events, expressed as a percent of the normal width (see notes 2 & 3)
Values: any decimal number (lower = more compression allowed)
Default: 80
MonthlyDayOrder Indicates how the days increase in monthly calendars
Values: H to increase days horizontally or V to increase days vertically
Default: H
MoonRadius Percentage of boxheight to use for moon image (see notes 2 & 3)
Values: Decimal number less than 100
Default: 10
PageHeight Height of paper in default units (see note 3)
Values: any decimal number in your default units
Default: FW = read from preferences
PGS = 11.0
PageWidth Width of paper in default units (see note 3)
Values: any decimal number in your default units
Default: FW = read from preferences
PGS = 8.5
PhaseType Determines whether the moon phases are shown on each day, or only when the quarter-phases occur
Values: D for daily phases or Q for quarter-phases
Default: Q
PrefsName Sets the title shown for the current preference file Values: Any text (underscores cause the following character to be underlined)
Default: The path and name of the preference file
ShadowType Determines the type of shadow used
Values: 'P' = Partial (only shadow edges drawn)
  'F' = Full (complete shadow box drawn)
Default: 'P'
ShiftLMini Distance to shift the left minical in your default units (see note 3)
Values: any number (- = shift left, + = shift right)
Default: 0
ShiftRMini Distance to shift the right minical in your default units (see note 3)
Values: any number (- = shift left, + = shift right)
Default: 0
StartWeek Day of the week to use in the first calendar column. When used in conjunction with EndWeek, a range of days (e.g., Monday through Friday) can be printed.
Values: 0 = Sunday
1 = Monday
2 = Tuesday
3 = Wednesday
4 = Thursday
5 = Friday
6 = Saturday
Default: 0 (Sunday)
StretchDateH Percent of calculated date height to use for dates, can give "drop cap" effect (see notes 2 & 3)
Values: Any number, best 100 - 400
Default: 100
StretchDateW Percent of calculated date width to use for dates (see notes 2 & 3)
Values: Any number, best 100 - 400
Default: 100
SubHeaderLoc Percent down the text area (TTextArea or WTextArea, as appropriate) the subheader will be placed. Note that the subheader can be place above the header (see notes 2 & 3)
Values: any decimal number
Default: 0
SubHeaderSize Percent of text area (TTextArea or WTextArea, as appropriate) to be used for the subheader text (SubHeader$) (see notes 2 & 3)
Values: any decimal number
Default: 0
SubHeader$ The text used for the subheader, with %s placeholders for the varibles found in SubHeaderVars
Values: Any text
Default: ''
SubHeaderVars The variables substituted for the %s placeholders in SubHeader$
Values: Any internal FWCalendar variable
Default: ''
SunCalcPath Path to SunCalc
Values: : or / terminated path to SunCalc; don't include the application name with the path!
Default: None
SunRiseSepChar Character(s) used between sunrise time and sunset time when both values are printed in the same location.
Values: Any printable character(s)
Default: '/'
Text. Text strings to be included before the value (see note 1)
Default: ''
Julian - Julian days
WeekNumber - Sequential week number
Sunrise - Sunrise time
Sunset - Sunset time
TextAdj Percent of font height to lower inserted text when Final Writer is the host application; takes into account that Final Writer text is located according to the baseline and not the top or bottom of the text block. TextAdj represents how far down the font the baseline is located (see notes 2 & 3)
Values: any decimal number
Default: 77
TTextArea Percent of print height used for top of tall calendar (see notes 2 & 3)
Values: any decimal number
Default: 15
WeekdaySize The percent of vertical space between the bottom of the minicals and the top of the calendar used for the names of the weekdays (see notes 2 & 3)
Values: any decimal number
Default: 50
WTextArea Percent of print height used for top of wide calendar (see notes 2 & 3)
Values: any decimal number
Default: 20
YearlyCalColumns The number of columns of months to be used on full-year calendars. The number of month rows will be calculated from this number
Values: 1, 2, 3, 4, 6, or 12
Default: 3
YearlyCalMonthOrder Indicates how the months increase in yearly calendars
Values: H to increase months horizontally or V to increase months vertically
Default: H
YearlyCalSpacing Percentage of print width placed between full-year minicals (see notes 2 & 3)
Values: any decimal number
Default: 5


Colors
Color. Text & moon colors (see note 1)
Default: Black
AddEvent - FWCAddEvent text
Date - Day numbers
Extended - Day numbers for previous/next months
Header - Calendar header (Month & Year)
Highlight - Day numbers & text for non-holiday highlights
HighlightH - Day numbers & text for Holiday highlights
HighlightS - Day numbers & text for Special highlights
History - History text
Julian - Julian day number
JulianLeft - Julian day number
JulianSep - Julian/JulianLeft separator
MiniCal - MiniCal day numbers
Moon - Moon image
NoteBox - Note box label
Random - Random text
SubHeader - Calendar subheader
Sunrise - Sunrise time
SunriseSep - Sunrise/Sunset separator character(s)
Sunset - Sunset time
Weekday - Weekday titles
WeekNumber - Sequential week number
AltColor. Text colors for use when there is a non-white background (see note 1)
Default: Black
Date - Day numbers
Extended - Day numbers for previous/next months
Highlight - Day numbers & text for non-holiday highlights
HighlightH - Day numbers & text for Holiday highlights
HighlightS - Day numbers & text for Special highlights
History - History text
Julian - Julian day number
JulianLeft - Julian day number
JulianSep - Julian day number
Random - Random text
Sunrise - Sunrise time
SunriseSep - Sunrise time
Sunset - Sunset time
WeekNumber - Sequential week number
Line. Line and box colors (see note 1)
Default: Black
CalBorder - Outline box around calendar, defaults to Line.Grid
Grid - Current-month dates (main grid color)
MiniCal - Minical borders
Extended - Previous/next months
AddEvent - Boxed events added with FWCAddEvent
NoteBox - Note box
Background. Backgrund colors (see note 1)
Default: <Clear> or white
AddEvent - Boxed events added with FWCAddEvent
CalShadow - Calendar shadow
Highlight - Non-holiday highlights
HighlightH - Holiday highlights
MiniCal - Minicals
MiniCalShadow - Minical shadow
NoteBox - Note box
Standard - Used if no other background is defined
Weekend - Saturdays & Sundays

Fonts
Font. Font names (see note 1)
Values: FW = Any valid font including FULL path
PGS = Any valid font name
Default: FW = 'FWFonts/SWOLFonts/SoftSans_Bold'
PGS = 'Helvetica-Bold'
Date - Day numbers
Extras - Sunrise/sunset, julian/julian left, etc
Highlight - Highlights and FWCAddEvent
Weekday - Weekday titles
Header - Calendar header (Month & Year)
SubHeader - Calendar subheader
Minical - MiniCal day numbers
Bold. Bolded font names (see note 1)
Values: FW = Any valid font including FULL path
PGS = Any valid font name
Default: FW = 'FWFonts/SWOLFonts/SoftSans_Bold'
PGS = 'Helvetica-Bold'
MiniCal - MiniCal day numbers
FYMiniCal - Full-year MiniCal day numbers

Note 1: These variables will appear as a combination of the "stem" and a particular variable, such as Color.Date

Note 2: All percents are such that 1 = 1% and 100 = 100%

Note 3: Field supports simple math functions (with the ClassAct interface only)



Variable Editor

The Variable Editor is the opening requester for FWCalendar. Changes made in the Variable Editor are saved to the preference file.

Both FWCalendar and FWCAddEvent use the same user-chosen preference file for initializing variables, so you should not change the preference file between using FWCalendar and FWCAddEvent.

(ClassAct GUI only) Help bubbles can be accessed by placing the mouse pointer over a gadget and pressing the 'Help' key on the keyboard. The bubble will go away after a short time (as defined by the HelpTime variable) or upon pressing the 'Help' key a second time (in the help-bubble window).


Menus
Project->Reset: Causes the default settings (the settings coded into FWCalendar) to be loaded.

Project->Load: Allows you to load a preference file. The full path and file name of the loaded preference file will be displayed at the top of the requester; if the PrefsName variable is set in the preference file, that name will be displayed in place of the preference file's path and file name.

Project->Save As: Allows you to save the current settings under a new name. The new file then becomes the default preference file.

Calendar Type->Standard: Generates Standard (Christian) calendars.

Calendar Type->Hebrew: Generates Hebrew (Jewish) calendars.

Calendar Type->Islamic: Generates Islamic calendars.


Control Buttons:
The control buttons show up on all tabs.

(Start) Month: Allows you to select the month of the generated calendar. If the selected calendar type is multi-month (only available when PageStream is the host application), then this gadget selects the first month to be generated. This gadget will not be available for "yearly" calendar types.

End Month: Allows you to select the final month of a multi-month calendar (only available when PageStream is the host application) to be generated. This gadget will not be present for "yearly" or "single-month" calendar types.

Year: Allows you to select the year of the generated calendar. The up/down gadget can be used to change the value, or the value can be entered directly.

Calendar Format: Select the desired calendar format: Single-month, where each application document consists of a single calendar; Multi-month (only available when PageStream is the host application), where each application document consists of a number of calendars as defined by the start- and end- months; or Yearly, where each application document consists of mini-calendars for the year.

Go: Begin generation of the selected calendar and save changes made to the settings. (For the ClassAct GUI only, holding down a shift key will prevent changes made to the settings from being saved.)

Cancel: Cancels the operation. If the requester is cancelled, no changes made to any variables (either in the variable requester or in the highlight editor) will be saved.


Options & Layout Tab
MiniCals: If checked, mini-calendars showing the previous and next months will be included in the upper-left and upper-right corners of the calendar page.

Highlights: If checked, highlights found in the preference file will be included. Use the Highlight Editor to set the highlights.

Images: If checked, images will be included on days either defined in the Highlight Editor or identified as an Imageclass. variable. Note that the "Images" checkbox will be ghosted if FWCalendar can't find the graphics application identified in GfxApp. If the "Images" checkbox is ghosted and you don't think it should be, check the values of the GfxApp and GfxAppPath variables to make sure they are properly set.

Box Dates: If checked, a box (or image as defined in DateBoxImage) will be drawn around the date in the Font.Date color. If Final Writer is the host application, don't use this option with CornerRadius (the curvature of the boxes will be different and not look very good).

MiniCal Initials: If checked, the first letter of the weekday name will be included at the top of each weekday column in the mini-calendars.

Extended: If checked, the days from the previous month and the next month will be printed on the calendar as appropriate. This option is not possible at the same time as either the "Extra week at top" or "Note Box" options.

Extra week at top: If checked, the last week of months that extend into the 6th week will be printed as full-sized cells at the top of the calendar rather than half-height cells at the bottom of the calendar. This option is not possibe if the "Extended" option has been selected.

Note box: If checked, an empty box with the user-definable label (defaulting to "Notes") will be included where ever empty calendar boxes would show up. This option can be used with the "Extra week at top" option, but cannot be used with the "Extended" option (the entire calendar is filled with calendar boxes in this case.

Margins: The text boxes surrounding the cycle gadget correspond (going clockwise from the top) to the top, right, bottom, and left margins. The default values are read from the application's preferences when Final Writer is the host application, and default to 0.5 units when PageStream is the host application. If one of the margin gadgets is active, the <TAB> key will cycle through the margin settings. The following units can be used, but must immediately follow a number (i.e., they can't be outside parentheses): ppt for printer points, cm for centimeters, ft or f for feet, in or i for inches, mm for millimeters, pp for printer picas, pt for points, c for cicero, d for didot points, m for meters, or p for picas. If no units are indicated, inches will be assumed. These gadgets support simple math calculations (with the ClassAct interfact only).

Orientation: The center cycle gadget alternates between "Tall" (portrait) and "Wide" (landscape) settings.


Variables Tab
Font Variable: Select the desired font (see the variables for details) from the cycle gadget.

Font Name: This is a read-only gadget.

Ff: The file requester gadget must be used to change the font. When Final Writer is being used as the host application, a standard file requestor will appear from which you can select the desired font; when PageStream is being used as the host application, a list of all installed fonts will appear.

Color Variables: The text, line, and background colors (see the variables for details) will be presented in a list.

>: This gadget will allow you to cycle through the variables that have color attributes. Shift-click on this gadget to cycle through in reverse order.

Color: When this button is pressed, a list of available colors will be presented (if the host application is Final Writer, the actual color will be shown as well). Some variables allow <Clear> as an option, while others don't.

Date Color = Highlight Color: If checked, the date (and date box, if this option is selected) will be printed in the same color as the highlight text. If the checkbox is cleared, the date color will be determined by Color.Date.

Use Daily Colors: If checked, the date (and date box, if this option is selected) will be printed in a color determined by the variables Color.Sunday through Color.Saturday. If the checkbox is cleared, the date color will be determined by Color.Date.

Highlight Editor: The highlight editor can be invoked by clicking on this gadget.

Miscellaneous Variables: The miscellaneous (see the variables for details) will be presented in a list.

>: This gadget will allow you to cycle through the miscellaneous variables. Shift-click on this gadget to cycle through in reverse order.

Variable Value: Except for GfxApp, GfxAppPath, and SunCalcPath (the file requester gadget must be used to change the values of these variables), set the value of the selected variable here; you must either <RETURN> or <TAB> after entering the value. Quotes will automatically be added for variables requiring non-numeric values. Simple math calculations can be entered for numeric variables (with the ClassAct interface only).

File Requester: Used for setting the values of GfxApp, GfxAppPath, SunCalcPath and ImageClass variables.

+IC: (ClassAct GUI only) Add an ImageClass variable. ImageClass variables can be deleted by clearing the value for the desired ImageClass variable.


Extras Tabs
The options for adding extras (moon phases, julian dates, week numbers, etc.) are found in the third and fourth tabs. The check boxes in the "Top" tab will locate the extras in the two available top positions, while the check boxes in the "Bottom" tab locate the extras in the three available bottom positions. Each of the extras is mutually exclusive--each extra can be used in one location only, and each location can hold only one extra. If any extras are added to the top of a date cell, highlights for that date will begin down one line.

The extras are:
Phases: Include the phases of the moon (see note 1)

Week Number: Include the sequential week number on the first day of each week.

Julian: Include the Julian day (the number of days since the beginning of the year).

Julian Left: Include the number of days remaining in the year.

Jul/Jul Left: Include both the Julian day and the number of days remaining, separated by a "/", in the same location.

Sunrise: Include the sunrise time (see note 2).

Sunset: Include the sunset time (see note 2).

Rise/Set: Include both the sunrise and sunset times, separated by a "/", in the same location (see note 2).

History: Include a 'day in history' event. Only available for the bottom-center location, and no other bottom-located extras can be selected in conjunction with this. Will be ghosted unless the history files are present (see data files).

Random: Include a random event. Only available for the bottom-center location, and no other bottom-located extras can be selected in conjunction with this. Will be ghosted unless the random file is present (see data files).


Note 1: Will be ghosted unless either rexxmathlib.library by Thomas Richter or date.library by Kai Hofmann are available.

Note 2: Will be ghosted if FWCalendar can't find SunCalc; check the value of the SunCalcPath variable to make sure you have properly set the path to SunCalc.



Highlights

"Highlight" is the term I'm using to describe holidays, anniversaries, birthdays, and other notable dates. Highlights are added to the calendar as it is being generated. The Highlight Editor described below is not the same as the requester that's a part of FWCAddEvent. The events entered in FWCAddEvent are added to a calendar that has already been generated. These events do not repeat themselves every year (at least not at the same time).

There are several possibilities for highlight information, depending on whether the highlight falls on a fixed date or can "float". Both fixed highlights and floating highlights and can be set to happen monthly, while "fixed" highlights can also be set to show up only on weekdays or to always show up on the last day of the month. Highlights can also be set to occur weekly or biweekly (ie, on a certain weekday of only odd or even weeks).

If a Standard calendar is generated, then Easter-based highlights, highlights based on the Hebrew calendar (e.g., Rosh Hashana), and highlights based on the Islamic calendar (e.g., Ramadan) can be included. If a Hebrew or Islamic calendar is generated, Easter-based highlights can be included. The highlights available depend on the calendar type selected (by way of the menu) when the Highlight Editor is started.

Multiple highlights falling on the same day will automatically be accounted for. If you're using different date-cell background colors for your holiday-highlights and other highlights, only the box for the first highlight will be drawn (this keeps boxes from covering up already-rendered text).

If a highlight is wider than the calendar box width, the highlight will be compressed if possible and word-wrapped if necessary.

The dates of all highlights will be bolded in minicalendars. If a highlight is indicated as Special, the date for that highlight will either be boxed or surrounded by an image of your choice (see Image.Special) in the minicalendars. If a highlight is indicated as Holiday, the date for that highlight will either be boxed or surrounded by an image of your choice (see Image.Holiday) in the minicalendars.


Highlight Editor

Highlights entered in this editor are added to the calendar as it is being generated. This is different from the requester that's a part of FWCAddEvent. The events entered in FWCAddEvent are added to a calendar that has already been generated. These events do not repeat themselves every year (at least not at the same time).

The Highlight Editor is called by clicking on the Highlight Editor button found on the "Variables" tab of the Variable Editor. This editor consists of the following fields, settings, and gadgets:

Help bubbles can be accessed by placing the mouse pointer over a gadget and pressing the 'Help' key on the keyboard. The bubble will go away after a short time (as defined by the HelpTime variable) or upon pressing the 'Help' key a second time (in the help-bubble window).

Event: Enter the highlight as you want it to appear in the calendar, including any quotes you want to appear. Although either single or double quotes can be used, only one type can be used in a given highlight.

An anniversary age can be included by entering %CYYYY or %OYYYY within the event, where YYYY is the "base year" (the initiating year of an event, such as the birth year or the wedding year). If the %C marker is used, then the counting "age" (e.g., "22") of the event will be substituted in the event, while the %O marker will cause the ordinal "age" (e.g., "22nd") of the event to be substituted. For example, given that the current year is 2002, entering the following event lines will result in the following outputs:

Fred turns %C1960 today! Fred turns 42 today!
Fred's %O1960 birthday Fred's 42nd birthday

Given that different countries have different rules for creating ordinal numbers out of counting numbers, you may have to include some ordinal definitions in the FWCTranslations.txt file. The following definitions are used as a default:

OrdinalSuffix.11 = 'th'
OrdinalSuffix.12 = 'th'
OrdinalSuffix.13 = 'th'
OrdinalSuffix.1 = 'st'
OrdinalSuffix.2 = 'nd'
OrdinalSuffix.3 = 'rd'
OrdinalSuffix.Base = 'th'

This means to use th as the ordinal suffix for "ages" ending in '11', '12', or '13', use st if the "age" ends in '1', nd for "ages" ending in '2', and rd for "ages" ending in '3'. For all other "ages," use th as the suffix. Note that the first three lines (for 11, 12, and 13) are required to override the rules for "ages" ending in 1, 2, and 3.

File Selector: The file selector gadget is used to select images to appear on the calendar. If you want to shift the image (see the Images section), you can enter the comma-separated x- and y-shifts after selecting the image.

V: The chooser gadget will list the highlights for the current month in chronological order, even as new events are added.

>: The right-pointing arrow is used to select the next (chronologically) highlight, wrapping around to the first event when necessary. Shift-clicking on the gadget will select the previous (chronologically) highlight, wrapping around to the last event when necessary.

Comment: Enter an optional comment for the highlight. Although the comment won't be printed, it is available to maintain compatability with previous versions of FWCalendar.

Month Selector: The month selector is used to select the month in which the highlight falls. Also available in this selector is "All" for those highlights (like pay days) that happen at the same time every month. Changes to the current month's highlights are saved to memory when a new month is selected; changes are not saved to the preference file until a calendar is generated.

Date Selectors: The calendar of gadgets is used to select the date on which a highlight falls. The "LD" gadget is used for highlights that fall on the last day of a month.

Category: The category of highlight being added. If a Standard calendar is being generated, then Easter, Jewish, and Islamic events can be selected with this gadget. If a Hebrew or Islamic calendar is being generated, then Easter events can be selected with this gadget.

Type:
    Standard Standard highlights are those that happen on specified days of the month. Events like birthdays, anniversaries, and national holidays fall in this category. Standard highlights can be Fixed, Floating, or (Bi)Weekly (the descriptions of each of these highlight types can be read below).
    Easter Easter highlights are those that are based on the day on which Easter falls. Events like Ash Wednesday, Palm Sunday, and Good Friday fall in this category. Easter highlights are always fixed. The number of days before Easter the highlight occurs is entered in the "Offset" string as a negative number, or the number of days after Easter the highlight occurs is entered in the "Offset" string as a positive number.
    Hebrew Hebrew highlights are those that are based on the Hebrew calendar. Events like Rosh Hashana, Chanukah, and Passover fall in this category. Hebrew highlights are always fixed.
    Islamic Islamic highlights are those that are based on the Islamic calendar. Events like Ramadan fall in this category. Islamic highlights are always fixed.

The gadget below the highlight type will change depending on the highlight type selected.

Color: The print color for the highlight can be selected with this gadget. If <Clear> is selected, the print color for the highlight will be determined by the values of Color.Highlight, Color.HighlightH, AltColor.Highlight, and AltColor.HighlightH as appropriate.

Day Type: If you want a highlight to be treated as Special or Holiday (which allows different background colors to be used for the days than used for non-holiday entries), set the cycle gadget to "Special" or "Holiday".


Add Event: Highlights can be added to the existing highlights with this gadget. Before selecting this gadget, make sure you have selected the desired Highlight Category and (where appropriate) month. Added highlights are saved to memory when the "Done" gadget is pressed, the Highlight Category is changed, or the month is changed, but they are not saved to the preference file until a calendar is generated.

Delete Event: Highlights can be deleted with this gadget. The current highlight list will be saved to memory when the "Done" gadget is pressed, but not saved to the preference file until a calendar is generated.

Done: Selecting "Done" will cause any changes made to be saved to memory. Changes will not be saved to the preference file until a calendar is generated. Changes are also saved to memory anytime a new month is selected with the month selector. You can exit without saving current changes by selecting the "Close" gadget in the upper left corner of the requester; changes already saved to memory by switching months can only be cancelled by cancelling the main Variable Editor.


Fixed highlights are those highlights that always fall on the same day (for example, a birthday), and those highlights that usually fall on the same day (for example, tax day in America is always April 15 unless April 15 falls on a weekend, in which case it falls on the following Monday).

If a highlight always falls on the same day, leave the "Weekend" gadget set to "OK". If the highlight can't fall on the weekend, then set the "Weekend" gadget to "Prev Day" if the highlight gets moved up to the previous Friday, or to "Next Day" if the highlight gets moved back to the following Monday. Always set the date gadget to the day the highlight should fall on, even if it shows up on the weekend in the particular month shown in the editor.

The "LD" gadget is used for highlights that fall on the last day of a month.


Floating highlights are those that occur during a certain week of the month. Mother's Day, for example, always falls on the Sunday during the second week of May, while Memorial Day always falls on the Monday during the last week of May.

To set these highlights, select the date gadget for the day on which the highlight falls. The "Week Number" gadget will automatically indicate which week you have chosen. If you would like to change the week number, select the proper week number in the "Week Number" gadget, and the date will change accordingly. Be especially aware of the week number setting for those highlights that occur during the last week of a month rather than during the fourth week of a month.


(Bi)Weekly highlights can be set to occur every week (weekly) or every other week (biweekly). When dates are selected for these highlights, the "Week Type" gadget will be set to either "Odd" (if the selected date occurs during an odd-numbered week of the year) or "Even" (if the highlight occurs during an even-numbered week of the year). If the highlight should occur every week, set the "Week Type" gadget to "All". Changing the week type setting will cause the date to be changed accordingly.

 



Highlight Images

You can specify images to be inserted in the center of certain dates such as birthdays, anniversaries, Christmas, Tax Day, etc. Some images can be inserted whether or not a highlight is inserted on that date. Only one image can be inserted for a given day.

When used with PageStream as the host application, FWCalendar needs to know the type of the images to be used; when used with Final Writer as the host application, FWCalendar needs to know the image dimensions. FWCalendar can extract this information from many image formats including IFF-InterLeaved BitMap (.iff), Windows BitMap (.bmp), PostScript (.ps), Adobe Illustrator Encapsulated PostScript (.eps), Joint Photographics Expert Group (.jpg), Portable Network Graphics (.png), Compuserve's Graphic Interchange Format (.gif), ZSoft PC-Paintbrush (.pcx), Tagged Image File Format (.tif) and Targa (note that Pagestream and Final Writer do not necessarily support all these formats). The internal parser used to obtain information from the graphics files is very simple and may not be able to extract the needed information from every file in the above formats. To use FWCalendar's internal parser, set GfxApp to point to FWCalendar.rexx itself.

If you find that the internal capabilities are not adequate, you can define the graphics application you want to use to determine this information by defining the GfxApp and GfxAppPath to point to one of three applications: Visage by Magnus Holmgren; ImageDTInfo by Dámaso Domínguez; and PicSize by Ralph Reuchlein. Each of these applications is available from Aminet. If you would like to see another application supported, contact me.

Hint: Encapsulated Postscript images (in Adobe Illustrator-compatible format) can be made to work on your system (with or without datatypes) with the installation of the HWGPost package.

As an alternative, HWGPost can be installed on your system. This will allow postscript images

Image Classes -Image classes can be defined for frequently occurring events such as birthdays and anniversaries. The variable stem is ImageClass., and the variable itself must match a word that will be used in the highlight (for example, ImageClass.Birthday will define the image to be used for all highlights containing the word "Birthday", and ImageClass.Anniversary will define the image to be used for all highlights containing the word "Anniversary"). The value of the variable is the file name of the image to be used.

(ClassAct GUI only) Image class variables can be added using the '+IC' button on the Variables tab of the variable requester. After defining the name of the image class, the value must be set as outlined above.

Image class variables can be deleted by clearing the value of the desired variable.

Images are normally printed in the center of the date box. If you would like to shift the image, the shift parameters can be defined as part of the image-file definition. The template for an image variable is:

ImageClass.<Class> = "<File> [,<x shift> [,<y shift>]]"

where the shifts are in inches.

For an image (found in the "Images" directory in the same directory as FWCalendar) to be used for all birthdays:

ImageClass.Birthday = "Birthday.iff"

The "Birthday.iff" image will be inserted on all days that have a highlight with the word "Birthday" in it.

To shift the image a quarter inch to the right and up a tenth of an inch, the entry would be:

ImageClass.Birthday = "Birthday.iff, 0.25, -0.1"

For an image (found in some other directory) to be used for all anniversaries:

ImageClass.Anniversary = "WB:IFF/Anniversary.iff"

The "WB:IFF/Anniversary.iff" image will be inserted on all days that have a highlight with the word "Anniversary" in it.

Specific Images - Images for specific dates are entered using the Highlight Editor. Images are not currently supported for Easter-based highlights, but images can otherwise be defined for any of the highlight formats (fixed, floating, and (bi)weekly). Images don't require any highlight text to be set for that date.



Scaling

FWCalendar is fully scaleable. Just change the margins in the preferences file and run the macro; a proportionally scaled new calendar will be generated. There is no need to change font sizes: a calendar rendered to fit in a 7.5" x 10.0" space will look essentially identical to a calendar rendered to fit in a 1.875" x 2.5" space.

When Pagestream is used as the host application, calendars are completely scaleable. Because Pagestream allows fractional font sizes, and font sizes from 1 pt to 50000 pt in 0.001 pt increments, you could theoretically print a 0.79"-high calendar that would look just like a 7.5"-high calendar. Obviously printer limits come into play before Pagestream's font-size limitations.

Final Writer has a lower limit of 4 pts for allowable font sizes, and font sizes must be whole numbers. This limits the vertical size of FW-rendered calendars to no smaller than about 3.125". Although small calendars will appear proportional to larger calendars, the text sizes may be slightly different.



SunCalc

You can add the sunrise and/or sunset times to each day if you have SunCalc by Brian Savage installed. Use the Variable Editor to set the variable SunCalcPath to the path of the SunCalc application.

The settings for SunCalc (the longitute, latitude, timezone, and hour format) are read from the environment variables as described in the SunCalc documentation. FWCalendar can take into account changes to and from daylight savings time (change the AdjustDST variable if your location doesn't participate in DST time changes).



Launching Programs
or
Executing Commands

If you would like to execute a command or launch an application upon FWCalendar completing either a monthly or yearly calendar, then set the LaunchM (to execute a command after completing a monthly calendar) or LaunchY (to execute a command after completing a full-year calendar) variable. You'll want to have an understanding of ARexx to do this, since the LaunchM and LaunchY variables are simply INTERPRETed. Some possibilities might be:

For either host application (Final Writer or PageStream), for use with monthly calendars only:
Start FWCAddEvent:   LaunchM = 'call "'scriptdir'FWCAddEvent.rexx"'

For either host application (Final Writer or PageStream), for use with monthly or yearly calendars:

Delete temporary files:   LaunchM = 'address command "delete >NIL: "Storage" all force quiet"'

When the host application is Final Writer, :

Save the calendar:   LaunchM = 'SAVE'
Import an image:   LaunchM = 'INSERT GRAPHIC'

When the host application is PageStream, for use with monthly or yearly calendars:

Save the calendar:   LaunchM = 'SAVEDOCUMENT DEFAULT'
Import an image:   LaunchM = 'PLACEGRAPHIC'
Save as a graphic:   LaunchM = 'SELECTOBJECT ALL; GROUP; EXPORTGRAPHIC'


Y2K and Dates

I have replaced all Date() function calls (except those asking for the current date) with DateInfo() function calls. DateInfo() is a subroutine I wrote to mimic the behavior of Date() in all ways except that it allows (theoretically) any dates to be used (the Date() function is limited to dates between Jan 1, 1978 and Dec 31, 2099, inclusive).

The routine used to determine a specific date from a serial date was taken from Astronomical Computing, Sky & Telescope, May, 1984. The routine used to determine a serial date from a specific date was taken from PerpetualCalendar.bas that appeared in Astronomical Computing, Sky & Telescope, July, 1985. I do not pretend to have an understanding of how these routines work, and therefore cannot warrant that they are accurate. I do know, however, that Date() and DateInfo() return identical results for all options (except option 'C', see below) and all dates for which Date() is valid. Note, though, that the function does not take into account the transition to the Gregorian calendar back in the 1500s.

Option 'C' for Date() returns the number of days since Jan 1, 1900, while DateInfo() returns the number of days since the beginning of the century in which the date occurs (eg, Jan 1, xx01).

This means that FWCalendar is Y2K compliant, and should be valid for any possible date after the transition to the Gregorian calendar.



Localization

FWCalendar is localized for several languages (currently English, German, Swedish, Italian, Spanish, French, Norsk, and Portugese) by including the proper translations for month names, weekday names, and requester strings in the FWCTranslations.txt file. Not speaking any of these languages other than English, I relied on help from people using these macros or used the translation utility available from Alta Vista to translate the information. Without your help, I have no way of confirming the accuracy of these translations.

In addition to New Year's Day and Christmas, national holidays or celebration days are listed for many countries: America, England, France, Germany, Ireland, Italy, Norway, Scotland, Spain, and Sweden. Much of the information for this area was obtained from The Worldwide Holiday & Festival Site. I would appreciate your contributions for other countries. Please email me the "highlights" for your country and I will update the available preference files.

To see the variables that can be localized, look at the FWCTranslations.txt file in the American folder or, if it exists, in the folder for any of the supported countries.



Tips & Solutions


Thank You!
Algorithm for calculating Easter

The actual origin of the algorithm used for calculating the date of Easter appears to be by an anonymous correspondent from New York to Nature in 1876. Samuel Butcher, Bishop of Meath, showed that this algorithm followed from Delambre's analytical solutions, and produces the date of Easter for all years.

The algorithm used in DateInfo is a modified version of the one that appears in Practical Astronomy With Your Calculator, 2nd Edition by Peter Duffett-Smith, and he obtained this algorithm from Butcher's Ecclesiastical Calendar, published in 1876. This algorithm has also been published in the 1922 book General Astronomy by Spencer Jones; in The Journal of the British Astronomical Association (Vol.88, page 91, December 1977); and in Astronomical Algorithms (1991) by Jean Meeus.



Recent Changes

Highlights can now include Islamic-calendar events

Islamic calendars can now be generated


Highlights can now include Hebrew-calendar events

Hebrew calendars can now be generated

"Reset", "Load", and "Save As" buttons are now menu items


Accommodated default directory for FWCAddEvent data files.

Increased flexibility of calendars. For yearly calendars, YearlyCalColumns determines the number of columns of months, YearlyCalMonthOrder determines whether months increase across the rows or down the columns. For monthly calendars, MonthlyDayOrder determines whether days increase across the rows or down the columns. For both calendars, MiniCalDayOrder determines whether days increase across the rows or down the columns for the mini-calendars.

NOTE: The MiniCalSpacing variable has been renamed YearlyCalSpacing to keep all the Yearly calendar variables together.


The host application's default units are now used for all measurements, and the measurements are displayed in these units as well, rather than being converted to inches. Note that ShiftLMini and ShiftRMini are now expressed in terms of the default application units rather than in the number of 1/720 inch shifts.


Can start week numbers with either the first whole week or the first week, whole or partial (see CountPartialWeek)


Can insert Advent highlights by setting the AdventHighlights, Image.Advent, and Advent$. variable (the Advent$. variable is added to the FWCTranslations.txt file)

Can have anniversary numbers included with birthdays, anniversaries, etc. (see Highlights for details)

Can enter periodic events (e.g., being on call for three days every three weeks) (see Adding Events for details)


Added checkbox for including the first letter of the weekday name at the top of each weekday column in the mini-calendars.


FWCalendar can now parse image files to the extent necessary to obtain format and size information. An external graphics program (i.e., Visage, ImageDTInfo, or PicSize) are no longer required; they are still supported, however, since the internal parser is fairly simple and may not work for all images. The greatest advantages of using the internal parser are speed and memory usage.

DSTStart and DSTEnd allow the start and end dates of Daylight Saving Time to be set.

PhaseType allows moon phases to be either shown on each day or only on the phase quarters.

Now supports three types of Highlight days: Normal, Special, and Holiday (see the Highlight Editor.

Image. variables allow images to be used in place of boxes for various parts of the main calendar and minicalendar

Different colors can be used for Sunrise/Sunset and Julian/JulianLeft even when both are printed in the same location. SunriseSep and JulianSep allow the character(s) used between Sunrise/Sunset and Julian/JulianLeft to be defined.

Simple math can be used in numeric variables (e.g., font sizes) (with the ClassAct interface only).

User-defineable units can be used for the margin values.

Limit.Sunrise and Limit.Sunset allow printing of sunrise/sunset and Julian days/Julian days left to be limited to a user-defineable day of the week.

User variables allowed in FWCAddEvent data file.


Added Undo capability to FWCAddEvent (ClassAct GUI only).


EndWeek variable allows selection of the date to use in the last calendar column. When used in conjunction with StartWeek, a range of days (e.g., Monday through Friday) can be printed.


(PageStream only) Multi-month calendars can be created where a single document consists of multiple calendars.



FWCalendar History
(also see Recent Changes)

The archives in this section include the FWCAddEvent files that should work with the associated FWCalendar version.

v 4.35
11 May 02
  • Highlights can now include Islamic-calendar events
  • Islamic calendars can now be generated

v 4.34
20 Apr 02
  • Highlights can now include Jewish-calendar events
  • Hebrew calendars can now be generated
  • "Reset", "Load", and "Save As" buttons are now menu items

v 4.32
13 Mar 02
  • Accommodated default directory for FWCAddEvent data files.
  • Increased flexibility of calendars. For yearly calendars, YearlyCalColumns determines the number of columns of months, YearlyCalMonthOrder determines whether months increase across the rows or down the columns. For monthly calendars, MonthlyDayOrder determines whether days increase across the rows or down the columns. For both calendars, MiniCalDayOrder determines whether days increase across the rows or down the columns for the mini-calendars.
  • NOTE: The MiniCalSpacing variable has been renamed YearlyCalSpacing to keep all the Yearly calendar variables together.

v 4.30
2 Mar 02
  • The host application's default units are now used for all measurements, and the measurements are displayed in these units as well, rather than being converted to inches. Note that ShiftLMini and ShiftRMini are now expressed in terms of the default application units rather than in the number of 1/720 inch shifts.
  • The Final Writer version didn't have blue moons, but it did have magenta moons. Fixed.

v 4.28
21 Feb 02
  • Can start week numbers with either the first whole week or the first week, whole or partial (see CountPartialWeek)

v 4.26
21 Feb 02
  • Can insert Advent highlights by setting the AdventHighlights, Image.Advent, and Advent$. variable (the Advent$. variable is added to the FWCTranslations.txt file)
  • Bug fix with moon phase

v 4.24
16 Feb 02
  • Can have anniversary numbers included with birthdays, anniversaries, etc. (see Highlights for details)
  • Bug fixes with adding events, moon phases, and Easter calculations.

v 4.21 - v 4.23
  • Who knows?

v 4.20
12 Nov 01
  • Added checkbox for including the first letter of the weekday name at the top of each weekday column in the mini-calendars.

v 4.18
3 Nov 01
  • FWCalendar can now parse image files to the extent necessary to obtain format and size information. An external graphics program (i.e., Visage, ImageDTInfo, or PicSize) are no longer required; they are still supported, however, since the internal parser is fairly simple and may not work for all images. The greatest advantages of using the internal parser are speed and memory usage.
  • DSTStart and DSTEnd allow the start and end dates of Daylight Saving Time to be set.
  • PhaseType allows moon phases to be either shown on each day or only on the phase quarters.
  • Now supports three types of Highlight days: Normal, Special, and Holiday (see the Highlight Editor) (with the ClassAct interface only).
  • Image. variables allow images to be used in place of boxes for various parts of the main calendar and minicalendar
  • Different colors can be used for Sunrise/Sunset and Julian/JulianLeft even when both are printed in the same location. SunriseSep and JulianSep allow the character(s) used between Sunrise/Sunset and Julian/JulianLeft to be defined.
  • Simple math can be used in numeric variables (e.g., font sizes) (with the ClassAct interface only).
  • User-defineable units can be used for the margin values.
  • Limit.Sunrise and Limit.Sunset allow printing of sunrise/sunset and Julian days/Julian days left to be limited to a user-defineable day of the week.

v 4.14
3 Jun 01
  • No changes, version number bumped to accommodate change in FWCAddEvent.rexx.

v 4.13
3 Jun 01
  • EndWeek variable allows selection of the last week day to be printed. When used in conjunction with the StartWeek variable, a range of days (e.g., Monday through Friday) can be printed.

v 4.11
8 Jan 01
  • (ClassAct GUI only)Changes made to the settings in the variable editor will not be saved if a shift key is being held down.

v 4.09
23 Oct 00
  • (PageStream only) Multi-month calendars can be created where a single document consists of multiple calendars.
  • Bug fixes.

v 4.08
7 Oct 00
  • (ClassAct GUI only) Help bubbles can be accessed by placing the mouse pointer over a gadget and pressing the 'Help' key on the keyboard. The bubble will go away after a short time (as defined by the HelpTime variable) or upon pressing the 'Help' key a second time (in the help-bubble window).
  • (ClassAct GUI only) ImageClass variables can now be added and deleted using the variable requester.

v 4.07
25 Sep 00
  • A minor change allows the use of earlier versions of ClassAct
  • Added ForceBGUI variable

v 4.06
24 Sep 00
  • Fixed a bug in the Daylight Savings Time support
  • Improved behavior of some browser-lists (Class Act only)
  • Improved (?) documentation in Variables section

v 4.05
21 Sep 00
  • BGUI is still supported due to the unavailabity of current ClassAct classes
  • Added Random and History options (see data files)
  • Changed the way requesters are sent to the proper screen. RexxTricks is no longer required. See the notes in the Installation section and the HostScreen variable. Deleted ChangePubScreen and DoShanghai variables.
  • Added the following variables (see Recent Changes for details:
    CenterHistory
    Color.History
    AltColor.History
    MinHistoryWidth
       CenterRandom
    Color.Random
    AltColor.Random
    MinRandomWidth
       Background.Standard
    ShadowType
  • Bug fixes?

v 4.04
16 Aug 00
  • Required GUI interface is now ClassAct (used with AWNPipe) rather than BGUI (used with RexxBGUI)
  • Added printable version of docs (see bottom entry of index)
  • Changed format of the following variables (see Recent Changes for details:
    DateOffset
    HeaderLoc
    HeaderSize
    MagnifyExtras
    MaxImgPixHeight
    MaxImgPixWidth
       MiniCalHeight
    MiniCalSpacing
    MiniCalWidth
    MoonRadius
    StretchDateH
       StretchDateW
    TextAdj
    TTextArea
    WeekdaySize
    WTextArea
  • Added the following variables (see Recent Changes for details:
    CalendarBorder
    Line.CalBorder
    CalendarShadow
    Background.CalShadow
    MiniCalShadow
       Background.MiniCalShadow
    Header$
    HeaderVars
    SubHeader$
       SubHeaderVars
    Font.SubHeader
    SubHeaderSize
    SubHeaderOffset

v 4.02
18 Jul 00
  • The month used in the Highlight Editor now matches the month selected in the Variable Requester rather than the current month.
  • Different colors can now be set for each highlight rather than having all highlights print in the same color.

v 4.01
11 Jul 00
  • CornerRadius causes date cells to be bordered by rounded boxes rather than by a square grid (see recent changes for more details).
  • DoBackgrounds variable dropped, but functionality maintained.
  • Internal code cleanup (beware :))

v 4.00
4 Jun 00
  • The variable editor now saves changes to the preference file (no more mysterious FWC.dat file)
  • Translation file is now separate from the preference file
  • Highlight editor has been added to variable editor (no need to manually change the preference file any more)
  • All data format changes (including new translation file) are transparent to the user
  • DoEaster variable deleted (functionality still there, but the variable was no longer needed)

v 3.86
7 May 00
  • Allowed a note box to be printed where ever empty calendar boxes would be printed.
  • Color coded HTML docs

v 3.84
11 Mar 00
  • Allowed week 6 to be at the top of the calendar rather than split at the bottom of the calendar.

v 3.82
4 Mar 00
  • Allowed weekly and biweekly highlights

v 3.78
11 Jan 00
  • Bug fix in reading new variables
  • Better detection when bgui libraries are not available
  • Added HeaderSize and WeekdaySize variables
  • Added support for PostScript images
  • Added support for date.library by Kai Hofmann to be used rather than rexxmathlib.library
  • Allowed various backgrounds to be transparent

v 3.76
2 Dec 99
  • Added support for alternate graphics applications (in particular, ImageDTInfo by Dámaso Domínguez)
  • Fixed a bug in calculating Easter-based highlights (thanks to Aller Persson)

v 3.74
1 Nov 99
  • Weekday/Month headings don't default to upper-case; they show up either mixed case or the way you define them in the preferences file

v 3.72
1 Nov 99
  • Can load different preference files for different needs
  • Added MagnifyExtras variable
  • Added "Export" option to variable requester
  • rexxtricks.library now used only for shanghaing windows

v 3.70
7 Oct 99
  • Added Leading and MinWidth variables
  • ShiftLMini.FW, ShiftLMini.PGS changed to simply ShiftLMini
  • ShiftRMini.FW, ShiftRMini.PGS changed to simply ShiftRMini

v 3.68
4 Oct 99
  • Fonts and colors are now accessible through the variable requester
  • Fixed a bug in locating the moon image
  • Allowance for non-English sentence structures added
  • See Variables section on GeneratingM$, GenMVars, GeneratingY$, GenYVars
  • Allowed images to be shifted from the center of the date box
  • Eliminated need for TestMode, Black$, and White$ variables

v 3.66
20 Sep 99
  • Extras (moonphases, julian days, etc) allowed on top or bottom
  • IMPORTANT: SunCalcPath, GfxAppPath, DoSunRise, DoSunSet variables added, DoSunCalc variable dropped
  • Values of several Do... variables changed

v 3.64
10 Sep 99
  • Improved variable editor incorporated in opening requester
  • Beep and PeekQual no longer used
  • Support for FWCalendarY.data dropped
  • Added progress indicator to Final Writer calendars
  • Added StretchDateW variable
  • Changed StretchDate variable to StretchDateH
  • Eliminated need for DoDebug variable (more robust error reporting)
  • Automatically adjusts widths of highlights that are too wide
  • DoHide now defaults to 0 rather than 1 (will not hide at all unless all other PageStream windows are closed)
  • DoShanghai now defaults to 1
  • Added several locale strings

v 3.62
25 Aug 99
  • BGUI is used for all requesters. bgui.library and rexxbgui.library are REQUIRED. rexxreqtools.library is no longer used.
  • MUIRexx and Gui4CLI are no longer used for any requesters
  • Improved error reporting (added DoDebug variable)
  • Dates outside the range Jan 1, 1978 - Dec 31, 2099 allowed
  • Added HighlightRows, Reset$, VarGUITitle$, EnterDateInfo$ variables
  • Deleted MonthOrYear$, EnterYear$, YearSelect$, EnterMonth$, MonthSelect$, and MonthUnknown$ variables

v 3.60
4 Aug 99
  • Added ability to insert images on specified days. See the "Images" section and the DoImages, ImageClass., MaxPicWidth, and MaxPicHeight variables

v 3.57
26 Jul 99
  • Took some variables out of the "ListAll" option

v 3.56
25 Jul 99
  • Added ShiftLMini., ShiftRMini., and ListAll variables

v 3.54
11 Jul 99
  • Re-worked variables to prevent overlapping
  • Allowed files to be installed in ANY directory
  • Renamed AddEvent.rexx to FWCAddEvent.rexx
  • Added FinalView variable
  • Address change

v 3.52
5 May 99
  • Fixed an overlap of variables preventing Text. strings from working

v 3.50
28 Apr 99
  • Added DoDateBox variable
  • Added DoShanghai variable
  • Fixed one small and one large problem with the Variable Editor

v 3.48
24 Apr 99
  • Added word wrap for highlights

v 3.46
23 Apr 99
  • Added DoJulianLeft variable to print days remaining in the year
  • Internal changes ... hope I didn't mess anything up

v 3.44
22 Apr 99
  • Oops. Left debugging settings in (result: only December printed in yearly calendar)

v 3.44
21 Apr 99
  • Moved reading of margin settings from FW's Layout/Page... requester to FW's Layout/Section... requester. Settings in the FWCalendar.data file will still override settings in FW
  • Added a credit line to the calendars

v 3.42
18 Apr 99
  • Changed behavior of variable editor

v 3.40
17 Apr 99
  • Added a simple variable editor

v 3.36
14 Apr 99
  • Fixed a bug that caused monthly events in October to be assigned to January

v 3.35
14 Apr 99
  • Added ability to include monthly and end-of-month events
  • Added ability to have weekend-exceptions to events
  • Fixed a bug introduced by the addition of the Easter-date algorithm (caused the yearly calendar to skip Jan - Mar!)
  • Fixed a bug that prevented the Moon routine from working on some systems

v 3.32
8 Apr 99
  • Norsk localization added (thanks Truls!). No changes to the program.

v 3.32
7 Apr 99
  • Slightly improved routine for drawing moon phases

v 3.30
6 Apr 99
  • Replaced Easter-date lookup table with an algorithm
  • Included option to include the phases of the moon
  • Added DoEaster, DoPhases, MoonRadius, FullIsFilled, and Color.Moon variables

v 3.25
4 Mar 99
  • Fixed bug when FINALW.1 wasn't the Final Writer port

v 3.20
2 Mar 99
  • Fixed small DoWeekNumber bug
  • Added HeaderLoc variable
  • Added British, Irish, Portugese, and Scottish data files

v 3.15
16 Feb 99
  • Changed a command to allow macro to work with pre-v 3.4 PageStream

v 3.10
14 Feb 99
  • Added StretchDate variable
  • Added Font.Highlight variable (can be different from Font.Date)
  • Improved French translation file (thanks Pierre!)
  • Improved print routines to allow both single and double quotes
  • CAUTION: Calendars created not compatible with pre-v 3.10 AddEvent.rexx
  • Allowed for the absence of any Highlight data

v 3.05
13 Feb 99
  • Added Swedish FWCalendar.data file (thanks B÷rje!)
  • Added option to print week number
  • Added text color options for Julian days, weeknumbers, and sunrise/sunset times
  • Added text prefix options for Julian days, weeknumbers, and sunrise/sunset times

v 3.02
7 Feb 99
  • Fixed an even smaller bug in TestMode

v 3.01
6 Feb 99
  • Fixed a small bug in TestMode

v 3.00
1 Feb 99
  • Extensive re-write - CHECK YOUR VARIABLES!
  • Fully scaleable
  • Works on Final Writer AND Pagestream
  • Fully localizable (see localization)
  • Updated Spanish data file
  • Start the calendar on any day of the week (eg, Monday, Tuesday, ..., Sunday)
  • Added Julian dates
  • Added sunrise/sunset times (via SunCalc)
  • Added the ability to launch a program or macro upon completion of the calendar

v 2.25
29 Dec 98
  • Separate data files can be used for Yearly and Monthly calendars
  • Added 'Orientation' ('Tall' or 'Wide') to variables
  • Multiple highlights on a single date improved (NO limitations!)
  • Floating date for Easter determined
  • Events based on time-after-Easter added (see Installation instructions)
  • Fixed the part of the Guide explaining how floating dates are calculated
  • Fixed the entry for calculating Thanksgiving (wrong on a recent upload, though previously working?)
  • Fixed the year for mini-calendars printed at the turn of the year (also wrong on a recent upload, though previously working)

v 2.20
10 Oct 98
  • Multiple highlights on a single date are now allowed (see Highlights

v 2.15
  • Allowed true cancellation of the "Save changes to document?" requestor
  • Added a TestMode to check the variables in the FWCalendar.data file.
  • Corrected the order in which user variables are read; resulted in the proper use of localized values for Black and White.
  • If Extended mode is turned off, the empty boxes are no longer drawn

v 2.10
  • Moved ALL user variables to FWCalendar.data file
  • Added control over colors for about everything (see variables)
  • Re-wrote (cleaned up) LOTS of the code

v 2.05
  • Not a version change, because it's exactly the same as the previous version 2.05 without my mistake of accidentally commenting out two essential lines. Do have some updates to the German and Italian translation (FWCalendar.data) files, though. SORRY!

v 2.05
  • Deleted my hard-coded margins. Oops!
  • Canned the FW requestors in favor of Reqtools requestors
  • Changed the way the upper area (the area with the mini-calendars and the month name) is calculated to allow for hard-coding margins (Dieter Zimmermann wanted his calendars to appear on the lower half of a portrait-oriented page, presumably to allow the addition of a picture on the upper half. Good idea, Dieter!)

v 2.0
  • Now 'localized' for American, German, Spanish, French, Italian, and Portugese

v 1.4
  • Full-year calendar now fills the full page
  • Font widths now work

v 1.3
  • Fixed macro to allow use of a comma for the decimal point instead of the period

v 1.2
  • Added box/bold of highlight dates in mini-calendars
  • Added option to print full year of calendars on a single page

v 1.1
  • De-Americanized macro (no longer assumes US Letter paper and inch units)

v 1.01
  • Corrected default margins
  • Removed my personal highlights
  • Set default fonts to more likely locations

v 1.0
  • First release


FWCAddEvent History
(see Recent Changes)
v 4.12
21 Apr 02
  • Accommodated Hebrew calendar possibility.

v 4.10
25 Mar 02
  • Accommodated default directory for data files.

v 4.08
13 Mar 02
  • Accommodated vertical-format calendars.

v 4.05
21 Feb 02
  • Fixed a bug caused by allowing images to be inserted. The event type gadget now has three choices: Event, Image, and File. Select the appropriate one.

v 4.04
30 Jan 02
  • Can enter periodic events (e.g., being on call for three days every three weeks) (see Adding Events for details)
  • The default directory for data files is now the same directory in which the data file used for creating the calendar itself is found
  • Checks to make sure a compatible version of FWCalendar is being used. Will not work with calendars generated with FWCalendar before v 4.22!
  • Bug fixes.

v 4.02
3 Nov 01
  • Simple math is supported in the font size gadget (ClassAct GUI only).
  • User variables allowed in data file

v 3.97
12 Jun 01
  • Added undo capability (ClassAct GUI only).

v 3.95
3 Jun 01
  • Accommodated variable week size introduced in most recent version of FWCalendar.

v 3.92
29 Jan 01
  • Bug fix in BGUI GUI

v 3.91
7 Oct 00
  • (ClassAct GUI only) Help bubbles can be accessed by placing the mouse pointer over a gadget and pressing the 'Help' key on the keyboard. The bubble will go away after a short time (as defined by the HelpTime variable) or upon pressing the 'Help' key a second time (in the help-bubble window).

v 3.90
25 Sep 00
  • A minor change allows the use of earlier versions of ClassAct

v 3.89
24 Sep 00
  • A name-changed routine was fixed

v 3.88
6 Sep 00
  • BGUI is still supported due to the unavailabity of current ClassAct classes
  • If any line of an entry is compressed, all lines in that entry will use the same compression
  • Bug fixes?

v 3.87
16 Aug 00
  • Required GUI interface is now ClassAct (used with AWNPipe) rather than BGUI (used with RexxBGUI)
  • TabFactor, TabSub, and EventKey variables deleted.

v 3.84
11 Jul 00
  • Accommodated CornerRadius variable
  • Added RootDay variable to data file (see data files for details).
  • Internal code cleanup (beware :))

v 3.78
11 Mar 00
  • Accommodated possibility of week 6 being on top of the calendar rather than split at the bottom of the calendar.

v 3.76
4 Mar 00
  • Allowed biweekly events

v 3.74
11 Jan 00
  • Allowed various backgrounds to be transparent.

v 3.72
25 Oct 99
  • Added ability to modify fonts
  • FWCAddEvent data file format changed ... for the last time

v 3.70
7 Oct 99
  • Added Leading and MinWidth variables
  • Added events will now not overwrite the date

v 3.66
4 Oct 99
  • FWCAddEvent.data format changed to accomadate ability to change event text color as event is added
  • Cycle gadget added for colors
  • Support for tint (PageStream only) dropped

v 3.64
20 Sep 99
  • Bug fixes

v 3.62
10 Sep 99
  • Automatically adjusts widths of events that are too wide
  • Added several locale strings
  • Will only work with FWCalendar.rexx v3.64+ calendars

v 3.60
25 Aug 99
  • BGUI is used for all requesters. bgui.library and rexxbgui.library are REQUIRED. rexxreqtools.library is no longer used.
  • MUIRexx and Gui4CLI are no longer used for any requesters
  • Improved error reporting (added DoDebug variable)
  • Allowed specifying boxcolor for boxed highlights
  • Allowed empty boxes to be created
  • Added BoxColor$ string
  • Added AddEventRows and EventKey variables
  • FWCADDEVENT.DATA FORMAT CHANGED

v 3.50
10 Jul 99
  • Re-worked variables to prevent overlapping
  • Allowed files to be installed in ANY directory
  • Renamed AddEvent.rexx to FWCAddEvent.rexx
  • Added EnterStartdate$, EnterEvent$, SelectFile$, and File$ variables
  • Allowed pre-defined event files to be used (see DataáFiles)
  • Fixed problem of added events creeping down the calendar

v 3.30
3 Jun 99
  • Fixed a bug that might cause events to print in the wrong size

v 3.28
15 May 99
  • Now PROPERLY reads DoShanghai variable (see "Recent Changes")

v 3.27
14 May 99
  • Now reads DoShanghai variable (see "Recent Changes")

v 3.25
4 Mar 99
  • Fixed bug when FINALW.1 wasn't the Final Writer port

v 3.20
2 Mar 99
  • Allowed events to be added to the top line
  • Added TabSub and TabFactor variables
  • Added an informational requester if neither MUIRexx nor Gui4Cli can be found

v 3.15
16 Feb 99
  • Changed a command to allow macro to work with pre-v 3.4 PageStream

v 3.10
14 Feb 99
  • Improved print routines to allow both single and double quotes
  • CAUTION: Not compatible with pre-v 3.10 FWCalendars

v 3.00
1 Feb 99
  • Fully localizable
  • Can use either MUIRexx (recommended) or Gui4Cli

v 2.50
29 Dec 98
  • Fixed some calls that may or may not have caused some people problems

v 2.45
10 Oct 98
  • Modified slightly to work around the fact that on some machines the Gui4Cli routine signalled that it was done before it really was.

v 2.40
  • Accommodated changes in FWCalendar.data file

v 2.35
  • Accommodated the upper-area-calculation change made in FWCalendar.rexx macro.

v 2.3
  • Fixed bug that didn't allow the close gadget to work
  • Now 'localized' for American, German, Spanish, French, Italian, and Portugese

v 2.2
  • Can now (indirectly) enter the '$' in events (see UseráVariables)

v 2.1
  • Fixed macro to allow use of a comma for the decimal point instead of the period

v 2.0
  • Now REQUIRES Gui4Cli, but what an improvement!
  • Can enter weekly events

v 1.2
  • De-Americanized macro (no longer assumes US Letter paper and inch units)

v 1.1
  • Corrected default margins
  • Set default fonts to more likely locations
  • Added multi-line, auto-breaking, non-boxed events

v 1.0
  • First release