`
`SW 1m Inside Macintosh, Volume VI
`Macinmsh, Warm"
`Hbmugb 1; mm
`MW about
`
`by Apple Computer, Inc.
`
`93:10:17.0
`
`
`
`
`
`
`uWflflI? *5
`mm In
`MI...” in:
`mm: I
`Want .1 ‘_
`
`
`
`ans-a.
`
`|PR2017-01828
`
`Ubisoft EX1002 Page 1
`
`IPR2017-01828
`Ubisoft EX1002 Page 1
`
`
`
`
`
`
`
`Icon Name
`
`.
`
`.l
`
`Arabic
`
`Canada
`
`Cyrillic
`
`Cyrillic transliterated
`
`Denmark
`
`Faeroe Islands
`
`Germany
`
`Hebrew
`
`Japanese Katakana
`
`Japanese Romaji
`
`Korean
`
`Netherlands, period decimal separator (previously (’19)
`
`Netherlands, comma decimal separator
`
`Roman (U.S.)
`
`Spain
`
`Swiss French
`
`Swiss German
`
`Swiss Italian
`
`Turkey
`
`Turkish, U.S. modified
`
`United Kingdom (previously @)
`
`United States
`
`Color Plate 1. Examples of keyboard icons
`
`afloflfiolmitmitflmfiar
`
`HE
`
`+
`
`1“:.31um”
`
`L
`
`H-I
`
`*
`
`f
`
`:=
`
`E
`
`-
`
`*
`
`a I I
`
`flflflIOJI
`lllfl¥flfl
`
`
`
`|PR2017-01828
`
`Ubisoft EX1002 Page 2
`
`IPR2017-01828
`Ubisoft EX1002 Page 2
`
`
`
` Color Plate II. A colorized window
`
`Border St
`
`In
`
`Color Plate IV. Design for black-and-white
`monitors first
`
`Color Plate V. Don’t mimic color effects
`in black-and-white designs
`
`
`
`|PR2017-01828
`
`Ubisoft EX1002 Page 3
`
`IPR2017-01828
`Ubisoft EX1002 Page 3
`
`
`
`
`
`Color Plate VI. Use light colors
`for large areas
`
`Color Plate VII. Don’t use bright
`colors for large areas
`
`
`
`Color Plate IX. A consistent light source
`(enlarged for detail)
`
`Color Plate X. Inconsistent light sources
`(enlarged for detail)
`
`
`
`|PR2017-01828
`
`Ubisoft EX1002 Page 4
`
`IPR2017-01828
`Ubisoft EX1002 Page 4
`
`
`
`Color Plate XI. An icon family
`
`
`
`Color Plate XII. Consistently designed
`small icons (enlarged for detail)
`
`Color Plate XIII. Inconsistently designed
`small icons (enlarged for detail)
`
`
`
`Color Plate XIV. Icons with a black outline
`
`Color Plate XV. Icons without a black
`
`(enlarged for detail)
`
`outline (enlarged for detail)
`
`
`
`
`
`
`
`Color Plate XVI. Apple icon colors (as marked)
`
`|PR2017-O1828
`
`Ubisoft EX1002 Page 5
`
`IPR2017-01828
`Ubisoft EX1002 Page 5
`
`
`
`Before anti-aliasing
`
`Correctly anti-aliased
`
`'—
`
`Color Plate XVII. Correct anti—aliasing (enlarged for detail)
`
`Before anti-aliasing
`
`Incorrectly anti-aliases!
`
`
`
`|PR2017-01828
`
`Ubisoft EX1002 Page 6
`
`IPR2017-01828
`Ubisoft EX1002 Page 6
`
`
`
` D.
`
`IE;
`ICE
`[1.
`D.
`DD [JD [3% fl“ DE]
`
`
`
`Document
`
`Stationery
`
`Query document
`
`Edition
`
`Extension
`
`Color Plate XXI. Default system icon families
`
`II. I“ I;
`
`;: I.II. I. I“
`I. IIIII II II
`filly
`
`Control Panels
`folder
`
`Color
`
`Portable
`
`User Setup
`
`File Sharing
`
`Color Plate XXII. Examples of control panel icons
`
`
`
`|PR2017-01828
`
`Ubisoft EX1002 Page 7
`
`IPR2017-01828
`Ubisoft EX1002 Page 7
`
`
`
`
`
`Color Plate XXIII. Copying with a pixel map as a mask
`
`
`
`|PR2017-01828
`
`Ubisoft EX1002 Page 8
`
`IPR2017-01828
`Ubisoft EX1002 Page 8
`
`
`
`
`
`Color Plate XXIV. Colorizing
`
`”"9 IIIII
`
`I
`
`”EIIIIIIII-IIIIIII
`Ill-llllmgllllll
`III-lllll!l!llll
`llillu' mm a.
`.. Ll
`
`,-
`
`T
`
`,
`
`_
`
`f .1"-
`
`Color Plate XXV. Default color tables
`
`|PR2017-01828
`
`Ubisoft EX1002 Page 9
`
`IPR2017-01828
`Ubisoft EX1002 Page 9
`
`
`
`Inside Macintosh”
`
`Volume VI
`
`A
`I"?
`
`Addison-Wesley Publishing Cnmpany.
`
`Inc.
`
`Reading Malssuchuactts Menm Park. CuJil'c-mia New York
`Dun Mills.On1nriu Wokinghanl. England Atllslcrdum
`Bonn
`Sydncy
`Singapore
`Tokyo Madrid
`Piififi
`Scuul Milan Mexico City
`'I'alipci
`
`San .qun
`
`|PR2017-01828
`
`Ubisoft EX1002 Page 10
`
`IPR2017-01828
`Ubisoft EX1002 Page 10
`
`
`
`‘ APPLE COMPUTER, INC.
`
`This manual is copyrighted by Apple or by Apple’s sup liers, with all rights reserved. Under
`the copyri ht laws, this manual may not be copied, in w ole or in part, without the written
`consent 0 Apple Computer, Inc. T is exception does not allow copies to be made for others,
`whether or not sold, but all of the material purchased may be sold, given, or lent to another
`person. Under the law, copying includes translating into another language.
`
`The Apple logo is a registered trademark of Apple Computer, Inc. Use of the “keyboard”
`Apple logo (Option—Shift—K) for commercial pu oses without the prior written consent of
`Apple ma constitute trademark infringement an unfair competition in violation of federal
`an state aws.
`
`© Ap 1e Computer, Inc., 1991
`2052 Mariani Avenue
`Cupertino, CA 95014—6299
`(408) 996-1010
`
`A ple, the Apple logo, APDA, AppleLink, AppleShare, AppleTalk, Apple IIGS,
`X, Ether’l‘alk, HyperCard, HyperTalk, ImageWriter, LaserWriter, LocalTalk, Macintosh,
`MPW, MultiFinder, SANE, and TokenTalk are registered trademarks
`of Apple Computer, Inc.
`
`Apple Deskto Bus, Balloon Help, Finder, KanjiTalk, Moof, QuickDraw, ResEdit,
`TrueType, an Zhong—Wen Talk are trademarks of Apple Computer, Inc.
`
`Helvetica and Times are registered trademarks of Linotype Company.
`
`ITC Zapf Dingbats is a registered trademark of International Typeface Corporation.
`
`MacPaint is a registered trademark of Claris Corporation.
`NuBus is a trademark of Texas Instruments.
`
`PostScript is a registered trademark, and Illustrator is a trademark, of Adobe Systems
`Incorporated.
`
`Sony is a registered trademark of Sony Corporation.
`
`UNIX is a registered trademark of UNIX System Laboratories, Inc.
`
`Simultaneously published in the United States and Canada.
`
`ISBN 0-201—57755-0 (book)
`ISBN 0-201-57776-3 (boxed edition)
`1 2 3 4 5 6 7 8 9—MU—9594939291
`First printing April, 1991
`
`|PR2017-01828
`
`Ubisoft EX1002 Page 11
`
`IPR2017-01828
`Ubisoft EX1002 Page 11
`
`
`
`Inside Macintosh
`
`Volume VI
`
`|PR2017-01828
`
`Ubisoft EX1002 Page 12
`
`IPR2017-01828
`Ubisoft EX1002 Page 12
`
`
`
`LIMITED WARRANTY ON MEDIA AND REPLACEMENT
`
`ALL IMPLIED WARRANTIES ON THIS MANUAL, INCLUDING IMPLIED
`WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A 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 FOR
`A 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.
`
`|PR2017-01828
`
`Ubisoft EX1002 Page 13
`
`IPR2017-01828
`Ubisoft EX1002 Page 13
`
`
`
`0E
`
`‘—i..
`('D
`
`=.—in
`
`Contents
`
`xxix
`
`“'IU'U@009.)
`
`Figures, Tables, and Listings
`
`Preface
`About Inside Macintosh
`
`An Overview of the Chapters in Volume VI
`A Road Map to Volume VI
`
`HHHHlII
`
`I
`
`hwwfl—t—OOOOOOONOOUI-P-WNONON-Pw
`p—n—an—A—p—Ip—Ap—np—Ij—tj—j—lp—Ap—p—Ap—nj—j—lj— INNNNNNNbb—Ap—t—H—H—H—H—H—IHr—tr—t
`NNNNPNNNN
`IIIMLAwN—&®mommhmw
`b—tr—tb—lb—tb—tb—l
`
`[\JNNNNN
`
`Introduction to the System Software Version 7.0 Environment
`1
`About This Chapter
`About the System Software Version 7.0 Environment
`The Cooperative Multitasking Environment
`Interapplication Communication
`Sharing Data Among Applications
`Sending Events Between Applications
`Exchanging Message Blocks Between Programs
`Remote Data Access
`Enhanced User Interface
`Sound
`
`TrueType Fonts
`Graphics
`File Management
`Memory Management
`Temporary Memory
`24-Bit and 32-Bit Addressing
`Process Management
`Timing Services
`Compatibility
`Worldwide Development
`Communication Over a Network
`Hardware Interfaces
`
`Overview of Chapters in This Volume
`
`2 User Interface Guidelines
`About This Chapter
`User Interface Design Principles
`Worldwide Software Development
`Cultural Values
`Resources
`
`~
`
`Language Differences
`Text Display and Text Editing
`Default Alignment of Interface Elements
`Keyboards
`Fonts
`User Documentation
`
`Terminology
`The Version 7.0 Environment
`User Feedback
`
`Background Notification
`
`|PR2017-01828
`
`Ubisoft EX1002 Page 14
`
`
`
`IPR2017-01828
`Ubisoft EX1002 Page 14
`
`
`
`Inside Macintosh, Volume VI
`
`IIIIlI
`
`NNNNNNNNNNNNNNPN[\JNNNNNNNNNNNNN
`DOWQJLALQJLALQLAJLAWLQLANNNNN[\JNNNNNr—ti—II—Ar—Ii—‘r—I\IONOO‘x-h-PMNNNfloooomhfiwwNNHO©©mmO©
`""wwawwwwwNOKOOGUIMWUJNI—IOONQNCNGUIW
`UJWUJWWLIAJLIJWWUJWWNM—‘I—‘I—lI—‘F—‘I—ll—‘I—‘I—lr—l
`
`Color Design for Version 7.0
`General Color Design Guidelines
`The Icon Family
`Black-and-White Icons
`Small Icons
`Color Icons
`Consistent Use of Icons
`Customized Icons
`Windows
`Window Positions
`The Zoom Box and Window Behavior
`
`Dialog Boxes
`Modal Dialog Box Behaviors
`Movable Modal Dialog Boxes
`Keyboard Navigation in Dialog Boxes
`Button Labels
`
`Dialog Box Layout
`Dialog Box Messages
`Standard File Dialog Boxes
`Save Changes Dialog Box
`Menus
`File Menu
`Edit Menu
`Font Menu
`
`Help Menu
`Keyboard Equivalents
`Pop-Up Menus
`Standard Pop-Up Menus
`Type—In Pop-Up Menus
`More User Interface Information
`
`3 Compatibility Guidelines
`About This Chapter
`About Compatibility
`Using Memory Wisely
`Using Assembly Language
`Accessing Hardware
`Using Low—Memory Global Variables
`Determining Whether a Trap Is Available
`Running in System Software Version 7.0
`Allowing Multiple Applications
`Supporting Required Apple Events
`Removing Font Size Restrictions
`Operating With Virtual Memory
`Enabling Menus During a Modal Dialog
`Coexisting With the System Menus
`Creating Movable Modal Dialog Boxes
`Creating Pop-Up Menus
`Manipulating Dialog Item Lists
`Counting Items in a Dialog Item List
`Appending Items to a Dialog Item List
`Shortening a Dialog Item List
`
`vi
`
`Contents
`
`|PR2017-01828
`
`Ubisoft EX1002 Page 15
`
`IPR2017-01828
`Ubisoft EX1002 Page 15
`
`
`
`U)WMMWMMWWMWWUJLDWWWWWWWWWWM
`
`IIIIIIIAhAIII
`A#AA&AA#A
`A-b-b-b-b-b-b-b-b-b-b-b-b
`IIIIIIIIIII
`
`IlIIIIIIIIIIIIIIIIImum/1Abbhhhbhhwmwmmwwwwwwww(J14;AOOQOONUIUIANb—IUIL’JNOOOOQOUI-bmwk)
`wwmmNNNNNNNNHHHHHA-PUJN—‘Ofl-PNl—‘kaw
`N_F—O\]LIIUl'—OOOLI1LI‘I
`
`##A-PL»
`
`Localizing Macintosh Programs
`General Guidelines
`Localizing With the Toolbox
`Running Macintosh Programs Under A/UX
`How the AMX Toolbox Works
`
`Using the A/UX Toolbox
`A/UX Compatibility Guidelines
`About the Gestalt Manager
`Using the Gestalt Manager
`Determining Features of the Operating Environment
`Determining Whether Gestalt Is Available
`Interpreting Gestalt Responses
`Interpreting Responses to Environmental Selectors
`Interpreting Responses to Informational Selectors
`Adding Gestalt Selectors
`Modifying Gestalt Selectors
`Specifying Gestalt Selector Functions
`Gestalt Manager Routines
`Getting Information About the Operating Environment
`Adding Selector Codes
`Modifying Selector Codes
`Summary of the Gestalt Manager
`Summary of the Window Manager
`Summary of the Control Manager
`Summary of the Dialog Manager
`
`4 The Edition Manager
`About This Chapter
`About the Edition Manager
`Publishers, Subscribers, and Editions
`Using the Edition Manager
`Receiving Apple Events From the Edition Manager
`Creating the Section Record and Alias Record
`Saving a Document Containing Sections
`Opening and Closing a Document Containing Sections
`Reading and Writing a Section
`Formats in an Edition
`
`Opening an Edition
`Format Marks
`
`Reading and Writing Edition Data
`Closing an Edition
`Creating a Publisher
`Creating the Edition Container
`Opening an Edition Container to Write Data
`Creating a Subscriber
`Opening an Edition Container to Read Data
`Choosing Which Edition Format to Read
`Using Publisher and Subscriber Options
`Publishing a New Edition While Saving or Manually
`Subscribing to an Edition Automatically or Manually
`Canceling Sections Within Documents
`Locating a Publisher Through a Subscriber
`
`Contents
`
`0A
`:—-a-r
`fl:
`
`3I»(I:
`
`Contents
`
`vii
`
`|PR2017-01828
`
`Ubisoft EX1002 Page 16
`
`IPR2017-01828
`Ubisoft EX1002 Page 16
`
`
`
`Inside Macintosh, Volume VI
`
`mmmmmmhmphhppO\O\J\IUINNr-‘O\O\D\OOGUl-bNNNCOOOOQLIJUJ
`AhAAhb§hh#bh&A
`thhhhhhghpphhhph00\l\l\]\l\]O\O‘O\O\O\O\O\O\UILIIJi£II
`""'MLALIIMLAM’—‘III
`LIIUI’JILIIMUIQIIIUILAKIIUILIIUI
`INNN._.,_.,_.,_i_H_H_,_.—.
`
`WNt—COOOOfl-bUJNNOOOOOUIM
`
`t—‘OOOOON—
`
`II50-)
`
`Renaming a Document Containing Sections
`Displaying Publisher and Subscriber Borders
`Text Borders
`
`Spreadsheet Borders
`Object-Oriented Graphics Borders
`Bitmapped Graphics Borders
`Duplicating Publishers and Subscribers
`Modifying a Subscriber
`Relocating an Edition
`Customizing Dialog Boxes
`Subscribing to Non-Edition Files
`Getting the Current Edition Opener
`Setting an Edition Opener
`Calling an Edition Opener Procedure
`Opening and Closing Editions
`Listing Files That Can Be Subscribed To
`Reading From and Writing to Files
`Calling a Format I/O Procedure
`Edition Manager Routines
`Initializing the Edition Manager
`Creating and Registering a Section
`Creating and Deleting an Edition Container
`Setting and Locating 21 Format Mark
`Reading in Edition Data
`Writing out Edition Data
`Closing an Edition After Reading or Writing
`Displaying Dialog Boxes
`Locating a Publisher and Edition From a Subscriber
`Edition Container Formats
`
`Reading and Writing Non-Edition Files
`Summary of the Edition Manager
`
`5 The Event Manager
`About This Chapter
`About the Event Manager
`Introduction to Events
`Low—Level Events
`
`Operating-System Events
`High—Level Events
`Event Processing
`The Event Loop
`Event Masks
`
`Switching Contexts
`Specifying Memory Requirements and Scheduling Options
`The Structure of a 'SIZE’ Resource
`
`Creating a ‘SIZE' Resource
`Using the Event Manager
`Receiving Low—Level Events
`Responding to Operating-System Events
`Receiving High-Level Events
`Identifying High—Level Event Senders and Receivers
`Sending High-Level Events
`
`l}iii
`
`Contents
`
`|PR2017-01828
`
`Ubisoft EX1002 Page 17
`
`IPR2017-01828
`Ubisoft EX1002 Page 17
`
`
`
`
`
`LIILIIUILIILIIUIUIUIUI
`
`WWWWNNNNNWNHOOOOOQO‘x
`000000
`
`##4k-bwmmmwmmeNN—HHUI-RH>—‘O\l0-I>UJ\D\IUI-I>>-OOO\IM4>NOOONOMWMOOOO0MKDAOO00UIJ>W
`
`II|IIIlIIIIIIIII99999o00©00©00a00oqqqqqqoooommmmmmee
`
`00000000000000000
`
`6‘}3.—v-Jn
`
`H:
`
`:1u->In
`
`Contents
`
`Requesting Return Receipts
`Responding to Events From Other Applications
`Searching for a Specific Hi gh-Level Event
`Event Manager Routines
`Receiving Events
`Sending Events
`Receiving a Specific Hi gh-Level Event
`Converting Process Serial Numbers and Port Names
`Summary of the Event Manager
`
`6 The Apple Event Manager
`About This Chapter
`About the Apple Event Manager
`Introduction to Apple Events
`Types of Apple Events
`Components of Apple Events
`Data Structures Within Apple Events
`Responding to Apple Events
`Requesting Services Through Apple Events
`Using the Apple Event Manager
`Accepting an Apple Event
`Installing Entries Into the Apple Event Dispatch Tables
`Handling the Required Apple Events
`Required Apple Events
`Handling the Open Application Event
`Handling the Open Documents Event
`Handling the Print Documents Event
`Handling the Quit Application Event
`Handling Apple Events Sent by the Edition Manager
`Handling the Create Publisher Event
`Getting Data out of an Apple Event
`Getting Data out of a Parameter
`Getting Data out of an Attribute
`Getting Data out of a Descriptor List
`Writing Apple Event Handlers
`Replying to an Apple Event
`Disposing of Apple Event Data Structures
`Interacting With the User
`Creating an Apple Event
`Adding Parameters to an Apple Event
`Specifying a Target Address
`Sending an Apple Event
`Dealing With Timeouts
`Writing an Idle Function
`Writing a Reply Filter Function
`Writing and Installing Coercion Handlers
`The Application Died Event
`Apple Event Manager Routines
`Creating and Managing the Apple Event Dispatch Tables
`Dispatching Apple Events
`Getting Parameters and Attributes From Apple Events
`Counting the Items in Descriptor Lists
`
`Contents
`
`ix
`
`|PR2017-01828
`
`Ubisoft EX1002 Page 18
`
`IPR2017-01828
`Ubisoft EX1002 Page 18
`
`
`
`Inside Macintosh, Volume VI
`
`wocommkmmmmmqmwwoomthwwom
`O\O\O\O\O\O\CIJ\O\O\O\O\O\O\O\b00
`
`6-99
`6-100
`6-101
`6- 103
`6- 105
`
`|lllllllll\]\]\]\]\]III
`IlI|I|IIImumthbwwwwbwwwwwNNNN——-\]G\U~>\OUINHOOQGMbWNNOOO-bWNOOON-k[\J\DO\-I>-I>UJ\]\]\I\I\I\I\I\I\]\]\I\ll\]\l\]\l\l\l\l\l\]\l\l\]\l
`
`
`
`Getting Items From Descriptor Lists
`Getting Data and Keyword-Specified Descriptor Records From AE Records
`Requesting User Interaction
`Requesting More Time to Respond to Apple Events
`Suspending and Resumin g Apple Event Handling
`Creating Apple Events
`Creating and Duplicating Descriptor Records
`Creating Descriptor Lists and AE Records
`Adding Items to Descriptor Lists
`Adding Data and Keyword-Specified Descriptor Records to AE Records
`Adding Parameters and Attributes to Apple Events
`Sending Apple Events
`Getting the Sizes and Descriptor Types of Descriptor Records
`Deleting Descriptor Records
`Deallocating Memory for Descriptor Records
`Coercing Descriptor Types
`Creating and Managing the Coercion Handler Tables
`Creating and Managing the Special Handler Tables
`Summary of the Apple Event Manager
`
`7 The Program-to-Program Communications Toolbox
`About This Chapter
`About the PPC Toolbox
`
`Ports, Sessions, and Message Blocks
`Setting Up Authenticated Sessions
`Using the PPC Toolbox
`PPC Toolbox Calling Conventions
`Specifying Port Names and Location Names
`Opening a Port
`Browsing for Ports Using the Program Linking Dialog Box
`Obtaining a List of Available Ports
`Preparing for a Session
`Initiating a PPC Session
`Receiving Session Requests
`Accepting or Rejecting Session Requests
`Exchanging Data During a PPC Session
`Reading Data From an Application
`Sending Data to an Application
`Ending a Session and Closing a Port
`Invalidating Users
`PPC Toolbox Routines
`
`The PPC Toolbox Parameter Block and Completion Routine
`Initializing the PPC Toolbox
`Using the Program Linking Dialog Box
`Obtaining a List of Ports
`Opening and Closing a Port
`Starting and Ending a Session
`Receiving, Accepting, and Rejecting a Session
`Reading and Writing Data
`Locating a Default User and Invalidating a User
`Summary of the PPC Toolbox
`
`x
`
`Contents
`
`|PR2017-01828
`
`Ubisoft EX1002 Page 19
`
`IPR2017-01828
`Ubisoft EX1002 Page 19
`
`
`
`’7C
`:5._
`
`:,_.v
`
`OI
`
`Contents
`
`8 The Data Access Manager
`About This Chapter
`About the Data Access Manager
`The High-Level Interface
`Sending a Query Through the High-Level Interface
`Retrieving Data Through the High—Level Interface
`The Low—Level Interface
`
`Sending a Query Through the Low-Level Interface
`Retrieving Data Through the Low—Level Interface
`Comparison of the High-Level and Low-Level Interfaces
`Using the Data Access Manager
`Executing Routines Asynchronously
`General Guidelines for the User Interface
`
`Keep the User in Control
`Provide Feedback to the User
`
`Using the High—Level Interface
`Writing a Status Routine for High-Level Functions
`Using the Low—Level Interface
`Getting Information About Sessions in Progress
`Processing Query Results
`Getting Query Results
`Converting Query Results to Text
`Creating a Query Document
`User Interface Guidelines for Query Documents
`Contents of a Query Document
`Query Records and Query Resources
`Query Records
`Query Resources
`Writing a Query Definition Function
`Data Access Manager Routines
`Asynchronous Execution of Routines
`Initializing the Data Access Manager
`High—Level Interface
`Handling Query Documents
`Handling Query Results
`Low—Level Interface
`
`Controlling the Session
`Sending and Executing Queries
`Retrieving Results
`Installing and Removing Result Handlers
`Summary of the Data Access Manager
`
`9 The Finder Interface
`About This Chapter
`About the Finder Interface
`Finder-Related Resources
`
`Creators, File Types, and the Signature Resource
`Icon Resources
`File Reference Resources
`The Bundle Resource
`The Size Resource
`
`Contents
`
`xi
`
`|PR2017-01828
`
`Ubisoft EX1002 Page 20
`
`lllllll\loU‘l-bw
`
`##NNflw-§-§WO\\DNt—>—W—IOO\D\O\DOO
`\ILIIWOQGJ>NN'—OO\IC\
`'\O\O\O\O\O
`tor—sOO-bVDOUILAUJ
`
`'OOOOOOOOOOOOOOOCOO
`wwwmmmmwmmmmmmIIlIIIIIII|lIIIII|I||IlI
`##Jk-b-b-h-PWWWWN—t—r—t—t—r—n—
`OOOOOOOOOOOOOOOOOOOOOOOODOOCOOOOOC
`
`\O\O\D
`
`IPR2017-01828
`Ubisoft EX1002 Page 20
`
`
`
`Inside Macintosh, Volume VI
`
`06600000000\O\IO\O\O\C\D\O\C\D\O\C\O\D\O\O
`
`@mmmmgpggppgwmwwwwwmwwww[\JNv—-oo\]4>-\OOOC\U14>NO\OO\J>LMN\O\COO\IO\O\4>LAO
`
`Messages When the Finder Can’t Find Your Application
`Version Resources
`
`How and When the Finder Launches Your Application
`Finder—Related Changes to the User Interface
`Stationery Pads
`Edition Icons
`Customized Icons
`Aliases
`
`Resolving Alias Files
`Desk Accessories
`Fonts, Sounds, and Other Movable Resources
`Balloon Help for Icons
`Finder Information in the Volume Catalog
`The System Folder and Its Related Directories
`Folder Organization
`Finding Directories
`The Desktop Database
`History of the Desktop Database
`Using the Desktop Database
`Desktop Manager Routines
`Locating and Opening the Desktop Database
`Reading the Desktop Database
`Adding to the Desktop Database
`Deleting Entries From the Desktop Database
`Manipulating the Desktop Database Itself
`Summary of the Finder Interface
`
`1 0 Control Panels
`About This Chapter
`About Control Panels
`
`Writing Control Panel Files
`About the Monitors Control Panel
`
`Designing an Extension for the Monitors Control Panel
`The 'card' Resource
`The 'mntr' Resource
`The Monitor Function
`
`Messages to the Monitor Function
`The 'RECT‘ Resource
`The 'DITL‘ Resource
`The 'ICON' and 'cicn' Resources
`The 'Vers' Resources
`The 'STR#' Resource
`
`The 'gama' Resources
`The FREE, ‘BNDL', Icon Family, and Signature Resources
`The 'INIT' Resource
`
`A Sample of an Extension to the Monitors Control Panel
`Including Another Control Panel Definition in a Monitors Extension File
`Summary of the Extension File for the Monitors Control Panel
`
`xii
`
`Contents
`
`|PR2017-01828
`
`Ubisoft EX1002 Page 21
`
`IPR2017-01828
`Ubisoft EX1002 Page 21
`
`
`
`
`
`
`Contents r‘:C
`
`=H
`('D
`=_.
`I]:
`
`
`
`11—3
`11-4
`11—5
`11—10
`11-14
`11—14
`11-15
`11-16
`11-16
`11-17
`11-17
`11—17
`11—17
`11—18
`11—21
`11—33
`ll-4l
`11—42
`11-49
`11-56
`11-58
`11—61
`11—64
`11—65
`11—65
`11-66
`11—66
`11—67
`11-69
`11-71
`11—72
`11-73
`11-74
`11-75
`11—78
`11-79
`11—83
`
`12-3
`12-3
`12-3
`12-6
`12—8
`12-10
`12-14
`12—15
`12—16
`12-16
`12-17
`
`1 1 The Help Manager
`About This Chapter
`About the Help Manager
`Help Balloon Display
`Default Help Balloons for Menus, Windows, and Icons
`Using the Help Manager
`Providing Text or Pictures for Help Balloons
`Defining the Help Balloon Content
`Using Clear, Concise Phrases
`Using Active Constructions
`Using Parallel Structure
`Using Consistent Terminology
`Defining the Help Balloon Position
`Specifying the Format for Help Balloon Content
`Specifying Options in Help Resources
`Providing Help Balloons for Menus
`Providing Help Balloons for Items in Dialog Boxes and Alert Boxes
`Providing Help Balloons for Window Content
`Help Balloons in Static Windows
`Help Balloons in Dynamic Windows
`Overriding Help Balloons for Application Icons
`Oveniding Other Default Help Balloons
`Adding Your Own Menu Items to the Help Menu
`Writing Your Own Balloon Definition Function
`Help Manager Routines
`Determining Whether Help Is Enabled
`Determining Whether a Help Balloon Is Showing
`Displaying and Removing Help Balloons
`Displaying a Help Balloon
`Using Your Own Menu Definition Procedure
`Removing a Help Balloon
`Using Your Own Tip Function
`Adding Items to the Help Menu
`Getting and Setting the Font Name and Size
`Getting and Setting Information for Help Resources
`Getting the Dimensions of a Help Balloon
`Getting the Content of a Help Balloon
`Summary of the Help Manager
`
`1 2 The Font Manager
`About This Chapter
`About the Font Manager
`Font Terminology
`Font Measurements
`
`Font Scaling
`How the Font Manager Renders TrueType Fonts
`Using the Font Manager
`Adding Font Sizes and Names to the Menu
`Storing a Font Name in a Document
`Using TrueType Fonts in Preference to Bitmapped Fonts
`Preserving the Glyph’s Shape
`
`Contents
`
`xiii
`
`|PR2017-01828
`
`Ubisoft EX1002 Page 22
`
`IPR2017-01828
`Ubisoft EX1002 Page 22
`
`
`
`Inside Macintosh, Volume V]
`
`12-18
`12-18
`12-19
`12-21
`12—22
`
`Font Manager Routines
`Choosing TrueType Fonts Over Bitmapped Fonts
`Scaling Fonts
`Erasing the Font Manager’s Memory Caches
`Summary of the Font Manager
`
`1 3 The Resource Manager
`3 About This Chapter
`3 Resources
`
`3
`—6
`7
`
`Resource Types
`Resource IDs
`Definition Procedures
`
`Font Families and Scripts
`7
`13-10 Resources in the System File
`13—10
`System Icons
`13-11
`Document and Application Icons
`13-12
`Folder Icons
`
`1 3— 12
`13-13
`13- 14
`1 3- 15
`
`System Folder Icons
`Desktop Icons
`Standard File Package Icons
`User Information Resources
`
`Packages
`13-15
`Function Key Resources
`13— 1 6
`13-16 Using the Resource Manager
`13—16
`Using Partial Resources
`13-18
`Creating and Opening Resource Files
`13—18
`Storing Fonts in a Resource Fork
`13- 18 Resource Manager Routines
`13-19
`Creating Resource Files
`13—20
`Opening Resource Files
`13-21
`Reading and Writing Partial Resources
`13-24
`Summary of the Resource Manager
`
`1 4 Worldwide Software Overview
`14-5 About This Chapter
`14-6 About Worldwide Software
`
`14-7
`14—7
`14-8
`14-8
`14- 10
`14— 10
`14-12
`
`14-12
`14— 1 2
`14-13
`
`14- 1 3
`14—13
`
`14-13
`14—14
`14-15
`
`The Graphic Representation of Languages
`Localized Versions of the Macintosh System Software
`Multiple Script Systems and Multiple Languages on the Macintosh Computer
`Identifying Scripts, Languages, and Regions
`About the Script Management System
`About the Script Manager
`Local and Global Variables
`
`Style Runs and Higher-Level Text Organization
`Tokens
`Date Conversion
`
`Geographic Information
`Number Conversion
`
`About the International Utilities Package
`About the International and Keyboard Resources
`About the Macintosh Script Systems
`
`xiv
`
`Contents
`
`|PR2017-01828
`
`Ubisoft EX1002 Page 23
`
`IPR2017-01828
`Ubisoft EX1002 Page 23
`
`
`
`Contents
`
`”I3
`:5F.
`
`C_a.->m
`
`14-16
`14-19
`14—19
`14-20
`14—21
`14-21
`14—23
`14-25
`14-25
`14—26
`14-26
`14—27
`14—27
`14-27
`14—27
`14—28
`14—28
`14-28
`14-28
`14-29
`14—29
`14-30
`14-30
`14-31
`14-32
`14-32
`14-33
`14—33
`14—33
`14-34
`14—34
`14-35
`14—35
`14—35
`14—36
`14—36
`14-36
`14-37
`14-37
`14-37
`14—39
`14-39
`14-40
`14-40
`[4-41
`14-43
`14-43
`14-44
`14-45
`14-45
`14-45
`14—46
`
`The Script Management System and Related Worldwide Components
`Worldwide Control Panels and Desk Accessory
`Installing and Removing Script Systems, Keyboards, and Fonts
`Using the Keyboard Menu
`Selecting Keyboard Layouts
`Distinguishing Scripts
`Keyboards
`Fonts
`Localization
`
`Sorting
`Primary or Secondary Order
`Expansion
`Contraction
`
`Ignorable Characters
`Exceptional Words
`Formats
`Date and Time
`
`Currency and Measurement
`Calendars
`Numbers
`
`An Introduction to Scripts
`Character Representation
`Text Direction
`Contextual Forms
`Diacritical Marks
`
`Uppercase and Lowercase Characters
`Character Reordering
`Word Demarcation
`
`Alignment and Justification of Text
`Representing Scripts on the Macintosh
`Character Set Encoding
`Character Input
`Composition Rules
`Text Manipulation
`Text Rendering
`Using the Script Manager
`Determining the Features of the Script Manager
`Initializing the Script Manager
`Creating Simple Script Systems
`Calling the Script Manager
`Overview of the Script Manager Routines
`Checking and Modifying Global and Local Variables
`Accepting Implicit Script Codes
`Verbs for GetScript and SetScript
`Verbs for GetEnvirons and SetEnvirons
`
`Checking and Setting System Variables
`Setting the Active Keyboard Script
`Obtaining Script Information
`Obtaining Character Information
`Manipulating Text
`Drawing and Editing Text
`Formatting Text
`
`Contents
`
`J: v
`
`|PR2017-01828
`
`Ubisoft EX1002 Page 24
`
`
`
`IPR2017-01828
`Ubisoft EX1002 Page 24
`
`
`
`Inside Macintosh, Volume VI
`
`1447
`14-47
`14-47
`14-48
`14-48
`14-48
`14-48
`14-48
`14-49
`14-49
`14-49
`14-49
`14-50
`14-50
`14-51
`14-55
`14-58
`14-59
`14—60
`l4-61
`14-62
`14-64
`14-65
`14—68
`14-71
`14-72
`14-72
`14-73
`14-73
`14-74
`14-74
`14-75
`14-75
`14-76
`14-77
`14-78
`14-79
`14-80
`14-81
`14-82
`14-85
`14—86
`14-87
`14-90
`14-91
`14-92
`14-95
`14-96
`14-98
`14-98
`14-99
`14-100
`14-100
`14-101
`
`Modifying Text
`Substituting Text
`Truncating Text
`Lexieally Interpreting Different Scripts
`Date and Time Utilities
`Converting Worldwide Dates and Times
`Converting Long Dates
`Modifying and Verifying Date and Time Records
`Reading and Storing Locations
`Number Utilities
`Converting to and From Canonical Number Formats
`Working With Formatted Numbers
`Script Manager Routines
`Localizing Word Selection and Line Break Tables
`Defining Word Boundaries and Line Breaks
`Determining Word Selection: An Example
`Optimized Word Break Tables
`Truncating Text
`Substituting Text
`Substituting and Truncating Text
`Converting Case and Stripping Diacritical Marks
`Handling Justified Text
`Providing for Spacing Between Multiple Style Runs
`Justifying Text on the Roman Script System
`Using the International Utilities Package Routines
`Overview of the International Utilities Package Routines
`Comparing Strings
`Modifying the Standard String Comparison
`Facilitating Interscript Sorting Order
`Accessing the International Resources
`Localizing Dates, Times, and Metric Information
`International Utilities Package Routines
`Script and Language Codes
`Manipulating the 'it12' and 'itl4' Resources
`Specifying Resource Handles Explicitly
`Determining Interscript Sorting Order
`Using the International and Keyboard Resources
`Enhancements to International Resources
`The ‘itlc' Resource
`The ‘itlm‘ Resource
`The ‘itlb‘ Resource
`The 'ith' Resource
`The 'itll' Resource
`The ‘it12' Resource
`The 'it12' Resource Header
`The 'itl4' Resource
`
`Keyboard Types and Modifier Bits
`The 'KCHR’ Resource
`The ’kcs#',
`'kcs4', and 'kcs8' Resources
`The 'KSWP‘ Resource
`The 'itlk' Resource
`
`Key Caps and the 'KCAP’ Resource
`Dead—Key Feedback
`The 'KCAP‘ Resource
`
`xvi
`
`Contents
`
`|PR2017-01828
`
`Ubisoft EX1002 Page 25
`
`IPR2017-01828
`Ubisoft EX1002 Page 25
`
`
`
`Contents
`
`’5c
`:1._.
`(I:
`
`:_.ff.
`
`14—102 Localizing to Other Languages and Regions
`14-102
`Using Resources
`14-102
`Text and Dialog Translation Tips
`14-103
`Adapting Text Operations
`14-104
`Using Fonts
`14-104
`Avoiding Special Character Codes as Delimiters
`14—104
`Using the Standard Roman Character Set
`14-105
`Adapting Keyboard Equivalents
`14—107
`Modifying the Representation of Dates, Times, and Numbers
`14—107 Writing Software for Other Scripts
`1 4-107
`Working With Fonts
`14-108
`Working With Character Codes
`14— 109
`Working With Text Direction
`14-109
`Synchronizing Keyboards and Fonts
`14- 109
`Handling Numbers
`14—1 10
`Identifying Keywords and Tokens
`14-1 10
`Possible Printing Problems
`14-1 11
`Summary of the Script Manager
`14—133
`Summary of the International Utilities Package
`14-138
`Summary of the International Resources
`
`1 5 TextEdit
`15-3 About This Chapter
`15—3 About TextEdit
`l 5 -4 Mixed—Directional Text
`
`15-6
`15-8
`15-9
`15—1 1
`
`Highlighting
`Mouse—Down Regions
`Dual Carets
`Carct Movement Across Direction Boundaries
`
`Font and Keyboard Synchronization
`15—11
`15-13 Double-Byte Characters
`15-14 Vertical Movement of the Carct
`
`15-14 Arrow Key Actions for Selected Text
`15-14 Caret Position at Line Ends
`15-15 Word Selection and Line Breaks
`15 — l 6 Accurate Line Measurement
`
`15-17 TextEdit and TrueType Fonts
`15—17 Using TextEdit
`15—17
`Detemiining the Version of TextEdit
`15—1 8
`Customizing TextEdit’s Features
`15—19
`Measuring the Width of Components of a Line
`15— l 9
`Defining Word Boundaries
`15-19
`Controlling Outline Highlighting, Text Buffering, and lnline Input
`15-19
`Setting Left Alignment for Right-to-Left Directional Scripts
`15—20
`Using WordRedraw for Line Calculations
`15-20
`Using the lineStarts Array to Determine Line Length
`15-21
`Using TextEdit’s Default Click Procedure
`15—21
`TextEdit Routines
`
`15-22
`15-23
`15-23
`15-24
`
`Outline Highlighting, Text Buffering, and Inline Input
`Outline Highlighting
`Text Buffering
`lnline Input
`
`Contents
`
`xvii
`
`|PR2017-01828
`
`Ubisoft EX1002 Page 26
`
`
`
`
`
`IPR2017-01828
`Ubisoft EX1002 Page 26
`
`
`
`Inside Macintosh, Volume V]
`
`Customizing TextEdit
`15—25
`Replacing the End-of-Line Routine
`15-26
`Replacing the Measuring Routines
`15—26
`Replacing the Drawing Routine
`15-28
`Replacing the Hit Test Routine
`15-29
`Replacing the Word Breaking Routine
`15-29
`Backspacing to the Beginning of a Style
`15-31
`Determining the Position of an Ambiguous Offset
`15-31
`Toggling a Style
`15-32
`Determining Styles Across a Selection
`15—34
`Setting Styles in TextEdit’s Scrap Record
`15-36
`Determining the Number of Styles
`15—36
`15-37 TextEdit Data Structures
`
`15-40
`
`Summary of TextEdit
`
`1 6 Graphics Overview
`16 3 About This Chapter
`16 3 About Macintosh Graphics
`16-6 The Components of Macintosh Graphics
`16 6
`QuickDraW
`16 6
`The Interface
`16-8
`The Video Card and Screen
`
`16-9 The Major Data Structures
`16—9
`The RGB Color Record
`16-1
`Color Collections
`
`The Pixel Map Record
`16—11
`Port Characteristics: The Color GrafPort Record
`16-12
`Device Characteristics: The Graphics Device Record
`16— 13
`16- 15 Graphics Initialization
`16-16 The Graphics Path
`16-16
`How Indexed Pixels Work
`16—18
`How Direct Pixels Work
`16—18 Determining the QuickDraw Version
`16-19 What Else to Read
`
`16—20
`
`Summary of Graphics Data Types
`
`1 7 Color QuickDraw
`17-3 About This Chapter
`17—3 About Color QuickDraW
`17-4 Direct Pixels
`
`17-4
`17-6
`
`Pixel Map Record Extens