Description In the early days of computing, technicians in white coats controlled refrigerator-sized computers housed in sealed rooms, far from
ordinary users. Today, computers are inexpensive commodities, like television sets,
and ordinary people control and interact with them.
This new paradigm has led to a burgeoning demand for graphics-intensive and highly interactive interfaces.
Developing User Interfaces
is targeted at the programmer who will actually implement, rather than design, the user interface. Most user interface books focus on
psychology and usability, not programming techniques. This book recognizes the need for programmers to collaborate with usability experts
and psychologists, so topics such as the principles of visualization, human perception, and usability evaluation are touched upon. Yet
the primary focus remains on those tools and techniques required for programming the complex user interface.
* Focuses on advanced
programming topics
* event handling
* interaction with geometric objects
* widget tool kits
* input syntax
* Useful to programmers
using any language?no particular windowing system or tool kit is presumed, examples are drawn from a variety of commercial systems, and
code examples are presented in pseudo code
* The basic concepts of traditional computer graphics such as drawing and three-dimensional
modeling are covered for readers without a computer graphics background.
Contents Developing User Interfaces by Dan R. Olsen, Jr. Preface Chapter 1 Introduction
1.1 What This Book Is About 1.1.1 Early Computing 1.1.2 Winds of Change 1.1.3 The Legacy of Lab
Coats 1.1.4 A Question of Control 1.2 Setting the Context 1.2.1 Computer Graphics 1.2.2
Human Factors and Usability 1.2.3 Object-Oriented Software 1.2.4 Commercial Tools 1.3 An Overview
of the User Interface 1.3.1 The Interactive Cycle 1.3.2 The Interactive Porthole 1.3.3 The Interface Design
Process 1.4 Summary Chapter 2 Designing the Functional Model 2.1 Examples
of Task-Oriented Functional Design 2.1.1 Line Oriented vs. Full-Screen Text Editors 2.1.2 Word Processors 2.1.3
Why Do Secretaries Have Typewriters? 2.2 Overall Approach 2.2.1 Task Analysis 2.2.2 Evaluation
of the Analysis 2.2.3 Functional Design 2.3 Task Analysis 2.3.1 Examples of Task Analysis
2.3.2 VCR Task Analysis 2.3.3 Student Registration Task Analysis 2.4 Evaluation of the Analysis 2.4.1
Understanding the User 2.4.2 Goals 2.4.3 Scenarios 2.4.4 Programmers and User Interface Design
2.5 Functional Design 2.5.1 Assignment of Agency 2.5.2 Object-Oriented Functional Design 2.6
Summary Chapter 3 Basic Computer Graphics 3.1 Models for Images 3.1.1 Stroke
Model 3.1.2 Pixel Model 3.1.3 Region Model 3.2 Coordinate Systems 3.2.1 Device Coordinates
3.2.2 Physical Coordinates 3.2.3 Model Coordinates 3.2.4 Interactive Coordinates 3.3 Human
Visual Properties 3.3.1 Update Rates 3.4 Graphics Hardware 3.4.1 Frame Buffer Architecture
3.4.2 Cathode Ray Tube 3.4.3 Liquid Crystal Display 3.4.4 Hardcopy Devices 3.5 Abstract
Canvas Class 3.5.1 Methods and Properties 3.6 Drawing 3.6.1 Paths 3.6.2 Closed Shapes
3.7 Text 3.7.1 Font Selection 3.7.2 Font Information 3.7.3 Drawing Text 3.7.4 Outline
vs. Bitmapped Fonts 3.7.5 Character Selection 3.7.6 Complex Strings 3.8 Clipping 3.8.1
Regions 3.9 Color 3.9.1 Models for Representing Color 3.9.2 Human Color Sensitivity
3.10 Summary Chapter 4 Basics of Event Handling 4.1 Windowing System 4.1.1
Software View of the Windowing System 4.1.2 Window Management 4.1.3 Variations on the Windowing System Model
4.1.4 Windowing Summary 4.2 Window Events 4.2.1 Input Events 4.2.2 Windowing Events
4.2.3 Redrawing 4.3 The Main Event Loop 4.3.1 Event Queues 4.3.2 Filtering Input Events 4.3.3 How to Quit 4.3.4 Object-Oriented Models of the Event Loop 4.4 Event Dispatching and
Handling 4.4.1 Dispatching Events 4.4.2 Simple Event Handling 4.4.3 Object-Oriented Event Handling
4.5 Communication between Objects 4.5.1 Simple Callback Model 4.5.2 Parent Notification Model 4.5.3
Object Connections Model 4.6 Summary Chapter 5 Basic Interaction 5.1
Introduction to Basic Interaction 5.1.1 Functional Model 5.2 Model-View-Controller Architecture 5.2.1
The Problem with Multiple Parts 5.2.2 Changing the Display 5.2.3 General Event Flow 5.3 Model
Implementation 5.3.1 Circuit Class 5.3.2 CircuitView Class 5.3.3 View Notification in the Circuit Class 5.3.4 Overview of the Circuit Class 5.4 View/Controller Implementation 5.4.1 PartListView Class
5.4.2 LayoutView Class 5.5 Review of Important Concepts 5.5.1 Functional Model 5.5.2 View
Notification 5.5.3 View Implementation 5.6 An Alternative Implementation 5.7 Visual C++ 5.7.1
CView 5.7.2 CDocument 5.8 Summary Chapter 6 Widget Tool Kits 6.1
Model-View-Controller 6.1.1 Widget Models 6.1.2 Independence of View and Controller 6.2
Abstract Devices 6.2.1 Acquire and Release 6.2.2 Enable and Disable 6.2.3 Active and Inactive 6.2.4
Echo 6.3 Look and Feel 6.4 The Look 6.4.1 What the Look Must Present 6.4.2 Economy
of Screen Space 6.4.3 Consistent Look 6.4.4 Architectural Issues in Designing the Look 6.5 The
Feel 6.5.1 The Alphabet of Interactive Behaviors 6.5.2 Perceived Safety 6.6 Summary
Chapter 7 Interfaces from Widgets 7.1 Data-Driven Widget Implementations 7.1.1 Collections of
Widgets 7.2 Specifying Resources 7.2.1 Resource Organizations 7.2.2 Interface Design Tools
7.3 Layout 7.3.1 Fixed-Position Layout 7.3.2 Struts and Springs 7.3.3 Intrinsic Size 7.3.4
Variable Intrinsic Size 7.4 Communication 7.4.1 Parent Notification 7.5 Summary
Chapter 8 Input Syntax 8.1 Syntax Description Languages 8.1.1 Fields and Conditions 8.1.2
Special Types of Fields and Conditions 8.1.3 Productions 8.1.4 Input Sequences 8.2 Buttons
8.2.1 Check Buttons 8.3 Scroll Bars 8.4 Menus 8.5 Text Box 8.6 From Specification
to Implementation 8.6.1 Fields 8.6.2 Productions 8.7 Summary Chapter
9 Geometry of Shapes 9.1 The Geometry of Interacting with Shapes 9.1.1 Scan Conversion 9.1.2 Distance
from a Point to an Object 9.1.3 Bounds of an Object 9.1.4 Nearest Point on an Object 9.1.5 Intersections
9.1.6 Inside/Outside 9.2 Geometric Equations 9.2.1 Implicit Equations 9.2.2 Parametric Equations 9.3 Path-Defined Shapes 9.3.1 Lines 9.3.2 Circles 9.3.3 Arcs 9.3.4 Ellipses
and Elliptical Arcs 9.3.5 Curves 9.3.6 Piecewise Path Objects 9.4 Filled Shapes 9.4.1
Rectangles 9.4.2 Circles and Ellipses 9.4.3 Pie Shapes 9.4.4 Boundary-Defined Shapes
9.5 Summary Chapter 10 Geometric Transformations 10.1 The Three Basic Transformations
10.1.1 Translation 10.1.2 Scaling 10.1.3 Rotation 10.1.4 Combinations 10.2
Homogeneous Coordinates 10.2.1 Introduction to the Homogeneous Coordinates Model 10.2.2 Concatenation 10.2.3
Vectors 10.2.4 Inverse Transformations 10.2.5 Transformation about an Arbitrary Point 10.2.6 Generalized
Three-Point Transformation 10.3 A Viewing Transformation 10.3.1 Effects of Windowing 10.3.2 Alternative
Controls of Viewing 10.4 Hierarchical Models 10.4.1 Standard Scale, Rotate, Translate Sequence
10.5 Transformations and the Canvas 10.5.1 Manipulating the Current Transformation 10.5.2 Modeling with Display
Procedures 10.6 Summary Chapter 11 Interacting with Geometry 11.1 Input
Coordinates 11.2 Object Control Points 11.3 Creating Objects 11.3.1 Line Paths 11.3.2 Splines 11.3.3 Polygons 11.4 Manipulating Objects 11.4.1 Selection and Dragging 11.4.2 General
Control Point Dragging Dialog 11.5 Transforming Objects 11.5.1 Transformable Representations of Shapes
11.5.2 Interactive Specification of the Basic Transformations 11.5.3 Snapping 11.6 Grouping Objects
11.6.1 Selection in a Hierarchical Model 11.6.2 Level of Interaction in a Hierarchy 11.7 Summary
Chapter 12 Drawing Architectures 12.1 Basic Drawing Interface 12.2 Interface Architecture 12.2.1
Draw-Area Architecture 12.2.2 Palette Architecture 12.2.3 Summary of Architecture 12.3 Tasks
12.3.1 Redrawing 12.3.2 Creating a New Object 12.3.3 Selecting Objects 12.3.4 Dragging Objects
12.3.5 Setting Attributes 12.3.6 Manipulating Control Points 12.4 Summary Chapter
13 Cut, Copy, and Paste 13.1 Clipboards 13.1.1 Simple Clipboard 13.2 Publish and Subscribe 13.3 Embedded Editing 13.3.1 Embedded Pasting 13.3.2 Edit Aside 13.3.3 Edit in Place
13.4 Summary Chapter 14 Monitoring the Interface: Undo, Groupware, and Macros 14.1
Undo/Redo 14.1.1 Simple History Architecture 14.1.2 Selective Undo 14.1.3 Hierarchical Undo 14.1.4
Review of Undo Architectural Needs 14.2 Groupware 14.2.1 Asynchronous Group Work 14.2.2 Synchronous
Group Work 14.2.3 Groupware Architectural Issues 14.3 Macros 14.4 Monitoring Architecture 14.4.1
Command Objects 14.4.2 Extended Command Objects 14.5 Summary Endnotes
Index
Books and book related electronic products are priced in US dollars (USD), euro (EUR), and Great Britain Pounds (GBP). USD prices apply to the Americas and Asia Pacific. EUR prices apply in Europe and the Middle East. GBP prices apply to the UK and all other countries.