RAINLENDAR 0.22.1
 

Rainlendar is a customizable calendar that resides on your desktop and shows the days of the current month. It's possible to add events and tasks to the calendar and the appearance can be customized with different skins. Rainlendar can also show the events and tasks from Microsoft Outlook and Mozilla Sunbird. The events can be synchronized with a server, which will allow you to use it e.g. at home and at work. There are plenty of other features too. Check the rest of this document for details.

Rainlendar requires Windows 2000 or Windows XP to work correctly.

This product includes software developed by Lee Patterson (http://ssobjects.sourceforge.net/).

 
 
INSTALLATION
 

Installing for Explorer

If you are in doubt, just get the installer version of Rainlendar from the webpage (http://www.rainlendar.net) and run it. If you dislike installers, you can also get the zipped archive and uncompress it to some folder. Rainlendar is ready to be used after that. Note that if you want that the calendar starts with the Windows you need to keep the "Startup folder"-option checked in the installation.

Rainlendar is installed for the current user by default. If you want to install it for different users, just run the installer for each of them.

Installing for Litestep

Rainlendar works also as Litestep's plugin. To install in Litestep grap the zip archive and just copy the Rainlendar.dll and the skin, language and plugins folders to your Litestep directory (e.g. C:\Litestep\). You don't need the Rainlendar.exe if you are using Rainlendar as Litestep plugin. After copying, open your step.rc and add following line:

LoadModule C:\Litestep\Rainlendar.dll

... and recycle. If that doesn't work, check the config part of this document for additional step.rc commands that you might need. You can also put the Rainlendar in other folder if you like, just make sure that the LoadModule path points to the correct place (as well as other Rainlendar specific step.rc commands).

Uninstalling

If you installed Rainlendar with the installer you can uninstall it from the "Add or Remove Programs". Otherwise just delete all the files you uncompressed from the zip-file (make sure that Rainlendar isn't running when doing that).

Installing skins

The skins are usually distributed in zip-files that hold the skin's ini-file and graphics files. To install a new skin you need to unzip the file into the Rainlendar's Skins-folder (usually located in C:\Program Files\Rainlendar\Skins).

The skin has one or more ini-files (i.e. a file with .ini extension). The skin's ini-file must be located in a separate subfolder under the Skins-folder (e.g. C:\Program Files\Rainlendar\Skins\MyTestSkin\Skin.ini). If you put it directly into the Skins-folder or if there are more than one subfolder things won't work. After you have the skin in correct place just refresh the calendar and you should see the new skin in the skin menu. If the skin is not visible in the menu the most likely reason is that you created an extra subfolder when the zip was uncompressed. Check the folder structure again and remove the extra subfolder by moving the skin's ini and graphics files to the parent folder.

 
 
SETTINGS
 

The basic configuration of the calendar is done from a GUI which you open from the popup-menu. The settings are saved in a Rainlendar.ini-file when you press the OK-button.

General

Show event message in tooltip
If enabled a tooltip will open when you move the mouse over a day that has an event. The tooltip will display all the day's events.

Show message alarms
If enabled a message box will be opened when an event is due.

Show all today's messages at startup
If enabled a message box will be opened when Rainlendar is started. The message box will display all the today's events.

Disable keyboard shortcuts
If enabled the keyboard shortcuts are disabled. Note that this setting doesn't apply to the global hotkeys defined in the Hotkeys-tab.

Poll wallpaper changes
If Rainlendar doesn't automatically notice wallpaper changes (as it should) you can enable this feature. When enabled Rainlendar checks once per second if the name of the wallpaper has been changed and if it has, the calendar is automatically refreshed. If you're using native transparency you should keep this disabled.

Snap to screen edges
If selected the window will snap to the edges of the screen and other windows. You can deactivate the snapping by holding Shift-key down while dragging the window.

Refresh when screen resolution changes
If selected the calendar is automatically refreshed when the screen resolution is changed. Note that this may cause problems with some games and full screen applications.

Use separator in tooltips
If selected a horizontal line is drawn between the events in the tooltip.

Show tray icon
This displays the current date in your system tray. Double clicking the icon toggles the window visibility.

Hide event and todo lists when there are no items
When enabled the event list and todo list will be hidden automatically when they are empty. The list will appear again after a new event or todo item is added.

Use native Windows transparency
If selected the calendar will use the native Windows transparency for its alphablended window. Otherwise the alphablending is done manually with the desktop wallpaper. Native transparency works only with Windows 2000 and XP. You can also adjust the overall transparency value from the slider.

Enable/Disable Log
Creates (or deletes) the Rainlendar's log-file. The log is written into the same folder where Rainlendar.dll is (usually C:\Program Files\Rainlendar).

Show Log
Opens the log-file with Notepad.

Advanced
Opens the Rainlendar.ini with notepad. See the advanced section below.

Layout

Position
The OnBottom makes the window to stay behind other windows when it's activated with mouse. Normal makes the window behave like normal windows and OnTop makes the calendar to stay on top of other windows. The OnDesktop setting is similar to OnBottom except that it makes a child window of the desktop. The benefit from this is that the calendar will be visible event if Explorer's "Show Desktop" command is issued. The OnDesktop only works with Explorer shell.

Event list window
You can define here how many days the event list will show. The "Substitute today and tomorrow" means that instead of using the name of the day (e.g. Monday) in the event list "Today" and "Tomorrow" will be used.

Movable window
When selected, the calendar can be moved with the mouse. Please note that if the background has an alpha mask and the desktop is copied behind the calendar, the moving is really slow and can cause problems with some graphics cards. So, I'd suggest to use this feature only with non-alpha backgrounds or with native transparency.

Remember dialog positions
This will save the place (and size) where a dialog was closed last time and open it in the same location in the next time.

Hide on mouse over
This hides the calendar when the mouse is over the window. The calendar will reappear once the mouse is moved off the window. You can disable this feature temporarily by holding Shift-key down while moving the mouse.

Click through
This passes all the mouse events through the calendar. This means that you cannot click the calendar (or the other windows except the message box). You can disable this feature temporarily by holding Shift-key down while moving the mouse (It's not registered immediately so keep the key down for one sec before click through is disabled).

Opaque on mouse over
Changes the window to completely opaque when the mouse is moved over the calendar. The window should have some transparency assigned with the slider in the General-tab or otherwise this feature doesn't do much.

Transparent on mouse over
Changes the window transparent when the mouse is moved over the calendar. The transparency level is set with the slider in the General-tab. Note that the window is always completely opaque when this setting is set and the mouse is not over the window.

Multiple calendars
This defines how many months are shown in the calendar at the same time. You can set the horizontal and vertical count for the months as well as the the number of previous months are displayed. The "Start from January" option shows January always as the first month. This is useful if you want to show all year at the same time on the desktop.

The layout type defines how the calendars are placed on the grid. You can for example have the calendars placed in checker style or in X-shape. Just try them out to see how they look.

Hotkeys

This page enables to add hotkeys to various actions. The hotkeys are global so it's not necessary to have Rainlendar activated when pressing the keys. It's adviced not to use too simple hotkeys (like Shift + A) since that would execute the hotkey every time you write capital A letter.

Plugins

Here is a list of installed plugins. See the Plugins page in this document for more information about them. The plugins can ge activated and deactivated from here. If the plugin has settings they can be edited by selecting the plugin from the list and pressing the Settings-button. The "Set as Default" button makes the plugin a default which basically means that it's editor (if it has one) will be used when creating new events.

Advanced

There are also some other settings in the Rainlendar.ini that cannot be changed from the GUI. It's possible to change them directly from the Rainlendar.ini. Do not keep the config dialog open when editing the Rainlendar.ini or the settings will be overwritten when you press the OK-button. After you have edited the settings, refresh the calendar and the new sttings will be taken into use.

Here's a list of the settings in Rainlendar.ini (only the ones that cannot be changed from the GUI):

X, Y, TodoX, TodoY, EventListX, EventListY
Defines the location of the calendar, todo and event list windows.

MessageBoxX and MessageBoxY
Defines the location of the Message Box. Note that the position is not pixels like in the other windows but percent of the desktop area.

ToolTipMaxWidth
Defines the maximum width (in pixels) of the tooltip. If set to 0 there is no limit.

MessageBoxMaxWidth
Defines the maximum width (in pixels) of the message box. If set to 0 there is no limit.

StartFromMonday
If set to 1 the week will start from Monday (otherwise it's started from Sunday). This is automatically set according to your locale when Rainlendar is started the first time.

Week1HasJanuary1st
If set to 1 the week 1 is the one that has January 1st. Otherwise its the one that has the year's first Thursday. This is automatically set according to your locale when Rainlendar is started the first time.

WeekNumberDelta
This is an offset value for the week numbers. You can adjust the week 1 with this. Also negative numbers can be used.

StartHidden
If set to 1 Rainlendar will start as hidden.

UseWindowName
If set to 1 the window will have a name "Rainlendar". Useful feature e.g. with some virtual windows managers.

EventExecute
Executes the given program or bang when the event is due and the message box is displayed. You can also use the special PLAY command to play a wav-file (E.g. PLAY c:\windows\media\chimes.wav).

SnoozeTime
If the message box is snoozed with right mouse button this value defines how long time it will be hidden. The value is in seconds.

TrayExecuteL, TrayExecuteM, TrayExecuteR, TrayExecuteDL, TrayExecuteDM, TrayExecuteDR
These define the action that is done when the tray icon is clicked with the mouse. The L, M and R mean left, middle and right mouse button and the D in front of them means double click.

DisableDoneList
If set to 1, the done list is removed from the Todo-dialog and the done items will be deleted immediately instead of sending them to the done-list.

WheelScrollMonths
Defines how many months are scrolled whit the mouse wheel. Set to 0 to disable the feature. You can also use negative values to swap the direction.

NegativeCoords
This setting makes the position to be interpret so that the negative coordinates are relative to the bottom right corner of the desktop. It's useful for example to keep the calendar there even if you change the screen resolutions. Note that if you have enabled "Movable window" the negative coordinates are converted to positive when the window is moved. If you have trouble keeping the calendar on a secondary monitor try setting this to 0.

FadeDuration
The time in ms that defines how long the fading effects take. Set to 0 to disable the fading.

GrowUpwards
Normally when new items are added the event list and todo window grow downwards. That behaviour can be changed with this setting. You can set this to 2 if you want that the todo-window grows upwards, 8 if you want that the event list grows upwards or 10 if you want both windows to grow upwards. DO NOT USE ANY OTHER VALUES!!!

ShowContextMenu
If set to 1 a context menu instead of full menu is shown when right mouse button is pressed over one of the windows.

CalendarAction
Defines what happens when you double click the calendar:
0=Default behaviour. If an event is selected opens the context menu otherwise creates a new event. 1=Edits the first event or creates a new event.
2=Always creates a new event.
3=Deletes the selected event(s).

TodoAction
Defines what happens when you double click the todo window:
0=Default behaviour. If an todo item is selected opens the context menu otherwise opens the todo dialog. 1=Marks the todo item checked.
2=Opens the todo dialog and selects the item.
3=Opens the todo dialog.
4=Deletes the todo item.
5=Marks the todo item as done.

EventListAction
Defines what happens when you double click the event list window:
0=Default behaviour. If an event is selected opens it for editing. 1=Creates a new event.
2=Deletes the selected event.

HideFromCalendar
List of profiles that you don't want to be visible in the calendar. Separate the list with ';'-char. E.g. HideFromCalendar=Birthday;Personal;Outlook

HideFromEventList
List of profiles that you don't want to be visible in the event list. Separate the list with ';'-char. E.g. HideFromEventList=Birthday;Personal;Outlook

DisableKeyboardOverride
Disables the Shift-key override with click through and hide on mouse over. Be careful with this one: it's quite hard to change the settings if you cannot click the windows anymore. Especially if you have hidden the tray icon too.

ConfigEditor
Define the editor that you want to use when advanced-button is clicked in the config or skin dialog. Do not use spaces in the path or filename.

UseSkinCharSet
Set to 1 if you want to use the charset defined in the skin's fonts. Otherwise the fonts use the default charset defined in Windows locale.

WeekendDays
This defines which days are considered weekend days.
1=Sunday
2=Monday
4=Tuesday
8=Wednesday
16=Thursday
32=Friday
64=Saturday
You can add the numbers together to select several days. E.g. If you want the weekend to be defined as Friday and Saturday set it like this: WeekendDays=96

GridLeftToRight, GridTopToBottom, GridAcrossAndDown
These define which way the months flow in the different layouts when multiple calendars are displayd.

 
 
EDITING SKINS
 
Most of the skinning can be done from the GUI, which is probably the easiest way to modify the skins. However, sometimes it might be useful to do the changes directly in the skin files. The skin files weren't originally meant to be edited by hand, so some of the entries might be a bit unintuitive.

The items (numbers) in an image can be placed either horizontally or vertically. The correct placement is determined from the dimensions of the image (i.e. whichever is bigger: height or width). The images must be cropped so that they don't hold any extra space and their width (or height) must be divisional with the number of items in the image. The current version of Rainlendar supports BMP, JPG and PNG files. Them PNGs can include alpha mask.

The name of the skin file can be anything that ends with ".ini". The skins must be placed in a separate subfolders, which will give the name to the skin. The same folder can also contain several skin ini-files.

New in 0.21: The skin format has changed slightly. It is now possible to put the different parts to separate sections. The benefit from this is that you can define the drawing order by placing the sections before each other. The sections are drawn the order they are defined (except that background is drawn always first). Note that dynamic items (Time and Button) are always drawn on top of the static items (i.e. normal calendar graphics). The Image-sections can be drawn in any place.

The sections are: [Background], [Days], [Today], [Weekdays], [Month], [Year], [Event], [WeekNumbers], [Tooltip], [Todo], [MessageBox] and [EventList]. If you use these do not add the [Rainlendar]-section or the skin is read as old format.

Important! If you create a skin that uses the new format you should inform the users that it requires Rainlendar 0.21 or newer. The new skins behave quite badly in 0.20 and older versions.

BackgroundBitmapName
The filename of the background picture to use behind the calendar. You can also select if you want the image to be tiled or stretched if it's too small for the calendar window. It's also possible to grab the desktop behind the calendar and use it as background.

BackgroundMode
0 = Tile background to fill the whole window
1 = Transparent background
2 = Stretch background to fill the whole window
3 = Solid color background

BackgroundBevel
0 = No not draw bevel around solid color background
1 = Draw bevel around solid color background

BackgroundSolidColor
Color of the solid background defined as BGR hex-value (e.g. BackgroundSolidColor=888888)

ToolTipFont
The font to be used with the tooltips. Check below for more info about the fonts.

ToolTipFontColor
Color of the tooltip font defined as BGR hex-value (e.g. ToolTipFontColor=000000)

ToolTipBGColor
Color of the tooltip background defined as BGR hex-value (e.g. ToolTipBGColor=FFFFFF)

DaysEnable
0 = Do not show days in calendar
1 = Show days in calendar

DaysX
X-position of the days

DaysY
Y-position of the days

DaysW
Width of the days

DaysH
Height of the days

DaysAlign
0 = TopLeft
1 = TopRight
2 = TopCenter
16 = MiddleLeft
17 = MiddleRight
18 = Middle
32 = BottomLeft
33 = BottomRight
34 = BottomCenter

DaysRasterizer
FONT = Use fonts to display the days
BITMAP = Use bitmap to display the days

DaysFont
The font to be used with the days. Check below for more info about the fonts.

DaysFontColor
Color of the font defined as BGR hex-value (e.g. DaysFontColor=44AAFF)

DaysBitmapName
Filename of the days bitmap. The bitmap must contain either numbers from 0 to 9 or from 0 to 31. All the numbers must be same size.

DaysNumOfComponents
Number of components in the bitmap. If the bitmap has numbers from 0 to 9, set this to 10. For numbers from 0 to 31 use value 32. Note that with 32 numbers the 0 is never used, so it may hold anything.

DaysSeparation
The horizontal separation of the numbers (i.e. how close/far the numbers are placed from each other). This is only applied with bitmaps when the number of components is 10. The value can be negative.

DaysIgnoreToday
0 = Draw a day for today 1 = Do not draw a day for today

DaysIgnoreEvent
0 = Draw a day for event days 1 = Do not draw a day for event days

DaysWeekendBitmapName
Same as DaysBitmapName but for the weekends.

DaysWeekendFontColor
Same as DaysFontColor but for the weekends.

DaysLayout
0 = 7 x 6 grid (i.e. the normal layout)
1 = Horizontal
2 = Vertical

TodayEnable
0 = Do not show today in calendar
1 = Show today in calendar

TodayAlign
0 = TopLeft
1 = TopRight
2 = TopCenter
16 = MiddleLeft
17 = MiddleRight
18 = Middle
32 = BottomLeft
33 = BottomRight
34 = BottomCenter

TodayRasterizer
FONT = Use fonts to display the today
BITMAP = Use bitmap to display the today

TodayFont
The font to be used with the today. Check below for more info about the fonts.

TodayFontColor
Color of the font defined as BGR hex-value (e.g. TodayFontColor=44AAFF)

TodayBitmapName
Filename of the today bitmap. The bitmap must contain either numbers from 0 to 9 or from 0 to 31. It can also contain just one image.

TodayNumOfComponents
Number of components in the bitmap. If the bitmap has numbers from 0 to 9, set this to 10. For numbers from 0 to 31 use value 32. If the bitmap contains only one image use value 1.

TodaySeparation
The horizontal separation of the numbers (i.e. how close/far the numbers are placed from each other). This is only applied with bitmaps when the number of components is 10. The value can be negative.

WeekdaysEnable
0 = Do not show weekdays in calendar
1 = Show weekdays in calendar

WeekdaysAlign
0 = TopLeft
1 = TopRight
2 = TopCenter
16 = MiddleLeft
17 = MiddleRight
18 = Middle
32 = BottomLeft
33 = BottomRight
34 = BottomCenter

WeekdaysRasterizer
FONT = Use fonts to display the weekdays
BITMAP = Use bitmap to display the weekdays

WeekdaysFont
The font to be used with the today. Check below for more info about the fonts.

WeekdaysFontColor
Color of the font defined as BGR hex-value (e.g. WeekdaysFontColor=44AAFF)

WeekdayNames
Weekday strings separated with '/'-char (E.g. WeekdayNames=Sun/Mon/Tue/Wed/Thu/Fri/Sat)

WeekdaysBitmapName
Filename of the weekdays bitmap. The bitmap must contain 7 items (one for each weekday).

MonthEnable
0 = Do not show month in calendar
1 = Show month in calendar

MonthX
X-position of the month

MonthY
Y-position of the month

MonthAlign
0 = TopLeft
1 = TopRight
2 = TopCenter
16 = MiddleLeft
17 = MiddleRight
18 = Middle
32 = BottomLeft
33 = BottomRight
34 = BottomCenter

MonthRasterizer
FONT = Use fonts to display the months
BITMAP = Use bitmap to display the months

MonthFont
The font to be used with the month. Check below for more info about the fonts.

MonthFontColor
Color of the font defined as BGR hex-value (e.g. WeekdaysFontColor=44AAFF)

MonthBitmapName
Filename of the months bitmap. The bitmap must contain 12 items (one for each month).

MonthNames
Names of the months separated with '/'-char (E.g MonthNames=January / February / March / April / May / June / July / August / September / October / November / December)

YearEnable
0 = Do not show year in calendar 1 = Show year in calendar

YearX
X-position of the year

YearY
Y-position of the year

YearAlign
0 = TopLeft
1 = TopRight
2 = TopCenter
16 = MiddleLeft
17 = MiddleRight
18 = Middle
32 = BottomLeft
33 = BottomRight
34 = BottomCenter

YearRasterizer
FONT = Use fonts to display the years
BITMAP = Use bitmap to display the years

YearFont
The font to be used with the year. Check below for more info about the fonts.

YearFontColor
Color of the font defined as BGR hex-value (e.g. WeekdaysFontColor=44AAFF)

YearBitmapName
Filename of the year bitmap. The bitmap must contain numbers from 0 to 9.

DaysSeparation
The horizontal separation of the numbers (i.e. how close/far the numbers are placed from each other). The value can be negative.

EventEnable
0 = Do not show events in calendar
1 = Show events in calendar

EventAlign
0 = TopLeft
1 = TopRight
2 = TopCenter
16 = MiddleLeft
17 = MiddleRight
18 = Middle
32 = BottomLeft
33 = BottomRight
34 = BottomCenter

EventRasterizer
FONT = Use fonts to display the events
BITMAP = Use bitmap to display the events

EventFont
The font to be used with the events. Check below for more info about the fonts.

EventFontColor
Color of the font defined as BGR hex-value (e.g. WeekdaysFontColor=44AAFF)

EventBitmapName
Filename of the events bitmap. The bitmap must contain either numbers from 0 to 9 or from 0 to 31. It can also contain just one image.

EventNumOfComponents
Number of components in the bitmap. If the bitmap has numbers from 0 to 9, set this to 10. For numbers from 0 to 31 use value 32. If the bitmap contains only one image use value 1.

EventSeparation
The horizontal separation of the numbers (i.e. how close/far the numbers are placed from each other). This is only applied with bitmaps when the number of components is 10. The value can be negative.

EventInCalendar
0 = Do not show event texts inside the calendar
1 = Show event texts inside the calendar

EventFont2
The font to be used with the events texts that are dran on the calendar. Check below for more info about the fonts.

EventFontColor2
Color of the font defined as BGR hex-value (e.g. WeekdaysFontColor=44AAFF)

EventIconEnable
If set to 0 the icons are not shown.

WeekNumbersEnable
0 = Do not show week numbers in calendar
1 = Show week numbers in calendar

WeekNumbersAlign
0 = TopLeft
1 = TopRight
2 = TopCenter
16 = MiddleLeft
17 = MiddleRight
18 = Middle
32 = BottomLeft
33 = BottomRight
34 = BottomCenter

WeekNumbersRasterizer
FONT = Use fonts to display the week numbers
BITMAP = Use bitmap to display the week numbers

WeekNumbersFont
The font to be used with the week numbers. Check below for more info about the fonts.

WeekNumbersFontColor
Color of the font defined as BGR hex-value (e.g. WeekdaysFontColor=44AAFF)

WeekNumbersBitmapName
Filename of the week numbers bitmap. The bitmap must contain either numbers from 0 to 9 or from 0 to 53. It can also contain just one image.

WeekNumbersNumOfComponents
Number of components in the bitmap. If the bitmap has numbers from 0 to 9, set this to 10. For numbers from 0 to 53 use value 54.

WeekNumbersSeparation
The horizontal separation of the numbers (i.e. how close/far the numbers are placed from each other). This is only applied with bitmaps when the number of components is 10. The value can be negative.

TodoW
The width of the todo window.

TodoFont
The font to be used with the todo items. Check below for more info about the fonts.

TodoFontColor
Color of the font defined as BGR hex-value (e.g. TodoFontColor=44AAFF)

TodoBitmapName
Name of the todo window's background image.

TodoBitmapMargins
Margins for the bitmap scaling. The margins are four comma separated values that define the non-scaled part of the images borders. e.g. TodoBitmapMargins=10,10,0,0 would leave 10 pixels from the left and top borders as is and scale the rest.

TodoTextMargins
Margins for the text. The margins are four comma separated values that define the borders for the text (i.e. text is not drawn on the border area).

TodoSeparation
The vertical separation of the todo items (i.e. how close/far the texts are placed from each other).

TodoItemBitmapName
Name of the image for the todo items.

TodoItemAlign
0 = TopLeft
1 = TopRight
2 = TopCenter
16 = MiddleLeft
17 = MiddleRight
18 = Middle
32 = BottomLeft
33 = BottomRight
34 = BottomCenter

TodoItemOffset
Offset to the todo item. This is two comma separated values (e.g. TodoItemOffset=10,-10)

MessageBoxBitmapName
Name of the messagebox background image.

MessageBoxFont
The font to be used with the messagebox texts. Check below for more info about the fonts.

MessageBoxFontColor
Color of the font defined as BGR hex-value (e.g. TodoFontColor=44AAFF)

MessageBoxBitmapMargins
Margins for the bitmap scaling. The margins are four comma separated values that define the non-scaled part of the images borders. e.g. MessageBoxBitmapMargins=10,10,0,0 would leave 10 pixels from the left and top borders as is and scale the rest.

MessageBoxTextMargins
Margins for the text. The margins are four comma separated values that define the borders for the text (i.e. text is not drawn on the border area).

MessageBoxTextMaxWidth
Maximum width in pixels that the message box can scale. The text is wrapped if longer than that.

MessageBoxSeparation
The horizontal separation of the event texts (i.e. how close/far the texts are placed from each other).

EventListW
The width of the event list window.

EventListFont
The font to be used with the event list items. Check below for more info about the fonts.

EventListFontColor
Color of the font defined as BGR hex-value (e.g. EventListFontColor=44AAFF)

EventListBitmapName
Name of the EventList window's background image.

EventListBitmapMargins
Margins for the bitmap scaling. The margins are four comma separated values that define the non-scaled part of the images borders. e.g. EventListBitmapMargins=10,10,0,0 would leave 10 pixels from the left and top borders as is and scale the rest.

EventListTextMargins
Margins for the text. The margins are four comma separated values that define the borders for the text (i.e. text is not drawn on the border area).

EventListSeparation
The vertical separation of the EventList items (i.e. how close/far the texts are placed from each other).

EventListHeaderItemBitmapName
Name of the image for the EventList items.

EventListHeaderItemAlign
0 = TopLeft
1 = TopRight
2 = TopCenter
16 = MiddleLeft
17 = MiddleRight
18 = Middle
32 = BottomLeft
33 = BottomRight
34 = BottomCenter

EventListHeaderItemOffset
Offset to the EventList item. This is two comma separated values (e.g. EventListItemOffset=10,-10)

EventListHeaderFont
The font to be used with the event list headers. Check below for more info about the fonts.

EventListHeaderFontColor
Color of the font defined as BGR hex-value (e.g. EventListFontColor=44AAFF)

EventListHeaderSeparation
The vertical separation between the header and the items (i.e. how close/far the texts are placed from each other).

EventListHeaderFormat
The header format. Check here for the format codes. There are also a special code that can be used in the header: %D displays the number of days the events are from today.

EventListItemMargin
The horizontal margin for the event list items.

EventListItemIconEnable
If set to 1 the event icon is also shown in the event list.

EventListDaySeparation
Defines the space between the days in the event list.

Buttons

It's also possible to add buttons to the skins. This can be only done in the skin's ini-file as there is no GUI for the buttons. To add a button you need to create a new section called [ButtonN] where the N is a number (it can be any number as long as no other button is using it). The buttons can have these values:

Window
Defines the window where the button is placed. 0 = Calendar, 1 = Todo, 2 = MessageBox, 3 = EventList.

X
X-coordinate of the button. You can also give negative values in which case the button location is calculated from the right edge of the skin.

Y
Y-coordinate of the button.

BitmapName
The button image. The image must have 3 frames (normal, pushed and hover).

Command
The command that is executed when the button is pressed. It can be a normal application or a bang.

Enable
Set to 0, to disable the item.

Repeat
0=The item is drawn only once.
1=The item is draw on all calendars.
2=The item is drawn only on the current month.
3=The item is drawn only on the viewed month.

IncludeSize
If this is set to 1, the item is included in the calendar size calculation.

[Button1]
Window=0
X=5
Y=5
BitmapName=button-left.png
Command=!RainlendarShowPrev

Time items

Time items show the current date or time in the calendar. It's also possible to show the time in the tooltip. They can be used to e.g. show a clock or current day. Note that the window is updated only once per minute so you cannot use seconds in the clock (or you can but it's rather pointless). To add a time item you need to create a new section called [TimeN] where the N is a number (it can be any number as long as no other time item is using it). The time items can have these values:

Window
Defines the window where the button is placed. 0 = Calendar, 1 = Todo, 2 = MessageBox, 3 = EventList, 5 = Tooltip.

X
X-coordinate of the button. You can also give negative values in which case the button location is calculated from the right edge of the skin.

Y
Y-coordinate of the button.

Rasterizer
FONT = Use fonts to display the items
BITMAP = Use bitmap to display the items

BitmapName
The bitmap must have numbers from 0 to 9.

Align
0 = TopLeft
1 = TopRight
2 = TopCenter
16 = MiddleLeft
17 = MiddleRight
18 = Middle
32 = BottomLeft
33 = BottomRight
34 = BottomCenter

NumOfComponents
This defines how many components (or frames) the bitmap has. Separation
The horizontal separation of the numbers (i.e. how close/far the numbers are placed from each other). This is only applied with bitmaps when the number of components is 10. The value can be negative.

Digits
Number of digits used in the values. This applies only to bitmaps.

Font
The font to be used with the time items. Check below for more info about the fonts.

FontColor
Color of the font defined as BGR hex-value (e.g. FontColor=44AAFF)

Format
The time/date format. Check here for the format codes.

Enable
Set to 0, to disable the item.

Repeat
0=The item is drawn only once.
1=The item is draw on all calendars.
2=The item is drawn only on the current month.
3=The item is drawn only on the viewed month.

IncludeSize
If this is set to 1, the item is included in the calendar size calculation.

Location
This defines time zone. It must be defined exactly like the time zones are listed in the Windows Date and Time Properties. See below for example.

[Time1]
Window=0
X=-50
Y=10
Rasterizer=FONT
Font=-17/0/0/0/700/0/0/0/0/3/2/1/34/Arial
FontColor=FFFFFF
Format=%d
Location=(GMT-09:00) Alaska

Images

The images are similar as buttons and time items except that they do not do anything. An image is just drawn in the window. To add an image you need to create a new section called [ImageN] where the N is a number (it can be any number as long as no other image is using it). The imagess can have these values:

Window
Defines the window where the button is placed. 0 = Calendar, 1 = Todo, 2 = MessageBox, 3 = EventList.

X
X-coordinate of the image. You can also give negative values in which case the button location is calculated from the right edge of the skin.

Y
Y-coordinate of the image.

BitmapName
The name of the image.

Enable
Set to 0, to disable the item.

Repeat
0=The item is drawn only once.
1=The item is draw on all calendars.
2=The item is drawn only on the current month.
3=The item is drawn only on the viewed month.

IncludeSize
If this is set to 1, the item is included in the calendar size calculation.

[Image1]
Window=0
X=0
Y=0
BitmapName=shine.png

Fonts

The fonts are defined with 13 values and the name of the font all separated with '/'-char. The most important values are the first one which defines the height of the font and the last, which is the typeface name of the font. The height of the font is defined in logical size and not in the point size.

E.g. -17/0/0/0/700/0/0/0/0/3/2/1/34/Arial

The different values are in order:

  • height of font
  • average character width
  • angle of escapement
  • base-line orientation angle
  • font weight
  • italic attribute option
  • underline attribute option
  • strikeout attribute option
  • character set identifier (this is always DEFAULT_CHARSET unless UseSkinCharSet is set to 1)
  • output precision
  • clipping precision
  • output quality
  • pitch and family
  • typeface name

    Check CreateFont() in Win32 API documentation for more info.

    Profiles

    With profiles you can customize individual events. When you create an event there is a combo box which can be used to select the profile for the event. The combo box lists the profiles that are defined in the current skin's ini-file, but you can also give a custom profile name. If a certain profile is not defined in a skin a default settings are used instead.

    The profiles are defined in the skin file by making a new section. The name of the section must start with the word "Profile" (without the quotes). After that you can put pretty much anything to make the section unique (i.e. there cannot be two sections that have same name (i.e. the string between []-chars, not the "Name=" string).

    The profile section must have a key called Name, which will give the identity to the profile. The name is the one that is displayed in the Edit Event dialog.

    Other keys that can be in the profile section are:

  • ToolTipFontColor
  • EventBitmapName
  • EventFontColor
  • EventFontColor2
  • EventIconName
  • EventIconAlign
  • EventDrawAlways
  • EventListFontColor
  • Priority
  • RecurringPostfixString

    The values for the keys are exactly the same as defined above. The profile settings override the default skin settings, so for example if the default ToolTipFontColor value is black and you create a profile that defines it white, all events that use that profile will draw the tooltip texts white. Note that it is not necessary to give all the keys always; you can define just the ones that are necessary (default values are used for the missing keys).

    The EventIconName, EventIconAlign and EventDrawAlways can only be used with the profiles. The event icon is a small image that is displayed on top of the event with the given profile. The align uses the same alignment system as other aligns (check e.g. DaysAlign for the codes). If the EventDrawAlways is set to 1 it means that the event is drawn always on the calendar.

    The priority defines what is drawn on the calendar when there are several event on the same day. The repeating events also have predefined priorities so that less frequently happening events have higher priority. Like this:

    Daily Priority    = 10
    Weekly Priority   = 20
    Monthly Priority  = 30
    Yearly Priority   = 40
    Single Priority   = 50
    
    The profile's priority value is added to this to determine the actual priority for the event. If you don't want that the recurrence pattern affects the priorities of the events you can define them so that they are >50 apart from each other. E.g. 100, 200, 300, etc.

    The RecurringPostfixString will append the given text to the end of the events that use the profile. Note that the text will be added only to recurring events.

    Currently it is not possible to create/edit the profiles from the GUI. You need to create by hand with a text editor.

    E.g.

    [Profile 1]
    Name=Sunday
    ToolTipFontColor=00DDFF
    EventFontColor=DD8888
    
    [Profile 2]
    Name=Important
    ToolTipFontColor=FFFFFF
    EventFontColor=FFFFFF
    EventFontColor2=FFFFFF
    EventIconName=Icons/Lightning.png
    EventIconAlign=18
    
  •  
     
    BANGS
     
    The Rainlendar can be controlled also with Litestep !Bang-commands. You can also give the !bangs as command line arguments for Rainlendar.exe (note that this does not work if Rainlendar is OnDesktop). The bangs can also be used in other places (e.g. buttons) to control the calendar.

    !RainlendarShow [Activate]
    Displays all Rainlendar windows. If the parameter is given the calendar window is activated and put on top of the other windows (this doesn't work if OnBottom window position is selected).

    !RainlendarHide
    Hides all Rainlendar windows.

    !RainlendarToggle [Visible]
    Toggles all Rainlendar windows. If visible-argument is given only the visible windows are toggled.

    !RainlendarConfig
    Opens the config-dialog.

    !RainlendarEditSkin
    Opens the edit skin -dialog.

    !RainlendarRefresh
    Refreshes Rainlendar.

    !RainlendarQuit
    Quits Rainlendar.

    !RainlendarShowNext [Count]
    Shows the next month. The Count defines how many months are skipped.

    !RainlendarShowPrev [Count]
    Shows the previous month. The Count defines how many months are skipped.

    !RainlendarShowMonth [Month] [Year]
    Shows the given month. If Year is not given the current year is used. If the month is also omitted then the current month is shown.

    !RainlendarShowCurrent
    Shows the curretn month (i.e. the one that has today's date).

    !RainlendarLsBoxHook
    The !bang to put Rainlendar in a lsBox.

    !RainlendarMove [X] [Y] [Window]
    Moves the calendar window to a new position. The Window argument defines the window to be moved. 0=Calendar, 1=Todo, 2=MessageBox, 3=EventList

    !RainlendarZPos [ZPOS]
    Changes the Z-position of the window. Values for ZPOS are: 0 = OnBottom, 1 = Normal, 2 = OnTop, 3 = OnDesktop.

    !RainlendarEditTodo
    Opens the Todo dialog where you can add/modify the todo items.

    !RainlendarShowTodo
    Shows the todo window.

    !RainlendarHideTodo
    Hides the todo window.

    !RainlendarToggleTodo
    Toggles the todo window.

    !RainlendarShowEventList
    Shows the EventList window.

    !RainlendarHideEventList
    Hides the EventList window.

    !RainlendarToggleEventList
    Toggles the EventList window.

    !RainlendarShowCalendar
    Shows the Calendar window.

    !RainlendarHideCalendar
    Hides the Calendar window.

    !RainlendarToggleCalendar
    Toggles the Calendar window.

    !RainlendarAddEvent [Day] [Month] [Year]
    Opens the new event dialog for the given date.

    !RainlendarShowItem [Section]
    Shows the given item. The argument is the name of the item's section in the skin's ini-file.

    !RainlendarHideItem [Section]
    Hides the given item. The argument is the name of the item's section in the skin's ini-file.

    !RainlendarToggleItem [Section]
    Toggles the given item. The argument is the name of the item's section in the skin's ini-file.

    !RainlendarRedraw
    Redraws the window. You need to use this if you hide/show items.

    !RainlendarChangeSkin [Skin\IniFile]
    Changes the skin. The argument is the name of the skin and name of the ini-file separated with '\'-char. E.g. !RainlendarChangeSkin Shadow3.1\English.ini

    !RainlendarShowTodaysEvent
    Opens the message box with all today's events (i.e. the same Rainlendar opens when it is started).

    !Execute
    It's possible to combine multiple bangs together with the !Execute bang. The bags are separated with []. E.g. !Execute [!RainlendarToggleCalendar][!RainlendarToggleTodo]

     
     
    PLUGINS
     

    IniFormatPlugin

    This plugin uses Rainlendar's custom ini-format for the events. The plugin can read and write events. You can have multiple event and todo files. The plus-button adds a new file and the cross removes the selected file. Note that the items will be saved to all of them unless you set them Read-Only (can be set from the star-button). Read Only events cannot be modified and they are not sent to other plugins (including the ServerPlugin, so they are not distributed).


    Outlook Plugin

    This plugin can read appointments and tasks from Outlook. The read items are considered as read-only so they cannot be modified. The plugin is meant to be used only in Win2k or WinXP (the timezone conversion does not work in Win9x).

    Note that the exception dates are not supported. So if you have a repeating event and you have deleted/modified one of the events in Outlook Rainlendar will show the original event still.

    Outlook Profile
    If you have an Outlook profile write it here. If not, leave this empty.

    Use Outlook labels as event profiles
    If enabled the labels in Outlook appointments are used as Rainlendar's event profiles. Otherwise the profiles are called "Outlook".

    Keep MAPI-connection alive
    If enabled the MAPI connection is not closed after the appointments have been read from Outlook. I suggest to keep this enabled otherwise since MAPI leaks memory.

    Don't show message body
    If enabled only the subject-field  is shown,

    Don't show completed tasks
    If enabled the completed tasks do not appear in the todo-list.

    Imported message stores
    This lists all the message stores that are supported by Rainlendar. You can select which ones are read from Outlook.


    ServerPlugin

    This plugin syncronizes the events with a different clients. You need to be running the RainlendarServer (see the ReadMe.txt in the server package for more info). If the plugin is made as a default it updates the event from the server before it is edited, so there might be a small delay before the Edit Event-dialog is opened. The events are requested from the server when Rainlendar is started or when it is refreshed.

    User ID
    The User ID is the identification for your events. The server will use the ID to store and retrieve the events. So, you can use the same server to store different events from clients by giving different IDs. Please note that there is no security checks or authentication of any kind, so basically anyone who can access to the server from network can read and modify your events. If you are running Linux version of the server, the ID is case sensitive.

    Address
    This is the address of the the computer that runs the RainlendarServer. You can use the IP number or the network name if the machine has one. Note that there is no public server that you can connect to (as far as I know), so you need to run the RainlendarServer on your own computer or on a one that you have access to.

    Port
    The is the port that the Rainlendar tries to connect to. You can use any port you wish, just make sure that it's the same what RainlendarServer is listening.

    Poll events from the server
    If enabled the plugin checks for new events from the server after the specified time period.


    iCalendar Plugin

    This plugin can read/write events and tasks from .ics files. This plugin can be used for example to show Sunbird's events in Rainlendar. The plugin is meant to be used only in Win2k or WinXP.

    Refresh when file changes
    If enabled the plugin monitors the files and reloads them when they change.

    Ignore completed tasks
    If enabled the completed tasks are not shown in the todo-list.

    Few Notes:
  • It's a bad idea to use the same .ics-file in different applications (unless you load it as read-only). You are asking for problems if you for example edit the Sunbird's file with Rainlendar while both applications are running.
  • If the UID (i.e. identification string) is not in correct format the event/todo-item is always imported as read-only.
  • Deleting an event removes it completely from the .ics-file. This can cause problems with RainlendarServer.
  • The iCalendar does not have a done-list so tasks that are moved to there are not saved to the ics-file.
  • Exception dates are not supported!

    Mozilla Sunbird integration HOWTO:
    - Go to Plugins tab in Rainlendar's Config.
    - Enable the iCalendar Plugin and click the Settings button
    - Pres the '+'-button in the dialog to open the open file dialog.
    - Locate the Sunbird's ics-file in one of the subfolders starting from C:\Documents and Settings\"YourName"\Application Data\Mozilla. The actual location depends on your installation. The file is called CalendarDataFile0.ics (or something similar that ends with .ics). Note that the "Application Data" is a hidden folder so you need to have the hidden files shown from the folder settings.
    - Select the added file from the list and click the star-button to change the type from "Read/Write" to "Read Only".
    - If there are several .ics-files repeat the procedure for each ot them (or those that you want to show in Rainlendar).

  •  
     
    STEP.RC
     

    These are Litestep specific settings that are placed in the step.rc file. Remember to put the paths inside quotes if you have spaces in them!

    RainlendarPath
    This defines the path to the Rainlendar.ini file, which contains the general settings.

    RainlendarSkinsPath
    This defines the folder where the skin subfolders are. If this is not defined the Skins-folder under RainlendarPath is used instead.

    RainlendarLanguagesPath
    This defines the folder where the language files are. If this is not defined a Language-folder under the RainlendarPath is used instead.

    RainlendarPluginsPath
    This defines the folder where the plugins are. If this is not defined a Plugins-folder under the RainlendarPath is used instead.

    RainlendarCurrentSkin
    The name of current skin. This can be used to force the use of some skin. This overrides the settings in Rainlendar.ini. You must also define RainlendarCurrentSkinIni.

    RainlendarCurrentSkinIni
    The name of current skin ini-file.

     
     
    CONTACT
     

    The latest version will be found from http://www.rainlendar.net. You can also find new languages and skins from there. You may also send comments and bug-reports to the author. But before you do, check the Rainlendar's section in the Forum. It might already contain answers to your questions.

    Please put the name of the product (i.e. Rainlendar) in the subject-field of the mail. It may be useful if you write the version of the product also. If you are reporting a bug, please try to be as exact as possible when describing the symptoms. Also write down the details of your system (like OS version, Litestep build, and so on).

     
     
    LICENSE
     
    		    GNU GENERAL PUBLIC LICENSE
    		       Version 2, June 1991
    
     Copyright (C) 1989, 1991 Free Software Foundation, Inc.
                           59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
     Everyone is permitted to copy and distribute verbatim copies
     of this license document, but changing it is not allowed.
    
    			    Preamble
    
      The licenses for most software are designed to take away your
    freedom to share and change it.  By contrast, the GNU General Public
    License is intended to guarantee your freedom to share and change free
    software--to make sure the software is free for all its users.  This
    General Public License applies to most of the Free Software
    Foundation's software and to any other program whose authors commit to
    using it.  (Some other Free Software Foundation software is covered by
    the GNU Library General Public License instead.)  You can apply it to
    your programs, too.
    
      When we speak of free software, we are referring to freedom, not
    price.  Our General Public Licenses are designed to make sure that you
    have the freedom to distribute copies of free software (and charge for
    this service if you wish), that you receive source code or can get it
    if you want it, that you can change the software or use pieces of it
    in new free programs; and that you know you can do these things.
    
      To protect your rights, we need to make restrictions that forbid
    anyone to deny you these rights or to ask you to surrender the rights.
    These restrictions translate to certain responsibilities for you if you
    distribute copies of the software, or if you modify it.
    
      For example, if you distribute copies of such a program, whether
    gratis or for a fee, you must give the recipients all the rights that
    you have.  You must make sure that they, too, receive or can get the
    source code.  And you must show them these terms so they know their
    rights.
    
      We protect your rights with two steps: (1) copyright the software, and
    (2) offer you this license which gives you legal permission to copy,
    distribute and/or modify the software.
    
      Also, for each author's protection and ours, we want to make certain
    that everyone understands that there is no warranty for this free
    software.  If the software is modified by someone else and passed on, we
    want its recipients to know that what they have is not the original, so
    that any problems introduced by others will not reflect on the original
    authors' reputations.
    
      Finally, any free program is threatened constantly by software
    patents.  We wish to avoid the danger that redistributors of a free
    program will individually obtain patent licenses, in effect making the
    program proprietary.  To prevent this, we have made it clear that any
    patent must be licensed for everyone's free use or not licensed at all.
    
      The precise terms and conditions for copying, distribution and
    modification follow.
    
    		    GNU GENERAL PUBLIC LICENSE
       TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
    
      0. This License applies to any program or other work which contains
    a notice placed by the copyright holder saying it may be distributed
    under the terms of this General Public License.  The "Program", below,
    refers to any such program or work, and a "work based on the Program"
    means either the Program or any derivative work under copyright law:
    that is to say, a work containing the Program or a portion of it,
    either verbatim or with modifications and/or translated into another
    language.  (Hereinafter, translation is included without limitation in
    the term "modification".)  Each licensee is addressed as "you".
    
    Activities other than copying, distribution and modification are not
    covered by this License; they are outside its scope.  The act of
    running the Program is not restricted, and the output from the Program
    is covered only if its contents constitute a work based on the
    Program (independent of having been made by running the Program).
    Whether that is true depends on what the Program does.
    
      1. You may copy and distribute verbatim copies of the Program's
    source code as you receive it, in any medium, provided that you
    conspicuously and appropriately publish on each copy an appropriate
    copyright notice and disclaimer of warranty; keep intact all the
    notices that refer to this License and to the absence of any warranty;
    and give any other recipients of the Program a copy of this License
    along with the Program.
    
    You may charge a fee for the physical act of transferring a copy, and
    you may at your option offer warranty protection in exchange for a fee.
    
      2. You may modify your copy or copies of the Program or any portion
    of it, thus forming a work based on the Program, and copy and
    distribute such modifications or work under the terms of Section 1
    above, provided that you also meet all of these conditions:
    
        a) You must cause the modified files to carry prominent notices
        stating that you changed the files and the date of any change.
    
        b) You must cause any work that you distribute or publish, that in
        whole or in part contains or is derived from the Program or any
        part thereof, to be licensed as a whole at no charge to all third
        parties under the terms of this License.
    
        c) If the modified program normally reads commands interactively
        when run, you must cause it, when started running for such
        interactive use in the most ordinary way, to print or display an
        announcement including an appropriate copyright notice and a
        notice that there is no warranty (or else, saying that you provide
        a warranty) and that users may redistribute the program under
        these conditions, and telling the user how to view a copy of this
        License.  (Exception: if the Program itself is interactive but
        does not normally print such an announcement, your work based on
        the Program is not required to print an announcement.)
    
    These requirements apply to the modified work as a whole.  If
    identifiable sections of that work are not derived from the Program,
    and can be reasonably considered independent and separate works in
    themselves, then this License, and its terms, do not apply to those
    sections when you distribute them as separate works.  But when you
    distribute the same sections as part of a whole which is a work based
    on the Program, the distribution of the whole must be on the terms of
    this License, whose permissions for other licensees extend to the
    entire whole, and thus to each and every part regardless of who wrote it.
    
    Thus, it is not the intent of this section to claim rights or contest
    your rights to work written entirely by you; rather, the intent is to
    exercise the right to control the distribution of derivative or
    collective works based on the Program.
    
    In addition, mere aggregation of another work not based on the Program
    with the Program (or with a work based on the Program) on a volume of
    a storage or distribution medium does not bring the other work under
    the scope of this License.
    
      3. You may copy and distribute the Program (or a work based on it,
    under Section 2) in object code or executable form under the terms of
    Sections 1 and 2 above provided that you also do one of the following:
    
        a) Accompany it with the complete corresponding machine-readable
        source code, which must be distributed under the terms of Sections
        1 and 2 above on a medium customarily used for software interchange; or,
    
        b) Accompany it with a written offer, valid for at least three
        years, to give any third party, for a charge no more than your
        cost of physically performing source distribution, a complete
        machine-readable copy of the corresponding source code, to be
        distributed under the terms of Sections 1 and 2 above on a medium
        customarily used for software interchange; or,
    
        c) Accompany it with the information you received as to the offer
        to distribute corresponding source code.  (This alternative is
        allowed only for noncommercial distribution and only if you
        received the program in object code or executable form with such
        an offer, in accord with Subsection b above.)
    
    The source code for a work means the preferred form of the work for
    making modifications to it.  For an executable work, complete source
    code means all the source code for all modules it contains, plus any
    associated interface definition files, plus the scripts used to
    control compilation and installation of the executable.  However, as a
    special exception, the source code distributed need not include
    anything that is normally distributed (in either source or binary
    form) with the major components (compiler, kernel, and so on) of the
    operating system on which the executable runs, unless that component
    itself accompanies the executable.
    
    If distribution of executable or object code is made by offering
    access to copy from a designated place, then offering equivalent
    access to copy the source code from the same place counts as
    distribution of the source code, even though third parties are not
    compelled to copy the source along with the object code.
    
      4. You may not copy, modify, sublicense, or distribute the Program
    except as expressly provided under this License.  Any attempt
    otherwise to copy, modify, sublicense or distribute the Program is
    void, and will automatically terminate your rights under this License.
    However, parties who have received copies, or rights, from you under
    this License will not have their licenses terminated so long as such
    parties remain in full compliance.
    
      5. You are not required to accept this License, since you have not
    signed it.  However, nothing else grants you permission to modify or
    distribute the Program or its derivative works.  These actions are
    prohibited by law if you do not accept this License.  Therefore, by
    modifying or distributing the Program (or any work based on the
    Program), you indicate your acceptance of this License to do so, and
    all its terms and conditions for copying, distributing or modifying
    the Program or works based on it.
    
      6. Each time you redistribute the Program (or any work based on the
    Program), the recipient automatically receives a license from the
    original licensor to copy, distribute or modify the Program subject to
    these terms and conditions.  You may not impose any further
    restrictions on the recipients' exercise of the rights granted herein.
    You are not responsible for enforcing compliance by third parties to
    this License.
    
      7. If, as a consequence of a court judgment or allegation of patent
    infringement or for any other reason (not limited to patent issues),
    conditions are imposed on you (whether by court order, agreement or
    otherwise) that contradict the conditions of this License, they do not
    excuse you from the conditions of this License.  If you cannot
    distribute so as to satisfy simultaneously your obligations under this
    License and any other pertinent obligations, then as a consequence you
    may not distribute the Program at all.  For example, if a patent
    license would not permit royalty-free redistribution of the Program by
    all those who receive copies directly or indirectly through you, then
    the only way you could satisfy both it and this License would be to
    refrain entirely from distribution of the Program.
    
    If any portion of this section is held invalid or unenforceable under
    any particular circumstance, the balance of the section is intended to
    apply and the section as a whole is intended to apply in other
    circumstances.
    
    It is not the purpose of this section to induce you to infringe any
    patents or other property right claims or to contest validity of any
    such claims; this section has the sole purpose of protecting the
    integrity of the free software distribution system, which is
    implemented by public license practices.  Many people have made
    generous contributions to the wide range of software distributed
    through that system in reliance on consistent application of that
    system; it is up to the author/donor to decide if he or she is willing
    to distribute software through any other system and a licensee cannot
    impose that choice.
    
    This section is intended to make thoroughly clear what is believed to
    be a consequence of the rest of this License.
    
      8. If the distribution and/or use of the Program is restricted in
    certain countries either by patents or by copyrighted interfaces, the
    original copyright holder who places the Program under this License
    may add an explicit geographical distribution limitation excluding
    those countries, so that distribution is permitted only in or among
    countries not thus excluded.  In such case, this License incorporates
    the limitation as if written in the body of this License.
    
      9. The Free Software Foundation may publish revised and/or new versions
    of the General Public License from time to time.  Such new versions will
    be similar in spirit to the present version, but may differ in detail to
    address new problems or concerns.
    
    Each version is given a distinguishing version number.  If the Program
    specifies a version number of this License which applies to it and "any
    later version", you have the option of following the terms and conditions
    either of that version or of any later version published by the Free
    Software Foundation.  If the Program does not specify a version number of
    this License, you may choose any version ever published by the Free Software
    Foundation.
    
      10. If you wish to incorporate parts of the Program into other free
    programs whose distribution conditions are different, write to the author
    to ask for permission.  For software which is copyrighted by the Free
    Software Foundation, write to the Free Software Foundation; we sometimes
    make exceptions for this.  Our decision will be guided by the two goals
    of preserving the free status of all derivatives of our free software and
    of promoting the sharing and reuse of software generally.
    
    			    NO WARRANTY
    
      11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
    FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
    OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
    PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
    OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
    MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
    TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
    PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
    REPAIR OR CORRECTION.
    
      12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
    WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
    REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
    INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
    OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
    TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
    YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
    PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
    POSSIBILITY OF SUCH DAMAGES.
    
    		     END OF TERMS AND CONDITIONS
    
    
    
     
     
    HISTORY
     

    22 JAN 2006 (Version 0.22.1 ▀)

    • Fixed the task list not appearing from the Outlook.
    • The iCalPlugin used incorrect extension for vCal files. Fixed.
    • The birthdays didn't show correct year always. Fixed.
    • Double clicking the event list header opens the correct day now.
    • Time items showed incorrect year day. Fixed.
    • The time in the event dialog can be defined like this now too: PM 10:00
    • Improved iCalendar recurrency support.

    25 OCT 2005 (Version 0.22 ▀)

    • Fixed timestamp issue with iCalendar events.
    • "All day event" wasn't sent to the server. Fixed.
    • The buttons in the event list are updated better now.
    • Event texts drawn into the calendar stay inside the day rectangle.
    • Different layouts can be used when multiple calendars are shown.
    • GridLeftToRight, GridTopToBottom, GridAcrossAndDown can be used to define how the months flow on the layouts.
    • New options for the skins: EventIconEnable, EventListItemMargin, EventListItemIconEnable
    • The separation between the days in the event list can be set with EventListDaySeparation.
    • Event list headers can use %D to display the number of days remaining to today.
    • %YN and %OT can be used to in event subject and message to display the number of years between now and start date of the event
    • New bang: !RainlendarShowTodaysEvent
    • The list windows can be hidden when there are no items with SmartTodoList and SmartEventList.
    • Birthday and Anniversary profiles use yearly recurrence by default.
    • Outlook message stores are identified by their ID instead of the name.
    • Snapping works also in the middle of the work area.
    • It's possible to use relative paths in the ini-format and ical plugins (the path must be added manually into the ini-file).
    • Images and buttons can be drawn on each calendar when multiple calendars are displayed.
    • RecurringPostfixString can be used in the profiles to add strings to the recurring events.
    • Time items can show world clock. Use Location in the items to define the place.
    • The time item can be shown in a balloontip/tooltip. The balloontip can be opened from the tray icon if there are no !bangs assigned to it.
    • Changed the way WeekNumberDelta is implemented. There numbering should be continuous now.

    22 JUL 2005 (Version 0.21.2 ▀)

    • All day events that lasted forever were not shown correctly in the all events dialog. Fixed
    • !RainlendarEditSkin didn't work. Fixed
    • The iCal-plugin hung if it tried to monitor a non-existing file. Fixed
    • Fixed a crash bug when events that were deleted were read from several sources.
    • Selecting events for editing from the context menu didn't work correctly. Fixed.
    • The "Until" in recurring events didn't work correctly. Fixed.
    • The window shouldn't popup on top anymore on midnight.
    • Alt-F4 is disabled if "Disable keyboard shortcuts" is checked. It also shouldn't react to unintended key presses so easily anymore.
    • iCal-plugin can read vCalendar files too.
    • Events can be imported just by dropping the file over any of the windows.
    • iCal-events are not imported as read-only anymore if the GUID cannot be decoded.
    • The iCal-plugin can now read also read-only files.
    • Fixed double clicking with vertical day layout.
    • Exporting iCal events over an existing file doesn't merge them anymore.
    • Double clicks on the event list window will always open the edit event dialog.
    • The ServerPlugin crashed if the message was too long. Fixed.
    • Fixed some endian problems with the server.
    • A "\n" in the message is not converted to newline anymore.
    • Todo-list positions are stored also to the ics-files.
    • The alarm time is taken from the Outlook appointment.
    • Added NumOfComponents to the time item.
    • The parameter for !RainlendarShowNext and !RainlendarShowPrev didn't work. Fixed.

    25 MAR 2005 (Version 0.21.1 ▀)

    • Fixed event sorting again. Hopefully it now works correctly.
    • iCalendar plugin wrote also done todo-items to the ics-file. Fixed.
    • ToolTip used always the default font. Fixed.
    • Imported iCal events were sometimes a day too long. Fixed.
    • GrowUpwards didn't work correctly with the event list. Fixed.
    • Changed the file system monitoring in iCalPlugin. It now compares the filesize.
    • Fixed a memory leak in iCalPlugin.
    • "Refresh when screen resolution changes" works again.
    • Fixed time parsing routine.
    • "Mark all checked as done" doesn't affect read-only items anymore.
    • If the ServerPlugin was active modified events were not send to the server. Fixed.
    • Reversed the strings in month's and year's align combo box.
    • Fixed a crash bug in iCalendar and Server plugins.
    • Weekends can be defined with WeekendDays.

    1 MAR 2005 (Version 0.21 ▀)

    • Added support for iCalendar files.
    • Fixed a bug when importing old Rainlendar events that had time in the message left the time and removed the rest of the text even though it should have done exactly the opposite :-(
    • The plugin doesn't have to be active to be able to export events.
    • Fixed a crash bug when todo-files were removed from the IniFormatPlugin's list.
    • OutlookPlugin is not directly dependent from mapi32.dll anymore. This should get rid of those missing ordinal errors.
    • Fixed a problem where the end time was shown as one minute less than what it really was.
    • Added automatic polling to the ServerPlugin.
    • Recurrency -> Recurrence
    • All events list doesn't lose the selection when event is edited.
    • Monthly recurrence displayed sometimes 'fifth' instead of 'last' like it should have been. Fixed.
    • Seventh day of the month was displayed to belong to the second week in the monthly recurrence. Fixed.
    • Rainlendar now checks if it's already running before it starts. Use -m argument to disable the check.
    • Deleting items from the Done-list didn't work very well. Fixed.
    • The events in the message box are now sorted.
    • The "due in ..." text is not shown for the all day events and negative numbers are not shown for past events.
    • Editing todo-items when ServerPlugin was set as default crashed Rainlendar. Fixed.
    • Added fading effect. Use FadeDuration=0 to disable it.
    • Added "Opaque on mouse over" and "Transparent on mouse over" features.
    • Disabled possibility to open several instances of the dialogs.
    • Todo and events list can be made to grow upwards with GrowUpwards.
    • The hidden windows do not pop up anymore when "Hide on mouse over" is selected.
    • Sorting algorithm of the events now uses only the time and not the date.
    • It's possible to select which message stores are imported from Outlook.
    • Removed negative coords option from the config dialog (no point keeping it there).
    • Transparency settings won't apply to the message box; it is always opaque.
    • Stretched background is not included in the calendar size.
    • Fixed a crash bug with recurring events.
    • Changed the skin-format slightly (the old files still work too). It is now possible to define the drawing order.
    • Small adjustments to the OnDesktop-setting (the calendar shouldn't disappear so easily anymore).
    • The duration field is editable. Use m for minutes, h for hours and d for days. E.g. 90m for 90 minutes.
    • Added bangs: !RainlendarShowItem, !RainlendarHideItem, !RainlendarToggleItem, !RainlendarRedraw and !RainlendarChangeSkin.
    • Edit event dialog remembers the previously used profile again.
    • Added "Delete item" to the Todo-window's context menu.
    • !RainlendarQuit works in buttons.
    • The edit box for event message now wraps words instead of extends to the right.
    • Added ShowContextMenu option can be used to show only the context menu when right mouse button is pressed.
    • Added CalendarAction, TodoAction and EventListAction that can be used to define what happens when the window is double clicked.
    • Locked windows hide/show together.
    • It's possible to define the position of the message box with MessageBoxX and MessageBoxY.
    • The calendar quits from to Alt-F4.
    • Optimized text rendering. This should speed up refresh with multiple calendars.
    • EventListHeaderSeparation is included in header alignment rect. This might break some skins :(
    • Added HideFromCalendar and HideFromEventList which can be used to hide events with certain profile.
    • Multiday events show also the start and end date.
    • It's possible to define the color of the event with EventListFontColor in the profile section.
    • All day events can be longer than one day (there is no GUI to create multiday events though).
    • Keyboard override for click through and mouse hide can be disabled with DisableKeyboardOverride.
    • The profile priority is applied to the always drawn profiles too.
    • Added "visible"-argument to the !RainlendarToggle, which toggles only the visible windows.
    • "!RainlendarShow activate" only shows the calendar window.
    • The config editor can be changed with ConfigEditor (do not use any spaces in the path!)
    • Fonts use the default charset instead of the one defined in the skin. This can be overridden with UseSkinCharSet.

    5 DEC 2004 (Version 0.20 ▀)

    • New program icon by dieselx graphics (http://www.dieselx.de)
    • Fixed a negative coordinate problem with the tooltip.
    • Fixed a crash bug with Outlook support.
    • Message box shouldn't grow too large anymore.
    • Added "Get More Languages..." and "Get More Skins..." to the menu.
    • The order of todo-items can be changed.
    • Todo-list is multiselectable.
    • DisableDoneList=1 in Rainlendar.ini gets rid of the done-list.
    • Double-clicking on a todo-item will mark it done instead of opening the todo-dialog.
    • The plugins path can be defined with RainlendarPluginsPath in Litestep's step.rc.
    • Added Import and Export buttons to All Events dialog.
    • The windows can be enabled/disabled from the context menu.
    • Removed window coordinates from the config dialog.
    • Implemented an event list window which shows the coming events.
    • Added delete button to the all events dialog.
    • The columns in all events dialog are sortable.
    • Improved support for recurring events.
    • Skins can have custom text and date-items. See Skins-part in the docs for more info.
    • Skins can have buttons. See Skins-part in the docs for more info.
    • Windows snap to each other now too.
    • It is possible to lock window position to the calendar window.
    • Days can be set horizontally and vertically.
    • Weekends can be drawn with different font color/bitmap.
    • Added support for Outlook tasks.
    • Added a transparency slider to the config dialog.
    • Added click through feature (use Shift-key to disable it)
    • OnDesktop can be used with transparency.
    • !RainlendarShowEvents is gone.
    • Browsing for image files removes the absolute path automatically.
    • Small fixes to the usability of the skin editor.
    • It's possible to change the months with mouse wheel.
    • The todo-items can be synced with the server now too.
    • Weeknumbering can be adjusted with WeekNumberDelta.
    • Added "Don't show completed tasks" and "Don't show message body" to Outlook support.
    • Added some more hotkeys and !bangs.
    • Removed EventsPath-rcCommand (it doesn't work anymore).
    • Loading bmps don't create temp files anymore.
    • Changed the wallpaper polling routine a little.

    9 MAY 2004 (Version 0.19.3 ▀)

    • Refreshing the calendar lost the OnDesktop state. Fixed.
    • Rainlendar should work a bit better with Outlook 2000 now.
    • Fixed a crash bug with All events dialog.
    • Fixed a crash bug with Outlook sync.
    • Fixed !RainlendarShow activate. It only works when it's executed with Rainlendar.exe though,
    • Litestep variables can be used in the colors.
    • Rainlendar should now be able to access Outlook's appointments even if Outlook is not the default email client.
    • The todo list wasn't read from the Todo.ini-file unless it was enabled. Fixed.
    • Added DST calculations to Outlook dates, so they are not an hour off anymore (well, some still could be...).
    • Rainlendar is only logged in to MAPI when it's updating the Outlook appointments. Use OutlookKeepAlive=1 to keep the connection always on.
    • Fixed tooltip opening in wrong place.
    • The message box opened with wrong size sometimes. Fixed.

    20 MAR 2004 (Version 0.19.2 ▀)

    • If %APPDATA% is not defined Rainlendar writes the ini-files to it's own folder.
    • The messagebox has now correct size when it is opened the first time.
    • Rewrote the Outlook support to use the MAPI. This will get rid of the security warning with Outlook 2003.
    • Outlook's recurring events are better supported now.
    • Outlook profile can be selected with OutlookProfile in Rainlendar.ini.
    • Outlook appointment labels can be used as profiles with OutlookLabels=1 in Rainlendar.ini.
    • Fixed tooltip positioning in multimonitor systems.
    • Fixed some Win9x issues. The alphablending doesn't work correctly but at least it shouldn't crash anymore.

    28 JAN 2004 (Version 0.19.1 ▀)

    • If the Rainlendar.ini file was in the Rainlendar's folder a new file was created into Windows folder. Fixed.
    • Added internal handling for !Execute bang so that it can be used without Litestep too.
    • Refreshing doesn't pop up the todo window anymore if it is hidden.
    • Tray icon behaviour can be controlled with TrayExecuteL, TrayExecuteR, TrayExecuteM, TrayExecuteDL, TrayExecuteDM and TrayExecuteDR.

    25 JAN 2004 (Version 0.19 ▀)

    • The lists of languages and skins are now sorted.
    • It's not anymore possible to override general settings in the skin's ini-file.
    • Added a todo-list. It's a separate window, but most of the general settings apply also to it (movable, zposition etc).
    • Rewrote the window routines. Wharf/lsBox is not supported anymore :-(
    • All events list is now multiselectable and the read-only entries are drawn with gray color.
    • Changed image loading routine. JPEG-images should work now too and the wierd bug with vertical lines as days should be gone.
    • Outlook sync at startup is now optional.
    • Added control for setting the max tooltip width.
    • %n in execute will only use the 255 first characters in the text.
    • Replaced the standard message box with a skinnable one (LMB hides it, RMB snoozes).
    • Events are sorted by the start time.
    • Added a simple alarm system. Add time in front of the event message to define the time when the message box will appear. Time must be in HH:MM or HH:MM AM (or PM).
    • Added a trayicon (doubleclicking it toggles the calendar).
    • Improved the (un)installer. The installer can be now localized too.
    • Added context menu to the event editor.
    • It wasn't possible to set the event's valid until date to a day before the selected event. Fixed.
    • Manual can be opened from the context menu.
    • Added hotkey for the todo dialog.
    • Removed the warning messages with OnDesktop & Native transparency (they were quite annoying). The incompatible settings are now disabled.
    • "Execute on event" can play sounds now too. Just enter PLAY and the sound file. E.g. "PLAY boing.wav"
    • Event icons are drawn on top of the day numbers again.
    • The events, todos and settings are now written to the current user's application folder. This should make it easier to use Rainlendar in multiuser environment.
    • Added few new bangs: !RainlendarEditTodo, !RainlendarShowTodo, !RainlendarHideTodo, !RainlendarToggleTodo, !RainlendarAddEvent and !RainlendarShowEvents
    • The edit event dialog's position should be remembered now as well.
    • Month & year didn't restrict the window size. Fixed.

    4 OCT 2003 (Version 0.18 ▀)

    • It wasn't possible to add new events on days that already had repeating events. Fixed.
    • Improved the support for Outlook. It's still far from perfect though.
    • Added EventDrawAlways for profiles.
    • Added word wrapping to the tooltips. No GUI for it yet, but add ToolTipMaxWidth=500 to Rainlendar.ini to limit the tooltip window's width to 500 pixels.
    • The skin-list is now updated when the calendar is refreshed.
    • The Language-folders path defaults now to the folder where Rainlendar.dll is located.
    • Automatic refresh after suspend mode should work again.
    • Added priority system which defines what to display when a single day has several events.

    23 AUG 2003 (Version 0.17.1 ▀)

    • Months in the context menu and some other texts weren't translated. Fixed.
    • Some texts weren't translated at all or were wrong. Fixed.

    9 AUG 2003 (Version 0.17 ▀)

    • OnDestop radiobutton wasn't in the same group as other. Fixed.
    • Enlarged the dialogs a bit so that localized strings will fit better.
    • The DLL doesn't assume that its name is "Rainlendar.dll" anymore.
    • Newlines are removed from the event messages in the All Events -dialog.
    • Profiles and ordinals can be also localized.
    • The Outlook sync rate is now user definable and it can be also updated manually.
    • The window is not activated anymore during refresh (Note that Outlook sync does still activate the window).
    • Server synchronization got stuck if there were no events to be sent. Fixed.
    • Yearly Outlook appintments were displayed in every 12 years in Rainlendar. Fixed.
    • The current year can be changed with up and down keys.
    • Added support for XP styles.
    • Rewrote the Edit Event -dialog.
    • Double click on the All events -dialog allows editing of the selected event.
    • Added new option: Remember dialog positions.
    • Bottom right corner relative negative coordinates are now optional.
    • Native transparency is disabled if OnDesktop is selected and vice versa (they are incompatible settings).
    • Deleted events weren't propagated to other clients. Fixed.
    • Rainlendar shouldn't crash anymore if one of the images is missing.
    • The message box wasn't shown when day changed. Fixed.

    15 JUN 2003 (Version 0.16 ▀)

    • Negative y-coords didn't work. Fixed.
    • Added an option to show Outlook appointments in the calendar.
    • The background was clipped when native transparency was not used. Fixed.
    • "!RainlendarShow Activate" didn't work if executed with Rainlendar.exe. Fixed.
    • Added an option to start the week numbering from the week that contains January 1st.
    • Snapping should work now on all monitors.
    • Added option to sync with the server before adding/editing an event.
    • Added an error message if the server has a newer version of an event than the one sent to it.
    • The calendar is refreshed automatically after Windows returns from suspend state.
    • Switching on the native transparency while the calendar is set OnDesktop should work a bit better now.
    • The events for the same day are now sorted, so they should be always in the same order.
    • Added option to use separator line between events in the tooltip.
    • Added a dialog that shows all the events at the same time.
    • Added support for external language files for easier localization.
    • Stretching non-alpha backgrounds messed up the alpha channel. Fixed.
    • Added possiblity to show several months at the same time.

    3 FEB 2003 (Version 0.15 ▀)

    • Added !RainlendarMove and !RainlendarZPos bangs.
    • Fixed a bug that crashed the program if server name was empty.
    • Made the refresh on screen resolution optional, since it caused problems with some games.
    • The size of the today-image wasn't included in the window size calculation so part of the image was clipped in few skins. Fixed.

    23 NOV 2002 (Version 0.14 ▀)

    • The skins are loaded from the skins-subfolder by default.
    • The events path now defaults to the same folder where the Rainlendar.ini file is.
    • Fixed a bug that put wrong week number if the first day of the month was sunday.
    • Fixed a bug that sometimes caused multiplication of events when they were deleted.
    • Added support for icons in event profiles (check the shadow3-skin for examples).
    • Added PNG support for easier alpha transparency handling.
    • Improved the wallpaper polling routine; now it checks the timestamp too.
    • Added support for native Win2k/XP transparency.
    • Use Window Name -option was broken. Fixed.
    • Fixed a bug that caused a wrong day to be selected sometimes when the calendar was double clicked.
    • Added support for solid background with an optional bevel edge.
    • Added OnDesktop option to keep the calendar visible even with Explorer's "Show Desktop" feature.

    24 AUG 2002 (Version 0.13 ▀)

    • Messages are trimmed before they are sent to the server (to keep them below 1000 chars).
    • Removed mouse hooking code due to compatibility problems.
    • Added support for Litestep logging so it's easier to find bugs.
    • Fixed a bug that caused Litestep to crash after recycle.
    • Changing the months should be a bit faster now.
    • Added "Copy to Clipboard" button in the server config dialog.

    10 AUG 2002 (Version 0.12 ▀)

    • The window is now opened below all other windows when the position is set OnBottom.
    • Added an option to snap the window on the screen edges when it is moved.
    • Added !RainlendarLsBoxHook.
    • Fixed a bug that left the 'm' on the line when %m was used in the "Execute on event".
    • Added repeating events for daily, weekly, monthly and annual events.
    • Added profiles for event customization (check skinning.txt for more info).
    • Tooltip color & font can be changed from the skin settings.
    • !RainlendarShow can be executed with "activate" argument, which activates the window and puts it on top of other windows (doesn't work with OnBottom).

    11 JUN 2002 (Version 0.11 ▀)

    • Fixed a bug that set the dates to start from wrong day when the day changed.
    • Moving transparent window should be slightly faster now.
    • It was not possible to change the typeface of the fonts. Fixed.
    • Week numbers were not put in all lines that had days. Fixed.
    • Added possibility to set the separation (i.e. the space between) of the numbers in days, today, event, year and week numbers.
    • Separated the general settings and skin settings in different ini files. The skin settings override the general settings.
    • Now it is possible to change the skin from the context menu.
    • Negative coordinates are saved as zero to prevent the window to be placed off screen.
    • The GUI is back. You can once more change the skinning settings with it.
    • Added RainlendarSkinsPath step.rc command which defines the path for the skins.
    • Added RainlendarCurrentSkin and RainlendarCurrentSkinIni which will select the given skin.
    • Added !RainlendarEditSkin bang, which will open the skin editor dialog.

    3 JUN 2002 (Version 0.10 ▀)

    • Removed all MFC code from the Rainlendar.dll.
    • Added RainlendarEventsPath step.rc command.
    • The Rainlendar.ini file is only saved if it hasn't been changed by the user (this prevents overwriting manual modifications to the Rainlendar.ini).
    • Rainlendar is not anymore dependant on lsapi.dll. It only uses lsapi.dll's functions if ran as Litestep plugin.
    • Removed all skinning stuff from the GUI.

    2 MAR 2002 (Version 0.9 ▀)

    • Added support for distribution of Rainlendar's events. Check the Server part in the documentation for more info.
    • The calendar is automatically refreshed when the screen resolution changes.
    • Multimonitor functions are only used if the the OS supports them.
    • Fixed a bug with stretched wallpapers having noise pixels in the calendar window.
    • Now it is possible to use Rainlendar.exe to send the !bangs to the calendar (Only Rainlendar's !bangs work).
    • The items can be aligned a bit more freely on the calendar. This might affect existing configs, so check the Align-widget if something is in wrong place.
    • The background image can now be automatically stretched or tiled if it's too small for the calendar.
    • Added option to check if the name of the wallpaper has been changed since last refresh. And if it has, the calendar is automatically refreshed.
    • Added an About-dialog.
    • Rainlendar supports now Litestep's $evar$-variables
    • The calendar window can be moved with the mouse. Note that moving alphamasked calendar might cause problems with some gfx-cards.
    • Added support for OnTop, OnBottom and Normal positioning of the window.
    • Added support for transparency, which is based on window regions. Use magic pink color (FF00FF) in the background picture for transparent pixels (Note that you cannot use alphamask with the background).
    • Added an option to hide the window automatically when mouse is over the calendar (like in Rainmeter).

    15 JAN 2002 (Version 0.8 ▀)

    • Fixed a bug that prevented Rainlendar to find all its files if the command line argument was surrounded with quotes.
    • Changed the way the calendar is refreshed. Now it works even if there are other windows over it during the refreshing.
    • Now it is possible to define custom color/bitmap for different events.
    • Added possibility to show the event texts in the calendar window.
    • Fixed a memory leak during the refresh.
    • Added week numbers. They are calculated according to the ISO 8601-standard, so in countries that do not follow international standards (like in the U.S.) the week numbers might be incorrect.
    • The bitmap rasterized years are now placed in correct position.
    • By default Rainlendar.exe tries to load the configuration from a folder called Default. So, now it can be started without the need to give any arguments to the exe.
    • Removed the start delay option as it is quite unnecessary at the moment (let me know if someone wants it back :-).

    26 DEC 2001 (Version 0.7 ▀)

    • Now linked dynamically against MFC. You need might need to update your MFC42.DLL to run this.
    • Fixed small gfx-bugs in the dialogs.
    • The window name is now optional and can be disabled from the config-dialog.
    • The Quit button is grayed out if Rainlendar is ran as Litestep plug-in.
    • Added Wharf-interface so Rainlendar can be put inside a lsBox.

    3 DEC 2000 (Version 0.6 ▀)

    • Added new menu item to jump to the current month and a equivalent !bang for it (!RainlendarShowCurrent)
    • Added possibility disable hotkeys from the config.
    • Added hotkeys for changing the months. Note that key presses must be clean, i.e. modifiers (alt, shift, ...) cannot be used. This prevents accidental keypresses with vwm. Also note that that the calendar window must be active for hotkeys to work.
    • Rainlendar's window now has a name "Rainlendar"

    2 OCT 2000 (Version 0.5 ▀)

    • Fixed to work with the latest lsapi.dll's.
    • Rainlendar.exe now accepts quoted path as argument.
    • Fixed a bug that prevented the background image to display fully.

    4 JULY 2000 (Version 0.4 ▀)

    • Months can now cycled with cursor-keys.
    • Added few bangs: !RainlendarShow, !RainlendarHide, !RainlendarToggle, !RainlendarRefresh, !RainlendarConfig, !RainlendarQuit, !RainlendarShowNext, !RainlendarShowPrev, !RainlendarShowMonth [Month] [Year]
    • Added possibility to start the calendar hidden.
    • Changed the double buffering to full window version. This should reduce flickering.

    13 MAY 2000 (Version 0.3 ▀)

    • Changed the way how days are calculated.
    • Added possibility to display the current event in a MessageBox.
    • Added possibility execute a command (or !Bang) on a event-day. You can use %m for the event-message.
    • Added event days to display important dates. Doubleclick on a day to insert a text.
    • Added new tab in config-dialog to set the appearance of event days.
    • Alpha-Bitmaps can now have full path as well.
    • Displayed month can be selected form the context- menu.

    6 APRIL 2000 (Version 0.2 ▀)

    • Removed the Reload-menuitem.
    • RefreshDelay moved to the ini-file. There is no GUI for setting it, so you'll have to edit the ini-file by hand.
    • Month & weekday names are now in the ini-file for localization purposes.
    • Changed the way alpha-transparency is calculated.
    • Magic Pink works now for the background too.
    • Auto-refreshes when the day changes.

    26 MARCH 2000 (Version 0.1 ▀)

    • Initial Betarelease