WEYES21.DOC wEyes -- What is it? "wEyes" is a Windows program that, although originally designed purely for amusement, might actually be of use to some computer users. Inspired by the famous "xEyes" program run on many UNIX-based xWindows systems, this program draws two eyes in a window; the eyes then track the movement of the mouse. I gave the original version of this program (archived in "weyes.zip") to a friend of mine who owns a notebook-size computer with an LCD screen. It seems that whenever he ran Microsoft Windows, he had problems keeping track of the location of his mouse pointer -- LCDs are notoriously slow, and if he happened to move the mouse suddenly, he would have to scan the entire LCD screen just to locate the pointer. wEyes helped. Since he seemed to benefit, I decided to upload the program to Compuserve and some other BBSs, to see if anyone else enjoyed it. To my surprise, that first version was much more popular than I ever thought it would be. Unfortunately, though, I had never put the original version through any kind of quality-control test. In short, the program was less than flawless. Enter wEyes v. 1.1. That version possessed substantial enhancements over the original version, including custom colorization, elimination of minor bugs, and an all-around better interface. But a few months after I released version 1.1, Microsoft came out with Windows 3.1. This bittersweet event had two major ramifications for me. First, Win 3.1 revealed a hidden bug in wEyes v. 1.1. It seemed that, whenever the Mission Control dialog box was invoked, some of the text within the 3-D area retained a white background, rather than the light gray background that I intended. Second, Win 3.1 provided a new capability for its windows: the so-called "topmost" feature. This feature allows a window to be visible at all times -- even when "covered" by another window. So I rewrote wEyes yet again. This latest version, version 2.0, fixes the aforementioned bug and takes advantage of Win 3.1's "topmost" feature. In addition, users now have the ability to change the main window's background color. wEyes 2.1 is a further refinement that takes care of a minor bug (see "wEyes 2.1 Enhancements, below). Basically, writing the program was a light exercise in trigonometry. The program checks the position of the mouse pointer on a regular basis, and using slopes, arctangents, sines, and cosines, determines where the "pupils" of the eyes -- which are independent of each other -- should be. wEyes 2.1 Enhancements - Bugs: Okay, my fascination with Win 3.1 made me lose sight of you 3.0 users. If you pressed the "OK" button in the wEyes Mission Control dialog box, the program crashed in 3.0. Sorry -- but I had to find this bug on my own! This is why I encourage folks to write me and let me know about such problems! wEyes 2.0 Enhancements - "Topmost" capabilities: When the "wEyes Mission Control" dialog box is invoked, one of the controls in the dialog is a check box labeled "wEyes always on top." If you are running Win 3.1 and you wish to make wEyes visible at all times, click the mouse on this check box. If you are running Win 3.0, the check box will be disabled and will appear grayed. - Background color: Now, in addition to adjusting the color of wEyes's pupils and outer rims, you can adjust the background color as well. (Neophytes: see "wEyes 1.1 Enhancements - Colors" below for more information.) - Bugs: Hard to believe, but wEyes 1.1 had a hidden bug that was not visible in Win 3.0. Some of the text in the "Mission Control" dialog box appeared on a white background, rather than on a light gray one. Hence, these little text items stuck out like the proverbial irritated digits. The problem has been rectified in wEyes v. 2.0. - Odds & ends: I don't know if anyone will notice, but I made some slight changes to the algorithm used in updating the positions of wEyes's pupils. It should make pupil movement a little faster -- though perhaps the difference is imperceptible. wEyes 1.1 Enhancements - Interface: As of v. 1.1, wEyes sports two dialog boxes. The first is the traditional "About" dialog box, which displays version and other basic information. The second is the "wEyes Mission Control" dialog box, explained in more detail below. This dialog box gives the user control over colors and "pupil update rates." In addition to being functional, these dialog boxes have a rather slick three- dimensional look. No, I'm not bragging -- the 3-D effect is due in large part to a dynamic-link library that I've incorporated into the program. The file is "three_d.dll," and it was written by a guy named Ray Donahue. (If you are a programmer and like the look and feel of wEyes's dialog boxes, you have my recommendation to license Donahue's libraries. They are flexible and incredibly easy to implement. Ray can be reached at the following address: Ray Donahue, 365 Mather Street Unit 125, Hamden, CT 06514; or on Compuserve: 70324,1204. I downloaded the DLL from the WINADV forum, on Compuserve.) The only hitch here is that wEyes will only support VGA and EGA monitors -- as for other monitors, I cannot guarantee compatibility. - Colors: wEyes now allows the user to define which colors he or she wants for the "rims" and "pupils" of the window's eyes. To define customized colors, activate the "Mission Control" dialog box. This is accomplished by clicking wEyes's control box (the little box in the top left-hand corner of the window). The control menu will appear. At the very bottom, you will notice two items: "About wEyes..." and "wEyes Mission Control...." Click once on "Mission Control." The Mission Control dialog box will appear. Next, find the two group boxes named "Outer rim color" and "Pupil color," respectively. Each box contains three horizontal scrollbars. Each scrollbar controls the intensity of either the red, green, or blue color elements of your screen. Move the scrollbars, and the color appearing in the window beside the controls will change to reflect your handiwork. When satisfied, press the "OK" button. If you just can't get it right, that's alright -- just press the Cancel button and your wEyes will not have changed. Some of you probably own a notebook or laptop with a monochrome LCD screen. This does NOT mean that you can't take advantage of the coloring capabilities included in this version. As you probably know, different people prefer different intensity settings when using LCD screens: some prefer that the screen look darker, while others can only work with a lighter-shaded screen. To the extent that your tastes differ from the next guy's, the red-and-black default colors may be difficult to see on your LCD screen. If so, the Mission Control color features can help. - Timer interval: wEyes checks the position of the mouse pointer at a predetermined time interval, and then readjusts the position of the pupils accordingly. In the original version of wEyes, this "pupil update rate" was 100 milliseconds by default. That parameter could be changed, however, by including a command-line parameter. The Mission Control dialog box has eliminated the need for such a mechanism. The interval can now be adjusted in much the same way as the colors of the eyes. When the scrollbar in the "Timer interval" group box is adjusted, the number appearing in the edit box to the right of the scrollbar will be similarly adjusted. If you want to enter a particular number in the edit box, however, you need not use the scrollbar -- just click your mouse on the edit box (or "tab over"), and type in the desired number. If you are running a number of large applications concurrently, you may want to slow the timer down a bit, so as not to burden the other programs. On the other hand, unless you have a very fast machine, intervals of less than 50 milliseconds will probably not produce any additional speed benefits; there will always be some lower limit for a given machine. - Initialization file: The first time that you close wEyes (or end a Windows session without closing wEyes first), the program will create an initialization file in your WINDOWS directory. The file is called, appropriately enough, "weyes.ini." The next time that you run wEyes, the program will "remember" the colors that you last specified, and will automatically use them in your current session. In addition, unlike the original version, wEyes will store the window's size and position. So rather than having to move and stretch the window every time you start wEyes, the window will automatically pop up exactly where you want it. - Minimization: As with the original version of wEyes, wEyes v. 1.1 still works when minimized. So if you need room on your display, wEyes won't take up any more room than, say, the Windows Clock program. - Bugs: Fallible? Me? I encountered one minor, although annoying, bug in the original version of wEyes. It seems that, if I stretched the window far enough across the screen, I would get an unrecoverable application error. That problem has since been put to bed. Also, the original version had no mechanism for aborting the program in the unlikely event that a timer could not be created. Should Windows already have the maximum number of timers running, wEyes v. 1.1 will not run, but will display a message informing the user of the problem. This version appears to work pretty well. Nonetheless, because I'm not charging money for this program, it's difficult to justify putting hours and hours into crash-testing the thing. Thus, I'm relying on user input. If you find any bugs in this version of wEyes, please drop me a line at the address below. Or you can send me e-mail at Compuserve. My address there is 70724,3347 (InterNet: "70724.3347@compuserve.com"). DISCLAIMER No copyright is claimed in "weyes.exe," "weyes.ini," "weyes2.doc," "weyes2.wri," or "weyes2.txt" (collectively, the "Software") by its author, Rob Carty ("Author"). No rights related to the Software are granted by Author. The user agrees to use the Software at his or her own risk, and agrees not to hold Author liable for any damages, direct, indirect, consequential, incidental or otherwise, in tort, in contract, or upon any other theory of law or equity, regardless of whether such damages are caused by Author's own negligence or gross negligence. The file named "three_d.dll" is copyrighted intellectual property, distributed under license. The user, however, need not pay royalties for copying or using that file in conjunction with the Software, pursuant to the license granted Author. Loading instructions: To load wEyes onto your Windows system, first copy "weyes.exe," "weyes.txt," and "three_d.dll" to the directory of your choice. Next, enter Windows's Program Manager and select a program group. Then select "File," "New," "Program Item" from the menu bar (in that order). In the "Command Line" edit box, type: ":\\WEYES.EXE", where and are the drive and directory into which you have installed the above program files. Choose "OK." When you want to invoke the program, simply double-click the wEyes icon. To auto-load the program upon starting a Windows session, do the following: Win 3.1 Install wEyes in the "Startup" program group. To run the program as an icon, check the "Run Minimized" check box. Win 3.0 Open your "win.ini" file (located in your WINDOWS directory) by using the Windows Notepad program. Find the line labeled "[windows]"; then look for the "load=" statement. Beside that statement, type ":\\WEYES.EXE", again where and are the drive and directory into which you have installed the program files. The next time that you invoke windows, wEyes will appear as a minimized window at the bottom of your screen. To run wEyes as a regular (non-minimized) window, perform these same steps, except rather than looking for the "load=" statement, look for the "run=" statement. This program is written mostly for fun. If you do enjoy it and would like to find out about other products and services provided by OutLook/PC Business System Design, drop us a line at: OutLook/PC Business System Design ATTN: M. Bradley, MSSI P.O. Box 684255 Austin, TX 78768-4255 Compuserve: 70724,3347 We usually specialize in more serious undertakings, specifically management information systems. Even more specifically, we are seeking out small- to mid-sized law firms in South and Central Texas that require information systems and solutions (I have a J. D. -- University of Texas School of Law, Class of 1991). If you fit the above description (or if you know anyone who does), please let us know. We specialize in building open, flexible information systems, and we can do it quickly and cheaply. And when we're done, our clients do not become our slaves. Thanks. -- Rob Carty, President 9 October 1992 _