R A I N L E N D A R

Version 0.4 Beta

Info:
 
 
 
 
 
 
Rainlendar is a very customizable calendar that resides on your desktop and shows the days of the current month. The application is a Litestep plugin, but it can be used without the Litestep as well. You can use it even with the normal Explorer-shell if you like.

The calendar can be customized to fit your taste (and theme). You can use different fonts and colors, select the background image or just use copy of the current wallpaper. All customization can be made with a GUI, so no hassle with cryptic configuration-files or registry entries.

The program is still a very early beta and is not meant for everybody. There isn't any nice install-script which doesn't bother you with complicated questions. You have to know a little about your system to get it work. But I guess if you are a Litestep-user you should know enough :-)

 

 
Install:
 
 
 
 
 
 
Installing for Litestep

To install just copy the Rainlendar.dll and the example folder (RainlendarExample) 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 lines:

LoadModule C:\Litestep\Rainlendar.dll
RainlendarPath C:\Litestep\RainlendarExample\

... and recycle. Set the paths to point where you copied the files. RainlendarPath points to the folder where Rainlendar.ini-file resides. All files in the ini-file are also relative to that folder unless you are using absolute pathnames.

Installing for some other shell (like Explorer)

Copy all the stuff in the zip-file to some location (e.g. C:\Program files\Rainlendar\). The Rainlendar.exe needs the path for the ini-file as an argument or it refuses to run. Probably the easiest way to give it is to create a shortcut for the Rainlendar.exe and modify it. Add in the target-file after the Rainlendar.exe the path where the Rainlendar.ini file is.

