CONTENTS Title Page Copyright Page Preface 1 Philosophy of XUI 1.1 User Control 1.1.1 Redundancy 1.1.2 User Preferences 1.1.3 Navigation 1.1.4 Warnings 1.1.5 Anticipate Errors 1.1.6 Reduce Mouse Movement 1.1.7 Support Hypothesis Testing 1.2 Direct Manipulation 1.2.1 Performance 1.2.2 Presentation 1.2.3 Output as Input 1.3 Progressive Disclosure 1.4 Aesthetics 1.4.1 Arrange Choices According to Use 1.4.2 Minimize Contrasting Screen Objects 1.4.3 Use Color Judiciously 1.4.4 Extend and Enrich User Interaction 1.4.5 Pay Attention to Details 1.5 Consistency 1.6 Design Process 1.6.1 Design in an Open Environment 1.6.2 Understand the Users' Work 1.6.3 Involve Users 1.6.4 Be a User 1.6.5 Set Objectives 1.7 Avoiding Common Design Pitfalls 1.7.1 Premature Closure 1.7.2 Deductive Designing 1.7.3 Copying an Existing Application 1.7.4 Showing Implementation Details 2 Windows 2.1 Title Bar 2.1.1 Shrink-to-Icon Button 2.1.2 Application Title 2.1.3 Push-to-Back Button 2.1.4 Resize Button 2.2 Menu Bar 2.3 Work Area 2.4 Sizing Windows 2.4.1 Positioning Windows 2.4.2 Moving Windows 3 Subareas 3.1 Paned Windows 3.2 Scroll Bars 3.2.1 Operating Scroll Bars 3.2.2 Automatic Scrolling 3.2.3 Slider Size 3.3 Index Windows 3.4 Control Panels 3.4.1 Using Controls and Labels 3.4.1.1 Toggle Buttons 3.4.1.2 Radio Buttons 3.4.1.3 Radio Icons 3.4.1.4 Push Buttons 3.4.1.5 Scales 3.4.2 Disabling Controls 3.4.3 Designing Control Panels with Push Buttons 4 Menus 4.1 Menu Items 4.1.1 Menu Item Accelerators 4.1.2 Grouping Menu Items 4.1.3 Disabling Menu Items 4.2 Pull-Down Menus 4.2.1 Displaying Pull-Down Menus 4.2.2 Designing Pull-Down Menus 4.3 Submenus 4.3.1 Displaying Submenus 4.3.2 Designing Submenus 4.4 Pop-Up Menus 4.4.1 Displaying Pop-Up Menus 4.4.2 Designing Pop-Up Menus 4.4.3 Designing Pop-Up Menus with Submenus 5 Dialog Boxes 5.1 Displaying Dialog Boxes 5.2 Modal Dialog Boxes 5.3 Modeless Dialog Boxes 5.4 Dialog Box Controls and Labels 5.4.1 Push Buttons 5.4.1.1 Default Push Buttons 5.4.1.2 Arranging Push Buttons in Dialog Boxes 5.4.2 Text Entry Field 5.4.3 Option Menus 5.4.4 List Boxes 5.5 Designing Dialog Boxes 6 Standard Menus and Dialog Boxes 6.1 Standard Menus 6.1.1 File Menu 6.1.1.1 New Menu Item 6.1.1.2 Open... Menu Item 6.1.1.3 Include... Menu Item 6.1.1.4 Save Menu Item 6.1.1.5 Save As... Menu Item 6.1.1.6 Revert Menu Item 6.1.1.7 Print Menu Item 6.1.1.8 Print... Menu Item 6.1.1.9 Quit Menu Item 6.1.1.10 Close Menu Item 6.1.1.11 Exit Menu Item 6.1.2 Edit Menu 6.1.2.1 Undo and Redo Menu Items 6.1.2.2 Cut Menu Item 6.1.2.3 Copy Menu Item 6.1.2.4 Paste Menu Item 6.1.2.5 Clear Menu Item 6.1.2.6 Select All Menu Item 6.1.3 Customize Menu 6.1.4 Font Menu 6.1.5 Help Menu 6.1.5.1 Overview Menu Item 6.1.5.2 About Menu Item 6.1.6 Accelerators for Standard Menu Items 6.2 Standard Dialog Boxes 6.2.1 Work in Progress Dialog Box 6.2.2 Message Dialog Box 6.2.3 Caution Dialog Box 6.2.4 Command Dialog Boxes 6.2.4.1 Single-Command Box 6.2.4.2 Multiple-Command Box 6.2.5 File Dialog Box 6.2.6 Font Attributes Dialog Box 7 Keyboard and Pointing Device Interfaces 7.1 Input Focus 7.2 Keyboard Interface 7.2.1 Text Insertion and Overstrike Cursors 7.2.2 Changing Font Attributes 7.2.3 Basic Text Editing Operations 7.2.4 Accelerators 7.2.5 Recommended Function Key Definitions 7.3 Pointing Device Interface 7.3.1 Pointer Cursor 7.3.1.1 Pointer Cursor Shapes 7.3.1.2 Designing Pointer Cursors 7.3.1.3 Pointer Cursor Speed 7.4 Mouse Button Operations 7.4.1 Drag Operation 7.4.2 Click-Move-Click Operation 7.4.3 Press and Hold Operation 7.4.4 Click Operation 7.4.5 Double-Click Operation 7.4.6 Mouse, Stylus, and Puck Button Bindings 7.5 Combination Keyboard/Mouse Input 8 Selection 8.1 Text Selection 8.1.1 Extended Selection 8.1.2 Pending Delete 8.2 Object Selection 8.3 Selection Across Applications 8.4 Selection and Input Focus 8.5 Selection and Clipboards 8.5.1 QuickCopy 8.5.2 Guidelines for Using QuickCopy 9 Help 9.1 Invoking Help 9.1.1 Help Command 9.1.2 Help Key 9.2 Help Window 9.2.1 Title Bar 9.2.2 Help Topic 9.2.3 Additional Topics 9.2.4 Push Buttons 9.2.5 Menu Bar 9.2.5.1 File Menu 9.2.5.2 Edit Menu 9.2.5.3 View Menu 9.2.5.4 Search 9.2.5.5 Using Help Menu 9.3 Designing Help Topics 10 Internationalization Issues 10.1 Internationalization User Profile 10.1.1 Collating Sequences 10.1.2 Country-Specific Data Formats 10.1.2.1 Thousands Separators 10.1.2.2 Decimal Separators 10.1.2.3 Positive and Negative Values 10.1.2.4 Currency 10.1.2.5 Dates 10.1.2.6 Time Formats 10.1.2.7 Time Zones 10.1.2.8 Telephone Numbers 10.2 Icons 10.3 Translating Screen Text 10.3.1 Noun Strings 10.3.2 Text Length 10.4 Messages A Guidelines for Labeling Screen Objects Glossary FIGURES 2-1 Window 2-2 Title Bar 2-3 Icon Box 2-4 Menu Bar 2-5 Window Placement 3-1 Vertically Paned Window 3-2 Horizontal and Vertical Scroll Bars 3-3 Minimum and Maximum Sliders 3-4 Index Windows 3-5 Control Panels 3-6 Toggle, Radio, and Push Button Controls 3-7 Radio Icons 3-8 Horizontal and Vertical Scales 4-1 Sample Menu 4-2 Menu Item Characteristics 4-3 Submenu 4-4 Pop-Up Menu 4-5 Pop-Up Menu with a Submenu 5-1 Modal Dialog Box 5-2 Modeless Dialog Box 5-3 Control Panel in Modeless Dialog Box 5-4 Default Push Button and Text Entry Fields 5-5 Option Menu 5-6 List Boxes 6-1 File Menu 6-2 Window Created by New Menu Item 6-3 Edit Menus 6-4 Customize Menu 6-5 Font Pull-Down Menu 6-6 Font Pop-Up Menu 6-7 Overview Topic 6-8 About Topic 6-9 Work in Progress Dialog Box 6-10 Message Dialog Box 6-11 Caution Dialog Box 6-12 Single- and Multiple-Command Dialog Boxes 6-13 File Dialog Box 6-14 Font Attributes Dialog Box 7-1 Text Cursor Shapes 7-2 Pointer Cursor Shapes 7-3 Mouse Pointing Device 7-4 Stylus Pointing Device 7-5 Puck Pointing Device 8-1 Text Selection Hierarchy 8-2 Extended Selection 8-3 Pending Delete 8-4 Object Selection 9-1 Help Window 9-2 First Draft of Help Topic 9-3 Revised Draft of Help Topic TABLES 3-1 Operating Scroll Bars 4-1 Menu Item Types 5-1 Push Buttons in Dialog Boxes 7-1 Text Editing Operations 7-2 Text Editing in Dialog Boxes 7-3 Function Key Definitions 7-4 Pointer Cursor Shapes 7-5 Button Bindings for the Mouse, Stylus, and Puck 8-1 Text Selection 8-2 Object Selection 8-3 QuickCopy Operations