[comp.windows.open-look] Searching a scrolling list

kk@shasta.tivoli.com (Kerry Kimbrough) (05/11/91)

Here's a little question for all you OPEN LOOK style guide gurus. Also, for all
you OPEN LOOK toolkit implementors.

The UI problem involves selecting something from a large, indefinitely long list
of choices. For this, the scrolling list is perhaps the best OL control. If
you're not quite sure which item you want, the scrolling list lets you browse
the possibilities and pick one. However, if you know exactly which item you
want, then most people will prefer to just type in the name, rather than scroll
through a long list. 

The question is this: according to OPEN LOOK style, what is the best way to
present both access methods --- type-in and list selection --- so that users
can use either one or both, as suits them?

Toolkit implementors: the ideal would be a scrolling list that would scroll as
you typed, much like Emacs incremental search: Hit 'F' and the first item
beginning with 'F' is highlighted, etc.

ed@Canada.Sun.COM (Edward Lycklama - KL Group Inc.) (05/12/91)

	Here's a little question for all you OPEN LOOK style guide gurus. Also, for all
	you OPEN LOOK toolkit implementors.
	
	The UI problem involves selecting something from a large, indefinitely long list
	of choices. For this, the scrolling list is perhaps the best OL control. If
	you're not quite sure which item you want, the scrolling list lets you browse
	the possibilities and pick one. However, if you know exactly which item you
	want, then most people will prefer to just type in the name, rather than scroll
	through a long list. 
	
	The question is this: according to OPEN LOOK style, what is the best way to
	present both access methods --- type-in and list selection --- so that users
	can use either one or both, as suits them?
	
	Toolkit implementors: the ideal would be a scrolling list that would scroll as
	you typed, much like Emacs incremental search: Hit 'F' and the first item
	beginning with 'F' is highlighted, etc.


Actually, the XView toolkit does allow this; the trick is to get the keyboard focus into
the scrolling list. Visually this happens when the list goes from protruding to indented; usually
you get this to happen by hitting the return key until the focus jumps into the list. Then you
just type the letter, and the first name beginning with that letter is selected.  

Ed Lycklama

KL Group Inc.                       | Phone: (416) 594-1026 
134 Adelaide St. E, Suite 204       | Fax:   (416) 594-1919
Toronto, Ontario, M5C 1K9           | UUCP:  ut{zoo|csri}!suncan!klg!ed
CANADA

openlook-request@openlook (05/15/91)

> The question is this: according to OPEN LOOK style, what is the best way to
> present both access methods --- type-in and list selection --- so that users
> can use either one or both, as suits them?

[This seems too easy, Kerry, what am I missing?]

I suggest implementing a scrolling list next to a text field.
When a user selects an item from the scrolling list, display
it in the text field; when the user enters a value into the
text field, select it in the scrolling list (or, if not a valid
item, complain).

On occasion I find a more complex (for the implementor) u.i. more
appropriate: For a selection u.i. that requires frequent interaction,
give an abbreviated menu button with a short list of choices, plus
an extra (oblong) button. The short list gives those choices
most often picked by users, the extra button gives access to a
popup window with the scrolling list of all choices. For those who
like to type in a value, either put the text field next to the
abbreviated menu button (when users often want to type in a value),
or next to the popup's scrolling list (when users don't usually
need to type in a value). An enhancement includes a way to let
the user pick which items show up in the short menu.

Note: If you use the more complex u.i., put the short list in
an exclusive (or non-exclusive) choice control; and make the
extra button a regular, oblong-shaped button.
    
> Toolkit implementors: the ideal would be a scrolling list that would scroll as
> you typed, much like Emacs incremental search: Hit 'F' and the first item
> beginning with 'F' is highlighted, etc.

Neat idea. We suggested this to Tony Hoeber, et al, when they
were designing the scrolling list.  I don't recall exactly why
they chose the each-typed-character-matches-the-1st-letter
u.i., instead of the incremental approach. I think it may have
been that other GUIs used the single-letter match; this method
is very similar to the mnemonics/accelerators used to operate
other controls in most GUIs.

Steve Humphrey
UNIX System Laboratories

kk@shasta.tivoli.com (Kerry Kimbrough) (05/15/91)

   > > The question is this: according to OPEN LOOK style, what is the best way to
   > > present both access methods --- type-in and list selection --- so that users
   > > can use either one or both, as suits them?
   >
   > I suggest implementing a scrolling list next to a text field.

Agreed, this seems like the required combination of controls. My question then
concerns the preferred style for presenting these controls. How is the text
field positioned w.r.t. to the list? How is the text field aligned w.r.t the
list? If the text field/list represent a single property value, then which
control is aligned with the label --- text or list?

The central style problem is how best to make clear that the two controls are
bound together and represent a single thing, not two things.

If there is a OL Style Guide ruling on this issue, then I haven't been able to
find it. But perhaps someone can find what the best interpretation of the Style
Guide would be in this case.

fgreco@govt.shearson.com (Frank Greco) (05/15/91)

