GUIdebook: Graphical User Interface galleryHome > Books > “The Power of PenPoint”
Go backBooksThe Power of PenPoint

“The Power of PenPoint” front cover
This image can be zoomed
Robert Carr, Dan Shafer
The Power of PenPoint
Addison-Wesley, 1991
342 pages
ISBN: 0-2015-7763-1

This book quickly goes into technical details for programmers, but first gives us a fascinating overview of the ill-fated PenPoint NUI (Notebook User Interface), unique in many ways. The first two chapters – reproduced on this site – are of special interest, explaining in detail the goals and rationales of PenPoint, as well as the new or revisited interface concepts.

Buy at

Back cover blurb

The following paragraphs are quoted verbatim from the back cover:

“This book contains important information on PenPoint, an extraordinary new operating system. It is a must-read for anyone interested in operating systems, applications development, or the future of computer software.” – Dan Bricklin, Vice President, Slate Corporation’s Boston Area Development Center

“PenPoint is the most state-of-the-art operating system in the industry today. Anyone who wants to understand personal computers should be familiar with what Robert Carr has accomplished” – Stewart Alsop II, Editor and Publisher, P.C. LETTER

“PenPoint from GO Corporation captures the essence of pen-based computing and object-oriented technology... [It] is going to be a great success in the marketplace." – Bill Joy, Vice President of Research and Development, Sun Microsystems, Inc.

“Just as ‘Mac-like’ was a word that assumed its meaning only as people used and explored the system and discovered a gestalt for it, so will ‘GO-like’ (or ‘PenPoint-like’) find its meaning over time.’ – Esther Dyson, Editor and Publisher, Release 1.0

In these pages you will discover the inside information on the remarkable new pen-based operating system from GO Corporation – PenPointt. As the principal architect and designer of the PenPoint system, Robert Carr is uniquely qualified to reveal its innovative and truly impressive features. Here you will find a first look at what programming for PenPoint is like, as well as a guide to making the best use of the software development kit from GO Corporation.

The Power of PenPoint contains the original source information of the architecture, design, and philosophy behind PenPoint and looks at the powerful class library that makes up the world’s first commercial object-oriented operating system. The book begins with an overview of PenPoint and then delves into each element of the operating system in detail. Topics include:
windowing classes
the user interface toolkit
the file and output systems
the graphics and imaging system
notebook-related and text-editing classes
and much more.

The Power of PenPoint will reveal everything you need to understand the most significant breakthrough in computing today.

Robert Carr is the architect of the PenPoint operating system and cofounder and Vice President of Software Development at GO Corporation.

Dan Shafer is a well-known and prolific author of computer books.


