The Alternatives

Let's consider the alternative to direct manipulation, which, of course, would be indirect manipulation. Suppose you have a window on the screen and you want to change its size and location. The most indirect approach would be to use a dialog box such as this one:

While this dialog box allows you to manipulate the window, it is anything but direct. You have to guess what numbers to use for the size and location. And, because there is no immediate feedback when you change the numbers, you have to enter some numbers and click the OK button to see and review the results. If you don't like what you get, you have to repeat the process until you get it right. Also, this interface needs error messages, because you might enter an off-screen location or sizes that are too large or too small. Note that using a property sheet with an Apply button would at least make this technique practical. The only merit to this approach is that it is easy to program, which isn't much of a consolation for the user. Happily this technique is not used in Windows.

An intermediate approach is to use the window's system menu to move or size the window, as done here:

Using either the Move or Size command, you can move or size the window by using the keyboard. Note that this technique is a bit cumbersome but it does satisfy the definition of direct manipulation. You manipulate the window directly with the keyboard, and you receive immediate feedback. The interaction's cumbersomeness results from using the keyboard to do a task better suited for the mouse. One interesting detail is that once you start to move or size the window using this technique, the cursor changes its location and shape to give you a hint on how to perform the manipulation in the future using the mouse. For example, when you hit the up arrow key while resizing a window using the keyboard, the cursor moves to the top window border and changes shape to the vertical resize pointer, clearly showing that the mouse can be used directly to accomplish the window sizing.

The most direct way to move the window is to click and drag its title bar; the most direct way to size it is to click and drag its border or the window corner. In both cases, error messages are unnecessary because it is impossible to move the window off the screen or to give it an unacceptable size. Using this technique, you don't feel like you are using software to manipulate the window as you do when using a dialog box. Rather, you feel like you are actually moving the window.

As I noted, in its simplified definition direct manipulation often is the ability to interact with a screen object directly by using a mouse instead of indirectly by using the keyboard, a dialog box, or the menu bar. Are there times when manipulation by using the keyboard, a dialog box, or a menu can be considered direct? The answer is yes, as in the following cases.

For the keyboard, the first case is text entry. Word processing and numeric processing (such as when using a calculator) are common examples. In this case, the keyboard isn't used to give commands but simply to enter text. In fact, using a mouse to enter text would be considered indirect manipulation.

The keyboard's second case is sensible keyboard shortcuts, such as the following:

  • Deleting a selected object with the Delete key
  • Using the arrow keys and the Home, End, Page Up, and Page Down keys to view a document and move the cursor
  • Moving the caret in a text document and then pressing the Shift key and any arrow key to select text
  • In the Microsoft Visual C++ dialog box editor, typing text to set a control's label, using the arrow keys to move a control, using the Shift+arrow keys to size a control, and using the Tab key to select another control

These keyboard shortcuts are so natural for an experienced Windows user that they have a direct feel to them. You can easily determine their existence and how they work without any help. They are also easy to remember. Of course, there are exceptions. For example, you can move up one level to the previous folder in Windows Explorer using the Backspace key. This shortcut does not feel natural, so it does not have any sense of directness.

Dialog boxes can be used in direct manipulation, but not to actually perform the manipulation. A good example is a palette of controls used in a paint program or dialog box editor. Customizing toolbars in Visual C++ by using the Customize property sheet involves a dialog box. In these cases, the dialog box is used to present the available options, not to perform the manipulation itself. Another case is when the dialog box itself is what is being manipulated, such as with a calculator utility.

Lastly, context menus can present a sense of directness that a menu bar cannot. If you right-click an object and give a command or change a property by using the context menu that appears, that action feels direct. Performing the same action with a menu bar feels indirect. In this case, the sense of directness decreases as the physical distance between an object and the method of manipulation increases.

Just as there are times when using the keyboard, a dialog box, or a menu can feel direct, there are times when using a mouse can feel indirect. As I said earlier, using a mouse to enter text would be an example of indirect manipulation. In many types of games, input devices such as joysticks and steering wheels feel direct, whereas a mouse feels indirect. I think the subjective attributes of direct manipulation, such as the sense of being in control and the experience of receiving immediate feedback, are more important than the specific type of input device used. If an interaction feels direct, it's direct, regardless of how it is performed.



Developing User Interfaces for Microsoft Windows
Developing User Interfaces for Microsoft Windows
ISBN: 0735605866
EAN: 2147483647
Year: 2005
Pages: 334

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net