CONTENTS Preface Audience Contents Typographic Conventions Compliance Conventions Chapter 1. User Interface Design Principles 1.1 Adopt the User's Perspective 1.2 Give the User Control 1.2.1 Keep Interfaces Flexible 1.2.2 Use Progressive Disclosure 1.3 Use Real-World Metaphors 1.3.1 Allow Direct Manipulation 1.3.2 Provide Rapid Response 1.3.3 Provide Output as Input 1.4 Keep Interfaces Natural 1.4.1 Make Navigation Easy 1.4.2 Provide Natural Shades and Colors 1.5 Keep Interfaces Consistent 1.6 Communicate Application Actions to the User 1.6.1 Give the User Feedback 1.6.2 Anticipate Errors 1.6.3 Use Explicit Destruction 1.7 Avoid Common Design Pitfalls Chapter 2. Input and Navigation Models 2.1 The Keyboard Focus Model 2.1.1 Implicit Focus 2.1.2 Explicit Focus 2.2 The Input Device Model 2.2.1 Pointing Devices 2.2.2 Pointer Shapes 2.2.3 Warp Pointer Only If Explicitly Enabled 2.3 The Navigation Model 2.3.1 Mouse-Based Navigation 2.3.2 Keyboard-Based Navigation 2.3.2.1 Location Cursor 2.3.2.2 Window Navigation 2.3.2.3 Component Navigation 2.3.3 Menu Traversal 2.3.4 Scrollable Component Navigation Chapter 3. Selection and Component Activation 3.1 Selection Models 3.1.1 Mouse-Based Single Selection 3.1.2 Mouse-Based Browse Selection 3.1.3 Mouse-Based Multiple Selection 3.1.4 Mouse-Based Range Selection 3.1.5 Mouse-Based Discontiguous Selection 3.1.6 Keyboard Selection 3.1.6.1 Keyboard-Based Single Selection 3.1.6.2 Keyboard-Based Browse Selection 3.1.6.3 Keyboard-Based Multiple Selection 3.1.6.4 Keyboard-Based Range Selection 3.1.6.5 Keyboard-Based Discontiguous Selection 3.1.7 Canceling a Selection 3.1.8 Selecting and Deselecting All Elements 3.1.9 Using Mnemonics for Elements 3.2 Selection Actions 3.2.1 The Drag-and-Drop Model 3.2.2 Using Primary Selection 3.2.3 Using Quick Transfer 3.2.4 Using Keyboard Clipboard Selection Actions and Deletion 3.3 Component Activation 3.3.1 Basic Activation 3.3.2 Accelerators 3.3.3 Mnemonics 3.3.4 Help Activation 3.3.5 Default Activation 3.3.6 Expert Activation 3.3.7 Previewing and Autorepeat Chapter 4. Application Design Principles 4.1 Choosing Components 4.1.1 Guidelines for Choosing a Main Component Group 4.1.2 Guidelines for Choosing Interactive Methods 4.1.2.1 Choosing a Single-Choice Component 4.1.2.2 Choosing a Multiple-Choice Component 4.1.2.3 Choosing Between a Popup Menu and a Panel or PullDown Menu 4.1.2.4 Choosing Between Text or Canvas, and a Label 4.2 Layout 4.2.1 Common Client Areas 4.2.1.1 Command Area 4.2.1.2 Message Area 4.2.1.3 ScrollBars 4.2.1.4 MenuBar 4.2.1.4.1 File Menu Contents 4.2.1.4.2 Edit Menu Contents 4.2.1.4.3 Help Menu Contents 4.2.1.5 DialogBoxes 4.2.1.5.1 CommandDialog 4.2.1.5.2 FileSelectionDialog 4.2.1.5.3 PromptDialog 4.2.1.5.4 SelectionDialog 4.2.1.5.5 MessageDialog 4.2.2 Grouping Components 4.2.2.1 Grouping Similar Components 4.2.2.2 Arranging Components for Fixed Layout 4.2.2.3 Arranging Components for Resizing Layout 4.2.2.4 Arranging Components for Aligned Layout 4.2.2.5 Arranging Components in PanedWindows 4.2.3 Menu Design 4.2.3.1 Keeping Menu Structures Simple 4.2.3.2 Grouping Like Menu Elements Together 4.2.3.3 Listing Menu Selections by Frequency of Use 4.2.3.4 Listing Menu Selections by Order of Use 4.2.3.5 Separating Destructive Actions 4.2.3.6 Providing Mnemonics and Accelerators 4.2.4 DialogBox Design 4.2.4.1 Common Dialog Box Actions 4.2.4.2 Arranging Common Actions 4.2.4.3 Determining DialogBox Location and Size 4.3 Interaction 4.3.1 Supplying Indications of Actions 4.3.1.1 Using Common Components 4.3.1.2 Using Intuitive Labels 4.3.1.3 Using Graphics to Show Action 4.3.1.4 Showing Default Actions 4.3.1.5 Avoiding Component Modes 4.3.1.6 Showing Unavailable Components 4.3.2 Providing Feedback 4.3.2.1 Showing Progress 4.3.2.2 Providing Warnings 4.3.2.3 Providing Help 4.3.3 Allowing User Flexibility 4.4 Component Design Chapter 5. Window Manager Design Principles 5.1 Configurability 5.2 Window Support 5.2.1 Primary Window 5.2.2 Secondary Windows (Dialog) 5.2.3 Menu Windows 5.3 Window Decorations 5.3.1 Client Area 5.3.2 Title Area 5.3.3 Maximize Button 5.3.4 Minimize Button 5.3.5 Other Buttons 5.3.6 Resize Borders 5.3.7 Window Menu 5.4 Window Navigation 5.5 Icons 5.5.1 Icon Decoration 5.5.2 Icon Menu 5.5.3 Icon Box Chapter 6. Designing for International Markets 6.1 Collating Sequences 6.2 Country-Specific Data Formats 6.2.1 Thousands Separators 6.2.2 Decimal Separators 6.2.3 Grouping Separators 6.2.4 Positive and Negative Values 6.2.5 Currency 6.2.6 Date Formats 6.2.7 Time Formats 6.2.8 Telephone Numbers 6.2.9 Proper Names and Addresses 6.3 Icons, Symbols, and Pointer Shapes 6.4 Scanning Direction 6.5 Designing Modularized Software 6.6 Translating Screen Text Chapter 7. Controls, Groups, and Models Reference Pages Accelerators Description Activation Description Common Bindings Related Information Basic Controls Description Navigation Other Operations Related Information Basic Groups Description Navigation Common Bindings Related Information Canvas Description Navigation Other Operations Common Bindings CascadeButton Description Illustration Navigation Other Operations Common Bindings Related Information CheckButton Description Illustration Navigation Other Operations Common Bindings Related Information CommandBox Description Illustration Related Information CommandDialog Description Illustration Related Information Composition Description Navigation Related Information Default Activation Description Related Information DialogBox Description Illustration Navigation Related Information Drag and Drop Description Related Information Edit Menu Description Illustration Related Information ErrorDialog Description Illustration Related Information Field Controls Description Navigation Other Operations Related Information File Menu Description Illustration Related Information FileSelectionBox Description Illustration Related Information FileSelectionDialog Description Illustration Related Information Focus Description Related Information Frame Description Other Operations Framing Groups Description Navigation Related Information Help Menu Description Illustration Related Information Icon Menu Description Related Information IconBox Description Illustration Related Information Icons Description Illustration Related Information InformationDialog Description Illustration Related Information Input Devices Description Related Information Label Description Illustration Navigation Layout Groups Description Navigation Related Information List Description Illustration Navigation Other Operations Common Bindings Related Information MainWindow Description Illustration Navigation Related Information MenuBar Description Illustration Navigation Other Operations Common Bindings Related Information Menus Description Illustration Navigation Other Operations Common Bindings Related Information MessageDialogs Description Related Information Mnemonics Description Navigation Description Common Bindings Related Information OptionButton Description Illustration Navigation Other Operations Common Bindings Related Information PanedWindow Description Illustration Navigation Related Information Panel Description Illustration Navigation Common Bindings Pointer Shapes Description Related Information Primary Selection Description Common Bindings Related Information PromptDialog Description Illustration Related Information PushButton Description Illustration Navigation Other Operations Common Bindings QuestionDialog Description Illustration Related Information Quick Transfer Description Common Bindings Related Information RadioButton Description Illustration Navigation Other Operations Common Bindings Related Information Sash Description Illustration Navigation Other Operations Common Bindings Related Information Scale Description Illustration Other Operations Common Bindings ScrollBar Description Illustration Other Operations Common Bindings ScrolledWindow Description Illustration Navigation Other Operations Common Bindings Related Information Selection Description Related Information SelectionBox Description Illustration Related Information SelectionDialog Description Illustration Related Information Separator Description Illustration Navigation Text Description Illustration Navigation Other Operations Common Bindings Related Information ToggleButton Description Illustration Navigation Related Information WarningDialog Description Illustration Related Information Window Menu Description Illustration Common Bindings Related Information Appendix A. Common Bindings for Virtual Buttons and Keys Appendix B. OSF/Motif Widgets and Components Correspondence Glossary Figures 2-1: A Box Style Location Cursor 2-2: An Outline Highlight Style Location Cursor 2-3: Text Cursor Shapes 2-4: A Text Cursor Style Location Cursor 2-5: An Item Cursor Style Location Cursor 2-6: A Fill Style Location Cursor 4-1: A Typical MainWindow and Its Common Client Areas 4-2: The File Menu and Its Selections 4-3: The Edit Menu and Its Selections 4-4: The Help Menu and Its Selections 4-5: A CommandDialog 4-6: A FileSelectionDialog 4-7: A PromptDialog 4-8: A SelectionDialog 4-9: An ErrorDialog 4-10: An InformationDialog 4-11: A QuestionDialog 4-12: A WarningDialog 4-13: A WorkingDialog 4-14: A Default PushButton 4-15: A Disabled Menu Element 5-1: A Typical OSF/Motif User Environment 5-2: A Typical OSF/Motif Window Layout 5-3: The Window Menu Button with Menu Pulled Down 5-4: A Typical OSF/Motif Icon 5-5: A Typical OSF/Motif Icon Box Tables 2-1: Keyboard Navigation Bindings 2-2: Window Navigation Bindings 2-3: Field Navigation Bindings 2-4: Component Navigation Bindings 2-5: Component Navigation Bindings 2-6: Menu Traversal Bindings 2-7: Menu Navigation Bindings 2-8: Scrolled Region Navigation Bindings 3-1: Range Selection Bindings 3-2: Keyboard Selection Bindings 3-3: KSelectAll and KDeselectAll Bindings 3-4: KReselect Bindings 3-5: Primary Transfer Bindings 3-6: Quick Transfer Bindings 3-7: Clipboard Action Bindings 3-8: Activation Bindings 3-9: KHelp Bindings 4-1: Suggested Window Types 5-1: KWindowMenu Bindings 5-2: Window Navigation Bindings 5-3: Icon Box Traversal Bindings A-1: Virtual Button Bindings A-2: Virtual Modifier Bindings A-3: Virtual Key Bindings B-1: Component to Widget Correspondence