Our Friend the Pen2
Mobile Pen-Based Computing: An Untapped Market3
The Laptop Isn’t a Solution4
Why Build a New Operating System?5
Key Requirements5
What Is PenPoint?7
Notebook User Interface8
Application Framework10
Embedded Document Architecture11
The Document Model12
Live Application Embedding12
Mobile Connectivity15
Compact and Scalable17
A Solid Foundation18
Ambitious Goals21
PenPoint and Traditional GUIs22
Windows and Their Frames23
Menus and Option Sheets23
Basic Controls25
Some New Items26
Writing Pads26
PenPoint’s Notebook Metaphor29
Benefits of the Notebook Metaphor33
The Bookshelf34
Gestures: The Pen Builds on the Mouse36
Gestures as Commands36
Ideas in Conflict38
Standard Gesture Language39
Using the Pen for Data Entry40
Keyboard Support42
More Differences42
Direct Move and Copy43
Stationery Notebook43
Cork Margin44
Embedded Document Architecture44
Hyperlink Buttons46
Floating Pages46
Integrated Connectivity46
User Interface Consistency47
3. Developing Applications for PenPoint49
Why Develop for PenPoint?49
The Learning Process50
The Development Process52
Thinking about Your Application52
Prototyping Your Application53
Designing Your Application54
Mapping to the PenPoint Class Library56
The SDK57
Contents of the SDK57
Language and Software Support57
Runtime Function Support58
General Usage58
Hardware Requirements59
User Interface Design Guidelines59
4. The PenPoint Kernel61
Task Management62
Memory Management63
Multitasking Support Functions64
How PenPoint Handles Multitasking65
Multitasking within an Application66
Protection of the Kernel68
Survival of Application Crashes68
Recovery from Operating System Crashes69
The Loader69
Date and Time Services70
Machine Interface Library70
Other Kernel Services71
5. The Class Manager73
Features Supported75
Programming Efficiencies77
Unique Identifiers77
Major Programming Tasks79
Setting Up Message Arguments79
Sending Messages80
Creating New Instances82
Controlling Object Access and Capabilities82
Creating New Classes83
Setting Up Observer Objects84
6. The Application Framework87
Purpose of Layer89
Common Functions Handled by Application Framework89
Advantages of Application Framework89
Architectural Overview91
Standard Application Elements96
Application Code96
Document Directory97
Document Process98
Application Object99
Resource Files99
Main Window100
Application Framework Standard Behavior and Inheritance101
Installation Behavior102
Creation of New Application Instances102
On-Line Help103
Document Properties104
Gesture Recognition106
Goto Buttons106
Standard Application Menu Support107
File Import and Export107
Printing Support109
Spell Checking109
Search and Replace109
Application Stationery110
PenPoint Application Life Cycle111
Instance Creation112
7. The PenPoint Windowing System115
Basic Concepts118
Working with Windows122
Creating a Window123
Showing Windows124
Laying Out a Window125
Managing Windows126
Filing Windows126
8. Recursive Live Embedding of Applications129
What It Is129
Why It’s Important131
What the User Sees133
How It’s Done134
The Problem of Data Storage135
Basic Concepts135
Lightweight Embedding with Components141
Embedded Window Marks142
The Problem of Traversal142
The Notebook as an Example144
How You Program for Application Embedding146
Where to Place Embedded Windows147
Move/Copy Protocol147
Traversal Protocol148
9. ImagePoint: Graphics and Imaging System153
Overview of Graphics in PenPoint154
PenPoint Drawing Primitives154
Painting and Repainting Windows155
Role and Use of System Drawing Contexts156
Creating a Drawing Context157
Binding a DC to a Window158
Drawing with a DC159
Storing DC Drawings159
Clipping and Repainting Windows160
Clipping the Drawing Area160
Repainting a Window162
Graphics Primitives163
Open Shape Primitives163
Closed Shape Primitives165
Text Primitive167
CopyRect and CopyPixels Operations168
Color Graphics Interface169
Dealing with Prestored Images170
Opening a Font172
Font Metrics and Character Geometry173
Drawing Text173
Text Calculations174
10. The User Interface Toolkit177
The UI Toolkit: An Overview177
Automatic Layout179
Types of UI Components181
Common Control Behavior182
Creating Controls182
Responsive Behaviors183
Menu Buttons and Menus187
Menu Buttons188
List Boxes193
Window List Boxes193
String List Boxes194
Font List Box194
Frames and Frame Decorations199
Option Sheets200
Toolkit Tables203
11. The File System205
Traditional File Activities Supported208
Unique File Activities Supported208
Application Framework’s Default File System Usage210
Interaction with Other File Systems211
Files and Compound Documents212
File Import and Export212
File Import213
File Export214
12. Resources and Their Management217
Types of Resources218
When Are Resources Created?218
Locating Resources219
Resource File Formats221
Managing Resources222
Creating Resources222
Compacting Files223
Application Instance Data223
13. Input and Handwriting Recognition225
Overview of Input227
What the User Sees228
Key Problems and Their PenPoint Solutions229
Handwriting Translation in PenPoint232
Characteristics of the HWX Engine232
How Handwriting Recognition Works233
How Input Is Processed234
The Processing Pipeline234
Filters, Grabbers, and Listeners237
14. Text Editing and Related Classes241
Basic Approach to Programming242
Text Data Objects243
Text Views244
Text Insertion Pads244
15. The Service Manager245
Layering Services246
Standard Service Managers247
Installing and Using Services248
Connecting and Disconnecting250
User Interfaces for Service Managers250
Designing Services251
16. Connectivity253
Overview of PenPoint Connectivity Support253
Remote File System254
Other Types of Remote Connectivity255
Remote File Systems256
Transport Layer257
Link Layer257
Connectivity-Related Facilities258
In Box and Out Box258
The Send User Interface260
Appendix A: Important Data Structures, Classes, and Messages263
The Class Manager (Ch. 5)264
The Application Framework (Ch. 6)266
The PenPoint Windowing System (Ch. 7)272
Recursive Live Embedding Protocol (Ch. 8)274
ImagePoint: Graphics and Imaging System (Ch. 9)276
TheUser Interface Toolkit (Ch 10)279
The File System (Ch. 11)285
Resources and Their Management (Ch. 12)287
Text Editing and Related Classes (Ch. 14)288
The Service Manager (Ch. 15)292
Appendix B: Things to Keep in Mind295
Memory Is Tight295
Think Small295
Modular Components296
Everything’s in Memory296
There’s Only Memory296
Your Application Must Recover297
Object-Oriented or Else297
Who Runs the Code? Who Owns the Data?297
File Format Compatibility Is Important298
Exploit the Pen299
The Good News299
Appendix C: Evaluating Pen-Based Computers and Handwriting Recognition Technology301
Pen-Based Computing Does Not Equal Handwriting Recognition301
Applications That Don’t Rely on Handwriting Recognition303
What Dialog between Applications and the Handwriting Recognition System Is Supported?304
Is the Handwriting Recognition System Replaceable?306
What Capabilities or Features of Handwriting Recognition Systems Are Important?307
Measuring the Accuracy of Handwriting Recognition Systems311
How Accurate Is GO’s Handwriting Recognition System?317

Page added on 11th September 2004.

Copyright © 2002-2006 Marcin Wichary, unless stated otherwise.