Objects

1 System Classes
1.1 MetaClass
1.1.1 Special Messages
1.1.2 Utility Messages
1.1.3 Exported Message Ranges
1.2 ProcessClass
1.3 GenProcessClass
1.3.1 Starting and Stopping
1.3.2 Undo Mechanism

2 GenClass
2.1 GenClass Features
2.2 GenClass Instance Data
2.2.1 Instance Fields
2.2.2 Vardata
2.3 GenClass Basics
2.3.1 Visual Monikers
2.3.2 Composite Links
2.3.3 Keyboard Accelerators
2.3.4 Attributes
2.3.5 States
2.4 Modifying GenClass Instance Data
2.4.1 Visual Monikers
2.4.2 Managing Visual Monikers
2.4.3 Managing Keyboard Accelerators
2.5 Generic Trees
2.5.1 Child-Parent Searches
2.5.2 Manipulating Children Directly
2.5.3 Branch Construction-Destruction
2.6 Vardata
2.6.1 Optional Attributes-ATTRs
2.6.2 Hints to the Specific UI
2.6.3 Dynamically Managing VarData
2.7 Special Message Passing
2.7.1 Parent and Child Message Passing
2.7.2 Generic Upward Queries
2.7.3 Object-Specific Queries
2.8 Visual Refreshing
2.9 Setting Sizes
2.10 Activation Messages
2.11 Focus Modifications
2.12 Navigation Methods
2.13 Window Positions and Sizes

3 GenApplication
3.1 GenApplication Basics
3.1.1 Instance Data
3.1.2 Application GCN Lists
3.1.3 Application Instance Reference
3.1.4 Attach and Launch Flags
3.1.5 ApplicationStates
3.1.6 Application Features and Levels
3.1.7 IACP
3.2 Advanced GenApplication Usage
3.2.1 An Application’s Life Cycle
3.2.2 Application Busy States
3.2.3 The GenApplication’s Moniker
3.2.4 Measurement Type
3.2.5 Interaction with the UI

4 GenDisplay / GenPrimary
4.1 A First Look at GenDisplay
4.1.1 GenDisplay Object Structure
4.1.2 Minimizing and Maximizing
4.2 Using the GenPrimary
4.3 Using Multiple Displays
4.3.1 GenDisplayGroup
4.3.2 GenDisplayControl
4.3.3 Using GenDisplayClass Objects

5 GenTrigger
5.1 GenTrigger Overview
5.2 GenTrigger Usage
5.3 Supplemental GenTrigger Usage
5.3.1 Passing Data with a GenTrigger
5.3.2 Interaction Commands
5.3.3 Interpreting Double Clicks
5.3.4 Initiating an Action
5.3.5 Setting a Trigger As the Default
5.3.6 Manipulating Instance Data
5.3.7 Other Hints
5.4 Customizations

6 GenGlyph
6.1 GenGlyph Features
6.2 GenGlyph Basics
6.3 Modifying a GenGlyph

7 GenInteraction
7.1 GenInteraction Features
7.1.1 Sub-Group Interactions
7.1.2 Popup Interactions (Menus)
7.1.3 Dialog Boxes
7.1.4 PopOuts
7.2 GenInteraction Instance Data
7.2.1 GenInteraction Visibility
7.2.2 Standard Interactions (Menus)
7.2.3 GenInteraction Types
7.2.4 GenInteraction Attributes
7.3 GenInteraction Usage
7.3.1 Visibilities
7.3.2 Types
7.4 Supplemental Usage
7.4.1 Initiating Interactions
7.4.2 Dismissing Interactions
7.4.3 Modality for Dialogs
7.4.4 Managing Input
7.4.5 Thread Blocking Routines
7.5 Interaction Commands
7.5.1 InteractionCommand Types
7.5.2 Dialog Control
7.5.3 Standard Response Triggers
7.5.4 Replacing Default Triggers
7.5.5 Triggers Completing Interactions

8 GenValue
8.1 GenValue Features
8.2 GenValue Instance Data
8.3 GenValue Basics
8.3.1 The Value
8.3.2 The Minimum and Maximum
8.3.3 The Increment
8.3.4 GenValue States
8.3.5 Display Formats
8.3.6 Sending an Action
8.4 Supplemental Usage
8.4.1 Adjusting the Value Indirectly
8.4.2 Status Messages
8.4.3 Retrieving Text
8.4.4 Using Value Ratios
8.4.5 Text Filters for the GenValue
8.4.6 Using Ranges in GenValues

