                             ScrollBall v2.5
                            -----------------

 INTRODUCTION
--------------

     ScrollBall is basically a mouse wheel emulator.  If you don't know
what a mouse wheel is (I didn't know what one was until I was almost
finished with version 2.0!), it's a ball found on some mice that lets
you scroll programs easily.  ScrollBall lets you scroll programs by just
moving the mouse around.  This comes in very handy at times.  If you want
to scroll something to the lower-right, why move your mouse all the way to
the right of the screen, scroll the scrollbar down, then move your mouse
all the way to the bottom of the screen, and scroll the scrollbar to the
right?  Just use scrollball, and move your mouse down to the lower
right.  Voila.  Your program scrolls.

     ScrollBall can be configured to virtually anything you want.  You
can use any combination of a number of options, including scrolling the
screen while you hold a key and move the mouse, and scrolling the screen
when your mouse hits the edge of the screen (my personal favorite way to
do it).  New to version 2.5 is the ability to scroll while holding the
middle mouse button (for three-button mice), as well as a couple other
features.

 INSTALLATION
--------------

     For version with installer:  Simply run the included install.exe.

     For version without installer:  Just unzip the scrollball zip
file into a directory and run!  That's all there is to it.  The only
totally necessary file is the .exe.

 UNINSTALLATION
----------------

     Uninstalling ScrollBall is as simple as pie:  Just delete the
directory ScrollBall is in.  Since I hate programs that clutter the
registry or your Windows directory, I've kept everything needed
by ScrollBall in its own directory.

 COMPATIBILITY
---------------

     Please note that ScrollBall is NOT compatible with ALL programs out
there, though it is compatible with most.  Some programs may actually crash
when you ScrollBall them, and others may go haywire, forcing you to restart
them.  For this reason, I have made a "Windows Options" option.  Using
this, you can tell ScrollBall to scroll in all windows EXCEPT ones that
crash, or you can tell it to ONLY scroll in the ones you want it to.
See the "OPTIONS" text below for a description of all of ScrollBall 2.5's
options.

     ScrollBall works best with Notepad and Netscape 3.0.  These two
programs are in fact the reason I designed ScrollBall, because I wanted
a way to quickly scroll around.  Netscape 3.0 works particularly good,
because all your frames are scrolled at once (if you have more
than one on screen), which I find nice.  I don't like Netscape 4.0 much,
so I haven't downloaded it, and thus haven't tested it.

     Please see the section below labeled "KNOWN BUGS" to see programs
that I know of that crash when you use ScrollBall on them.

 STARTING/STOPPING
-------------------

     You may start or stop ScrollBall at any time by either using the
ScrollBall->Start and ScrollBall->Stop options, or by clicking the
picture button with the stop sign or speed limit sign.

 COMMAND-LINE FEATURES
-----------------------

     There are several command-line options for ScrollBall.

-ontop
  This will open ScrollBall as an "Always On Top" program.

-letmeopen2
  This will let you open two copies of ScrollBall at once.  By default, if
  one copy is already started and you start another, it will just highlight
  the other copy.  Currently, two copies at once do not run right; I'm
  trying to figure out why.

-start
  This will cause ScrollBall to start up when you run it, as if you had
  clicked ScrollBall->Start.

-tosystemtray
  This will cause ScrollBall to go to the system tray when you start it up.

 TEST.HTM
----------

     This file has no real use, feel free to delete it.  It's just a file
you may want to open up in Notepad or Netscape to test ScrollBall with.

 OPTIONS
---------

     GENERAL OPTIONS.

     To select ScrollBall's general options, select ScrollBall->Options.
Here are the things you can set, and what they do:

- "Sensitivity":  Sensitivity is the number of pixels to adjust for before
                scrolling.  In other words, if Sensitivity is set at 2,
                and you move the mouse 1 pixel, nothing will scroll.
                In reality, nothing will scroll until you move the mouse
                3 pixels, because 1 is added to your sensitivity.
                Basically, the lower your Sensitivity is set at, the more
                sensitive scrolling will be.

- "Scroll X Times":  This is simply how many times to tell windows to scroll
                each time the mouse has moved enough.  Setting this number
                to 2 tells the window to scroll twice as much as the default,
                which is 1.

- "Message Type":  If your Message Type is "SendMessage," you will be
                telling the windows to scroll, and waiting until they are
                done scrolling before check the mouse again, while with
                "PostMessage," you tell the window to scroll, but check
                the mouse again immediately, without waiting for the
                window to complete scrolling.  If PostMessage is selected,
                the window could still keep scrolling after you stop moving
                the mouse, because it's "catching up to you," but with
                SendMessage, the window will stop scrolling immediately
                when you stop moving the mouse (or release F9).
                PostMessage will give more sensitivity to scrolling than
                SendMessage.

Note:  All three of the above settings are dependant on the speed of Windows
       itself.  What that means is, if by changing one of the options you
       don't see a difference in sensitivity, it is most likely because
       Windows is taking up too much time processing the scroll.

- "Middle Mouse Button Scrolls":  If this is selected, then when you hold
                down the middle mouse button and move the mouse around,
                windows will scroll.  This will only work if you have a
                three button mouse, and Window recognizes the middle
                button.

- "Arrow Keys Scroll":  If this is selected, the four arrow keys will scroll
                the window around.  Pressing down will scroll down, etc.

- "Scroll While Holding This Key":  If this is selected, then when you hold
                the key in the list of keys right below this option and move
                the mouse around, windows will scroll.  If the key selected
                is "Control," and this option is turned on, when you hold
                Control and move the mouse downward, windows will scroll
                downward.

