Path: utzoo!utgpu!water!watmath!clyde!ima!think!barmar
From: barmar@think.COM (Barry Margolin)
Newsgroups: comp.windows.misc
Subject: Re: Mouse buttons
Keywords: sunview suntools
Message-ID: <23366@think.UUCP>
Date: 7 Jul 88 23:27:16 GMT
References: <4688@killer.UUCP> <4751@vdsvax.steinmetz.ge.com>
Sender: usenet@think.UUCP
Reply-To: barmar@kulla.think.com.UUCP (Barry Margolin)
Organization: Thinking Machines Corporation, Cambridge, MA
Lines: 68


The Symbolics mouse conventions are in many general ways similar to
the Sun mouse operations described by Bruce Barnett, although the
details are different.  As on the Sun, the right button is
conventionally used to bring up a menu, and modifier keys can also be
used (the Symbolics keyboard has five modifiers: Shift, Control, Meta,
Super, and Hyper, and multiple modifiers may be used together).
Double-clicking is also supported, but several releases ago this was
made synonymous with clicking while holding the Shift key (previous
releases didn't make use of modifiers with mouse clicks).

In general, clicking the left button selects an object, as on the Sun.
Clicking the right button brings up a menu of operations that may be
performed on the object being pointed to.  Shift-Right brings up a
general-purpose system menu.  The middle button is often used for some
kind of help or description (e.g. in a Lisp window, middle-clicking on
the display of a Lisp object executes (DESCRIBE ').  Control
and Control-Shift with various buttons are used for cut and paste
operations (again, Control-Right brings up a menu of all the cut and
paste operations), Meta-Left is generally used to bring something into
the editor (Meta-Left on a function name edits the function
definition, Meta-Left on a file name edits that file), and most
combinations that include the Super modifier are for dealing with the
Presentation facility, which keeps track of the displayed objects.

In menus, clicking Left on a choice generally does the obvious thing,
Middle does some variant, and Right brings up a menu of all the
variants.

The software for associating mouse keystrokes allows the application
to specify symbolic names, such as SELECT, EDIT, and MENU when binding
mouse buttons.  This allows the user to customize the association
between the symbolic names and actual buttons, and it will also
simplify many things when the Symbolics software is ported to other
I/O environments (e.g. the Macintosh co-processor that Symbolics is
working on).

There is one feature that exists on Symbolics (and other
MIT-descended) Lisp Machines that I haven't seen on other systems: the
Mouse Documentation Lines.  I feel that this is nearly indispensible
on a system with a heavily context-sensitive mouse.  Some
inverse-video lines are reserved at the bottom of the screen to
describe the current mouse bindings.  On the Symbolics system, there
are two lines.  The lower line says which modifier keys can be used
currently, and the upper line describes the actions of the mouse
buttons with the currently-pressed modifiers.  For example, when I am
in a command processor (like a Unix shell), and I point to the display
of a file name, the mouse documentation lines will say:

Mouse-L: Show File (file) A:>barmar>lispm-init.lisp; Mouse-R: Menu
To see other commands, press Shift, Control, Meta, Meta-Shift, or Super

When I press Meta it changes to:

m-Mouse-L: Edit File (file) A:>barmar>lispm-init.lisp
To see other commands, press Shift, Control, Meta, Meta-Shift, or Super

When I'm not sure what mouse operations are available, I simply try
all the shifts that are listed on the bottom line, and see what is
listed in the top line.  Over 90 combinations of buttons and modifiers
are possible, although I don't think I've ever seen more than eight
combinations of modifiers listed on the bottom line.

Barry Margolin
Thinking Machines Corp.

barmar@think.com
{uunet,harvard}!think!barmar