R A I N M A T I O N

Version 0.3 Beta

Info:
 
 
 
 
 
 
Rainmation is a Litestep plugin for putting small animations on the desktop. This is mostly an eyecandy with ability to act as simple shortcuts.

You can have any number of animations and animations may be any size. But be careful with large animations as the animation frames are stored in memory in bitmap format, so big animations will take quite much memory.

Animation may use real or fake transparency. The way fake transparency works is that before the animation is started a copy of the background is taken and used as the animation background. So, if you'll for example have a window over the area where the animation should appear, the window will be part of the animation background and stick with it even when you move the window away. This is unfortunately necessary to keep the CPU-usage low and animation speed high enough. The real transparency uses window regions and doesn't have the limitations that the fake transparency has, but takes a lot of CPU-time.

Animation can be disabled or removed from the popup-menu you'll get if you press right mouse button over the animation. You can also refresh the animation from there.

 
Install:
 
 
 
 
 
 
To install just copy the Rainmation.dll to your Litestep directory (eg. C:\Litestep\), copy the example animation folder to the same folder where you keep all the other Litestep images (eg. C:\Litestep\Images), edit your Step.rc and recycle. Check Step.rc for more info.
 
Step.rc:
 
 
 
 
 
 
The Step.rc file needs some modifications as well. First of all you need to load the plugin by adding the following line to your step.rc:

LoadModule C:\LITESTEP\Rainmation.dll

Then you can define the animations with the these:

RAnimStartDelay [SECS]
Number of seconds that will be waited before the animations are started. This is useful if you are using some random wallpaper which changes a new wallpaper in every boot. This way you can set the animations to start after the new wallpaper is loaded so the animation background will be taken from the new wallpaper. Note that the delay is global for all animations.

RAnimPixmapPath [PATH]
Path where the animations are. If missing Litestep's PixmapPath is used instead.

RAnim[N] [ANIMFOLDER]
Then name of the animation. The N is number of the current animation. Animation numbers must start from 1 and be in order (so next is 2 and so one). There can be any number of animations. AnimFolder is relative to Step.rc's PixmapPath or RAnimPixmapPath and the bitmaps inside the folder must have the same name as the folder with three digit running number (starting from 000) and .bmp at the end. All animation frames must be same size.

RAnimPosX[N] [XPOS]
The horizontal position of the animations top left corner. The XPOS can also be negative in which case the position is relative to right of the screen. The N must be same as in RAnim:

RAnimPosY[N] [YPOS]
The vertical position of the animations top left corner. The YPOS can also be negative in which case the position is relative to bottom of the screen. The N must be same as in RAnim:

RAnimDelay[N] [DELAY]
The amount of milliseconds between the frames. The timing uses normal Windows messaging system, so it's not very accurate. Also you might not be able to set the delay as low as you would like (there won't be any speedup in the animation playrate). The N must be same as in RAnim:

RAnimNoMenu[N]
Disable the right mouse button menu for this animation. If N is not given, the menu is disabled for all animations.

RAnimAlwaysOnTop[N]
Set this animation window to be always on top of other windows. This is only useful with RAnimRealTransparency setting. If N is not given, all the animations are always on top.

RAnimRealTransparency[N]
Use real transparency instead of fake one for this animation. If N is not given, all the animations use real transparency. A word of warning should go here: using real transparency uses lot of CPU, so it might not be wise to use this for constantly looping animations.

RAnimNormalRange[N] [STARTFRAME] [ENDFRAME]
Sets the range of frames that will be played when nothing else is happening. If not set then all the frames are played. The EndFrame can also be lower than StartFrame in which case the animation is played backwards. 

RAnimMouseOnRange[N] [STARTFRAME] [ENDFRAME]
Sets the range of frames that will be played when mousepointer goes over the animation. These frames are played only once. The EndFrame can also be lower than StartFrame in which case the animation is played backwards.

RAnimMouseOffRange[N] [STARTFRAME] [ENDFRAME]
Sets the range of frames that will be played when mousepointer leaves the animation window. These frames are played only once. The EndFrame can also be lower than StartFrame in which case the animation is played backwards.

