List of Figures

Figure 3-1	The Layers of GEOS	 CArch : 65

Figure 3-2	A Sample Counter Object	 CArch : 71

Figure 3-3	Objects Using Messages	 CArch : 72

Figure 3-4	A Sample Subclass	 CArch : 74

Figure 3-5	Sample OSF/Motif Menus	 CArch : 81

Figure 3-6	Sample OSF/Motif Dialog Boxes	 CArch : 83

Figure 4-1	The Hello World Sample Application	 CGetSta : 109

Figure 4-2	Structure of Hello World	 CGetSta : 110

Figure 4-3	Generic Tree of Hello World	 CGetSta : 121

Figure 4-4	Hello Primary and View Windows	 CGetSta : 123

Figure 4-5	Hello World's Menu and Dialog Box	 CGetSta : 126

Figure 5-1	An Object Pointer	 CCoding : 160

Figure 5-2	Object and Class Interaction	 CCoding : 161

Figure 5-3	Structures of an Object	 CCoding : 162

Figure 5-4	An Object with Vardata	 CCoding : 163

Figure 5-5	Master Classes and Master Groups	 CCoding : 164

Figure 5-6	A Sample Instance Chunk	 CCoding : 165

Figure 5-7	A Class Tree	 CCoding : 166

Figure 5-8	The ClassStruct Structure	 CCoding : 167

Figure 5-9	Class_masterOffset	 CCoding : 168

Figure 5-10	A Variant Class Object	 CCoding : 173

Figure 5-11	A Resolved Variant Object	 CCoding : 174

Figure 5-12	TicTac's New Game Trigger	 CCoding : 175

Figure 5-13	GenTrigger's Instance Chunk	 CCoding : 176

Figure 5-14	TicTacNewTrigger's Class Tree	 CCoding : 177

Figure 5-15	GenTriggerClass Subclassed	 CCoding : 178

Figure 5-16	Conflicting Message Numbers	 CCoding : 189

Figure 5-17	Variable Data Storage	 CCoding : 196

Figure 5-18	Structure of an Object Tree	 CCoding : 234

Figure 6-1	IACP Clients and Servers	 CAppl : 285

Figure 7-1	The Edit Menu	 CClipb : 300

Figure 7-2	The Transfer VM File	 CClipb : 302

Figure 7-3	Transfer VM File Structure	 CClipb : 305

Figure 8-1	International Formats	 CLocal : 336

Figure 8-2	Localizing Strings	 CLocal : 338

Figure 8-3	Parts of a Number Format	 CLocal : 342

Figure 8-4	Parts of the Currency Format	 CLocal : 344

Figure 9-1	A GCN List of Lists	 CGCN : 356

Figure 10-1	Generic Class Hierarchy	 CUIOver : 377

Figure 10-2	Visible Class Hierarchy	 CUIOver : 378

Figure 10-3	The TicTac Object Trees	 CUIOver : 393

Figure 10-4	The TicTac Game Board	 CUIOver : 397

Figure 10-5	Selection of a Game Piece	 CUIOver : 406

Figure 11-1	Input Flow	 CInput : 420

Figure 11-2	A Pointer Image and Its Mask	 CInput : 436

Figure 11-3	A Sample Target Hierarchy	 CInput : 450

Figure 11-4	Hierarchy Terminology	 CInput : 452

Figure 12-1	Horizontal and Vertical Composites	 CGeom : 475

Figure 12-2	A Complex Dialog Box	 CGeom : 476

Figure 12-3	Examples of Edge Justification	 CGeom : 478

Figure 12-4	Examples of Centered Children	 CGeom : 479

Figure 12-5	Full-Justification of Children	 CGeom : 481

Figure 12-6	Expanding Children to Fit Parents	 CGeom : 482

Figure 12-7	Sample Justifications	 CGeom : 483

Figure 12-8	Drawing Boxes Around Composites	 CGeom : 487

Figure 12-9	Placing Monikers	 CGeom : 488

Figure 12-10	Centering on Monikers	 CGeom : 490

Figure 12-11	Allowing Children to Wrap	 CGeom : 493

Figure 12-12	Implementations of a Reply Bar	 CGeom : 495

Figure 13-1	Sheet Music Excerpt for Example	 CSound : 515

Figure 13-2	Modeling with the ADSR envelope.	 CSound : 525

Figure 13-3	Continuing Instrument Envelopes	 CSound : 526

