31.05.2013 Views

think-cell technical report TC2003/01 A GUI-based Interaction ...

think-cell technical report TC2003/01 A GUI-based Interaction ...

think-cell technical report TC2003/01 A GUI-based Interaction ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

4.2 <strong>Interaction</strong> Toolbox INTERACTION CONCEPT<br />

part, but snaps to certain snapping objects when the mouse pointer is sufficiently<br />

close. Snapping objects may be virtual guidelines that serve the purpose of ruler<br />

and compass, or the mouse may also snap to drawing objects that are part of<br />

the document. A gravity function determines what “sufficiently close” means and<br />

resolves conflicts between two or more snapping objects which are about equally<br />

close to the mouse pointer location. There may be gravity functions of different<br />

strengths, relating to the significance of different snapping objects.<br />

A lot of research has been conducted on snapping (see Sect. 3.2.1) and it turns<br />

out that the distinction between mouse pointer and drawing caret helps to un-<br />

derstand and efficiently use snapping mechanisms. In this distinction, the mouse<br />

pointer always moves smoothly in the continuum, exactly reflecting the movements<br />

of the mouse, while the drawing caret indicates which position in the document will<br />

be referred to when a mouse button is pressed. It is the caret that is snapped to<br />

discrete positions while the pointer continues to move freely. Some recent software,<br />

including Microsoft Visio [Micc] and Autodesk AutoCAD [Aut], adheres precisely<br />

to this definition, while other programs like Microsoft PowerPoint do not explicitly<br />

display the caret but implicitly apply mouse interactions to the closest snapping<br />

position. In the latter case, it may be a good idea to highlight the snapping object<br />

when snapping occurs, so that the user has a chance to move the mouse further<br />

away if snapping is not intended.<br />

As for zoomed views, the velocity of gravity functions is usually <strong>based</strong> on screen<br />

coordinates, not document coordinates. As a consequence, in an enlarged view<br />

drawing objects appear more detailed and the sphere of influence of a snapping<br />

object becomes smaller in relation to the drawing. Thus, in the case of many<br />

snapping positions being close to each other, using a highly zoomed view makes it<br />

easy to snap to the desired position.<br />

4.2.4 Mode Switch<br />

In the present scenario of one application being built on top of another, there is a<br />

radical method to avoid interference of distinct applications’ user interfaces: I could<br />

implement some sort of escape key that switches between two completely indepen-<br />

dent user interfaces, one for each application. This is in fact how the Microsoft<br />

implementation of OLE (Object Linking and Embedding) appears to the user, a<br />

technique that is used to embed charts, diagrams, images, movies, formulae and<br />

other complex objects in documents created with PowerPoint, Excel, or Word.<br />

Double-clicking an OLE object switches to the UI context of some other applica-<br />

tion. The advantage is obvious: Menus, toolbars and shortcut keys are completely<br />

changed by the mode switch and can all be used without any restrictions that<br />

emerge from another application using the same UI widgets.<br />

But this advantage is only of theoretical relevance. If some well-known Power-<br />

Point shortcut key takes on a completely different meaning in “<strong>think</strong>-<strong>cell</strong> mode”,<br />

then mistakes in the user input and user dissatisfaction are almost guaranteed.<br />

Another problem of this approach is the <strong>technical</strong> and cognitive overhead that is<br />

49

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!