------------------------------------
AUTHOR: MAIL.AXSLIBL5
------------------------------------
From: IN%"CALDWELL@AUSVMR.VNET.IBM.COM" "Jim Caldwell" 28-JAN-1994 01:02:18.22
I'm happy to be able to tell you that a screen magnification sytem
"UNWINDOWS" will soon be available to DACX members. This system was
developed at Rensselaer Polytechnic Institute by Ephraim Glinert and
Rick Kline. The appropriate code and documentation is being grouped for
transmission and will be forwarded to Trace as soon as it is available,
probably within the next few days. I am including a short piece of
documentation sent me by Rick Kline to give you a flavor for UNWINDOWS.
This piece of work will be an important addition to our accessibility
tools and I would like to thank Dr. Glinert and Mr. Kline for making it
available.
---------------------------------------------
UnWindows 1.0 User's Guide
Richard L. Kline and Ephraim P. Glinert*
Computer Science Department
Rensselaer Polytechnic Institute
Troy, NY 12180
1 Introduction
UnWindows 1.0 is a collection of programs written for the X Window
System designed to assist a visually-impaired user in working with
a window-based workstation interface.
The utilities are designed to provide assistance in two common
tasks: locating the mouse pointer(footnote 1) on the screen, and
selectively magnifying' portions of the screen. Mouse pointer
location is given through both visual and aural feedback to the
user. A modified version of twm, along with the border,
change__sounds, and coloreyes programs, accomplish this task.
Screen magnification is accomplished with the dynamag program.
The individual programs that make up UnWindows 1.0 are each
described in their own sections below.
2 twm
We have created a modified version of the twm window manager that
comes with the X Window System package as delivered by MIT.
Whenever the mouse pointer is moved into a screen window, a file
named .un__sound is searched in the user's home directory. If the
name of the window just entered matches a record in the .un__sound
file, an associated audio file name and volume level are read in,
and the audio file is played on the system speaker at the specified
volume. The change__sounds program, described below, can be used
to edit the .un__sound file.
The unw shell script will start up X using this window manager and
will also start most of the applications below. The window
manager's menus, window borders, colors, and text fonts can be
customized in the same way as the original twm program, by creating
a file named .twmrc in the user's home directory.
3 border
This utility monitors the mouse pointer's movement and plays a
sound whenever the pointer moves within a threshold (10 pixels) of
the edges of the screen. Each of the four screen edges can be
assigned a different sound and/or volume.
As with twm, the information concerning the associated audio files
is stored in .un__sound and can be modified using change__sounds.
The predefined keywords Top__Border, Bottom__Border, Left__Border,
and Right__Border are used in place of window names in the
.un__sound file.
4 change__sounds
This program allows the user to interactively change the contents
of the .un__sound file. As noted above, the twm and border
programs use the information in this file.
When the program is started, the main application window presents
a row of buttons and a list of currently-defined window-sound
associations. The user may create a new association by pressing
the Add Sound button or delete an existing association by pressing
Delete Sound. To edit an association, the user points to the
appropriate line and presses the mouse button.
When an association is being added or edited, a second window
appears on the screen. A directory name appears near the top of
the window, and a listing of the files in that directory path
appear to the right. The user may type in a different directory
and press the Read Directory button to view the contents of other
directories.
Each association is assigned a unique index number, which need not
be edited. The remaining three fields of the window describe the
window, audio file, and volume to be associated together. The
sound name need not be typed; the user can select a sound from the
directory listing by pressing any mouse button while pointing to
the desired file name.
A sound may be played immediately by pressing the Play Sound
button. This allows the user to browse available sounds and also
to determine the desired volume setting. Since individual sounds
are recorded at their own individual volume levels, it is necessary
to provide individual playback volume control for each sound.
The user presses the Done button when finished editing the sound.
Control returns to the main window at that point. There, the user
may press the Save Sounds button to commit changes by writing a new
version of .un__sound , or discard the changes by quitting the
program without saving. As soon as the new sound associations have
been saved, twm and border will immediately use the new settings.
5 coloreyes
This is a modified version of the xeyes program that comes bundled
with the X Window System software from MIT. The original program
draws a stylized pair of eyes which continually gaze toward the
mouse pointer. This gives the user an indication of the direction
in which to look for the pointer on the screen. In our version,
the eyes additionally give distance information by changing the
color of the eyes as the pointer's distance from them varies.
Distance is computed as the ratio of the distance between the eyes
and the pointer to the distance between the eyes and the screen
border closest to the pointer. This ratio is then looked up in the
program's color table, where the appropriate color is selected for
the eyes.
The user can modify the colors used to represent the distances by
pressing any mouse button while pointing at the eyes. A settings
window appears on the screen. The bottom half of the window
contains a color mixer, with three sliders representing red, green,
and blue color component intensities, and a box to their left which
displays the resulting color. The top right area of the window
contains a box which displays all of the colors currently being
used by coloreyes. The color representing the area closest to the
eyes is the leftmost patch of the box. To change an existing color
panel to the color shown by the color mixer, the user presses any
mouse button in the panel to be changed.
The relative width of each color patch represents the relative
percentage of screen distances represented by that color. These
widths can be changed by placing the mouse pointer on the thick
black line between any two colors, holding down any mouse button,
and dragging the line to the left or right. The widths can be
reset to give each color an equal proportion of the box by pressing
the Realign Colors button.
The program defaults to using three colors to represent distance,
but any number of colors from one to ten may be used. To reduce
the number of colors used, the user presses the Delete Color
button, then points to one of the colors in the display box and
presses a mouse button. Note that pressing Delete Color a second
time without selecting a color panel cancels the delete, and that
pressing the button when there is only one color has no effect. To
add more colors to the display, the user presses the Add Color
button. The color currently shown in the color mixer in the bottom
half of the window is the color added. New colors are always added
to the far right of the color box. If there are already ten color
panels in the color box, Add Color will have no effect.
When the user is satisfied with the color arrangement, the Save
Settings button will save the colors to the file .coloreyes in the
user's home directory, making them the default colors. Pressing
the Done button sets the colors only for the current invocation of
the program. Bug! Currently, the code which attempts to change
the colors used by coloreyes for the current session does not work
correctly and is commented out. Color changes which are saved
using the Save Settings button will take effect the next time the
program is run.
6 dynamag
The dynamag program is a virtual magnifying glass for the display.
It is a highly-modified version of the xmag program that comes with
the X Window System. Rather than creating a single snapshot of a
screen area, our enhancements allow the magnifier to follow the
mouse pointer around the screen, magnifying whatever is beneath it.
The magnifier can also be anchored to a certain screen area and
continually update its magnification to reflect changes in that
area of the screen.
When the program begins, it creates a window which is divided into
two sections. The top portion is a magnification of the upper left
corner of the screen. The bottom portion contains a row of control
buttons.
To allow the magnifier to follow the mouse pointer around the
screen, the user presses the Follow button. The buttons and window
title bar disappear, and the magnifier rectangle will magnify the
area above and to the right of the pointer. To aid in the
program's performance, the pointer must be moved at least four
pixels in any direction to cause the window to redraw. When a
mouse button is pressed, the magnifier turns back into the managed
application window, placing itself immediately below the pointer.
Now, whenever the mouse pointer is moved, the magnifier will
continue to update its view of the last screen area selected. The
window itself can be moved to any location on the screen, and the
magnified area remains the same. (Interesting results are obtained
when the dynamag window itself is moved into the area currently
being magnified.)
The size of the magnified area can be changed at any time by using
the window manager's standard window-resizing techniques. Other
settings can be modified when the user presses the Settings button.
This brings up another window with two slider bars. The first
controls the magnification level, which can be set to any number
between two and nine. The magnifier window will immediately show
the effects of this slider as it is adjusted. The second allows
the magnifier to automatically redraw itself at a timed interval,
which can be set between 0.25 and 20 seconds. If the user presses
the Save Settings button, the current settings are made to be the
defaults and are saved in the file .dynamag in the user's home
directory. Otherwise, the Done button causes the settings only to
affect the current invocation of the program.
The magnifier can become fairly compute-intensive if the magnified
area is large (due to the window's size and/or a low magnification
setting) and frequent refreshes are chosen. The Stop button is
provided to allow the user to temporarily pause updating of the
magnifier window to allow these compute cycles to be utilized by
another process (e.g., when a large compilation is about to be
done). When invoked, the button label changes to Resume to
indicate that pressing it again will restart the automatic updates.
One particularly effective use of dynamag is to set the magnifier
over the bottom few lines of a shell window or application status
window. The dynamag window can be moved so that it does not
obscure any part of the window in which the user is working. Then,
by setting the program to update its magnified view frequently, the
user can type and read from the dynamag window while interacting
with the application window.
7 Conclusion
UnWindows 1.0 provides a set of tools which are effective in
assisting the user with locating the mouse pointer on the screen
and with dynamically magnifying portions of the screen. The
UnWindows utilities are all independent of one another, so that a
user can choose to run any or all of the included programs. In
particular, it should be noted that all of the programs (except our
modified twm) have been tested under mwm and olwm, two popular
window managers. *Authors' internet e-mail addresses: kliner@cs.rpi.edu,
glinert@cs.rpi.edu. The original version of this program was
written as the master's project of Gary Ormsby, who is now with IBM
in Austin, Texas.
(footnote 1) The term cursor' is also used to describe the mouse
pointer; we use the term pointer' to differentiate it from the text
cursors associated with different shell and application windows.
This archive was generated by hypermail 2b29 : Sun Dec 02 2012 - 01:30:03 PST