9 GenView
9.1 GenView Overview
9.1.1 GenView Model
9.1.2 View Features and Goals
9.1.3 The GenViewControl Objec
9.2 Getting Started: View Basics
9.2.1 Graphics System Review
9.2.2 Defining the Basic View
9.2.3 Handling View Messages
9.3 Basic View Attributes
9.3.1 The GVI_attrs Attribute
9.3.2 Dimensional Attributes
9.3.3 Setting the Background Color
9.3.4 The GVI_increment Attribute
9.4 Advanced Concepts and Uses
9.4.1 The Life of a View
9.4.2 Documents in a View
9.4.3 Drawing the Document
9.4.4 Document and View Size
9.4.5 Document Scaling
9.4.6 Children of the View
9.4.7 Scrolling
9.4.8 Monitoring Input
9.4.9 Linking Views
9.4.10 Setting the Content
9.4.11 Internal Utilities
9.5 The GenViewControl
9.5.1 GenViewControl Instance Data
9.5.2 Notification Received
9.5.3 GenViewControl Example
9.5.4 Messages Handled

10 The Text Objects
10.1 The Text Objects
10.1.1 Which Object Should I Use?
10.1.2 How this Chapter is Organized
10.2 General Text Features
10.2.1 Input Management and Filters
10.2.2 Text Flow Through Regions
10.2.3 Style Sheets
10.2.4 Undo
10.2.5 General Import and Export
10.2.6 Geometry Management
10.2.7 Embedded Graphics and Characters
10.2.8 Search and Replace
10.2.9 Spell-Checking
10.2.10 Printing
10.2.11 Text Controller Objects
10.3 The Text Object Library
10.3.1 Character Attribute Definitions
10.3.2 Paragraph Attribute Definitions
10.3.3 Storage Flags
10.4 Text Object Chunks
10.4.1 The Text
10.4.2 Lines and Fields
10.4.3 Character Runs
10.4.4 Paragraph Runs
10.5 Using VisText
10.5.1 VisText Features
10.5.2 VisText States
10.5.3 VisText VM File Storage
10.5.4 Text Filters
10.5.5 Key Functions
10.5.6 Setting Text Confines
10.5.7 Output Messages
10.5.8 Getting Geometry Information
10.6 Using GenText
10.6.1 GenText Instance Data
10.6.2 GenText Basics
10.7 The Controllers
10.7.1 Character Attribute Controllers
10.7.2 Paragraph Attribute Controllers
10.7.3 Search and Replace and Spell-Checking

11 The List Objects
11.1 List Object Features
11.2 Common Behavior
11.2.1 Applying the Action
11.2.2 State Information
11.3 GenItemGroups
11.3.1 GenItemGroup Instance Data
11.3.2 GenItem Instance Data
11.3.3 GenItemGroup Basics
11.3.4 Working with Items
11.3.5 Scrolling GenItemGroups
11.3.6 GenItemGroup Links
11.3.7 Limitations of the GenItemGroup
11.4 GenDynamicListClass
11.4.1 DynamicList Instance Data
11.4.2 DynamicList Basics
11.4.3 Altering Instance Data
11.5 GenBooleanGroups
11.5.1 GenBooleanGroup Instance Data
11.5.2 GenBooleanGroup Usage
11.5.3 Altering Instance Data

12 Generic UI Controllers
12.1 Controller Features and Functions
12.1.1 Controller Features
12.1.2 How Controllers Work
12.1.3 Using Controllers
12.2 Standard Controllers
12.3 Using Controllers
12.3.1 Using a Basic GenControl Object
12.3.2 Using Tools
12.4 Creating Your Own Controllers
12.4.1 GenControlClass Instance Data
12.4.2 Subclassing GenControlClass
12.4.3 Advanced GenControlClass Usage
12.5 GenToolControlClass
12.6 GenToolGroupClass
12.7 Other Controllers
12.7.1 ColorSelectorClass
12.7.2 GenPageControlClass
12.7.3 The Float Format Controller

13 GenDocument
13.1 Document Control Overview
13.1.1 The Document Control Objects
13.1.2 Document Control Interaction
13.1.3 Document Control Models
13.2 Document Control Data Fields
13.2.1 GenDocumentControl Data
13.2.2 GenDocumentGroup Data
13.2.3 GenDocument Attributes
13.3 Basic DC Messages
13.3.1 Other Document Group Messages
13.3.2 From the Doc Control Objects
13.4 Advanced DC Usage
13.4.1 Document Protocols
13.4.2 Multiple Document Model
13.4.3 Working with DOS files
13.4.4 Special-Purpose Messages
13.4.5 Forcing Actions

