FvwmButtons 2.0.41-plural-Z-alpha 28.03.96
-------------------------------------------------------------------------------
This is a much improved version of FvwmButtons, previously known as GoodStuff.
It provides full configuration for each button on colors, sizes, fonts etc,
more control over swallowed windows, support for popup menus and actions bound
to separate mouse buttons. See the home page for illustrative examples.
Check out the FvwmButtons home page:
http://www.fm.unit.no/~jatotal/fvwm.html
Thanks to the folks who tried it out, commented, reported bugs and stuff,
especially those I remembered to write down here at the time, namely:
Brandon M. Browning <brandon@powertie.org>
Rich Derr <rhd@interaccess.com>
Romano Giannetti <romano@iet.unipi.it> Bugslayer
Angiolini Giorgio <angiolin@ic8wd2.settimo.italtel.it>
Albrecht Kadlec <albrecht@auto.tuwien.ac.at>
Dugeon Olivier <dugeon@lannion.cnet.fr>
Olly Stephens <olly@dylan.zycad.com>
HenSiong Tan <tan@stat.psu.edu>
Chris Taylor <shaggy@ctron.com>
Dirk Vangestel <gesteld@sebb.bel.alcatel.be>
Alan Wild <arwild01@scic.intel.com>
Emiel Witteman <ewittema@wi.leidenuniv.nl>
Christopher Wolf <cwolf@micro.ti.com>
Thanks to Rob and Chuck for Fvwm!
Jarl Totland <jatotal@stud.unit.no> (Until summer 96)
<jarl.totland@errors.bbs.no> (Forever, but seldom read)
-------------------------------------------------------------------------------
HACK:
I have tried to keep the code as clean as possible, not introducing features
that would mess things up. There is however one feature which is a hack only,
and will be removed at a later stage when introducing a more general way in
which you can achieve the same effect. That is:
Title (options) garblebrook
The options (Left,Right,Center,Side) will probably all go, but "Side" is a
very lousy solution, not very expandable. But until I have time to think out
a nice and general way to handle real estate inside each button, it will
have to stay to provide the Menu Loop (tm). So there.
SYNTAX:
This is the syntax of the options part of the configuration file, written
out in approximate BNF:
options := option options
| option
option := UNSIGNED 'x' UNSIGNED
| 'Action' aoptions STRING
| 'Back' STRING
| 'Container' coptions
| 'End'
| 'Font' STRING
| 'Fore' STRING
| 'Frame' SIGNED
| 'NoSize'
| 'Panel' poption STRING
| 'Padding' UNSIGNED
| 'Padding' UNSIGNED UNSIGNED
| 'Size' UNSIGNED UNSIGNED
| 'Swallow' sflags STRING STRING
| 'Title' tflags STRING
aoptions := '(' aoptions2 ')'
| NULL
aoptions2 := aoption aoptions2
| aoption
aoption := 'Mouse' UNSIGNED
coptions := '(' coptions2 ')'
| NULL
coptions2 := coption coptions2
| coption
coption := 'Action' aoptions STRING
| 'Back' STRING
| 'Columns' UNSIGNED
| 'Font' STRING
| 'Fore' STRING
| 'Frame' SIGNED
| 'NoSize'
| 'Padding' UNSIGNED
| 'Padding' UNSIGNED UNSIGNED
| 'Size' UNSIGNED UNSIGNED
| 'Swallow' soptions
| 'Title' toptions
poption := '(up)'
| '(left)'
| '(down)'
| '(right)'
| NULL
sflags := '(' sflags2 ')'
| NULL
sflags2 := sflag sflags2
| sflag
sflag := 'Close'
| 'Hints'
| 'Kill'
| 'NoClose'
| 'NoHints'
| 'NoKill'
| 'NoOld'
| 'NoRespawn'
| 'NoTitle'
| 'Respawn'
| 'UseOld'
| 'UseTitle'
tflags := '(' tflags2 ')'
| NULL
tflags2 := tflag tflags2
| tflag
tflag := 'Center'
| 'Left'
| 'Right'
| 'Side'