| 
 Prefacexvii Acknowledgmentsxxiii 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 Hyperlinks14 Applications14 Mobile Connectivity15 Compact and Scalable17 A Solid Foundation18 Summary19 Ambitious Goals21 PenPoint and Traditional GUIs22 Windows and Their Frames23 Menus and Option Sheets23 Basic Controls25 Some New Items26 Tabs26 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 Scrolling43 Cork Margin44 Embedded Document Architecture44 Hyperlink Buttons46 Floating Pages46 Integrated Connectivity46 User Interface Consistency47 Summary48 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 Summary60 4. The PenPoint Kernel61 Task Management62 Memory Management63 Multitasking Support Functions64 How PenPoint Handles Multitasking65 Multitasking within an Application66 Reliability67 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 Summary72 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 Summary85 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 Move/Copy104 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 Activation112 Opening113 Closing113 Terminating113 Destruction114 Summary114 7. The PenPoint Windowing System115 Basic Concepts118 Working with Windows122 Creating a Window123 Showing Windows124 Laying Out a Window125 Managing Windows126 Filing Windows126 Summary128 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 Summary151 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 Fonts170 Opening a Font172 Font Metrics and Character Geometry173 Drawing Text173 Text Calculations174 Printing174 Summary176 10. The User Interface Toolkit177 The UI Toolkit: An Overview177 Automatic Layout179 Types of UI Components181 Common Control Behavior182 Creating Controls182 Responsive Behaviors183 Labels184 Buttons185 Menu Buttons and Menus187 Menu Buttons188 Menus189 Scrollbars189 List Boxes193 Window List Boxes193 String List Boxes194 Font List Box194 Fields195 Notes196 Frames and Frame Decorations199 Option Sheets200 Icons202 Toolkit Tables203 Summary204 11. The File System205 Traditional File Activities Supported208 Unique File Activities Supported208 Installation209 Application Framework’s Default File System Usage210 Interaction with Other File Systems211 Files and Compound Documents212 File Import and Export212 File Import213 File Export214 Summary215 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 Summary224 13. Input and Handwriting Recognition225 Overview of Input227 What the User Sees228 Terminology229 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 Events235 Filters, Grabbers, and Listeners237 Translation238 Summary239 14. Text Editing and Related Classes241 Basic Approach to Programming242 Text Data Objects243 Text Views244 Text Insertion Pads244 Summary244 15. The Service Manager245 Layering Services246 Standard Service Managers247 Installing and Using Services248 Connecting and Disconnecting250 User Interfaces for Service Managers250 Designing Services251 Summary251 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 Summary261 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 Tip298 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 Summary321 Index335 |