14 GenFile Selector
14.1 File Selector Overview
14.2 File Selector Basics
14.2.1 Setting Up the File Selector
14.2.2 Supporting the File Selector
14.2.3 Messages to Handle
14.2.4 Some Common Customizations
14.3 File Selector Instance Data
14.3.1 The GFSI_attrs Field
14.3.2 The GFSI_fileCriteria Field
14.3.3 Matching a File Token
14.3.4 Matching a File Creator App
14.3.5 Matching File Geode Attributes
14.3.6 Masking File Names
14.3.7 Matching File Attributes
14.3.8 Searching Via Callback Routine
14.3.9 Resetting a Filter
14.4 File Selector Use
14.4.1 When a User Selects a File
14.4.2 The Current Selection
14.4.3 Rescanning Directories
14.4.4 Setting Scalable UI Data

15 Help Object Library
15.1 What Is Help?
15.1.1 Normal Help
15.1.2 First Aid
15.1.3 Simple Help
15.2 Adding Help to Your Application
15.2.1 Help Contexts and Help Triggers
15.2.2 Adding Default Normal Help
15.2.3 Bringing Up Help on the Fly
15.3 Customizing Help
15.3.1 Bringing Up Initial Help
15.3.2 Adding the HelpControl
15.3.3 Sizing the Help Dialog Box
15.3.4 Managing Help Types
15.3.5 Managing Help Files
15.3.6 Customizing the Pointer Image
15.3.7 Changing the Help Features
15.4 Creating Help Files
15.4.1 Enabling the Help Editor
15.4.2 Organizing and Writing the Text
15.4.3 Defining Files and Contexts
15.4.4 Using Hyperlinks
15.4.5 Generating the Help Files
15.5 HelpControlClass Reference

16 Impex Library
16.1 Impex Basics
16.1.1 The Impex Objects
16.1.2 How the Impex Objects Work
16.2 Using Impex
16.2.1 Common Impex Concepts
16.2.2 The ImportControl Object
16.2.3 The ExportControl Object
16.3 Writing Translation Libraries
16.3.1 How Translation Libraries Work
16.3.2 Intermediate Formats

17 The Spool Library
17.1 Introduction to Printing
17.2 Simple Printing Example
17.3 How Jobs Get Printed
17.3.1 Printing System Components
17.3.2 Chronology
17.4 Print Control Instance Data
17.4.1 Alerting the GenApplication
17.4.2 Attributes
17.4.3 Page Range Information
17.4.4 Document Size
17.4.5 Print Output Object
17.4.6 Document Name Output
17.4.7 The Default Printer
17.4.8 Adding UI Gadgetry
17.5 Print Control Messages
17.5.1 Common Response Messages
17.5.2 Flow of Control Messages
17.5.3 Working with Instance Data
17.6 Page Size Control
17.7 Other Printing Components
17.7.1 Spooler and Scheduling
17.7.2 Printer Drivers
17.7.3 Page Size Related Routines
17.8 Debugging Tips

18 Graphic Object Library
18.1 Setting Up the Objects
18.1.1 Initializing the Objects
18.1.2 GrObj in a GenDocument
18.2 Managing a Graphic Layer
18.2.1 Selection
18.2.2 Creating GrObjs
18.2.3 Action Notification
18.2.4 Locks and Forbidding Actions
18.2.5 Wrapping
18.2.6 Cut, Paste, and Transfer Items
18.3 GrObj Controllers
18.3.1 GrObjToolControl
18.3.2 GrObjStyleSheetControl
18.3.3 GrObjAreaColorSelector
18.3.4 GrObjAreaAttrControl
18.3.5 GrObjLineColorSelector
18.3.6 GrObjLineAttrControl
18.3.7 GrObjNudgeControl
18.3.8 GrObjDepthControl
18.3.9 GrObjArcControl
18.3.10 GrObjHandleControl
18.3.11 GrObjRotateControl
18.3.12 GrObjFlipControl
18.3.13 GrObjSkewControl
18.3.14 GrObjAlignToGridControl
18.3.15 GrObjGroupControl
18.3.16 GrObjAlignDistributeControl
18.3.17 GrObjLocksControl
18.3.18 GrObjConvertControl
18.3.19 GrObjDefaultAttributesControl
18.3.20 GrObjObscureAttrControl
18.3.21 GrObjInstructionControl
18.3.22 GrObjGradientFillControl
18.3.23 GrObjBackgroundColorSelector
18.3.24 Gradient Color Selectors
18.3.25 Paste Inside Controls
18.3.26 Controls From Other Libraries
18.4 GrObj Body
18.4.1 GrObjBody Instance Data
18.4.2 GrObjBody Messages
18.5 GrObjHead
18.6 GrObjAttributeManager
18.7 Graphic Objects
18.7.1 GrObj Instance Data
18.7.2 GrObj Messages
18.7.3 Shape Classes
18.7.4 GroupClass
18.7.5 PointerClass
18.7.6 GrObjVisGuardian Classes

