MAG Disk (Jun 1990) : PopUpMenu.doc

    PopUpMenu V3.2 by Martin Adrian	       90-04-11
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Introduction
    ~~~~~~~~~~~~
    Are you using QMose, DMouse, or HeliosMouse and "always" get the wrong
     menues when you press the mousebutton?
    Have you ever needed pop-up menues for your Amiga?

    The solution: PopUpMenu

    What is it ?
    ~~~~~~~~~~~~
    This small program makes it possible for You to use popupmenues with
     every program that uses standard intuition menues.
     ~~~~~
    The popupmenues works just like the standard pull-down menues for both
     the user (multiple selections, checkmarks, commandkeys) and the
     programmer (MENUPICK and MENUVERIFY).
     All intuition menu-flags (COMMSEQ, HIGHBOX, MENUTOGGLE ...)
     are fully supported.

    Features:
    ~~~~~~~~~
    * The Pop-up menues will not show up when you press the menubutton
       if any of the following conditions are true:

       1) No window is active.
       2) The active window has no menues.
       3) The active window has the flag RMBTRAP set.
       4) The active window has a requester open.
       5) The mousepointer is in the screens menubar.
	  (standard pull-down menues will appear)
       6) You are pressing any qualifier key.
	  (shift, alt, ctrl, left or right Amiga, left (or middle) mousebutton)

    * If a menuitem has subitems this is marked with a small arrow.

    * The program remembers the last menu selected.
       (Works only with items selected with PopUpMenues and does not remember
	different windows).

   Differences from Intuition:
   ~~~~~~~~~~~~~~~~~~~~~~~~~~~
   Bad:
     Drag-select is not supported (i never use it), Use Multiple selcet.
     If a Menu is disabled the menuitems will not show up.
     PopUpMenu does not sort the menues after their LeftValue (they may
      show up in the wrong order).

   Good:
     Mousepointer don't stop while menuwindows are opened or closed.

   Installation:
   ~~~~~~~~~~~~
   To use the program put the file `PopUpMenu' and 'PopUpMenu.info'
     in your current directory.

   To turn on the pop-up menues just type:

     1> PopUpMenu

   (If You (or maybe Kickstart 1.4) don't like selfdetaching programs,
     RUN the PopUpMenu.run program)

   To turn them off, just type:

     1> PopUpMenu

   Workbench users can click the PopUpMenu-icon.

   The program will take up < 10K. (including stack)

   Distribution
   ~~~~~~~~~~~~

   This version of the PopUpMenu program is released as Public Domain.
							~~~~~~~~~~~~~~
     This program can be used, copied, included in a library or commercial
     product as long as You don't do it for profit.

     You may also use the source for your own programs, but if You intend
     to do a similar popupmenu-program with it please let me know.

   Warnings:
   ~~~~~~~~~
   * A bug in intuition will sometimes lock the inputhandler (Mousepointer
       and keyboard will freeze).  This happens when intuition tries to change
       the screen (i.e draw something) while menues are displayed.
     The PopUpMenu program will detect this, fix it, and then resume the
       menuoperation. (The menues flashes once).

   * It is not possible to remove older versions (2.42 and lower) with
       this program.

   FUTURE:
   ~~~~~~~
    Size is to big.

    The program only remembers the last menu (not menuitem or subitem) selected.


   Author:
   ~~~~~~~
     Martin Adrian							  o
     Motgangen 305		    (the a is an 'a' with a ring above -> a)
     S-412 80  Gothenburg
     Sweden

USENET d5adria@dtek.chalmers.se  (not sure if this works anymore)

   Thanks to:
	Derek Zahn	      for the PopUpMenu program on FishDisk 96
	Commodore	      for the Amiga
	Arp - people	      for Arp 1.3 & AShell
	Lattice 	      for the C compiler (5.0)
	My English teatcher
	Anna		      my girlfriend
	You		      for using this program.


   Differences from version 2.42
   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   For speed:
   * Some code optimizations (C -> Assembler).

   For safety:
   * MENUVERIFY is now fully supported.
   * Forbid() and LockIBase() is now used where needed. (I hope.)
   * Made my own SwapBitsRastPortClipRect.   (No more guru #81000005)

   For use:
   * Shows if an item has subitems.
   * Now always shows items & subitems (even if they cover other menuwindows).
   * Now resumes after the intuition lock-up.

   For compability:
   * Fixed Fontbug.

   New Distrbution:
   * Public Domain.  (i'm not a poor student anymore 8-) )