| Title Page | Short Contents | Glossary | Index | Comments |

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


| Title Page | Short Contents | Glossary | Index | Comments |
Copyright © 1997 Gensym Corporation, Inc.