- "Scroll When Mouse Hits Edge of Screen":  If this is selected, and your
                mouse hits the top of the screen, windows will scroll up.
                If this is selected and your mouse hits the bottom of the
                screen, windows will scroll down.  Same for left and right.

- "Keep Scrolling While Mouse Sits At Edge":  This option only works if
                the above option is turned on.  If this is enabled, when
                your mouse hits the edge of the screen and sits there,
                windows will keep scrolling every...

- "Repeat Scroll Every X Milliseconds": ...this amount of milliseconds.

- "Edge of Screen is X Pixels Thick":  If you don't want to scroll your
                mouse ALL the way to the edge of the screen in order for
                ScrollBall to think your mouse is at the edge, simply
                change this option.  For example, if you set this at 50,
                ScrollBall will think your mouse is at the top of the
                screen when it is 50 pixels away from the top.

- "Scroll Windows With These Types of Classes":  Since it's hard for me to
                tell exactly where a scrollbar is, these options are here.
                Quite simply, turn on "Edit" if you want scrolling to work
                in "Edit Boxes."  These are programs like Notepad and
                Wordpad that have a standard Window-provided edit box.
                Turn on "AFX:" if you want ScrollBall to work in Netscape
                3 (possibly 4 also, I don't know).  Turn on "Channel"
                if you want ScrollBall to work in mIRC.  Turn on "Other"
                if ScrollBall isn't working in a program, and you want to
                give it a shot.  All options but "Other" are enabled by
                default.  Turning on "other" could possibly cause problems
                in some programs, but it's worth a shot.

     WINDOWS OPTIONS.

     To select ScrollBall's "Windows Options", select
ScrollBall->Windows Options.  Here are the things you can set, and what
they do:

- "DON'T Scroll In These Windows":  If selected, the list of windows right
                below it will be ignored by ScrollBall.

- "Scroll ONLY In These Windows":  If selected, ONLY the list of windows
                right below this option will be scrolled by ScrollBall.

     How the lists work:  Type an entry in the edit box and hit add, or
select an item from the list and hit delete.  The lists are NOT case
sensitive.  This means if you type "notepad" in the list, "Notepad"
"NOTEPAD" and "notepad" are all recognized.  Also, the lists are PATTERN
based.  This means of you typed "otepad", "Notepad" will be recognized, and
so will "Notepad - Untitled."

 SETTINGS
----------

     To save settings at any time, choose ScrollBall->Save Settings.

     To load settings at any time, choose ScrollBall->Load Settings.

     Settings are written to three files in the same directory as the .exe.
Settings.dat contains various settings and shouldn't be editted, do so at
your own risk.  The other two files are list1.txt and list2.txt.  You may
edit these freely.  List1.txt is a list of the windows for the "don't scroll
these windows" box, and list2.txt is a list of windows for the "scroll these
windows only" box.  You must put each window name one per line, and there
must be at least one blank line at the bottom, or the list could become
corrupt.

 KNOWN BUGS
------------

- ScrollBall doesn't work with IE 4, probably because IE doesn't use standard
  scroll bars, however, IE 4 does not crash or go haywire.

- File Manager goes berzerk when ScrollBalled, but does not crash.  Because
  of this, the default options ignore File Manager (you can change that if
  you want in the Windows Options menu).  This is probably because File
  Manager is 16-bit or has some 16-bit code left in it, but I really don't
  know.  To that end, 16-bit programs probably do not work with ScrollBall.

- Xircon crashes.  Because of this, the default options ignore Xircon (you
  can change that if you want in the Windows Options menu).  This is
  probably because Xircon doesn't use the standard method of passing
  messages to a window (?).

 HISTORY
---------

v2.5 --- 2/26/98.  Third (and final?) release.  New features:
                   - Speed tweak.
                   - Option to run in the system tray instead of a window.
                   - Command-line option "-tosystemtray" added.  If this is
                     used, the program will start up as a system tray icon
                     instead of a window.
                   - Support for scrolling windows while you hold the middle
                     mouse button, if you have a three-button mouse.  This
                     will only work if Windows recognizes your middle mouse
                     button.
                   - ScrollBall no longer needs to be restarted if you
                     change resolutions in the middle of the program in
                     order to work right.
                   - New About box & icon.  Ok, so those really aren't
                     features...
                   - Bug in Load Settings fixed, where if you loaded settings
                     twice, your Window lists were wrong.
                   - Installation program added.  (A smaller zipfile without
                     the installation program is also available at the
                     ScrollBall homepage).
                   - Added option to change the "thickness" of the edge of
                     the screen.
                   - Position of the window saves.

v2.0 --- 2/22/98.  Second release.  Many, many features added.  Settings now
                   save.

v1.0 --- 2/18/98.  First release.

 LICENSE
---------
     You can distribute and use this program without any restrictions as
freeware.  You may however not change the ScrollBall program itself or
charge money for it without my permission.

 AUTHOR
--------

     My name is Alan Lanoie.  I created this program from scratch using the
Win32 API, and Borland C++ compiler 5.02.  If you were wondering how to
do something like this, install mouse and keyboard hooks to watch the
mouse and keyboard, and send WM_VSCROLL and WM_HSCROLL messages to the
windows you want to scroll (which you find using EnumChildWindows()).

 CONTACTS
----------

     Bug reports and suggestions are welcome.  I really don't know anything
more to add to ScrollBall right now.

ScrollBall homepage: http://zophar.internexus.net/personal/infe/scrollball

                                  - Alan Lanoie
                                  infe@iswt.com