RAnimMouseOverRange[N] [STARTFRAME] [ENDFRAME]
Sets the range of frames that will be played when the mouse is over the animation window. These frames are looped while the mouse is over the window. The EndFrame can also be lower than StartFrame in which case the animation is played backwards.

RAnimMouseClickRange[N] [STARTFRAME],[ENDFRAME]
Sets the range of frames that will be played when left mouse button has been clicked on the animation window. These frames are played only once and after that the animation goes playing the normal frames (not mouse over frames even if the mouse pointer still is over the animation). The EndFrame can also be lower than StartFrame in which case the animation is played backwards.

RAnimExecute[N] [COMMAND] [ARGUMENTS]
Command and it's arguments that will be executed when the animation is clicked with left mouse button.

RAnimWaitClickAnim[N]
If set, the click animation will be played before the program is executed. Also note that if you don't define click- animation (RAnimMouseClickRange) the program won't be executed at all.


Example additions to step.rc:

LoadModule C:\LITESTEP\Rainmation\Rainmation.dll
RAnimPixmapPath "C:\LITESTEP\Rainmation\"
RAnimStartDelay 5
RAnim1 LSButton
RAnimPosX1 0
RAnimPosY1 0
RAnimDelay1 50
RAnimRealTransparency1
RAnimAlwaysOnTop1
RAnimNormalRange1 0 0
RAnimMouseOnRange1 1 9
RAnimMouseOffRange1 9 1
RAnimMouseOverRange1 10 10
RAnimMouseClickRange1 11 19
RAnimExecute1 "C:\4dos\4dos.com"
RAnimWaitClickAnim1
 
Bangs:
 
 
 
 
 
 
Animations can be controlled with these !bang-commands:

!RAnimEnable [N]
Enables the animation. If N is not given all the animations are enabled.

!RAnimDisable [N]
Disables the animation. If N is not given all the animations are disabled.

!RAnimToggle [N]
Toggles the enabled/disabled state of the animation. If N is not given all the animations are toggled.

!RAnimQuit [N]
Quits the animation. If N is not given all the animations are quitted.

!RAnimRefresh [N]
Refreshes the animation. If N is not given all the animations are refreshed.

 
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/products.html

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

rainy@iki.fi

Please put the name of the product (i.e. RAINMATION) in the subject-field of the mail. It may be useful if you write the version of the product also.

 
Future:
 
 
 
 
 
 
Here is some features which may be included in the future:
  • Support for real aniumation formats (like AVI, AnimGIF, ...)
  • Merge it with shortcut.dll so you can have animated shortcuts
  • Ability to play animations only once
  • More control via Bangs
 
History:
 
 
 
 
 
 
24 OCTOBER 1999 (Version 0.3 ß)
  • Added bangs: !RAnimEnable, !RAnimDisable, !RAnimToggle, !RAnimQuit, !RAnimRefresh
  • Included LM_GETREVID-message handling for !About
  • Now uses static linking to MFC. A bit larger executable but removes the problems with MFC42.DLL
  • Optimized real transparency's window region switching.
  • RAnimPosY & RAnimPosX now accept negative coordinates as well.
  • RAnimExecute now uses LSExecute, so executing bangs should now work too.

8 OCTOBER 1999 (Version 0.2 ß)

  • Added simple shortcut support: RAnimWaitClickAnim[N] and RAnimExecute[N] [Program] [Arguments]
  • Added several commands to handle animation with various mouse events:
    • RAnimNormalRange[N] [StartFrame] [EndFrame]
    • RAnimMouseOnRange[N] [StartFrame] [EndFrame]
    • RAnimMouseOffRange[N] [StartFrame] [EndFrame]
    • RAnimMouseOverRange[N] [StartFrame] [EndFrame]
    • RAnimMouseClickRange[N] [StartFrame] [EndFrame]
  • Added RAnimRealTransparency which will set the anims to use regions as transparency.
  • Added RAnimAlwaysOnTop which will set the anims be always on top (useful only with real transparency).
  • Added RAnimNoMenu to disable the context menu.
  • Frames start from 000 (not from 001 as before!)
  • Window isn't activated when it's opened.
  • RAnimPixmapPath can be used to determine the animation directory instead of PixmapPath.

8 AUGUST 1999 (Version 0.1 ß)

  • Initial Betarelease