Note that Rainlendar needs the lsapi.dll-file to work. If you don't have it or it's not on your path, you must get the latest Litestep build and copy the file from there to the same directory where you installed Rainlendar.

 

 
Config:
 
 
 
 
 
 
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. All the images can have pink (#FF00FF) as transparency or use real alpha-map. The items (numbers) in the 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. Only BMP-files are supported for now.

Please note that if you disable all items on the calendar the window won't have any size and it will be impossible to quit it. You'll have to kill the process in order to quit the program.

Here is some info what everything means:

General

Position
The horizontal and vertical position of the calendar-window relative to top left corner. The coordinates can also be negative in which case the position is relative to bottom right corner. The width and height of the window is calculated automatically from the background size and from the items inside the window.

Start delay
Tha amount of milliseconds before the window is displayed. This is handy if you are using some automatic wallpaper-changer in your startup. Rainlendar does notice the wallpaper changes and refreshes itself automatically, but as it doesn't work for all cases this is there as for a some kind of backup. Note that the number is indeed in milliseconds. That means that for 1 sec delay you must set it to 1000.

Background
The filename of the background picture to use behind the calendar. If the image is smaller than the window, it will be tiled to fill it fully. If this field is left empty, a copy of the current wallpaper is used as a background. 

Start hidden
If selected Rainlendar starts hidden. You might notice little flashing when the Rainlendar is started while the background is being copied. Be careful with this setting as the window can only be shown with !Bang-commands. This setting can be removed manually by removing StartHidden=1 line from the Rainlendar.ini file.

Start weekdays from Monday
If selected the first weekday in calendar is Monday. Otherwise it's Sunday.

Days

Enable days
If selected the days will be drawn on the calendar.

Position & Size
Position and the size of the area where the days will be drawn. Tha area will be divided in 7 columns and 6 rows. The coordinates are relative to the top left corner of the calendar window.

Align
Alignment of the fonts or bitmaps when drawn on the window.

Rasterizer
The method how the days are drawn on the calendar. This can be font or bitmap.

Font
If rasterizer is font then from here you can select the font that will be used to draw the days. Use the Select-button to select the font. Pressing the colored rectangle next to the Select-button opens a color-dialog, where you can select the color for the font.

Bitmap
If rasterizer is bitmap then from here you can select the bitmap for the numbers. The bitmap can be composed of 10 or 32 numbers. If 10 numbers is used they must be defined from 0 to 9. With 32 numbers they are defined from 0 to 31 (Note tha the 0-number is never used, so it may hold anything). All the numbers must be same size.

Don't display today's day
Skips the current day when drawing the days. This is useful for example when using different font to display the current day.

Today

Enable todays
If selected the today will be drawn on the calendar.

Align
Alignment of the fonts or bitmaps when drawn on the window.

Rasterizer
The method how the today is drawn on the calendar. This can be font or bitmap.

Font
If rasterizer is font then from here you can select the font that will be used to draw today's number. Use the Select-button to select the font. Pressing the colored rectangle next to the Select-button opens a color-dialog, where you can select the color for the font.

Bitmap
If rasterizer is bitmap then from here you can select the bitmap for the numbers. The bitmap can be composed of 1, 10 or 32 numbers. If the whole image is used to show today (e.g. it's a circle that will be drawn over the today's number), then select 1. If 10 numbers are used they must be defined from 0 to 9. With 32 numbers they are defined from 0 to 31 (Note tha the 0-number is never used, so it may hold anything). All the numbers must be same size.

Weekdays

Enable weekdays
If selected the weekdays will be drawn on the calendar. Note that the weekdays are placed automatically over the days, so you must set the Y-coordinate for the days more than 0 or you won't see the weekdays.

Align
Alignment of the fonts or bitmaps when drawn on the window.

Rasterizer
The method how the weekdays are drawn on the calendar. This can be font or bitmap.

Font
If rasterizer is font then from here you can select the font that will be used to draw the weekdays. Use the Select-button to select the font. Pressing the colored rectangle next to the Select-button opens a color-dialog, where you can select the color for the font.

Bitmap
If rasterizer is bitmap then from here you can select the bitmap for the weekdays. The bitmap must be composed of 7 items (the names of the days). The weekdays start always from Sunday, even if you have selected Start weekdays from Monday from the general-tab. All the weekdays must be same size.

Months

Enable month
If selected the current month will be drawn on the calendar. 

Position
Position where the current month will be drawn. The position depends on the alignment, so for example if the align is set to center the X-coordinate defines the center position of the month. The coordinates are relative to the top left corner of the calendar window.

Align
Alignment of the fonts or bitmaps when drawn on the window.

Rasterizer
The method how the month is drawn on the calendar. This can be font or bitmap.

Font
If rasterizer is font then from here you can select the font that will be used to draw the month. Use the Select-button to select the font. Pressing the colored rectangle next to the Select-button opens a color-dialog, where you can select the color for the font.

Bitmap
If rasterizer is bitmap then from here you can select the bitmap for the months. The bitmap must be composed of 12 items (the names of the months). All the months must be same size.

Year

Enable year
If selected the current year will be drawn on the calendar. 

Position
Position where the current year will be drawn. The position depends on the alignment, so for example if the align is set to center the X-coordinate defines the center position of the month. The coordinates are relative to the top left corner of the calendar window.

Align
Alignment of the fonts or bitmaps when drawn on the window.

Rasterizer
The method how the year is drawn on the calendar. This can be font or bitmap.

Font
If rasterizer is font then from here you can select the font that will be used to draw the year. Use the Select-button to select the font. Pressing the colored rectangle next to the Select-button opens a color-dialog, where you can select the color for the font.

Bitmap
If rasterizer is bitmap then from here you can select the bitmap for the year. The bitmap must be composed of 10 numbers from 0 to 9. All the numbers must be same size.

Event Days

Enable event days
If selected the event days will be drawn on the calendar.

Align
Alignment of the fonts or bitmaps when drawn on the window.

Rasterizer
The method how the event days are drawn on the calendar. This can be font or bitmap.

Font
If rasterizer is font then from here you can select the font that will be used to draw event days' numbers. Use the Select-button to select the font. Pressing the colored rectangle next to the Select-button opens a color-dialog, where you can select the color for the font.

Bitmap
If rasterizer is bitmap then from here you can select the bitmap for the numbers. The bitmap can be composed of 1, 10 or 32 numbers. If the whole image is used to show the event days, then select 1. If 10 numbers are used they must be defined from 0 to 9. With 32 numbers they are defined from 0 to 31 (Note tha the 0-number is never used, so it may hold anything). All the numbers must be same size.

Event
The event text can be shown in a tooltip when the mouse goes over an event day. Also a messagebox can be shown when Rainlendar is started on a day that has an event or when the day changes to a event day. Any command (or !Bang) can be executed on an event day (Leave the textbox empty if you don't want to execute anything). You can use %m to insert the event text in the command.

 
Bangs:
 
 
 
 
 
 
The Rainlendar can be controlled also with Litestep !Bang-commands.

!RainlendarShow
Displays the Rainlendar-window.

!RainlendarHide
Hides the Rainlendar-window.

!RainlendarToggle
Toggles the Rainlendar-window.

!RainlendarConfig
Opens the config-dialog.

!RainlendarRefresh
Refreshes the Rainlendar-window.

!RainlendarQuit
Quits Rainlendar.

!RainlendarShowNext
Shows the next month.

!RainlendarShowPrev
Shows the previous month.

!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.

 

 
Problems?
 
 
 
 
 
 
Here is a list of the dependencies for Rainlendar (These are from my system, so earlier versions might work as well). If Rainlendar refuses to run, check your versions and update to the most recent. Note that messing with system DLLs can break your system, so be careful and ALWAYS take backups from all the files you are going to replace.

Windows 2000

ADVAPI32.DLL 357 648 bytes 5.0.2191.1
COMCTL32.DLL 553 232 bytes 5.81.2920.0
COMDLG32.DLL 242 448 bytes 5.0.2920.0
GDI32.DLL 234 256 bytes 5.0.2180.1
KERNEL32.DLL 732 432 bytes 5.0.2191.1
LSAPI.DLL 31 232 bytes BUILD 03-13-2000
MSVCP60.DLL 401 462 bytes 6.0.8168.0
MSVCRT.DLL 295 000 bytes 6.1.8637.0
NTDLL.DLL 81 040 bytes 5.0.2163.1
RPCRT4.DLL 444 688 bytes 5.0.2193.1
SHELL32.DLL 2 352 400 bytes 5.0.2920.0
SHLWAPI.DLL 289 552 bytes 5.0.2920.0
USER32.DLL 402 704 bytes 5.0.2180.1
WINSPOOL.DRV 112 400 bytes 5.0.2167.1

Windows 98 SE

ADVAPI32.DLL 65 536 bytes 4.80.0.1657
COMCTL32.DLL 577 808 bytes 5.0.2614.3500
COMDLG32.DLL 176 128 bytes 4.72.3510.2300
GDI32.DLL 155648 bytes 4.10.0.1998
KERNEL32.DLL 471040 bytes 4.10.0.2222
LSAPI.DLL 31 232 bytes BUILD 03-13-2000
MSVCP60.DLL 401 462 bytes 6.0.8168.0
MSVCRT.DLL 266 293 bytes 6.0.8397.0
SHELL32.DLL 1 400 832 bytes 4.72.3612.1700
SHLWAPI.DLL 282 896 bytes 5.0.2614.3500
USER32.DLL 69 632 bytes 4.10.0.2222
WINSPOOL.DRV 23 040 bytes 4.10.0.1998

 

 
Legal:
 
 
 
 
 
 
This program is free software. Like Litestep, it is released under GNU General Public License as published by the Free Software Foundation.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

Please note that this software is still in beta-state and is most likely to have defects and may not work as it should. Use it at your own risk. The author is not responsible for any damage, direct or indirect, that this software may cause.

 

 
Contact:
 
 
 
 
 
 
The latest version will be found from my homepage at:

http://www.iki.fi/~rainy/

You may also send comments and bug-reports to author:

rainy@iki.fi

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 some details of your system (like OS version, Litestep build, and so on) might be helpful.

 

 
Future:
 
 
 
 
 
 
Here is some features which may be included in the future:
  • Selectable Skins / Themes.
  • Make it a full scheduler-application and integrate with Rainminder. 
 
History:
 
 
 
 
 
 

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