GF/ST Programmer Guide
Preface
Trademarks
Introducing GF/ST
Begin At The Beginning
What GF/ST Does For You
Installation
Conventions Used in This Document
What You Absolutely Must Know to Use GF/ST
The GF/ST Event Model
How to Get Up to Speed Quickly
More Tips
Tools vs. Frameworks
Support
Basic Concepts and Classes
GFGraphicObject
GFDrawingInterface
GFDrawingPane
GFHandle
GFTool
More Critical Players
PsiEventModel
Constraints
GFLocator
GFPositionConstraint
GFTrackHandle
Portability Considerations
Why Do You Use That Syntax?
Licensing
User-Supplied Goodies
Starting Out
Learning by Example
Using the Demo Launcher
Understanding the Demo Launcher
Using the Drawing Editor
Basic Drawing Skills
Menus
Handles
Moving a Graphic Object
Multiple Selections, Grouping, and Composites
Front-Back Ordering
Undo
Host Components
Performance
Understanding the Drawing Editor
Communication
Handle Concepts
Tool Concepts
Using the 3-D Figures Demo
Understanding the 3D Figures Demo
More About Handles
Composites and Grouping
Dependent Lines
More about Menus
Understanding the GFAboutDialog
Understanding the Visual Inspector
The Approach
New Classes
The Visual Inspector Put in Context
GF/ST Application Design & Decisionmaking
Designing a New Application
The Scenario
The Problem Domain
Creating and Opening the Network Editor UI
Opening Lines
Designing and Setting Up the Layout
Decisions Made in Building the Network Editor
Choosing GO’s
Choosing Tools
Adding a GO for a Network Node
The Method
Creating a Network Node
Hooking to Events
Positioning the GO
Making it Display
Tracking GO’s
Creating a GO in the Network Editor
Group or Composite?
Creating the GFNetworkNode GO
Setting the metaObject
Specializing Handles in the Network Editor
Getting the node from the metaObject
Creating a GFConnectionHandle
Where Do Connection Lines Snap To?
Determining Valid Targets for Connection
Where Are Connections Drawn To?
What To Do After Making a Connection
Don’t Forget to Return the Handles
Removing Nodes in the Network
Determining What GO’s are Selected
Removing Connections
Removing a GO and Cleaning Up
How To’s
How To Use the How To’s
Releasing Resources
Knowing When to Let Go of a GO
Mostly GFGraphicObject-Related How To’s
Creating Simple Figure GO’s
Creating Group and Composite GO’s
Creating Locators for Dependent GO’s
Creating Dependent GO’s
Setting the Menu of a GO
Creating a GFDrawingPane to Add to a Window
Setting the Menu of a Drawing
Locking down a GO
Adding and Removing a GO
Manipulating GO’s
Using GO’s at Line Ends
Miscellaneous Topics
Coordinate Systems and Scaling
Quad Trees
Mementos
Printing
Mostly Handle-Related How To’s
Track Handles
GFTrackHandle
GFParameterizedTrackHandle
Routing Messages Directly to Other Objects
Handles, Scrolling, and Messages
Handles and Grids
Taking Action When a Handle is Used
Setting the Handles for a GO
Setting the Position Handle for a GO
Event-Related How To’s
Tracing the Effects of an Event
Adding New Events
Class Hierarchy, Protocol and Events
GF/ST Class Hierarchy
Description of GF/ST Classes
ActionSequence
Color
ColorDialog
EvaluableAction
GFAbsoluteTrackHandle
GFAbstractEndPlug
GFAbstractPathGO
GFApplicationWindowES
GFBezierGO
GFBoundedStack
GFButtonCreator
GFButtonGO
GFCachedGO
GFCategory
GFClosedPathGO
GFCompositeGO
GFConnectionHandle
GFConstraint
GFCoordinateControl
GFCreationTool
GFCursorManager
GFDamagedRegion
GFDependentLineGO
GFDependentOrthogonalPathGO
GFDirectedPathGO
GFDoubleBufferingGraphicsDisplaySystem
GFDrawing
GFDrawingActionTool
GFDrawingInterface
GFDrawingPane
GFDrawingView
GFEllipseGO
GFEmptyRectangle
GFEntryFieldCreator
GFEvaluableActionEndPlug
GFFastSelectionTool
GFFocusTool
GFGC
GFGOActionTool
GFGoEndPlug
GFGraphicObject
GFGraphicsDisplaySystem
GFGroupGO
GFHandle
GFHostWidgetGO
GFHundredthMillimeter
GFImageGO
GFLineGO
GFListPaneCreator
GFLocator
GFLogicalUnit
GFMemento
GFMultiheadedConstraint
GFOpaqueBitmap
GFOrthogonalPathGO
GFOwnDCDrawingPane
GFPalettePane
GFParameterizedTrackHandle
GFPixmap
GFPolylineGO
GFPositionConstraint
GFPrintDialog
GFPrinterPen
GFPrintingGC
GFQuadTreeElement
GFRectangleGO
GFRoundedRectangleGO
GFScalingGC
GFScratchPixmap
GFSelectionTool
GFSelectionTrackHandle
GFSplineGO
GFTextEditCreator
GFTextGO
GFThousandthInch
GFTool
GFToolPalette
GFTrackHandle
GFTranslatingGC
GFTwip
GFWidgetCreator
PsiEventModel
RectangleFromUserWindow
Summary of Events
Events Explained
Appendix A - The Visual Inspector
What is the Visual Inspector?
Visually Inspecting Objects
Specific Inspectors for Specific Objects
Changing Object State
Visual Inspector Menu
Object-Specific Menu Options
Display Menu
Open Menu
Remove Field Menu
Show Fields Menu
Visual Inspector Menu
Appendix B
History of Product
Changes From Earlier Releases
Known Problems
Direct Manipulation Graphics Framework (GFST)
Appendix B