19 Ruler Object Library
19.1 Ruler Features
19.2 Ruler Setup
19.3 VisRuler Instance Data
19.4 Managing Rulers
19.4.1 RulerShowControl
19.4.2 Mouse Tracking
19.4.3 Grid Spacing and Constraint
19.4.4 Guide Constraints and Guidelines
19.4.5 Other Mouse Constraints
19.4.6 Esoteric Messages

20 Spreadsheet Objects
20.1 Spreadsheet Overview
20.1.1 Quick Look at the Objects
20.1.2 Managing Cell Files
20.1.3 Parsing Expressions
20.2 The Spreadsheet Objects
20.2.1 SpreadsheetClass
20.2.2 Spreadsheet Rulers
20.2.3 The Spreadsheet Controller
20.3 Basic Use
20.3.1 Declaring the Objects
20.3.2 Working with Files
20.3.3 Interacting with the Edit Bar
20.4 Other Spreadsheet Controllers
20.4.1 The SSEditControl
20.4.2 Notes and SSNoteControlClass
20.4.3 Row and Column Size
20.4.4 Sorting and SSSortControlClass
20.4.5 Defining and Using Names
20.4.6 Headers and Footers

21 Pen Object Library
21.1 The Ink Object
21.1.1 Instance Data and Messages
21.1.2 Storing Ink to DB Items
21.2 Working with the Ink DB
21.2.1 Getting Started
21.2.2 Displaying the Data
21.2.3 Titles and Keywords
21.2.4 Navigating the Folder Tree
21.2.5 Managing Notes and Folders
21.2.6 Manipulating Notes
21.2.7 Searching and Traversing the Tree
21.3 InkControlClass

22 Config Library
22.1 Providing the UI
22.1.1 Designing the UI Tree
22.1.2 UI Fetch Routine
22.2 Module Information Routine
22.3 Important Messages
22.4 Object Class Reference
22.4.1 PrefClass
22.4.2 PrefValueClass
22.4.3 PrefItemGroupClass
22.4.4 PrefStringItemClass
22.4.5 PrefBooleanGroupClass
22.4.6 PrefDynamicListClass
22.4.7 TitledGlyphClass
22.4.8 PrefInteractionClass
22.4.9 PrefDialogClass
22.4.10 PrefTextClass
22.4.11 PrefControlClass
22.4.12 PrefTimeDateControlClass
22.4.13 PrefTriggerClass
22.4.14 PrefTocListClass

23 VisClass
23.1 Introduction to VisClass
23.2 The Visible Class Tree
23.3 VisClass Instance Data
23.3.1 VI_bounds
23.3.2 VI_typeFlags
23.3.3 VI_attrs
23.3.4 VI_optFlags
23.3.5 VI_geoAttrs
23.3.6 VI_specAttrs
23.3.7 VI_link
23.4 Using VisClass
23.4.1 Basic VisClass Rules
23.4.2 Drawing to the Screen
23.4.3 Positioning Visible Objects
23.4.4 Handling Input
23.5 Working with Visible Object Trees
23.5.1 Creating and Destroying
23.5.2 Adding and Removing
23.5.3 Getting Visible Tree Information
23.5.4 Sending Messages Through the Tree
23.5.5 Visible Object Window Operations
23.6 Visible Layers and 32-Bit Graphics
23.6.1 Using Visible Document Layers
23.6.2 Using 16-Bit Drawing Commands
23.6.3 The 16-Bit Limit on Visual Bounds
23.6.4 Handling MSG_VIS_DRAW
23.6.5 Managing 32-Bit Geometry
23.6.6 Handling Mouse Events
23.6.7 Setting Up the Objects
23.7 VisClass Error Checking
23.8 Creating Specific UIs
23.9 Basic Summary

24 VisComp
24.1 VisCompClass Features
24.2 VisCompClass Instance Data
24.2.1 VCI_comp
24.2.2 VCI_gadgetExcl
24.2.3 VCI_window
24.2.4 VCI_geoAttrs
24.2.5 VCI_geoDimensionAttrs
24.2.6 Managing Instance Data
24.3 Using VisCompClass
24.3.1 Managing Geometry
24.3.2 Managing Graphic Windows

25 VisContent
25.1 VisContent Instance Data
25.1.1 The VCNI_attrs Field
25.1.2 Fields That Affect the View
25.1.3 Fields That Affect the Document
25.1.4 Fields That Affect Input Events
25.2 Basic VisContent Usage
25.2.1 Setting Up Sizing Behavior
25.2.2 Messages Received from the View

26 Generic System Classes
26.1 The System Objects
26.2 The GenSystem Object
26.2.1 GenSystem Features
26.2.2 GenSystem Instance Data
26.2.3 GenSystem Basics
26.2.4 Advanced GenSystem Usage
26.3 The GenScreen Object
26.3.1 GenScreen Instance Data
26.4 GenField Objects
26.4.1 GenField Features
26.4.2 GenField Instance Data


Table of contents