home *** CD-ROM | disk | FTP | other *** search
- V1.09 DMOUSE.DOC 31 Jul 1988
- Matthew Dillon
- 891 Regal Rd
- Berkeley, California 94708
- USA
- WORKBENCH USERS: PLEASE READ THE REVISION HISTORY FOR V1.09 FOR
- SOLUTION TO INTUITION WINDOWTOFRONT() BUG.
- YAIH (Yet Another Input Handler)... nahh, like DMouse better...
- for "Dillon's Mouse"??? Placed in PUBLIC DOMAIN because it's such a
- nifty program!
- After looking at and rejecting several mouse-intuition input
- handler enhancers (you know, accelerate the mouse, click-to-front, etc...)
- and finding them all useless, I have written my own.
- - Any option can be turned off or modified.
-
- - Screen blanks if keyboard or mouse is idle > N1 secs (def 300)
- (mouse also blanks even if mouse blanking not turned on)
- - The Pesky Mouse blanks if mouse is idle > N2 secs (def 5)
- - Auto Activate a window when the mouse is moved over it. Window
- also activated (if not already active) when you type. These
- two features may be turned on/off independantly
- - Mouse Accelerator. Back feeds power into the mouse unit;
- give it a nudge and it is guarenteed to penetrate up to an
- inch and a half of wall plaster (programmable depth). Once
- you start using it, you won't be able to switch back!
- - Programmable command-key and command string ala PopCli, default
- left-Amiga ESC.
- - Left Mouse Button click in window brings it to the front
- DOES NOT BRING THE WINDOW TO THE FRONT IF IT IS ALREADY
- IN THE FRONT. Other programs would call WindowToFront() on
- every click, which is horrible if you have a simple-refresh
- window. WindowToFront() is NOT called for backdrop windows!
-
- The qualifier along with the LMB is now settable with the -l option.
- # clicks required is settable.
- - Hold LMB, click Right Mouse Button .. Window to Back! Great
- for cycling windows. See next feature for more info.
- (the qualifier, normally the left mouse button, can be set with
- the -R option).
- - Same sequence as above, but if there is no window under the
- current mouse position, there is only one window on the screen,
- or the window under the mouse is a BACKDROP window, the
- sequence cycles through Screens!
- - NO DAMN CLOCK. Use another utility to get a clock. No other
- glossy thrills. DMouse is short, sweet, and functional.
- - Does not use a CLI, can be placed in workbench startup sequence.
- DO NOT 'RUN' DMOUSE!
- INSTALLATION:
-
- Place dmouse-handler in L: (or in the 'current' directory when DMOUSE
- is run).
- WORKBENCH USERS!!!!!!!!!! There appears to be a bug in intuition's
- WindowToFront() call, which can lock up intuition when workbench
- icons are active. Under the defaults, this will occur whenever you
- depress the left mouse button over an icon.
- A partial fix is in place V1.07 and beyond. However, if you find
- it still freezing up, the problem can be avoided as follows: Either
- turn off the left-mouse-button window- to-front feature (-L0) or leave
- it on and set the number of clicks required to 2 (-c2) (and don't use
- the feature while your mouse is over an icon). V1.09 gives you yet
- a THIRD option which is even more preferable ... change the qualifier
- that goes along with the left mouse button to something other than 0,
- like 3 (either shift). -l3
- EXECUTE FROM A CLI (e.g. WORKBENCH STARTUP SCRIPT), example:
- 1> DMouse -C newcli "<nil: >nil: con:320/120/320/80/Shell c:shell.exe"
- There is no need to 'RUN' DMouse. A double set of quotes may be
- required for the program to work properly with ConMan.
- NOTE: Your script in c:shell.exe should prefix all commands with a
- full path or the boot drive (usually DF0:) will be accessed,
- causing a requestor to appear if no disk is inserted.
- TO KILL:
- 1> dmouse QUIT
- SOURCE:
- Source is compileable under Aztec, +L (32 bit ints) and suitable
- precompiled include file (remember the precompiled include file must
- be precompiled with +L also). Use the c32.lib library (Aztec C)
- Precompiled include files: All amiga includes that are in
- sub-directories (i.e. */*.h, but not things like <stdio.h>)
- COMMAND LINE ARGUMENTS:
-
- If DMouse is already running, any specified options will be
- incorporated.
- quit QUIT .. remove DMouse
- -h HELP
- -a# Set acceleration to #. Default 3, 1 disables option
- -t# Set mouse acceleration threshhold, pixs/ev. default 0.
- -s# Set screen timeout to # (secs), Default 300, 0 disables option
- -m# Set mouse timeout to # (secs), Defalut 5, 0 disabled option
- -c# Set # of clicks required to bring window to front (def 1)
- -p# Set input handler priority (def 51) should always be > 50
- (initial invocation only)
- -w# 0 = use UpFrontLayer() etc... 1 = use WindowToFront() etc...
- WindowToFront() properly refreshes SIMPLE_REFRESH windows
- but a bug intuition can cause it to crash the machine if
- a workbench icon is active at the time.
- -L0/1 Disable/Enable left-button brings window to front
- -A0-3 Disable/Enable AUTO-ACTIVATE. Bit #0 = mouse auto-activate
- #1 = keyboard auto-activate
- (default 3, which enables both)
-
- -lqqqq Set Qualifier (HEX) with LMB for Window To Front (default is
- 0, meaning no qualifier). Example: -l0003 sets it to
- either shift key.
- -Rqqqq Set Qualifier (HEX) with RMB for Window To Back (default is
- the LMB qualifier). Setting the qualifier to 0 disables
- the feature.
- -Kcccc Set Keycode (HEX) for command key (default 0045)
- -Qqqqq Set Qualifier (HEX) for command key (default 0040)
- -C CMD Set Command to run. Default is NEWCLI. Remaining arguments
- on command line is the command.
- QUALIFIERS (always entered in HEX)
- 0001 Left Shift
- 0002 Right Shift
- 0004 Caps Lock
- 0008 Control
- 0010 Left Alt
- 0020 Right Alt
- 0040 Left Amiga Key
- 0080 Right Amiga Key
- 0100 Numeric Key Pad Key (not useful for dmouse)
- 0200 Repeat (not useful for dmouse)
- 0400 Interrupt (not useful for dmouse)
- 0800 Multibroadcast (not useful for dmouse)
- 1000 Middle Mouse Button
- 2000 Right Mouse Button
- 4000 Left Mouse Button
- Note: Combinations are allowed, in which case any one of the
- selected qualifiers along with the left, right mouse button
- or command key will cause the appropriate action to occur.
- RELEASE HISTORY:
- V1.09
- Workbench users probably want to use the following options: -w1 -l0003
- These use WindowToFront() (your windows get refreshed properly), but
- also requires you to depress a shift key + LMB to get the window-to-front
- feature.
- dmouse -w1 -l0003
- -SELECTABLE USE OF UpFrontLayer() etc.. OR WindowToFront() etc...
- Workbench users should use WindowToFront() (-w1), while CLI users
- probably want to use UpFrontLayer() (default).
- Reason: WindowToFront()/Back can crash the Amiga if called while
- a workbench ICON is highlighted. Unfortunetly, UpFrontLayer(), which
- does not have the bug, also does not automatically refresh
- simple-refresh windows!
- -New option -lqqqq (SET QUALIFIER WITH LEFT MOUSE BUTTON TO GET
- WINDOW-TO-FRONT FEATURE). WORKBENCH USERS NOTE: By setting this
- qualifier to a shift key, for instance, you can safely move icons
- around without crashing the machine because DMouse will not issue
- the WindowToFront() call unless you are holding the qualifier key
- down while pressing the left mouse button.
- -Bug fixed thanks to user persistance! If you disable mouse blanking,
- and enable screen blanking (which blanks the mouse too when it
- happens), hitting a key would bring back the screen but not the mouse.
- V1.08
- Botched.
- V1.07
- -All intuition calls are made from an independant process rather than
- the input handler routine. This also fixes a couple of deadlock bugs,
- but not the workbench-icon deadlock bug.
- -Mouse response is no longer jerky when the system is loaded down.
- -Keyboard-Auto-Activate-Window independant of Mouse-Auto-Activate-Window
- (enhanced -A option)
- -No need to OR the -Q qualifier with 8000 anymore
- -WindowToFront() never called for backdrop windows, which ought to fix
- the workbench freeze bug and other problems.
- -Mouse automatically blanked when screen blanks, whether mouse blanking
- is enabled or not.
- -Can set input handler priority (initial invocation only).
- -New Timeouts go into effect immediately rather than after the
- next mouse/keyboard event.
- V1.00-V1.06
- Before Written history
-
-