Contents
Preface
- About This Guide
- Version Information
- Audience
- Organization
- A Note About the API
- Conventions
- Typographic
- Instructions
- Procedure Signatures
- Instructions and G2 Constructs
- Related Documentation
Part I Introduction
Chapter 1 Overview of the G2 Menu System
- Introduction
- What is GMS?
- GMS Menu Types
- Pulldown Menus in Menu Bars
- Popup Menus
- Cascade Menus
- GMS Menu Entries
- Components of a Menu Entry
- Types of Menu Entries
- Selecting and Choosing Menu Entries
- Enabled and Disabled Menu Entries
- Adding a Check to a Leaf Entry
- Associating Help with a Menu Entry
- Overview of GMS Menu Customizations
- Using Dividers in Menu Panels
- Choosing a Menu Entry
- Defining GMS Menus Statically or Dynamically
- Customizing GMS Menus Globally or for Each User
Chapter 2 Getting Started
- Introduction
- Installing GMS
- Requirements for Running GMS
- Starting GMS
- GMS Modules
- The GMS Demo KB
- Using the Demo KB
- Navigating a Demo
Part II Creating a Menu
Chapter 3 Defining a Simple Menu
- Introduction
- Components of a Menu Specification
- Example of a GMS Menu Specification
- Displaying the GMS Palette
- Cloning Menu Templates
- Using Root Templates
- The Menu Bar Template
- The Popup Menu Template
- Using Entry Templates
- Cascade Menu Template
- Leaf Entry Template
- Using Connections
- Submenu Connection
- Peer Menu Connection
- Managing Connection Stubs
- Specifying Menu Properties
- Attributes of a Root Template
- Additional Attribute for Popup Menus
- Notes on the Root Template's Properties
- The Root Template's Menu Label
- The Root Template's Key
- Attributes of a Menu Entry Template
- Additional Attribute of a Cascade Menu Template
- Additional Attributes of a Leaf Entry Template
- Accessing a Menu Entry's Properties Programmatically
- Accessing a Menu Entry's Label
- Specifying Menu Entry Initial States
- Checking and Unchecking Menu Entries
- Specifying the Effect of Choosing a Leaf Entry
Chapter 4 Compiling the Menu Specification
- Introduction
- How GMS Compiles Menu Specifications
- The Menu Translation
- The Menu Instance
- The Handle
- Compiling One or All Menus
- Displaying Compiled Menus
- GMS Handles for G2 Windows
- Referencing Menus and Menu Entries
- Menu Indexes
- Mapping Between User Keys and Menu Indexes
- Displaying and Undisplaying Menu Bars
Chapter 5 Using Specialized Templates
- Introduction
- Predefined Leaf Templates
- Changing the User Mode
- Change User Mode Template Attributes
- Displaying a Workspace
- Show Workspace Template Attributes
- Specifying the Workspace to Display
- Specifying the Display Scale
- Specifying the Workspace Location
- Conflicting Display Point Specifications
- Missing Display Point Specifications
- Specifying a Display Point Symbolically
- Specifying a Display Point Numerically
- Specifying a Location Offset
Chapter 6 Defining Popup Menus
- Introduction
- Defining a Popup Menu
- Creating a Menu Specification for a Popup Menu
- Specifying a Popup Menu Header
- Displaying Popup Menus
- Using gms-popup-subscriber to Display a Popup Menu
- Accessing G2 Tables and Modifying G2 Attributes
- Using G2 Configurations to Display a Popup Menu
Chapter 7 Writing and Using Callback Procedures
- Introduction
- Types of GMS Callback Procedures
- Callback Procedure Syntax
- Using Callback Procedure Arguments
- Obtaining the G2 Window
- Obtaining the Initiating Item for a Popup Menu
- Obtaining Menu Entries and Attribute Values
- Menu Levels
- Obtaining Menu Indexes from an Activation Path
- Obtaining Menu Entry Attributes in an Activation Context
- Obtaining All Cascade Menu Entries
- Providing Additional Data to a Callback Procedure
- Storing Information in Template Keys
- Using Template Keys to Access Information
- Other Strategies for Providing Data to a Callback
- Distributing Data over Multiple Menu Templates
- Specifying a Default Callback Procedure
- Invoking a Procedure When a Menu is Displayed or Hidden
- Invoking a Procedure on Selection and Unselection
Chapter 8 Including Additional Features in a Menu
- Introduction
- Divider Templates
- Separators
- Breaks
- Justifiers
- Specifying Additional Menu Entry Properties
- Specifying a Dialog Entry on a Menu Entry Label
- Specifying a Menu Entry Accelerator Label
- Specifying Help Information
- Placing Menu Specifications on Multiple Workspaces
- Using Connection Posts to Distribute Menu Specifications
- Using SubPanel Containers to Distribute Menu Specifications
- Extending Menu Specifications Across Modules
- Creating Reusable Cascade Menus
Chapter 9 Dynamically Defining and Changing Menus
- Introduction
- Dynamically Constructed Menu Specifications
- Specifying a Dynamic Menu
- Attributes of Dynamic Templates
- Dynamic Menu Compilation and Display
- Panel Constructor Procedure Syntax
- Writing a Panel Constructor
- Specifying Labels for Templates in Dynamic Panels
- Using Template Lists
- Defining and Displaying a Dynamic Cascade Menu
- Defining and Displaying a Dynamic Popup Menu
- Dynamic Menus and Callback Procedures
- Reducing Dynamic Menu Overhead
- Constructing Dynamic Menus at Compilation Time
- Reusing Dynamically Constructed Templates
- Memory Management Considerations
- Dynamically Switching Between Applications
- Switching Menu Bars
Part III Controlling GMS
Chapter 10 Controlling Access to Menus
- Introduction
- Controlling Access to Menus
- Locking All Menus Against User Input
- Disabling and Enabling Menu Entries
- Restricting Menus in Specified User Modes
- Undisplaying All Menus
Chapter 11 Controlling the Appearance of Icons
- Introduction
- Specifying a Menu Entry Icon
- Controlling Icon Color
- Configuring a GMS Icon
- Attributes of a GMS Icon Specification
- Default Highlightable Icon Colors
- Specifying Highlightable Icon Colors
- Other Uses for Highlightable Icons
- Specifying Icon Scaling
- Avoiding Icon Scaling Entirely
- Providing Different Icons for Different Fonts
- Controlling Icon Scaling
- Making Additional Room for an Icon
Chapter 12 Internationalizing GMS Menus
- Introduction
- Making Menu Text International
- Specifying that GMS is to Use GFR
- Specifying the Language of Translation
- Specifying the Translation Dictionary
- The GMS Text Resources
- Internationalizing Extensible Menus
- Internationalizing Dynamic Menus
Chapter 13 Configuring Global GMS Characteristics
- Introduction
- Attributes of a Global Settings Object
- Managing Global Settings
- Global Settings for Multiple Applications
- Specifying Global Settings
- Specifying Automatic GMS Startup
- Preserving the Compiled Resource on Reset
- Specifying the Maximum Number of Entries
- Suppressing Global Consistency Checking
- Specifying Internationalization
Chapter 14 Customizing the GMS Interface to the User
- Introduction
- User Preferences Objects
- Managing User Preferences
- Obtaining the Current User Preferences Object
- Creating a User Preferences Object
- Registering Individual User Preferences
- Specifying Generic User Preferences
- Searching for User Preferences
- Changing the User Preferences Currently in Effect
- Specifying User Preferences
- Specifying Font and Separator Size
- Controlling Help Information
- Controlling Colors
- Specifying Menu Navigation Modes
- Controlling Menu Blinking
- Designating an Initial Menu Bar
- Raising the Menu Bar to the Top
- Specifying Internationalization
Chapter 15 Specifying the Interface Between GMS and G2
- Introduction
- Accessing GMS Resources from Outside GMS
- Accessing the Compiled Resource
- Executing a Callback Procedure
- Implementing Keyboard Accelerators
- Handling Mouse Events for Popup Menus
- Configuring GMS to Handle Mouse Events
- Managing a Popup from a Mouse Tracking Procedure
Chapter 16 Managing GMS Programmatically
- Introduction
- Compiling and Building Menus
- Compiling Menus
- Building Menus
- Changing Global Settings
- Managing User Preferences
- Changing User Preferences
- Resetting GMS Without Resetting G2
Part IV GMS Appendixes
Appendix A GMS API Reference
- The GMS API
Appendix B GMS Common Names and Formal Names
- GMS Names Alphabetically by Common Name
Part V Glossary and Index
Glossary
Index
Copyright © 1997 Gensym Corporation, Inc.