> The central style problem is how best to make clear that the two controls are
> bound together and represent a single thing, not two things.

	You might put the textitem and the list in *one* "panel" (aka "control")
	with the borders turned on or a separate color (or shade) to indicate
	visually that the two are connected.  I have had good success with
	this regardless of whether the textitem is below the list or to its
	side.
	
	[side note: if OL allowed multiple colored or multiple fonted panel 
	items within one panel, you wouldn't have to create a separate panel]

	Frank G.

** Sender Unknown ** (05/16/91)

> If the text field/list represent a single property value, then which
> control is aligned with the label --- text or list?
> 
> The central style problem is how best to make clear that the two controls are
> bound together and represent a single thing, not two things.

Here's how I *want* to do this:

   Label: [..] _________

The [..] is intended to be an abbreviated button (not abbreviated
menu button) that, when pressed, pops up window containing the
scrolling list. But we don't have this control in OLIT (oops),
so what I do instead is

   Label: ________ (Choices...)

The (Choices...) is an (oblong) button.

If you want to put the scrolling list in the same window as the
label and text field, then I suggest

                   ----------- [=]
   Label: ________ |         |  |
                   |         | [^]
                   |         | [ ]
                   |         | [v]
                   |         |  |
                   ----------- [=]

I think this (or something similar) is what you were looking
for. While my crude drawing above suggests having a 5-line
scrolling view, a shorter view (3 lines) would minimize
the real estate lost and reduce the visual ``noise'' (too many
text things yelling at the user--this is why I prefer putting
the scrolling list in a popup window). For a pleasing visual,
align the baselines of the label, textfield, and 1st item in
the scrolling list. Good luck, as we haven't added a way of
conveniently aligning baselines. (You pretty much have to use a
BulletinBoard if you go this far).

Finally, Frank Greco's suggestion of bounding the label, text field,
and scrolling list with a chiseled line or differently colored
background is OK. My preference is to not do that, as I think
the close proximity of the three elements suggests they work
together, and the many lines or ``patch-work quilt'' of colors
can distract the user. If you have a control area that has many
such sets of controls, then I guess the box or color is necessary,
to help the user sort out the multiple controls; but, gosh--maybe
the control area is simply too complicated and ought to be
redesigned (probably into a multiple Categories window, like
the OPEN LOOK workspace property sheet).

[Note: This is my opinion. Moreover, I do not mean to denigrate
Frank's suggestion.]

> If there is a OL Style Guide ruling on this issue, then I haven't been able to
> find it.

Kerry, I don't think the Style Guide covers this particular
case. My interpretations (interpolations?) are as above.

Steve Humphrey
UNIX System Laboratories

tom@elan.Elan.COM (Thomas Smith) (05/18/91)

Regarding possible designs for an enhanced scrolling list, that
provided an alternate type-in interface to accelerate finding
a list element...

Earlier, kk@shasta.tivoli.com (Kerry Kimbrough) said:
>>> The question is this: according to OPEN LOOK style, what is the best way to
>>> present both access methods --- type-in and list selection --- so that users
>>> can use either one or both, as suits them?
>>
>> I suggest implementing a scrolling list next to a text field.

> Agreed, this seems like the required combination of controls. My question then
> concerns the preferred style for presenting these controls. How is the text
> field positioned w.r.t. to the list? How is the text field aligned w.r.t the
> list? If the text field/list represent a single property value, then which
> control is aligned with the label --- text or list?

> The central style problem is how best to make clear that the two controls are
> bound together and represent a single thing, not two things.

Then fgreco@govt.shearson.com (Frank Greco) responds:
> You might put the textitem and the list in *one* "panel" (aka "control")
> with the borders turned on or a separate color (or shade) to indicate
> visually that the two are connected.  I have had good success with
> this regardless of whether the textitem is below the list or to its
> side.

The problem with using color changes, font changes, or even "outlined"
grouping in situations like this is that it calls undue attention to
the control.  The user will see your grouping as an exception - something
different from the other controls - and give it more importance.

For instance, suppose you had a dialog box to change fonts.  You might
use a scrolling list to select the typeface, a choice item (set of radio
buttons) to choose the style, and another choice item to choose the size.
By making the typeface control a different font or color from the rest
of the controls, you are saying "this control is different from the rest,"
which is not really true.

Open Look does in fact have a mechanism for associating parts of
a single control: proximity.  In a toggle item (non-exclusive choice),
for instance, there is no question that all of the boxes are associated
with each other and the label.  A toggle item looks like this:

              --------- ---------- ---------
  Choose one: | First | | Second | | Third |
              --------- ---------- ---------

The toggle boxes for "First", "Second", and "Third" are as close
to each other as they are to the label (about 3 pixels).  When controls
are separate from each other, they are about 10 pixels apart.

The point of all this?  In order to associate your text item more closely
with the scrolling list, it should be sufficient simply to put them
closer together.

              -----------
  Choose one: | First  ||
              | Second ||
              | Third  ||
	      -----------
	      ^----------

By the way, did you know that in XView, you can type a letter into the
list (which has to be the "current" item), and it will scroll to the
next entry that begins with that letter?  I bet your users don't
know it - an explicit entry is much better feedback.

One of the early versions of XView (1.0.1?) had an option to put a type-in
field just like the one you described onto the list, but that option
disappeared.  I wonder why?

Hope I've answered more questions than I've raised.
    Thomas Smith
    Elan Computer Group, Inc.
    (415) 964-2200
    tom@elan.com, ...!{ames, uunet, hplabs}!elan!tom