`Case 1:13-cv-00919—LPS Document 311-5 Filed 03/10/21 Page 1 of 200 PageID #: 28645
`
`EXHIBIT 64 PART 1
`
`EXHIBIT 64 PART 1
`
`
`
`Case 1:13-cv-00919-LPS Document 311-5 Filed 03/10/21 Page 2 of 200 PageID #: 28646
`
`Apple
`
`P RESS
`
`Newton Programmer's Guide
`
`For Newton 2.0
`
`A
`v1
`
`Addison-Wesley Publishing Company
`
`Reading, Massachusetts Menlo Park, California New York
`Don Mills, Ontario Harlow, England Amsterdam Bonn
`Sydney Singapore Tokyo Madrid San Juan
`Paris Seoul Milan Mexico City Taipei
`
`ARENDI-DEFS00003649
`
`
`
`Case 1:13-cv-00919-LPS Document 311-5 Filed 03/10/21 Page 3 of 200 PageID #: 28647
`
`S Apple Computer, Inc.
`© 1996 Apple Computer, Inc.
`All rights reserved.
`No part of this publication may be
`reproduced, stored in a retrieval
`system, or transmitted, in any form or
`by any means, mechanical, electronic,
`photocopying, recording, or
`otherwise, without prior written
`permission of Apple Computer, Inc.,
`except to make a backup copy of any
`documentation provided on
`CD-ROM. Printed in the United
`States of America.
`No licenses, express or implied, are
`granted with respect to any of the
`technology described in this book.
`Apple retains all intellectual property
`rights associated with the technology
`described in this book. This book is
`intended to assist application
`developers to develop applications
`only for licensed Newton platforms.
`Every effort has been made to ensure
`that the information in this manual is
`accurate. Apple is not responsible for
`printing or clerical errors.
`
`Apple Computer, Inc.
`1 Infinite Loop
`Cupertino, CA 95014
`408-996-1010
`
`Apple, the Apple logo, APDA,
`AppleLink, AppleTalk, Espy,
`LaserWriter, the light bulb logo,
`Macintosh, MessagePad, Newton,
`Newton Connection Kit, and New York
`are trademarks of Apple Computer, Inc.,
`registered in the United States and other
`countries.
`
`Apple Press, the Apple Press Signature,
`eWorld, Geneva, NewtonScript, Newton
`Toolkit, and QuickDraw are trademarks
`of Apple Computer, Inc.
`Acrobat, Adobe Illustrator, and
`PostScript are trademarks of Adobe
`Systems Incorporated, which may be
`registered in certain jurisdictions.
`CompuServe is a registered service
`mark of CompuServe, Inc.
`FrameMaker is a registered trademark
`of Frame Technology Corporation.
`Helvetica and Palatino are registered
`trademarks of Linotype Company.
`ITC Zapf Dingbats is a registered
`trademark of International Typeface
`Corporation.
`Microsoft is a registered trademark of
`Microsoft Corporation. Windows is a
`trademark of Microsoft Corporation.
`QuickViewTM is licensed from Altura
`Software, Inc.
`
`Simultaneously published in the
`United States and Canada.
`
`LIMITED WARRANTY ON MEDIA AND
`REPLACEMENT
`
`ALL IMPLIED WARRANTIES ON THIS
`MANUAL, INCLUDING IMPLIED
`WARRANTIES OF
`MERCHANTABILITY AND FITNESS
`FORA PARTICULAR PURPOSE, ARE
`LIMITED IN DURATION TO NINETY
`(90) DAYS FROM THE DATE OF THE
`ORIGINAL RETAIL PURCHASE OF
`THIS PRODUCT.
`
`Even though Apple has reviewed this
`manual, APPLE MAKES NO
`WARRANTY OR REPRESENTATION,
`EITHER EXPRESS OR IMPLIED, WITH
`RESPECT TO THIS MANUAL, ITS
`QUALITY, ACCURACY,
`MERCHANTABILITY, OR FITNESS
`FORA PARTICULAR PURPOSE. AS A
`RESULT, THIS MANUAL IS SOLD "AS
`IS," AND YOU, THE PURCHASER, ARE
`ASSUMING THE ENTIRE RISK AS TO
`ITS QUALITY AND ACCURACY.
`
`IN NO EVENT WILL APPLE BE LIABLE
`FOR DIRECT, INDIRECT, SPECIAL,
`INCIDENTAL, OR CONSEQUENTIAL
`DAMAGES RESULTING FROM ANY
`DEFECT OR INACCURACY IN THIS
`MANUAL, even if advised of the possibility
`of such damages.
`
`THE WARRANTY AND REMEDIES SET
`FORTH ABOVE ARE EXCLUSIVE AND
`IN LIEU OF ALL OTHERS, ORAL OR
`WRITTEN, EXPRESS OR IMPLIED. No
`Apple dealer, agent, or employee is
`authorized to make any modification,
`extension, or addition to this warranty.
`
`Some states do not allow the exclusion or
`limitation of implied warranties or liability
`for incidental or consequential damages, so
`the above limitation or exclusion may not
`apply to you. This warranty gives you
`specific legal rights, and you may also have
`other rights which vary from state to state.
`
`ARENDI-DEFS00003650
`
`
`
`Case 1:13-cv-00919-LPS Document 311-5 Filed 03/10/21 Page 4 of 200 PageID #: 28648
`
`ririTable of Contents
`
`Figures and Tables
`
`xxxiii
`
`Preface
`
`About This Book xiiii
`
`xliii
`
`xlv
`
`Who Should Read This Book
`xliii
`Related Books
`Newton Programmer's Reference CD-ROM
`Sample Code
`xlv
`Conventions Used in This Book
`Special Fonts
`xlv
`Tap Versus Click
`xlvi
`Frame Code
`xlvii
`Developer Products and Support
`Undocumented System Software Objects
`
`xlvi
`
`Chapter 1
`
`1-1
`
`Overview 1-1
`Operating System
`Memory
`1-3
`Packages
`1-4
`1-4
`System Services
`Object Storage System
`1-6
`View System
`Text Input and Recognition
`1-8
`Stationery
`Intelligent Assistant
`Imaging and Printing
`1-9
`Sound
`Book Reader
`1-10
`Find
`Filing
`1-11
`
`1-5
`
`1-7
`
`1-8
`1-9
`
`1-10
`
`xliv
`
`xlviii
`
`iii
`
`ARENDI-DEFS00003651
`
`
`
`Case 1:13-cv-00919-LPS Document 311-5 Filed 03/10/21 Page 5 of 200 PageID #: 28649
`
`1-14
`
`1-15
`
`1-18
`1-18
`
`1-11
`Communications Services
`NewtonScript Application Communications
`1-13
`Routing Through the In/Out Box
`1-14
`Endpoint Interface
`Low-Level Communications
`1-14
`Transport Interface
`Communication Tool Interface
`1-15
`Application Components
`Using System Software
`1-17
`The NewtonScript Language
`What's New in Newton 2.0
`NewtApp
`1-18
`Stationery
`1-19
`1-19
`Views
`Protos
`1-20
`1-20
`Data Storage
`1-20
`Text Input
`Graphics and Drawing
`1-21
`System Services
`Recognition
`1-22
`1-22
`Sound
`Built-in Applications
`Routing and Transports
`Endpoint Communication
`1-24
`Utilities
`Books
`1-24
`
`1-21
`
`1-22
`1-23
`1-23
`
`Chapter 2
`
`iv
`
`2-1
`
`2-1
`
`2-2
`
`Getting Started
`Choosing an Application Structure
`2-1
`Minimal Structure
`NewtApp Framework
`2-3
`Digital Books
`2-4
`Other Kinds of Software
`Package Loading, Activation, and Deactivation
`Loading
`2-5
`Activation
`2-5
`Deactivation
`2-6
`
`1-13
`
`2-4
`
`ARENDI-DEFS00003652
`
`
`
`Case 1:13-cv-00919-LPS Document 311-5 Filed 03/10/21 Page 6 of 200 PageID #: 28650
`
`2-9
`
`Effects of System Resets on Application Data
`2-8
`Flow of Control
`Using Memory
`2-8
`Localization
`2-9
`Developer Signature Guidelines
`2-9
`Signature
`How to Register
`Application Name
`Application Symbol
`2-11
`Package Name
`2-12
`Summary
`View Classes and Protos
`2-12
`Functions
`
`2-10
`2-10
`2-11
`
`2-12
`
`Chapter 3
`
`VIeWS 3-1
`
`3-1
`3-2
`
`About Views
`Templates
`3-4
`Views
`3-6
`Coordinate System
`Defining View Characteristics
`3-9
`Class
`3-9
`Behavior
`Location, Size, and Alignment
`3-20
`Appearance
`Opening and Closing Animation Effects
`3-24
`Other Characteristics
`Inheritance Links
`3-24
`Application-Defined Methods
`3-26
`View Instantiation
`Declaring a View
`3-27
`Creating a View
`3-28
`Closing a View
`3-29
`3-30
`View Compatibility
`3-30
`New Drag and Drop API
`3-30
`New Functions and Methods
`3-30
`New Messages
`New Alignment Flags
`
`3-8
`
`3-10
`
`3-26
`
`3-31
`
`2-7
`
`3-23
`
`V
`
`ARENDI-DEFS00003653
`
`
`
`Case 1:13-cv-00919-LPS Document 311-5 Filed 03/10/21 Page 7 of 200 PageID #: 28651
`
`3-32
`
`3-34
`3-35
`3-36
`
`3-31
`
`3-33
`
`3-37
`
`3-39
`
`3-40
`
`3-43
`3-44
`3-44
`
`Changes to Existing Functions and Methods
`3-32
`New Warning Messages
`Obsolete Functions and Methods
`3-32
`Using Views
`3-32
`Getting References to Views
`Displaying, Hiding, and Redrawing Views
`3-33
`Dynamically Adding Views
`Showing a Hidden View
`3-34
`Adding to the stepChildren Array
`Using the AddStepView Function
`Using the BuildContext Function
`3-36
`Creating Templates
`Making a Picker View
`3-37
`3-37
`Changing the Values in viewFormat
`Determining Which View Item Is Selected
`3-38
`Complex View Effects
`Making Modal Views
`3-38
`Finding the Bounds of Views
`3-40
`Animating Views
`Dragging a View
`3-40
`Dragging and Dropping with Views
`3-41
`Scrolling View Contents
`3-42
`Redirecting Scrolling Messages
`3-42
`Working With View Highlighting
`3-43
`Creating View Dependencies
`3-43
`View Synchronization
`Laying Out Multiple Child Views
`Optimizing View Performance
`Using Drawing Functions
`3-44
`View Fill
`Redrawing Views
`Memory Usage
`3-46
`Scrolling
`Summary of Views 3-47
`Constants 3-47
`Functions and Methods 3-51
`
`3-44
`3-45
`
`vi
`
`ARENDI-DEFS00003654
`
`
`
`Case 1:13-cv-00919-LPS Document 311-5 Filed 03/10/21 Page 8 of 200 PageID #: 28652
`
`Chapter 4
`
`NewtApp Applications 4-1
`
`4-1
`
`4-4
`
`4-9
`
`4-11
`
`About the NewtApp Framework
`4-2
`The NewtApp Protos
`About newtApplication
`4-5
`About newtSoup
`The Layout Protos
`4-5
`4-8
`The Entry View Protos
`About the Slot View Protos
`4-11
`Stationery
`NewtApp Compatibility
`4-12
`Using NewtApp
`Constructing a NewtApp Application
`4-13
`Using Application Globals
`Using newtApplication
`4-14
`Using the Layout Protos
`4-16
`4-19
`Using Entry Views
`Using the Required NewtApp Install and Remove Scripts
`4-22
`Using Slot Views in Non-NewtApp Applications
`4-22
`Modifying the Base View
`Using a False Entry View
`4-23
`Creating a Custom Labelled Input-Line Slot View
`4-25
`Summary of the NewtApp Framework
`4-25
`Required Code
`4-25
`Protos
`
`4-12
`
`4-24
`
`Chapter 5
`
`Stationery
`
`5-1
`
`5-1
`About Stationery
`5-2
`The Stationery Buttons
`5-4
`Stationery Registration
`Getting Information about Stationery
`5-5
`Compatibility Information
`5-5
`Using Stationery
`5-5
`Designing Stationery
`5-6
`Using FillNewEntry
`5-7
`Extending the Notes Application
`Determining the SuperSymbol of the Host
`
`5-5
`
`5-7
`
`4-21
`
`vii
`
`ARENDI-DEFS00003655
`
`
`
`Case 1:13-cv-00919-LPS Document 311-5 Filed 03/10/21 Page 9 of 200 PageID #: 28653
`
`5-9
`
`5-8
`Creating a DataDef
`Defining DataDef Methods
`5-11
`Creating ViewDefs
`Registering Stationery for an Auto Part
`Using the MinimalBounds ViewDef Method
`5-15
`Stationery Summary
`Data Structures
`5-15
`5-15
`Protos
`Functions
`5-17
`
`5-13
`5-14
`
`Chapter 6
`
`Pickers, Pop-up Views, and Overviews 6-1
`
`6-2
`
`6-17
`
`6-4
`
`6-7
`
`6-1
`About Pickers and Pop-up Views
`Pickers and Pop-up View Compatibility
`6-2
`New Pickers and Pop-up Views
`6-4
`Obsolete Function
`Picker Categories
`6-4
`General-Purpose Pickers
`Using protoGeneralPopup
`6-8
`Map Pickers
`Text Pickers
`6-10
`Date, Time, and Location Pop-up Views
`6-21
`Number Pickers
`Picture Picker
`6-21
`6-22
`Overview Protos
`6-24
`Using protoOverview
`6-26
`Using protoListPicker
`Using the Data Definitions Frame in a List Picker
`6-29
`Specifying Columns
`6-30
`Having a Single Selection in a List Picker
`6-30
`Having Preselected Items in a List Picker
`6-31
`Validation and Editing in protoListPicker
`6-33
`Changing the Font of protoListPicker
`6-33
`Using protoSoupOverview
`Determining Which protoSoupOverview Item Is Hit
`Displaying the protoSoupOverview Vertical Divider
`6-35
`Roll Protos
`6-36
`View Classes
`
`6-29
`
`6-33
`6-34
`
`ARENDI-DEFS00003656
`
`
`
`Case 1:13-cv-00919-LPS Document 311-5 Filed 03/10/21 Page 10 of 200 PageID #: 28654
`
`6-37
`
`6-50
`
`6-41
`
`Specifying the List of Items for a Popup
`6-41
`Summary
`General Picker Protos
`6-45
`Map Pickers
`6-46
`Text Picker Protos
`Date, Time, and Location Pop-up Views
`6-53
`Number Pickers
`Picture Picker
`6-53
`6-54
`Overview Protos
`6-57
`Roll Protos
`6-58
`View Classes
`Functions
`6-59
`
`Chapter 7
`
`Controls and Other Protos 7-1
`7-1
`
`7-3
`
`Controls Compatibility
`7-2
`Scroller Protos
`Implementing a Minimal Scroller
`7-3
`Automatic Arrow Feedback
`7-4
`Scrolling Examples
`7-4
`Scrolling Lines of Text
`Scrolling in the Dates Application
`Scrolling In a Graphics Application
`7-5
`Scroll Amounts
`Advanced Usage
`7-6
`7-6
`Button and Box Protos
`Implementing a Simple Button
`7-11
`Selection Tab Protos
`Gauge and Slider Protos
`7-12
`Implementing a Simple Slider
`7-14
`Time Protos
`Implementing a Simple Time Setter
`7-16
`Special View Protos
`7-18
`View Appearance Protos
`7-19
`Status Bar Protos
`7-20
`Summary
`7-20
`Scroller Protos
`Button and Box Protos
`
`7-10
`
`7-13
`
`7-22
`
`7-5
`7-5
`
`7-15
`
`ix
`
`ARENDI-DEFS00003657
`
`
`
`Case 1:13-cv-00919-LPS Document 311-5 Filed 03/10/21 Page 11 of 200 PageID #: 28655
`
`7-25
`Selection Tab Protos
`Gauges and Slider Protos
`7-27
`Time Protos
`7-28
`Special View Protos
`7-30
`View Appearance Protos
`7-31
`Status Bar Protos
`
`7-25
`
`Chapter 8
`
`Text and Ink Input and Display
`
`8-1
`
`8-1
`About Text
`8-1
`About Text and Ink
`8-2
`Written Input Formats
`Caret Insertion Writing Mode
`Fonts for Text and Ink Display
`8-3
`About Text Views and Protos
`About Keyboard Text Input
`8-4
`The Keyboard Registry
`8-5
`The Punctuation Pop-up Menu
`8-6
`Compatibility
`8-6
`Using Text
`Using Views and Protos for Text Input and Display
`8-6
`General Input Views
`8-10
`Paragraph Views
`Lightweight Paragraph Views
`8-12
`Using Input Line Protos
`Displaying Text and Ink
`8-14
`Text and Ink in Views
`8-14
`Using Fonts for Text and Ink Display
`8-22
`Rich Strings
`Text and Styles
`8-25
`Setting the Caret Insertion Point
`8-26
`Using Keyboards
`Keyboard Views
`8-26
`8-28
`Using Keyboard Protos
`Defining Keys in a Keyboard View
`8-36
`Using the Keyboard Registry
`8-36
`Defining Tabbing Orders
`The Caret Pop-up Menu
`8-38
`
`8-3
`8-3
`
`8-5
`
`8-11
`
`8-26
`
`8-17
`
`8-30
`
`8-6
`
`ARENDI-DEFS00003658
`
`x
`
`
`
`Case 1:13-cv-00919-LPS Document 311-5 Filed 03/10/21 Page 12 of 200 PageID #: 28656
`
`8-38
`
`8-38
`Handling Input Events
`Testing for a Selection Hit
`8-39
`Summary of Text
`Text Constants and Data Structures
`8-42
`Views
`Protos
`8-43
`Text and Ink Display Functions and Methods
`8-49
`Keyboard Functions and Methods
`Input Event Functions and Methods
`8-50
`
`8-39
`
`Chapter 9
`
`Recognition
`
`9-1
`
`8-47
`
`9-23
`
`xi
`
`ARENDI-DEFS00003659
`
`About the Recognition System
`9-3
`Classifying Strokes
`9-4
`Gestures
`9-5
`Shapes
`Text
`9-6
`Unrecognized Strokes
`Enabling Recognizers
`9-9
`View Flags
`Recognition Configuration Frames
`View Flags vs. RecConfig Frames
`9-10
`Where to Go From Here
`9-11
`Recognition Failure
`System Dictionaries
`9-11
`Correction and Learning
`9-13
`9-14
`User Preferences for Recognition
`Handwriting Recognition Preferences
`9-18
`RecToggle Views
`Flag-Naming Conventions
`Recognition Compatibility
`Using the Recognition System
`9-21
`Types of Views
`9-22
`Configuring the Recognition System
`Obtaining Optimum Recognition Performance
`9-24
`Accepting Pen Input
`Taps and Overlapping Views
`9-25
`Recognizing Shapes
`
`9-1
`
`9-7
`9-8
`
`9-19
`9-20
`9-21
`
`9-24
`
`9-9
`9-10
`
`9-15
`
`
`
`Case 1:13-cv-00919-LPS Document 311-5 Filed 03/10/21 Page 13 of 200 PageID #: 28657
`
`9-25
`
`9-28
`
`Recognizing Standard Gestures
`9-26
`Combining View Flags
`9-27
`Recognizing Text
`9-28
`Recognizing Punctuation
`Suppressing Spaces Between Words
`Forcing Capitalization
`9-29
`9-29
`Justifying to Width of Parent View
`Restricting Input to Single Lines or Single Words
`9-29
`Validating Clipboard and Keyboard Input
`9-30
`Using the vAnythingAllowed Mask
`9-31
`Summary
`9-31
`Constants
`Data Structures
`
`9-33
`
`9-29
`
`Chapter 10
`
`Recognition: Advanced Topics 10-1
`
`10-1
`
`10-5
`
`10-6
`
`10-10
`
`10-7
`
`10-1
`About Advanced Topics in Recognition
`How the System Uses Recognition Settings
`10-4
`ProtoCharEdit Views
`Ambiguous Characters in protoCharEdit Views
`10-5
`Deferred Recognition
`10-5
`User Interface to Deferred Recognition
`Programmer's Overview of Deferred Recognition
`10-7
`Compatibility Information
`Using Advanced Topics in Recognition
`10-8
`Using recConfig Frames
`10-9
`Creating a recConfig Frame
`Using RecConfig Frames to Enable Recognizers
`10-10
`Returning Text, Ink Text or Sketch Ink
`10-12
`Fine-Tuning Text Recognition
`10-13
`Manipulating Dictionaries
`Single-Character Input Views
`10-13
`Creating Single-Letter Input Views
`10-15
`Changing Recognition Behavior Dynamically
`10-19
`Using protoRecToggle Views
`Creating the recToggle View
`10-19
`Configuring Recognizers and Dictionaries for recToggle
`10-20
`Views
`Creating the recogSettings Slot
`
`10-17
`
`10-20
`
`xii
`
`ARENDI-DEFS00003660
`
`
`
`Case 1:13-cv-00919-LPS Document 311-5 Filed 03/10/21 Page 14 of 200 PageID #: 28658
`
`10-22
`10-23
`
`10-24
`
`10-27
`
`10-38
`
`ARENDI-DEFS00003661
`
`Providing the _recogPopup Slot
`Accessing Correction Information
`10-24
`Using Custom Dictionaries
`Creating a Custom Enumerated Dictionary
`10-25
`Creating the Blank Dictionary
`10-26
`Adding Words to RAM-Based Dictionaries
`Removing Words From RAM-Based Dictionaries
`10-27
`Saving Dictionary Data to a Soup
`10-28
`Restoring Dictionary Data From a Soup
`10-28
`Using Your RAM-Based Custom Dictionary
`Removing Your RAM-Based Custom Dictionary
`10-30
`10-30
`Using System Dictionaries Individually
`10-30
`Working With the Review Dictionary
`Retrieving the Review Dictionary
`10-31
`10-31
`Displaying Review Dictionary Browsers
`10-32
`Adding Words to the User Dictionary
`10-32
`Removing Words From the User Dictionary
`10-33
`Adding Words to the Expand Dictionary
`Removing Words From the Expand Dictionary
`10-34
`Retrieving Word Expansions
`10-34
`Retrieving the Auto-Add Dictionary
`10-35
`Disabling the Auto-Add Mechanism
`10-35
`Adding Words to the Auto-Add Dictionary
`Removing Words From the Auto-Add Dictionary
`10-36
`Using protoCharEdit Views
`10-36
`Positioning protoCharEdit Views
`10-37
`Manipulating Text in protoCharEdit Views
`Restricting Characters Returned by protoCharEdit Views
`10-40
`Customized Processing of Input Strokes
`Customized Processing of Double Taps
`10-41
`Changing User Preferences for Recognition
`10-41
`Modifying or Replacing the Correction Picker
`10-42
`10-42
`Using Stroke Bundles
`10-42
`Stroke Bundles Example
`Summary of Advanced Topics in Recognition
`10-44
`Constants
`Data Structures
`10-45
`10-49
`Recognition System Prototypes
`Additional Recognition Functions and Methods
`
`10-34
`
`10-36
`
`10-44
`
`10-54
`
`
`
`Case 1:13-cv-00919-LPS Document 311-5 Filed 03/10/21 Page 15 of 200 PageID #: 28659
`
`Chapter 11
`
`Data Storage and Retrieval
`
`11-1
`
`11-1
`11-2
`
`11-10
`11-12
`
`About Data Storage on Newton Devices
`Introduction to Data Storage Objects
`11-6
`Where to Go From Here
`11-6
`Stores
`Packages
`11-7
`11-7
`Soups
`Indexes
`11-8
`Saving User Preference Data in the System Soup
`11-10
`Queries
`Querying for Indexed Values
`Begin Keys and End Keys
`11-14
`Tag-based Queries
`11-14
`Customized Tests
`11-15
`Text Queries
`11-16
`Cursors
`Entries
`11-17
`Alternatives to Soup-Based Storage
`11-18
`Dynamic Data
`11-19
`Static Data
`11-20
`Compatibility Information
`Obsolete Store Functions and Methods
`11-20
`Soup Compatibility Information
`Query Compatibility Information
`11-23
`11-24
`Obsolete Entry Functions
`Obsolete Data Backup and Restore Functions
`11-25
`Using Newton Data Storage Objects
`11-25
`Programmer's Overview
`11-28
`Using Stores
`11-29
`Store Object Size Limits
`11-29
`Referencing Stores
`11-29
`Retrieving Packages From Stores
`11-30
`Testing Stores for Write-Protection
`11-30
`Getting or Setting the Default Store
`11-30
`Getting and Setting the Store Name
`11-31
`Accessing the Store Information Frame
`11-31
`Using Soups
`Naming Soups
`11-31
`Registering and Unregistering Soup Definitions
`
`11-18
`
`11-20
`
`11-10
`
`11-24
`
`11-32
`
`xiv
`
`ARENDI-DEFS00003662
`
`
`
`Case 1:13-cv-00919-LPS Document 311-5 Filed 03/10/21 Page 16 of 200 PageID #: 28660
`
`11-35
`
`11-38
`
`11-37
`
`11-44
`
`11-33
`Retrieving Existing Soups
`11-34
`Adding Entries to Soups
`Adding an Index to an Existing Soup
`11-36
`Removing Soups
`Using Built-in Soups
`11-36
`Making Changes to Other Applications' Soups
`11-37
`Adding Tags to an Existing Soup
`11-37
`Using Queries
`11-38
`Querying Multiple Soups
`Querying on Single-Slot Indexes
`11-41
`Querying for Tags
`Querying for Text
`11-43
`Internationalized Sorting Order for Text Queries
`11-45
`Queries on Descending Indexes
`Querying on Multiple-Slot Indexes
`11-47
`11-51
`Limitations of Index Keys
`11-53
`Using Cursors
`Getting a Cursor
`11-53
`11-53
`Testing Validity of the Cursor
`Getting the Entry Currently Referenced by the Cursor
`11-54
`Moving the Cursor
`Counting the Number of Entries in Cursor Data
`11-56
`Getting the Current Entry's Index Key
`11-56
`Copying Cursors
`11-57
`Using Entries
`Saving Frames as Soup Entries
`Removing Entries From Soups
`11-59
`Modifying Entries
`Moving Entries
`11-60
`Copying Entries
`11-60
`Sharing Entry Data
`11-61
`11-61
`Using the Entry Cache Efficiently
`11-63
`Using Soup Change Notification
`Registering Your Application for Change Notification
`Unregistering Your Application for Change Notification
`11-65
`Responding to Notifications
`11-66
`Sending Notifications
`Summary of Data Storage
`11-68
`11-68
`Data Structures
`Data Storage Functions and Methods
`
`11-57
`11-58
`
`11-71
`
`11-54
`
`11-56
`
`11-63
`11-65
`
`xv
`
`ARENDI-DEFS00003663
`
`
`
`Case 1:13-cv-00919-LPS Document 311-5 Filed 03/10/21 Page 17 of 200 PageID #: 28661
`
`Chapter 12
`
`Special-Purpose Objects for
`Data Storage and Retrieval
`
`12-1
`
`12-1
`
`12-2
`
`12-6
`
`12-8
`
`12-14
`
`About Special-Purpose Storage Objects
`12-1
`Entry Aliases
`Virtual Binary Objects
`12-3
`Parts
`12-4
`Store Parts
`12-4
`Mock Entries
`Mock Stores, Mock Soups, and Mock Cursors
`12-7
`Using Special-Purpose Data Storage Objects
`12-7
`Using Entry Aliases
`12-8
`Using Virtual Binary Objects
`Creating Virtual Binary Objects
`12-10
`Modifying VBO Data
`VBOs and String Data
`12-12
`12-12
`Using Store Parts
`Creating a Store Part
`12-13
`Getting the Store Part
`12-14
`Accessing Data in Store Parts
`12-14
`Using Mock Entries
`Implementing the EntryAccess Method
`12-15
`Creating aNew Mock Entry
`Testing the Validity of a Mock Entry
`12-16
`Getting Mock Entry Data
`12-16
`Changing the Mock Entry's Handler
`12-16
`Getting the Mock Entry's Handler
`Implementing Additional Handler Methods
`Summary of Special-Purpose Data Storage Objects
`12-17
`Data Structures
`Functions and Methods
`
`12-15
`
`12-16
`
`12-16
`12-17
`
`12-17
`
`Chapter 13
`
`Drawing and Graphics 13-1
`
`13-1
`About Drawing
`13-2
`Shape-Based Graphics
`13-7
`Manipulating Shapes
`13-7
`The Style Frame
`
`xvi
`
`ARENDI-DEFS00003664
`
`
`
`Case 1:13-cv-00919-LPS Document 311-5 Filed 03/10/21 Page 18 of 200 PageID #: 28662
`
`13-8
`
`13-8
`
`13-8
`
`Drawing Compatibility
`13-8
`New Functions
`New Style Attribute Slots
`13-8
`Changes to Bitmaps
`Changes to the HitShape Method
`13-9
`Changes to View Classes
`Using the Drawing Interface
`13-9
`13-9
`How to Draw
`Responding to the ViewDrawScript Message
`Drawing Immediately
`13-10
`13-10
`Using Nested Arrays of Shapes
`The Transform Slot in Nested Shape Arrays
`13-12
`Default Transfer Mode
`Transfer Modes at Print Time
`13-12
`Controlling Clipping
`Transforming a Shape
`13-13
`13-14
`Using Drawing View Classes and Protos
`13-14
`Displaying Graphics Shapes and Ink
`Displaying Bitmaps, Pictures, and Graphics Shapes
`13-15
`Displaying Pictures in a clEditView
`Displaying Scaled Images of Other Views
`13-16
`Translating Data Shapes
`Finding Points Within a Shape
`13-17
`Using Bitmaps
`Making CopyBits Scale Its Output Bitmap
`Storing Compressed Pictures and Bitmaps
`Capturing a Portion of a View Into a Bitmap
`13-19
`Rotating or Flipping a Bitmap
`Importing Macintosh PICT Resources
`13-20
`Drawing Non-Default Fonts
`PICT Swapping During Run-Time Operations
`13-22
`Optimizing Drawing Performance
`13-23
`Summary of Drawing
`13-23
`Data Structure
`13-23
`View Classes
`13-24
`Protos
`Functions and Methods
`
`13-12
`
`13-16
`
`13-26
`
`13-9
`
`13-11
`
`13-15
`
`13-18
`13-18
`13-18
`
`13-20
`
`13-21
`
`13-15
`
`xvii
`
`ARENDI-DEFS00003665
`
`
`
`Case 1:13-cv-00919-LPS Document 311-5 Filed 03/10/21 Page 19 of 200 PageID #: 28663
`
`Chapter 14
`
`Sound 14-1
`
`14-1
`About Newton Sound
`14-2
`Event-related Sounds
`Sounds in ROM 14-2
`Sounds for Predefined Events
`14-3
`Sound Data Structures
`14-3
`Compatibility
`Using Sound
`14-4
`Creating and Using Custom Sound Frames
`14-5
`Creating Sound Frames Procedurally
`14-5
`Cloning Sound Frames
`14-5
`Playing Sound
`Using a Sound Channel to Play Sound
`14-6
`Playing Sound Programmatically
`Synchronous and Asynchronous Sound
`14-8
`Advanced Sound Techniques
`Pitch Shifting
`14-9
`Manipulating Sample Data
`14-11
`Summary of Sound
`Data Structures
`14-11
`14-11
`Protos
`Functions and Methods
`14-12
`Sound Resources
`
`14-4
`
`14-5
`
`14-7
`
`14-2
`
`14-10
`
`14-12
`
`Chapter 15
`
`Filing
`
`15-1
`
`15-9
`
`15-1
`About Filing
`Filing Compatibility Information
`15-10
`Using the Filing Service
`Overview of Filing Support
`15-10
`Creating the Labels Slot
`15-11
`Creating the appName Slot
`15-11
`Creating the appAll Slot
`15-12
`15-12
`Creating the appObjectFileThisln Slot
`15-12
`Creating the appObjectFileThisOn Slot
`15-12
`Creating the appObjectUnfiled Slot
`15-13
`Specifying the Target
`
`xviii
`
`ARENDI-DEFS00003666
`
`
`
`Case 1:13-cv-00919-LPS Document 311-5 Filed 03/10/21 Page 20 of 200 PageID #: 28664
`
`15-14
`Creating the labelsFilter slot
`15-14
`Creating the storesFilter slot
`15-14
`Adding the Filing Button
`15-14
`Adding the Folder Tab View
`15-15
`Customizing Folder Tab Views
`15-15
`Defining a TitleClickScript Method
`Implementing the FileThis Method
`15-15
`Implementing the NewFilingFilter Method
`Using the Folder Change Notification Service
`15-18
`Creating the doCardRouting slot
`Using Local or Global Folders Only
`15-19
`Adding and Removing Filing Categories
`Programmatically
`15-19
`Interface to User-Visible Folder Names
`15-20
`Summary
`15-20
`Data Structures for Filing
`15-20
`Application Base View Slots
`15-21
`Filing Protos
`15-22
`Filing Functions and Methods
`Application-Defined Filing Functions and Methods
`
`15-19
`
`15-16
`15-18
`
`15-22
`
`Chapter 16
`
`Find
`
`16-1
`
`16-6
`
`16-10
`
`16-1
`About the Find Service
`Compatibility Information
`16-6
`Using the Find Service
`Technical Overview
`16-6
`16-9
`Global and Selected Finds
`Checklist for Adding Find Support
`16-11
`Creating the title Slot
`Creating the appName Slot
`16-11
`16-11
`Using the Finder Protos
`16-14
`Implementing Search Methods
`16-15
`Using the StandardFind Method
`16-16
`Using Your Own Text-Searching Method
`16-17
`Finding Text With a ROM_CompatibleFinder
`16-18
`Implementing the DateFind Method
`Adding Application Data Sets to Selected Finds
`16-21
`Returning Search Results
`
`16-19
`
`xix
`
`ARENDI-DEFS00003667
`
`
`
`Case 1:13-cv-00919-LPS Document 311-5 Filed 03/10/21 Page 21 of 200 PageID #: 28665
`
`16-21
`Implementing Find Overview Support
`16-21
`The FindSoupExcerpt Method
`The ShowFoundItem Method
`16-22
`Replacing the Built-in Find Slip
`16-24
`Reporting Progress to the User
`16-24
`16-25
`Registering for Finds
`16-26
`Summary
`16-26
`Finder Protos
`16-28
`Functions and Methods
`Application-Defined Methods
`
`16-28
`
`Chapter 17
`
`Additional System Services 17-1
`
`17-1
`
`17-2
`
`17-2
`
`17-5
`
`17-5
`
`17-6
`
`17-7
`17-7
`
`About Additional System Services
`17-1
`Undo
`Undo Compatibility
`17-2
`Idler Objects
`Change Notifications
`17-3
`Online Help
`17-3
`Alerts and Alarms
`17-3
`User Alerts
`User Alarms
`17-3
`Periodic Alarms
`17-4
`Alarms Compatibility
`17-5
`Progress Indicators
`Automatic Busy Cursor
`Notify Icon
`17-5
`Status Slips With Progress Indicators
`Power Registry
`17-7
`Power Compatibility Information
`Using Additional System Services
`17-8
`Using Undo Actions
`17-8
`The Various Undo Methods
`Avoiding Undo-Related "Bad Package" Errors
`17-9
`Using Idler Objects
`Using Change Notification
`17-10
`Using Online Help
`
`17-10
`
`xx
`
`17-9
`
`ARENDI-DEFS00003668
`
`
`
`Case 1:13-cv-00919-LPS Document 311-5 Filed 03/10/21 Page 22 of 200 PageID #: 28666
`
`17-12
`
`17-11
`Using Alerts and Alarms
`Using the Notify Method to Display User Alerts
`17-11
`Creating Alarms
`Obtaining Information about Alarms
`17-12
`Retrieving Alarm Keys
`Removing Installed Alarms
`17-13
`Common Problems With Alarms
`17-13
`Using the Periodic Alarm Editor
`17-14
`17-15
`Using Progress Indicators
`Using the Automatic Busy Cursor
`17-15
`Using the Notify Icon
`17-16
`Using the DoProgress Function
`Using DoProgress or Creating Your Own
`17-18
`protoStatusTemplate
`Using protoStatusTemplate Views
`17-24
`Using the Power Registry
`17-24
`Registering Power-On Functions
`17-25
`Registering Login Screen Functions
`17-25
`Registering Power-Off Functions
`17-26
`Using the Battery Information Functions
`17-27
`Summary of Additional System Services
`17-27
`Undo
`Idlers
`17-27
`17-27
`Notification and Alarms
`17-28
`Reporting Progress
`Power Registry
`17-29
`
`17-15
`
`17-18
`
`Chapter 18
`
`Intelligent Assistant 18-1
`
`18-1
`
`About the Assistant
`Introduction
`18-1
`Input Strings
`18-2
`18-2
`No Verb in Input String
`Ambiguous or Missing Information
`18-4
`The Task Slip
`18-5
`Programmer's Overview
`18-8
`Matching Words With Templates
`The Signature and PreConditions Slots
`
`18-4
`
`18-10
`
`17-11
`
`xxi
`
`ARENDI-DEFS00003669
`
`
`
`Case 1:13-cv-00919-LPS Document 311-5 Filed 03/10/21 Page 23 of 200 PageID #: 28667
`
`18-13
`
`18-15
`
`18-16
`
`18-19
`
`18-11
`The Task Frame
`18-11
`The Entries Slot
`18-11
`The Phrases Slot
`18-12
`The OrigPhrase Slot
`18-12
`The Value Slot
`Resolving Template-Matching Conflicts
`18-14
`Compatibility Information
`18-15
`Using the Assistant
`Making Behavior Available From the Assistant
`18-15
`Defining Action and Target Templates
`Defining Your Own Frame Types to the Assistant
`18-17
`Implementing the PostParse Method
`18-18
`Defining the Task Template
`Registering and Unregistering the Task Template
`18-19
`Displaying Online Help From the Assistant
`18-20
`Routing Items From the Assistant
`18-21
`Summary
`18-21
`Data Structures
`18-21
`Templates
`Developer-Supplied Task Template
`Developer-Supplied Action Templates
`Developer-Supplied Target Templates
`18-27
`Assistant Functions and Methods
`Developer-Supplied Functions and Methods
`18-28
`Application Base View Slots
`
`18-22
`18-25
`18-27
`
`18-28
`
`Chapter 19
`
`Built-in Applications and System Data 19-1
`
`19-2
`
`19-2
`Names
`About the Names Application
`19-3
`Names Compatibility
`19-4
`Using the Names Application
`19-4
`Adding a New Type of Card
`19-4
`Adding a New Data Item
`19-5
`Adding a New Card Layout Style
`Adding New Layouts to the Names Application
`19-6
`Using the Names Methods and Functions
`19-7
`Using the Names Soup
`Using the Names Protos
`19-7
`
`19-6
`
`ARENDI-DEFS00003670
`
`
`
`Case 1:13-cv-00919-LPS Document 311-5 Filed 03/10/21 Page 24 of 200 PageID #: 28668
`
`19-8
`
`19-26
`
`19-27
`
`19-31
`
`19-8
`Dates
`About the Dates Application
`19-9
`Dates Compatibility
`19-10
`Using the Dates Application
`19-11
`Adding Meetings or Events
`19-12
`Deleting Meetings and Events
`19-13
`Finding Meetings or Events
`19-14
`Moving Meetings and Events
`Getting and Setting Information for Meetings or Events
`19-17
`Creating aNew Meeting Type
`Examples of Creating New Meeting Types
`19-20
`Miscellaneous Operations
`Controlling the Dates Display
`19-21
`19-22
`Using the Dates Soups
`19-22
`To Do List
`19-22
`About the To Do List Application
`19-23
`To Do List Compatibility
`Using the To Do List Application
`19-23
`Creating and Removing Tasks
`19-24
`19-24
`Accessing Tasks
`Checking-Off a Task
`19-25
`Miscellaneous To Do List Methods
`19-26
`Using the To Do List Soup
`19-27
`Time Zones
`About the Time Zones Application
`19-27
`Time Zone Compatibility
`Using the Time Zone Application
`19-28
`Obtaining Information About a City or Country
`19-29
`Adding a City to a Newton Device
`Using Longitude and Latitude Values
`19-30
`19-30
`Setting the Home City
`19-30
`Notes
`About the Notes Application
`19-31
`Notes Compatibility
`Using the Notes Application
`19-32
`19-32
`Creating New Notes
`Adding Stationery to the Notes Application
`19-33
`Using the Notes Soup
`
`19-19
`
`19-28
`
`19-33
`
`19-15
`
`ARENDI-DEFS00003671
`
`
`
`Case 1:13-cv-00919-LPS Document 311-5 Filed 03/10/21 Page 25 of 200 PageID #: 28669
`
`19-35
`19-36
`19-36
`
`19-36
`
`19-39
`
`19-34
`Fax Soup Entries
`19-34
`About Fax Soup Entries
`19-34
`Using Fax Soup Entries
`19-35
`Prefs and Formulas Rolls
`About the Prefs and Formulas Rolls
`Prefs and Formulas Compatibility
`Using the Prefs and Formulas Interfaces
`19-36
`Adding a Prefs Roll Item
`Adding a Formulas Roll Item
`19-36
`19-36
`Auxiliary Buttons
`19-36
`About Auxiliary Buttons
`Auxiliary Buttons Compatibility
`19-37
`Using Auxiliary Buttons
`Icons and the Extras Drawer
`19-38
`19-38
`About Icons and the Extras Drawer
`19-39
`Extras Drawer Compatibility
`Using the Extras Drawer's Interface for Icon Management
`19-40
`Using Extras Drawer Cursors
`Changing Icon Information
`19-40
`19-40
`Adding a Soup Icon
`Removing a Soup Icon
`19-41
`Creating a Script Icon
`19-42
`Using the Soupervisor Mechanism
`19-44
`System Data
`19-44
`About System Data
`19-44
`Using System Data
`Functions for Accessing User Configuration Data
`Storing Application Preferences in the System Soup
`19-46
`Summary
`19-46
`Constants and Variables
`User Configuration Variables
`19-48
`Protos
`19-49
`Soup Formats
`Functions and Methods
`
`19-43
`
`19-45
`19-45
`
`19-47
`
`19-53
`
`xxiv
`
`ARENDI-DEFS00003672
`
`
`
`Case 1:13-cv-00919-LPS Document 311-5 Filed 03/10/21 Page 26 of 200 PageID #: 28670
`
`Chapter 20
`
`Localizing Newton Applications
`
`20-1
`
`20-1
`
`20-3
`
`20-7
`20-8
`
`20-1
`About Localization
`The Locale Panel and the International Frame
`20-2
`Locale and ROM Version
`20-2
`How Locale Affects Recognition
`Using the Localization Features of the Newton
`20-3
`Defining Language at Compile Time
`20-4
`Defining a Localization Frame
`20-4
`Using LocObj to Reference Localized Objects
`Use ParamStr Rather Than "&" and "&&" Concatenation
`20-6
`Measuring String Widths at Compile Time
`20-6
`Determining Language at Run Time
`Examining the Active Locale Bundle
`20-6
`20-7
`Ch