Figure 13-4	Diminishing Instrument Envelopes	 CSound : 527

Figure 15-1	Heap Compaction	 CMemory : 549

Figure 16-1	A Local Memory Heap	 CLMem : 571

Figure 16-2	Referencing a Chunk	 CLMem : 573

Figure 16-3	Uniform-Size Chunk Array	 CLMem : 585

Figure 16-4	Variable-Size Chunk Array	 CLMem : 586

Figure 17-1	Accessing Files Through the File System	 CFile : 613

Figure 17-2	A Path Through a Directory Tree	 CFile : 615

Figure 18-1	Structure of a VM File	 CVM : 675

Figure 18-2	A Fragmenting VM File	 CVM : 678

Figure 18-3	VM File Compaction	 CVM : 679

Figure 18-4	Saving a backup-enabled VM file	 CVM : 694

Figure 18-5	A VM Chain	 CVM : 701

Figure 18-6	Structure of a VM tree block	 CVM : 703

Figure 18-7	Huge Array Structure	 CVM : 707

Figure 19-1	Dereferencing a DB Item	 CDB : 722

Figure 19-2	Inserting a New Row	 CDB : 733

Figure 21-1	Stream Writer and Reader Interaction	 CStream : 774

Figure 23-1	Clipping	 CGraph : 805

Figure 23-2	Graphics System Architecture	 CGraph : 808

Figure 23-3	Coordinate Spaces	 CGraph : 811

Figure 23-4	Effects of Simple Transformations	 CGraph : 813

Figure 23-5	Rotating an Object About Its Center	 CGraph : 814

Figure 23-6	Ordering Transformation Combinations	 CGraph : 815

Figure 23-7	Document and Device Coordinates	 CGraph : 820

Figure 23-8	Different Device Coordinates	 CGraph : 821

Figure 23-9	Drawing Thin Lines	 CGraph : 822

Figure 23-10	Thirty-two Bit Graphics Spaces	 CGraph : 824

Figure 23-11	GStrings and Associated GStates	 CGraph : 833

Figure 23-12	Graphics Paths	 CGraph : 849

Figure 23-13	Combining Paths	 CGraph : 850

Figure 23-14	Geode-Defined Clipping Paths	 CGraph : 850

Figure 24-1	Point	 CShapes : 860

Figure 24-2	Line	 CShapes : 861

Figure 24-3	Rectangle	 CShapes : 862

Figure 24-4	Ellipse	 CShapes : 863

Figure 24-5	Elliptical Arc	 CShapes : 863

Figure 24-6	Three-point Arcs	 CShapes : 864

Figure 24-7	Advantages of the Three-point Arc	 CShapes : 865

Figure 24-8	Rounded Rectangle	 CShapes : 865

Figure 24-9	Polylines, Polygons, and Fill Rules	 CShapes : 866

Figure 24-10	Splines and Bézier Curves	 CShapes : 868

Figure 24-11	Levels of Smoothness	 CShapes : 870

Figure 24-12	Bitmap	 CShapes : 871

Figure 24-13	GrDrawImage()	 CShapes : 872

Figure 24-14	Path Direction for Winding Fills	 CShapes : 872

Figure 24-15	Path Intersection and Union	 CShapes : 873

Figure 24-16	Sample Region	 CShapes : 875

Figure 24-17	Complicated Region Example	 CShapes : 877

Figure 24-18	TextMode and Drawing Position	 CShapes : 879

Figure 24-19	Common Font Metrics	 CShapes : 882

Figure 24-20	Character Metrics	 CShapes : 884

Figure 24-21	Dithering	 CShapes : 889

Figure 24-22	Custom Hatch Patterns	 CShapes : 893

Figure 24-23	Mix Modes	 CShapes : 896

Figure 24-24	Masks as Repeating Patterns	 CShapes : 898

Figure 24-25	Drawing with Masks	 CShapes : 899

Figure 24-26	LineStyles	 CShapes : 900

Figure A-1	Structure of a Word 	CHardw : 906

Figure A-2	Accessing a Byte in a Segment 	CHardw : 907

Figure A-3	The Four General Registers 	CHardw : 909

Figure D-1	Translating FP to decimal 	CMath : 965

Figure D-2	Diagram of an 80-bit Floating Point Number 	CMath : 966

Figure D-3	The Floating Point Stack 	CMath : 968
