home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The CDPD Public Domain Collection for CDTV 4
/
CDPD_IV.bin
/
fish
/
891-910
/
ff892
/
mouseaidedemo
/
mouseaide.doc
< prev
next >
Wrap
Text File
|
1994-05-04
|
29KB
|
649 lines
··············································································
MouseAide v9.69a.06.11.93 DEMO (unregistered) Version
Copyright (c) 1993 by Thomas J. Czarnecki
All Rights Reserved
-----------------------------------------------------------------------------
LEGAL NOTICE
Permission is hereby granted to redistribute the DEMO version of this
program, provided that the distribution is complete and unmodified in any
way.
There is no warranty on this program. I disclaim any and all
responsibility for any damages that use of this program may cause, by direct
or indirect use.
-----------------------------------------------------------------------------
This distribution is a DEMO (unregistered) version of "MouseAide" I
created this demo because I wanted the user to get the feel of the program,
and its features without being limited by any "crippled" features. So the
ONLY limit on this DEMO version is in the form of a one hour time limit!
Once the program is started the user will have a total time of one-hour
before the program shuts itself down. Once the program shuts itself down the
program will NOT re-install itself until you reboot your machine, Nice eh?
I have plans to expand and improve "MouseAide", but without support
from the Amiga community in the form of: Contributions, Bug reports, and
Ideas, it will NOT be possible! If you become a registered user you will be
helping to create a better and more useful program for the future, you will
NOT be paying me for the time and energy have already spent, that was my
contribution!
When you register, by sending me a your check (drawn on a US bank) or
money order for $20 (in US Funds) payable to me at the address listed below
you will receive the latest version of "MouseAide" sent to you, and will
receive one free upgrade when a major change is implemented. Further
upgrades will be available to registered users for a minimum cost.
Thomas J. Czarnecki
3526 Republic Avenue
Racine, WI 53405-3856
··············································································
MouseAide v9.69a.06.11.93
Copyright (c) 1993 by Thomas J. Czarnecki
All Rights Reserved
"MouseAide" is a 100% assembly language program that helps the Mouse
& Keyboard do a whole lot more, with a lot less work by the user!
MouseAide Features:
o An intuition interface to change any of default hot-key sequences
for all of the key functions, and control over the most used
functions of "MouseAide" Just use the 'Left-Amiga-C' key sequence
(which can also be change by the user) to bring up the "MouseAide"
configuration window to view or change any of the default hot-key
sequences, and to adjust many of the other functions of "MouseAide"
The user format for the Hot-Keys is the same as the string-macros
explained later on. Any changes are saved in a configuration file,
in the same directory that you started "MouseAide" up from, to be
used the next time that "MouseAide" is started up! "MouseAide" will
by default PopUp the configuration window at startup unless you
un-check the 'Auto-PopUp Config' box on the configuration window, or
use the '-o' option as described below to override it. I did that
to allow a beginner to review all the functions and their calling
Hot-Key sequences!
I recommend that the user use the configuration window for adjusting
as many of the options as they can. Use the startup options only
for the functions that I do NOT have defined yet in configuration
window!
In the near future I plan to add to the configuration window all
the options that are user definable at startup time now!
Remember all the keyboard sequences, and the options that are given
below are the defaults and can be changed by you!
o An adjustable Acceleration of the mouse, with a adjustable Threshold
for fast, and easy precision work. (this fuction can be adjusted by
the configuration window)
o Auto-Activation (SunMouse) of the window that the mouse pointer is
over when the mouse is stopped! This function is disabled when the
mouse pointer is blanked to save on CPU time. (this function can be
enable/disabled by the configuration window)
o Auto-Key-Activation of the window that the mouse pointer is
under, when a key is pressed. Nice feature to have if you use
the keyboard with multiple windows. Just point and type! (this
function can be enable/disabled the configuration window)
o Blanking of the mouse pointer if a key is pressed. No more trying
to read behind the mouse pointer, Nice eh? (this function can be
enable/disabled by the configuration window)
o Blanking of the mouse pointer if user input is idle for a set
number of seconds. (this function is enabled/disabled/adjustable
by the configuration window)
As of this version the mouse blanking is done by switching the pointer's
'Sprite' with an invisible 'Sprite' which will NOT affect any of the
other 'Sprites' being used.
o To save your monitor from image burning: blanking of the screen
if the user input is idle for a set number of minutes. Nice
feature for those of us that take a one minute break that runs
into.... (this function is enabled/disabled/adjustable by the
configuration window)
o Clicking a Window under the mouse pointer to the front (if need be)
with a adjustable number of left mouse button clicks, that are
within the time you have set in preferrences. The clicks to front
count is reset when the mouse pointer is moved to a new window, making
unwanted 'Clicks To Front' less likely when using a click count of two
or more. (this function can be enabled/disabled by the configuration
window)
o Clicking a Window under the mouse pointer to the back, by holding the
left mouse button down while clicking and releasing the right mouse
button! (this function can be enabled/disabled by the configuration
window)
o Clicking the Screen to the back, by doing a doing a Window to back
sequence, but with the mouse pointer NOT over a Window! (this
function is enabled when the above fuction is)
o Activation of the Workbench window by the 'Left-Amiga-Z' keyboard
sequence. This funtion is a lifesaver for users of menu-enhancement
programs such as: "ParM', "ToolManager", or "ToolsDaemon" By allow
the user a quick and easier way of getting at their Workbench menu.
No more searching for the Workbench window to activate so that you
can access the menus, let "MouseAide" do all the work for you! (the
default key/button sequence of this function can be user defined by
the configuration window)
o Middle Mouse Button (MMB) Window & Screen turning! Pressing the
middle mouse button while the pointer is over a Window will bring
that Window to the front, unless the Window is already in the front,
in which case, the Window will be sent to the back, nice eh?
To get even more power out of the middle mouse button (MMB) if the
pointer is NOT over a Window that can be depth arranged "MouseAide"
will send the front Screen to the back and make the top Window the
active one! I wrote this function after replacing my original mouse
(which did NOT last very long!) with a new third party mouse, which
had a third button (in the middle of course) Well, after finding
that the Amiga did NOT support the middle button in anyway I set out
and wrote this small GEM of a function! After using this function
for just a couple of weeks I would never buy a mouse/trackball
without the extra middle button! (can be enabled/disabled by the
configuration window)
o An 'EzDrag' function that allows the user to drag a window without the
drag bar! To activate the 'Dragging' process just press the activate
sequence (the default is: 'Left Alt- Left Mouse Button'), holding the
last 'Key/Button' down over the window that you with to drag, and then
move the window to where you like it, and then release it by releasing
last 'Key/Button' of the sequence! (the default key/button sequence of
this function can be user defined by the configuration window)
o Turning the windows with the 'Left Amiga-J', & 'Left Amiga-K' keyboard
sequences. The top window will become the active one! (the default
key/button sequence of this function can be user defined by the
configuration window)
o Turning the screens with the 'Left Amiga-N', & 'Left Amiga-M' keyboard
sequences. The top screen will become the active one!(the default
key/button sequence of this function can be user defined by the
configuration window)
o Cycling through the CLI(s)/Shell(s) windows with the 'Left Amiga-S'
keyboard sequences. If you are a CLI/Shell and Workbench user this
function can save you alot of time by allowing you to get instant
access to your CLIs/Shells windows without filtering through all the
open windows on the screen! (the default key/button sequence of this
function can be user defined by the configuration window)
o If any conflicts arise "MouseAide" can be suspended by the keyboard
sequence: 'Left-Amiga-H' And restarted with the same sequence!
This allows you to enter any key/mouse input that "MouseAide" may
use, without getting the action: Click-to-front, Window/Screen
turning... (the default key/button sequence of this function can be
user defined by the configuration window)
o Can execute a default ('NewShell') or a user defined command with the
'Left Amiga-Esc' keyboard sequence. Nice for a quick-pop-up program,
or a easy CLI/Shell startup. (the command and the default key/button
sequence of this functioncan be defined in the configuration window)
o Multi-Icon-Select with just the mouse, No more shift key! By pressing
and holding the left mouse button, then pressing and holding the right
mouse button, and then releasing the left mouse button, you enter the
Multi-Icon-Select (M.I.S.) mode! To select multiple Icons just click
on them with the left mouse button while still holding down the right
mouse button! You can enter the M.I.S. mode while selecting your first
Icon, or, as I find easier, you can enter M.I.S. mode by doing the above
sequence without an Icon! It makes it easier to select the first Icon
without moving it! (this function can be enabled/disabled by the
configuration window)
o Better keyboard feedback by producing a 'Clicking' sound when a 'Key'
is pressed! This function is handy when you are entering data into
the computer without looking at the screen much. I allocate a 'Audio'
channel at a low enough priority that you can run a music type playing
program which will steal the channel to play the music and when done
playing 'MouseAide' will recover its channel for use again! Nice eh?
I also let the user set the 'Clicking' volume level and Priority of
the Key Clicking's audio channel! (this function can be enabled/
disabled, volume adjusted, and audio channel priority set by the
configuration window)
o Automated date generation! With just a few keystrokes "MouseAide"
will get the current date, build it to a default, or user format,
and than output it by the same method that is used when you type
on the keyboard! To generate the default formated date all the
user has to do is press hold down the 'Left-Amiga' key and press
the 'd' key, easy eh? To generate the users formated date you do
the same key-sequence as above, but you also hold down the 'Shift'
key! The 'users format' is defined by a string that you pass to
"MouseAide" at startup that tells the program how you want your
date to be generated. The format is quite simple and is explained
below in the options sections. (the default key/button sequence
of this function can be user defined by the configuration window,
but the user date format, for now, must be set by the startup arg.)
o A simple keyboard 'String' macro function to allow the user to
assign user defined strings to user defined keys! When the
user types a defined 'Key' it will be replaced with their 'String'
by the same method that is used when you type on the keyboard!
This program saves the user from the tedious process of hand
entering commonly typed 'Strings' I find it useful in all types
of computing from working in the CLI/Shell to using it for text
short cuts in editors! How to define your 'Macros' is explained
below in the options sections.
o Closing Windows & Shells/CLIs from the keyboard with the 'Left-Alt-
-ESC' keyboard sequence. I close 'Windows' by the same method as
if you clicked on the 'Close' gadget. Shells are closed by sending
a user defined "String" to the 'Shell' which would then end the
shell. The default "String" is "EndCLI\n" which would tell a
normal Shell/CLI to close down. The user can define their own
'String' in the 'MA.Keys' file by including a line with the
following format:
CLIEndString = "String"
Where the "String" is the user definable string that is to send to the
Shell/CLI to close it! I made the closing string user definable because
of programs such as "ParM" which will NOT close if "EndCLI" is used!
(the default key/button sequence of this function can be user defined by
the configuration window)
o You can switch which port (1 or 2) that the mouse uses with the key
sequence: 'Left Amiga-P' Did you buy a TrackBall for your favorite
graphics program, but prefer to use the mouse for your non-graphics
work, well plug the TrackBall in Port2 and switch between the mouse
and TrackBall on the fly with a few keys! (the default key/button
sequence of this function can be user defined by the configuration
window)
o Workbench Window to Front with the 'Left Amiga-W' I created this
function because with just a few open windows on the 'Workbench Screen'
I could NOT get at the disk icons! When you activate this function the
'Workbench' Window will come to the front, allowing you to open a
disk/volume icon. When you open a window or use the 'Left Amiga-W'
sequence again the 'Workbench' Window will pop back! (the default key/
button sequence of this function can be user defined by the configuration
window)
o Freezing of the mouse and keyboard of all input, which if you live
with small children or a keyboard climbing critter, can be a real
lifesaver! Just use the 'Left Amiga-I' keyboard sequence to toggle
in/out of the input freezing mode. When you enter the input freezing
mode all mouse and keyboard input (except for the key sequence to
toggle you back) will be frozen, also the mouse and screen will
blank until you leave this mode. This fuction is great for those
long running programs, that you start up and leave alone for a long
period of time! (the default key/button sequence of this function can
be user defined by the configuration window)
o Can switch the right & left mouse buttons when installed for those left
handed people out there! (Use the '+l' option listed below) (can be
enabled/disabled by the configuration window)
o Any Selected-To-Be-Dragged-Icons will be released, when any window
manipulation (Window to back, Window to front, Keyboard window cycling)
is required to prevent a system lockup! This gets around a Intuition
bug in the in the 'WindoToFront' and 'WindowToBack' functions.
o As of this version "MouseAide" will now remember the 'Path' for the
process that has started it and if that process does NOT have a 'Path'
will search for a process that has one that it can use! What all that
means is that a process started by "MouseAide" (by command execute)
will also have that 'Path' Nice eh?
o "MouseAide" will try opening the "NULL:" device first, and the "NIL:"
device only if the "NULL:" is NOT mounted. This make system which have
the "NULL:" device installed much more reliable when you use the
'Command' function!
o Adjustable priority of the 'Input Handler' The default is: 63, and
should be fine for most of you. But if you are using another program
that also uses a 'Input Handler' than this option maybe nice to have!
o Easy WorkBench & CLI startup and shutdown!
o Releases every byte of memory on shutdown. No dead data, or code is
left in the system! Did you ever notice, after running some programs,
how your free memory seems less? Well it is! But, NOT after running
"MouseAide" It cleans up after itself!
o The options can be user defined by Workbench or CLI/Shell
o Small in size, about 22K in size, and even smaller with your favorite
executable compressor (Turbo Imploder, PowerPacker...)
o Self-detaching, for ease of startup!
o Uses advanced (Semaphore locked) static & dynamic memory management
techniques to reduce memory thrashing, while also keeping memory
demands low!
o Uses "good" programing practices!, Not like most of the "Mouse"
programs floating around! No "Intuition" calls are made from the
high-priority 'Input Handler', a very bad practice that most of the
"Mouse" programs use!
o The 'Input Handler' runs at a high priority, but the time wasting
part of the program run at a low priority
o The one-shot data & code (start-up, shut-down, etc...) is release
after start-up to further reduce memory overhead!
To startup "MouseAide" from WorkBench just double-click on "MouseAide" Icon!
From CLI type: MouseAide<RETURN>
(Note: That the program is self-detaching, do NOT Run it!
It also sets the correct stack-size and priority, don't
waste time adjusting them!)
To remove "MouseAide" just start up the program again.
All options (switchable, value & command) have a default setting. The value
defaults are set as following:
* Acceleration Factor - 3
* Threshold Factor - 2
Clicks to Front - 1
* Mouse Blanking - 5 Seconds
* Screen Blaking - 5 Minutes
Input Handler Priority - 57
* 'Clicking' Volume - 48
* 'Clicking' Priority - 80
* These values can be adjusted by the configuration window.
The default options can be changed by the user by using the option line.
By using the '+' & '-' switches, the user can turn ON or OFF any option.
All the switchable options, but, Left-Handed-Swap are by default: On.
The switchable options are:
* "a" - Auto-Activate
* "f" - Click to Front
* "b" - Click to Back
* "m" - Mouse Blanking
* "s" - Screen Blanking
* "e" - Key-Activate
* "k" - Key-Mouse Blanking
* "i" - Multi-Icon-Select
"p" - Port swapping for the Mouse
* "l" - Left-Handed-Swap (Off by default)
"w" - Workbench Window to Front
* "c" - Keyboard 'Clicking'
* "u" - MMB Window/Screen Turning
* "o" - PopUp the option window on startup
* These options can be enabled/disabled by the configuration window.
Value options are set by an integer number following the Option to be set.
The value is auto-ranged (limited) to a default value.
The value options are:
"A" - Acceleration Factor (range:1-11)
"T" - Threshold Factor (range:1-11)
"F" - Click(s) need for window to Front (range:1-9)
"M" - Mouse Blanking time in seconds (range:1-59)
"S" - Screen Blanking time in minutes (range:1-59)
"P" - Priority of the 'Input Handler' (range: 50-127)
"V" - Volume level of the keyboard 'Clicking' (range: 1-64)
"K" - Key Clicking's audio channel Priority (range: 1-127)
Remember use the configuration window for setting as many of the options
as you can, that is the method of the future!!! Also, if there is a Hot-
-Key/Button function that you do NOT use, set it to a unused hot-key
sequence to disable it, such as: 'Left-Amiga Right-Amiga Ctrl'
------------------------------------------------------------------------
When 'MouseAide' is started up it will look for a file named 'MA.Keys'
in the current directory (CD) and if NOT found will search the path of
the process that started 'MouseAide' up! The file 'MA.Keys' will define
the users 'Keys' and their 'Strings' The format of the files is simply
a line of text that first lists the 'Qualifiers' that have to be held
down, followed by the 'Key' to be defined, followed by a '=' and then a
quoted 'String' to be generated!
The 'Qualifiers' defined as:
LSHIFT for 'Left Shift'
LALT for 'Left Alt'
LAMIGA for 'Left Amiga'
CTRL for 'Ctrl'
RSHIFT for 'Right Shift'
RALT for 'Right Alt'
RAMIGA for 'Right Amiga'
The NON-ASC 'Keys' are defined by these tokens:
TAB
ESC
SPACE
RETURN
ENTER
DEL
BACKSPACE
HELP
LEFT
RIGHT
UP
DOWN
F1
F2
F3
F4
F5
F6
F7
F8
F9
F10
CLIEndString (Used to define the 'Keyclosing' string!)
To include a 'Return' in a defined string use the '\n' sequence a
quote is defined by the '\"' sequence, and the '\' charactor is
the '\\' sequence, simple eh?
Do I here 'what about a few exmaples?' O.K. by me, the line:
ralt lshift e="End\n"
Would generate the string:
End<Return>
When the 'Right Alt', 'Left Shift' keys are held down, and the 'e'
key is pressed! The next line:
lamiga f3="MouseAide +w U\".sy\""
Would generate the string:
MouseAide +w U".sy"
When the 'Left Amiga' key is held down and the 'F3' key is pressed!
This last example is my favorite:
; This is it!
Because it does nothing, being a comment line! A comment may start at
any point on a line and it runs until the end of that line, use it well!
As you can tell by the above examples the user format is very easy to
learn and use! If you need more examples take a look at the 'MA.Keys'
file I have included, and try them out!
------------------------------------------------------------------------
The 'Automated Date' generation part of "MouseAide" allows the user to
design their own formated date generation with the 'U' option string,
just use the following information to build your own format string:
"d" or "D" - Stands for DAY
"y" or "Y" - Stands for YEAR
"m" - Stands for MONTH as a number
"M" - Stands for MONTH as a string
"w" or "W" - Stands for day of the WEEK
"l" or "L" - Stands for switch to the LONG type, until changed
"s" or "S" - Stands for switch to the SHORT type, until changed
"'" - Is to allow any of the above characters to be
used as itself
Any character that does NOT match the above ones are used to
fill in between the ones that are use! Confused? Lets try a few
examples:
- Assume that the date is: June 7, 1992
U"sm.sd.sy" - Will generate: 06.07.92
U"lm.ld.ly" - Will generate: 6.7.1992
U"lM ld, ly" - Will generate: June 7, 1992
U"ld-sM-sy" - Will generate: 7-Jun-92
U"sm/sd/sy" - Will generate: 06/07/92
U"sm/d/y" - Will generate: 06/07/92
U"lm/d/y" - Will generate: 6/7/1992
U"lm/d/sy" - Will generate: 6/7/92
U"sd-sm-sy (sw)" - Will generate: 07-06-92 (Sun)
U"sd-sM-sy (sw)" - Will generate: 07-Jun-92 (Sun)
U"lM sd (lw)" - Will generate: June 07 (Sunday)
U"lM ld (lw)" - Will generate: June 7 (Sunday)
U"'Date: sm/sy" - Will generate: Date: 06/92
As you can tell by the above examples the user format is very
flexible, and easy for anybody to use!
The 'Automated-Date' function also allows the user to use a different
language then English! By creating a file name ".DateInfo" that is made
up of the names of the months followed by the names of the days of the
week, each on one line, for a total of 19 lines. When this file is
then placed in the same directory at startup of "MouseAide", they will
be used instead of the default English names! For an example I have
placed a sample '.DateInfo' file in the directory named 'MiscFiles'
The last option is the 'C' (command) option. This option must be the last
option to be set on the option line! The syntax is:
C <User defined string>
If you do NOT define a command string the default 'c:NewCLI' will be used!
NOTE: The 'Command' stringn can be set by the configuration window, why not
define it there!
So, a few examples are now in order:
For: No Auto-Activate, Mouse Blanking set to 7 seconds, a Acceleration
Factor set to 5, the Threshold Factor set to 3, do Key-Activate and
Key-Mouse Blanking we would use this option line:
-a M7 A5 T3 +ek
For: No clicking to front, and No Key-Activate, and the command
string 'NewShell...' we would use this option line:
-fe CNewShell CON:0/11/0/0/MouseAideShell
For: An Acceleration of 2, and a Threshold of 1, with 3 Clicks for a
Window to front, and the Workbench Window to Front option, we would
use this option line:
A2 T1 F3 +w
To use the option line in the CLI, just add it to the end of the line
on startup. For example:
MouseAide +mskef A4 T2 F3 M3 S1 CGShell
To use the option line from WorkBench, you can do it two ways:
1: Writing "OPTIONS=option line" in the "Tool Types" field of
"MouseAide" Tool Icon.
2: Writing "OPTIONS=option line" in the "Tool Types" field of
a Project Icon and 'MouseAide' in the "Default Tool" field.
You can get good examples by Info(ing) the Icons included
NOTE: Remember most functions can be enabled/disabled/adjusted by
the configuration window, which is much easier method!
Hint: A console window with a lot of output may delay some "MouseAide"
functions! A good trick is to hit the shift-key when this delay
happens. The Shift key will be like a electric shock to the
system, breaking the delay.
Tempus Fugit,
Czar
If you have any ideas, comments, bugs to report, write me:
Thomas J. Czarnecki
3526 Republic Avenue
Racine, WI 53405-3856