= FvwmAnimate(1)

:doctype: manpage
:mantitle: FvwmAnimate
:manname: FvwmAnimate
:manmanual: Fvwm Modules
:manvolnum: 1
:page-layout: base

== NAME

FvwmAnimate - the fvwm animate module

== SYNOPSIS

Module FvwmAnimate [ModuleAlias]

*FvwmAnimate* can only be invoked by fvwm. Command line invocation of
the FvwmAnimate module will not work.

From within the .fvwm2rc file, *FvwmAnimate* is spawned as follows:

....
Module FvwmAnimate
....

or from within an fvwm pop-up menu:

....
DestroyMenu Module-Popup
AddToMenu   Module-Popup "Modules" Title
+ "Fvwm Animate Icons" Module FvwmAnimate ModuleAlias
....

== DESCRIPTION

The *FvwmAnimate* module animates iconification and de-iconification or
on command. There are currently 6 different animation effects.

== INVOCATION

*FvwmAnimate* must be invoked by the *fvwm* window manager. When invoked
with the _OptionalName_ argument, the _ModuleAlias_ is used to find
configuration commands, configuration files, and name the internally
generated menus and forms instead of "FvwmAnimate". During startup,
FvwmAnimate defines menus and forms for configuring and controlling
FvwmAnimate. The default menu name is "MenuFvwmAnimate" and the form
name is "FormFvwmAnimate". If the optional name is used, the menu would
be "Menu<ModuleAlias>" and the form would be "Form<ModuleAlias>".

Assuming you already had a builtin menu called "Module-Popup", you could
use FvwmAnimate by configuring it like this:

....
AddToFunc "StartFunction" "I" Module FvwmAnimate
AddToMenu "Module-Popup" "Control Animation" Popup MenuFvwmAnimate
....

== CONFIGURATION OPTIONS

Since the pop up menu "MenuFvwmAnimate" allows complete control of the
*FvwmAnimate* module, you don't really have to know what any of the
configuration commands are. This section describes them anyway.

*FvwmAnimate* gets configuration info from *fvwm*'s module configuration
database (see _fvwm_(1), section *MODULE COMMANDS*). In addition,
*FvwmAnimate* reads the file $HOME/.FvwmAnimate, and accepts commands
from fvwm and its modules as it runs.

If _ModuleAlias_ is used to start FvwmAnimate, the optional name is used
in all commands, messages, menus and forms generated by FvwmAnimate and
in the configuration file name. Unlike other fvwm modules, there is
little reason to use the optional name.

*FvwmAnimate: Color color::

	Tells *FvwmAnimate* what color to draw with. The color is "XOR'ed"
	(exclusive ORed) onto the background. Depending on the display type
	you are using, the effect this causes will vary. Especially on 8-bit
	displays, it helps if the background is a solid color. You have to
	experiment with this to see how it works.
+

The default color is not really a color and can be entered as
"Black^White", or more simply "None". This is the same as the default
XOR mask used by fvwm for move and resize frames.

+

Other colors can be specified using standard X color notation. Ie. color
names like "LightBlue", or RGB values like "#FFFFFF".

*FvwmAnimate: Pixmap pixmap::
	Tells *FvwmAnimate* to use *pixmap* to draw with. This can be useful
	if **FvwmAnimate: Color* gives poor results.

*FvwmAnimate: Delay msecs::
	Tells *FvwmAnimate* how many milliseconds to sleep between frames of
	animation.

*FvwmAnimate: Iterations iterations::
	Tells *FvwmAnimate* how many steps to break the animation into.

*FvwmAnimate: Twist twist::
	Tells *FvwmAnimate* how many revolutions to twist the iconification
	frame.

*FvwmAnimate: Width width::
	Tells *FvwmAnimate* how wide a line to draw with. The default width of
	 0 (zero) is a fast line of Width 1.

*FvwmAnimate: Effect mode::
	Tells *FvwmAnimate* which animation effect to use. Currently the
	effects are: _Frame_, _Lines_, _Flip_, _Turn_, _Zoom3D_, _Twist_
	_Random_, and _None_. _None_ is normally set in the configuration
	file, in-case FvwmAnimate is started automatically, but an individual
	user doesn't want it running.

*FvwmAnimate: Stop::
	Tells *FvwmAnimate* to stop.

*FvwmAnimate: Save::
	Tells *FvwmAnimate* to save the current configuration in a file named
	".FvwmAnimate" in the users home directory. This same file is read
	automatically by FvwmAnimate during startup.

== COMMANDS

*FvwmAnimate* can be asked to produce an animation thru the
"SendToModule" command. The format of the command is:

....
SendToModule FvwmAnimate animate sx sy sw sh dx dy dw dh
....

The second word must match the name *FvwmAnimate* is started with. The 8
fields after _animate_ must be numbers. The first 4 are for the source
(or starting) location of the animation. The last 4 are for the
destination of the animation. The 2 pairs of 4 numbers, represent
rectangles. The first 2 numbers are the x and y location of the upper
right corner. The next 2 numbers are the width and height. One or more
spaces can separate the fields in the command.

Modules can use the "SendToModule" command to animate "NoIcon" windows,
or you can think up your own ways to have all kinds of fun with this
command.

Additional available commands are: _pause_, _play_, _push_, _pop_ and
_reset_. These may be space separated.

_pause_ causes a module to not temporarily produce any animations.
_play_ causes a module to produce an animation again. _push_ stores the
current playing state for a future and _pop_ restores it. _reset_
removes all stored states and sets playing on.

Suppose, we don't want to wait for all 40 xterms to be animated:

....
SendToModule FvwmAnimate pause
All (XTerm) Iconify on
....

And if we don't want to damage the current playing state, then:

....
SendToModule FvwmAnimate push pause
All (XTerm) Iconify on
SendToModule FvwmAnimate pop
....

== ORIGIN

*FvwmAnimate* is based on the *Animate* module from Afterstep 1.5pre6.
Porting to *fvwm* and lots of other changes were done by _Dan Espen_
<despen@telcordia.com>. Below are the original author and
acknowledgments.

== AUTHOR

_Alfredo Kengi Kojima_ <kojima@inf.ufrgs.br>

== ACKNOWLEDGMENTS

These people have contributed to *FvwmAnimate*:

Kaj Groner <kajg@mindspring.com>::
  Twisty iconification, configuration file parsing, man page.
Frank Scheelen <scheelen@worldonline.nl>::
