                                    FunMenus
                                    ========

Version 1.00 (26 Aug 1995)
Version 1.01 (22 Sep 1995)
     
Introduction
------------
   You've seen desktop ducks, swimming fish, bubbling fish, aquariums of
fish, more fish and yet more fish. You've seen the hedgehog running along the
iconbar with a steam roller. You've seen Bullwink and you watched in wonder
as the pointer shows you exactly which button you pressed on the mouse.
You've seen Neko, and wondered at how such a cute feline ever got caught
inside this nasty computer.
   Aren't you bored with all these triviallities which don't really liven
life up because the backdrop is usually obscured by five or six windows ?
   No ? Let's try again Aren't you bored with these triballities ?
   Yes ! Good, you're learning :-)

   Well, it's not really all that much fun, but this nice little patch
certainly adds something to life on the desktop. All it does is make every
menu appear in a different colour. That's it. Nothing animated. Nothing
trying to kill, feed or otherwise affect anything else.


Usage
-----
   Run the !Run file. That's it.
   Hopefully, the code will be assembled with no errors and all that in
future will be required is the running of the resultant code file.

    
How it works
------------
By intercepting all CreateMenu and CreateSubMenu calls the module patches the
menu's to give different coloured backgrounds for each menus in changing
group of colours.

A small patch is needed to work around the problem of greyed icons not
looking right in these colours means that greyed items are now in a mid-grey
and totally controlled by the module. These greyed options have their message
if sub-menu turned on and then a filter catches these (recognising them by
having bit 30 of menu flags set) and disables the options by not creating the
sub-menu.

Bit 31 marks each menu item as having been seen before.
Bit 30 marks it as whether it originally had the message flag set.

If any future window manager uses these flags then the patch will fail to
work.


Bugs
----
There are one or two problems where messages are passed through to the task
without being caught (eg Draw's Save text area option when no text are
selected), but I can't be bothered to go through the code to find out why;
sorry.

Colour menus (eg Draw's grid colour option) don't work at all. Sorry, but
again I can't be bothered to put the code in to check for these things.

Some applications (eg Filer) don't expect their menus to have changed between
Menu presses, and therefore don't shade options on the second click. Short of
taking a copy of the whole menu block and substituting all references to the
old block there's not a lot I can do about this. And anyway, I can't be
bothered.

As you may have guessed. This was purely an excercise in trying to do
something silly just to see if I could. It's almost as bad as the Backing
application which changed ever windows background to light blue. Interesting
but useless.


Disclaimer
----------
  The author accepts no responsibility for any problems which this
application may cause or loss of data resulting in its use. This application
is Public Domain. This means that it may be distributed, so long as no charge
other than copying costs are charged for it.
  

Source code
-----------
   This program requires the !JFPatch pre-assembler to make the code. This is
a simple text-to-basic assembler which takes a text assembler file, makes a
basic program from it to assemble, assembles it and returns any errors.
Currently, it is under development and requires a lot of work before it will
be released in any form. As such, the patch file is mostly useless, but must
be distributed with the resultant module.
   All source code an the resultant module must be distributed together.


WimpSWIVe
---------
   This program require WimpSWIve to be installed before it will run
correctly. It provides easy access to filtering Wimp calls other than
Wimp_Poll (provided by FilterManager) and is provided with NewerLook (which
is ok, but takes a bit of getting used to).
   The WimpSWIVe module is  Andrew Clover, and if copied should be copied
with the documentation which is provided. Refer to the file WSWI-Help for
more details.


Contact
-------
Any comments, queries, donations or bug reports can be sent to Justin
Fletcher at :

E-Mail : Gerph@essex.ac.uk
URL    : http://users.essex.ac.uk/users/gerph
IRC    : On #Acorn as Gerph
Finger : finger jrflet@postman.essex.ac.uk
Tel    : (01842) 813979

Snail Mail :
    Justin Fletcher
    Galadriel
    17b Cromwell Road,
    Weeting,
    Brandon,
    Suffolk.
    IP27 0QT


History
-------
Version 1.00 : 26 Aug 1995
               First very naff version. Produced menus using exactly the same
               techniques as v1.01, except that bits 30 and 31 were not used.
Version 1.01 : 22 Sep 1995
               Nothing really changed. Used bits 30 and 31, and managed to
               make absolutely no visible effect. Quite pointless really.