Search the Amulet manual by keyword, or browse the table of contents below.

TABLE OF CONTENTS


1. Amulet V3.0 Overview

1.1 Introduction
1.2 Amulet Email Addresses
1.3 Using Amulet in Products: Copyright and Licensing
1.4 How to Retrieve and Install Amulet
1.4.1 The Amulet Manual
1.4.2 Retrieving the Amulet source code distribution
1.4.2.1 Retrieving the source distribution via FTP
1.4.2.2 Retrieving the source distribution via WWW
1.4.3 Installing Amulet on a PC
1.4.3.1 Unpacking amulet.tar.gz
1.4.3.2 Windows Environment Variables
1.4.3.3 Building the Library, Sample Applications and Test Programs with Visual C++
1.4.3.4 Building Your Own Applications
1.4.3.5 Using console.cpp to Simulate a Terminal Window
1.4.3.6 Building Windows Applications for Release
1.4.4 Installing Amulet on a Unix Workstation
1.4.4.1 Unpacking amulet.tar.Z
1.4.4.2 Setting your Environment Variables
1.4.4.3 Building the Library, Sample Applications and Test Programs
1.4.4.4 Writing and Compiling New Programs Using Amulet
1.4.4.5 Building Unix Applications for Release
1.4.5 Installing Amulet on a Macintosh
1.4.5.1 Unpacking amulet.sea.hqx
1.4.5.2 Macintosh Environment Variables
1.4.5.3 Processor Support: PowerPC and 68K
1.4.5.4 Building the Amulet library
1.4.5.5 Compiling the Amulet Test Programs and Sample Applications
1.4.5.6 Writing and Compiling New Programs Using Amulet
1.4.5.7 Compiling Programs for Release
1.5 Test Programs and Sample Applications
1.6 Amulet Makefiles
1.6.1 Makefile Variables
1.6.2 Conditional Compilation Symbols
1.6.3 Command Line make Options
1.6.4 Xlib Pathnames
1.7 Preparing Amulet Applications for Release
1.8 Amulet Header Files
1.8.1 Basic header files
1.8.2 Advanced header files
1.8.3 Standard Header File Macros
1.9 Amulet Naming Conventions
1.10 Parts of Amulet
1.11 Changes since Version 2
1.12 Formal, Legal Language

2. Amulet Tutorial

2.1 Setting Up
2.1.1 Install Amulet in your Environment
2.1.2 Copy the Tutorial Starter Program
2.2 The Prototype-Instance System
2.2.1 Objects and Slots
2.2.2 Dynamic Typing
2.2.3 Inheritance
2.2.4 Instances
2.2.5 Prototypes
2.2.6 Default Values
2.2.7 Destroying Objects
2.2.8 Unnamed Objects
2.3 Graphical Objects
2.3.1 Lines, Rectangles, and Circles
2.3.2 Groups
2.3.3 Am_Group
2.3.4 Am_Map
2.3.5 Windows
2.4 Constraints
2.4.1 Formulas
2.4.2 Declaring and Defining Formulas
2.4.3 An Example of Constraints
2.4.4 Values and constraints in slots
2.4.5 Constraints in Groups
2.4.6 Common Formula Shortcuts
2.5 Interactors
2.5.1 Kinds of Interactors
2.5.2 The Am_One_Shot_Interactor
2.5.3 The Am_Move_Grow_Interactor
2.5.4 A Feedback Object with the Am_Move_Grow_Interactor
2.5.5 Command Objects
2.5.6 The Am_Main_Event_Loop
2.6 Widgets
2.7 Debugging
2.7.1 The Inspector
2.7.2 Tracing Interactors
2.8 To Learn More

3. ORE Object and Constraint System

3.1 Introduction
3.2 Version
3.3 Include Files
3.4 Objects and Slots
3.4.1 Get, Peek, Set and Add
3.4.2 Slot Keys
3.4.3 Value Types
3.4.4 The Basic Types
3.4.5 Bools
3.4.6 The Am_String Class
3.4.7 No Type, Zero Type, and Error Types
3.4.8 Using Wrapper Types
3.4.8.1 Standard Wrapper Methods
3.4.9 Storing Methods in Slots
3.4.10 Flag parameters to Get and Set
3.4.11 Using Am_Value
3.4.12 Advanced features of the Am_Value_Type
3.5 Inheritance: Creating Objects
3.6 Destroying Objects
3.7 Parts
3.7.1 Parts Can Have Names
3.7.2 How Parts Behave With Regard To Create and Copy
3.7.3 Other Operations on Parts
3.8 Formulas
3.8.1 Formula Functions
3.8.1.1 Defining Formulas without Macros
3.8.1.2 Formulas Returning Multiple Types
3.8.2 Using Slots in a Formula without Creating Dependencies
3.8.3 Putting Formulas into Slots
3.8.4 Slot Setting and Inheritance of Formulas
3.8.5 Calling a Formula Procedure From Within Another Formula
3.9 Lists
3.9.1 Current pointer in Lists
3.9.2 Adding items to lists
3.9.3 Other operations on Lists
3.10 Iterators
3.10.1 Reading Iterator Contents
3.10.2 Types of Iterators
3.10.3 The Order of Iterator Items
3.11 Connecting C++ Types
3.11.1 Type Support
3.11.2 Pointer Wrappers
3.11.3 Enum Wrappers
3.11.3.1 Enumerated Types
3.11.3.2 Bit Fields and Longs
3.11.4 Writing a Wrapper Using Amulet's Wrapper Macros
3.11.4.1 Creating the Wrapper Data Layer
3.11.4.2 Printing and Editing Values
3.11.4.3 Using The Wrapper Data Layer
3.11.4.4 Creating The Wrapper Outer Layer
3.12 Saving and Loading Objects from Files
3.12.1 Simple Interface For Storing and Loading Objects
3.12.2 Types of Data to Store
3.12.3 General Mechanism
3.13 Errors
3.14 Advanced Features of the Object System
3.14.1 Destructive Modification of Wrapper Values
3.14.2 The Am_Web Constraint
3.14.2.1 The Validation Procedure
3.14.2.2 The Create and Initialization Procedures
3.14.2.3 Installing Into a Slot
3.14.3 Using Am_Object_Advanced
3.14.4 Controlling Slot Inheritance
3.14.5 Controlling Formula Inheritance
3.14.6 Writing and Incorporating Demon Procedures
3.14.6.1 Object Level Demons
3.14.6.2 Slot Level Demons
3.14.6.3 Modifying the Demon Set and Activating Slot Demons
3.14.6.4 The Demon Queue
3.14.6.5 How to Allocate Demon Bits and the Eager Demon

4. Opal Graphics System

4.1 Overview
4.1.1 Include Files
4.2 The Opal Layer of Amulet
4.3 Basic Concepts
4.3.1 Windows, Objects, and Groups
4.3.2 The ``Hello World'' Example
4.3.3 Initialization and Cleanup
4.3.4 The Main Event Loop
4.3.5 Am_Do_Events
4.4 Slots Common to All Graphical Objects
4.4.1 Left, Top, Width, and Height
4.4.2 Am_VISIBLE
4.4.3 Line Style and Filling Style
4.4.4 Am_HIT_THRESHOLD and Am_PRETEND_TO_BE_LEAF
4.5 Specific Graphical Objects
4.5.1 Am_Rectangle
4.5.2 Am_Line
4.5.3 Am_Arrow_Line
4.5.4 Am_Arc
4.5.5 Am_Roundtangle
4.6.6 Am_Polygon
4.6.6.1 The Am_Point_List Class
4.6.6.2 Using Point Lists with Am_Polygon
4.6.7 Am_Text
4.6.7.1 Am_String in Am_Text objects
4.6.7.2 Fonts
4.6.7.3 Japanese Text Input and Output
4.6.7.4 Functions on Text and Fonts
4.6.7.5 Editing Text
4.6.8 Am_Bitmap
4.6.8.1 Loading Am_Image_Arrays From a File
4.6.8.2 Using Images with Am_Bitmap
4.7 Styles
4.7.1 Predefined Styles
4.7.2 Creating Simple Line and Fill Styles
4.7.2.1 Thick Lines
4.7.2.2 Halftone Stipples
4.7.2.3 Clone_With_New_Color
4.7.3 Customizing Line and Fill Style Properties
4.7.3.1 Color Parameter
4.7.3.2 Thickness Parameter
4.7.3.3 Cap_Flag Style Parameter
4.7.3.4 Join_Flag Style Parameter
4.7.3.5 Dash Style Parameters
4.7.3.6 Fill Style Parameters
4.7.3.7 Stipple Parameters
4.7.4 Getting Style Properties
4.8 Groups
4.8.1 Adding and Removing Graphical Objects
4.8.2 Layout
4.8.2.1 Vertical and Horizontal Layout
4.8.2.2 Custom Layout Procedures
4.8.3 Am_Resize_Parts_Group
4.8.4 Am_Fade_Group
4.8.5 Am_Flip_Book_Group
4.9 Maps
4.10 Methods on all Graphical Objects
4.10.1 Reordering Objects
4.10.2 Finding Objects from their Location
4.10.3 Beeping
4.10.4 Filenames
4.10.5 Translate Coordinates
4.11 Windows
4.11.1 Slots of Am_Window
4.11.2 Cursors
4.11.3 Destroying windows
4.12 Am_Screen
4.13 Predefined formula constraints

5. Interactors and Command Objects for Handling Input

5.1 Include Files
5.2 Overview of Interactors and Commands
5.3 Standard Operation
5.3.1 Designing Behaviors
5.3.2 General Interactor Operation
5.3.3 Parameters
5.3.3.1 Events
5.3.3.2 Graphical Objects
5.3.3.3 Active
5.3.3.4 Am_Inter_Location
5.3.4 Top Level Interactor
5.3.5 Specific Interactors
5.3.5.1 Am_Choice_Interactor
5.3.5.2 Am_One_Shot_Interactor
5.3.5.3 Am_Move_Grow_Interactor
5.3.5.4 Am_New_Points_Interactor
5.3.5.5 Am_Text_Edit_Interactor
5.3.5.6 Am_Gesture_Interactor
5.4 Advanced Features
5.4.1 Output Slots of Interactors
5.4.2 Priority Levels
5.4.3 Multiple Windows
5.4.4 Running_Where
5.4.5 Starting, Stopping and Aborting Interactors
5.4.6 Support for Popping-up Windows and Modal Windows
5.4.7 Enabling and Disabling Interactors
5.5 Customizing Interactor Objects
5.5.1 Adding Behaviors to Interactors
5.5.1.1 Available slots of Am_Choice_Interactor and Am_One_Shot_Interactor
5.5.1.2 Available slots of Am_Move_Grow_Interactors
5.5.1.3 Available slots of Am_New_Point_Interactors
5.5.1.4 Available slots of Am_Text_Interactors
5.5.1.5 Available slots of Am_Gesture_Interactors
5.5.2 Modifying the Behavior of the Built-in Interactors
5.5.3 Entirely New Interactors
5.6 Command Objects
5.6.1 Implementation_Parent hierarchy
5.6.2 Undo
5.6.2.1 Enabling and Disabling Undoing of Individual Commands
5.6.2.2 Using the standard Undo Mechanisms
5.6.2.3 The Selective Undo Mechanism
5.6.2.4 Building your own Undo Mechanisms
5.7 Debugging

6. Animation

6.1 Include Files
6.2 Introduction
6.3 Am_Time
6.4 General Interface
6.5 Starting and Stopping Animations
6.6 Turning On and Off Animations
6.7 Parameters of all Animators
6.8 Types of Animations
6.8.1 Am_Animator
6.8.2 Am_Style_Animator
6.8.3 Am_Visible_Animator
6.8.3.1 Fading out
6.8.3.2 Fly Offscreen
6.8.3.3 Shrinking
6.8.4 Am_Fly_Apart_Animator
6.8.5 Am_Blink_Animator
6.8.6 Am_Through_List_Animator
6.8.7 Am_Point_List_Animator
6.8.8 Am_Stepping_Animator
6.8.9 Am_Exaggerated_Animator
6.9 Interruptible Animations
6.10 Commands on Completion of Animations
6.11 The Timing Function
6.12 Creating a Simple Timer
6.13 Debugging Animations
6.14 Creating a New Animator

7. Widgets

7.1 Introduction
7.1.1 Current Widgets
7.1.2 Customization
7.1.3 Using Widget Objects
7.1.4 Application Interface
7.1.4.1 Accessing and Setting Widget Values
7.1.4.2 Commands in Widgets
7.1.4.3 Undoing Widgets
7.2 The Standard Widget Objects
7.2.1 Slots Common to All Widgets
7.2.2 Widget Looks
7.2.3 Border_Rectangle
7.2.4 Buttons and Menus
7.2.4.1 Item Lists and Labels of Commands
7.2.4.2 Commands in Buttons and Menus
7.2.4.3 Accelerators for Commands
7.2.4.4 Am_Menu_Line_Command
7.2.4.5 Am_Button
7.2.4.6 Am_Button_Panel
7.2.4.7 Am_Radio_Button_Panel
7.2.4.8 Am_Checkbox_Panel
7.2.4.9 Am_Menu
7.2.4.10 Am_Menu_Bar
7.2.4.11 Am_Option_Button
7.2.4.12 Am_Pop_Up_Menu_Interactor
7.2.5 Scroll Bars
7.2.5.1 Integers versus Floats
7.2.5.2 Commands in Scroll Bars
7.2.5.3 Horizontal and vertical scroll bars
7.2.5.4 Am_Vertical_Up_Down_Counter
7.2.5.5 Am_Scrolling_Group
7.2.6 Text Input Widgets
7.2.6.1 Text Check Legal Method
7.2.6.2 Command in the Text Input Widget
7.2.6.3 Am_Number_Input_Widget
7.2.6.4 Tabbing from Widget to Widget
7.2.7 Am_Selection_Widget
7.2.7.1 Application Interface for Am_Selection_Widget
7.2.7.2 User Interface to Am_Selection_Widget
7.2.7.3 Highlighting one Handle of a Am_Selection_Widget
7.2.7.4 Multiple Am_Selection_Widgets
7.2.7.5 Drag and Drop
7.3 Dialog boxes
7.3.1 Support functions for Dialog Boxes
7.3.2 Slots of dialog boxes
7.3.3 Am_Text_Input_Dialog slots
7.4 Supplied Command Objects
7.4.1 Graphics Clipboard
7.4.2 Commands for Open and Save
7.4.3 Cycle_Value_Command
7.4.4 Commands to help with Gestures
7.4.5 Am_Graphics_Set_Property_Command
7.5 Starting, Stopping and Aborting Widgets

8. The Gilt Interface Builder

8.1 Acknowledgments
8.2 Introduction
8.3 User Interface
8.3.1 What can be created
8.3.2 Style and Font Properties
8.3.3 Other Object Properties
8.3.4 Commands in the Menus
8.4 Using the Objects with an Application
8.4.1 The ``Generate C++'' dialog box
8.4.2 Slot and Object Names
8.4.3 Creating the Dialog Box or Group
8.4.4 Setting and Accessing the Values of Widgets
8.4.5 Editing the Generated C++ and Header Files

9. Gem: Amulet Low-Level Graphics Routines

9.1 Introduction
9.2 Include Files
9.3 Drawonables
9.3.1 Creating Drawonables
9.3.2 Modifying and Querying Drawonables
9.4 Drawing
9.4.1 General drawonable operations
9.4.2 Size Calculation for Images and Text
9.4.3 Clipping Operations
9.4.4 Regions
9.4.5 Drawing Functions
9.5 Event Handling
9.5.1 Am_Input_Event_Handlers
9.5.2 Input Events
9.5.2.1 Multiple Click Events
9.5.3 Main Loop
9.6 Hints for Using Gem Directly

10. Debugging and the Inspector

10.1 Introduction
10.2 Include Files
10.3 Inspector
10.3.1 Invoking the Inspector
10.3.1.1 Changing the Keys
10.3.2 Overview of Inspector User Interface and Menus
10.3.3 Viewing and Editing Slot Values
10.4 Accessing Debugging Functions Procedurally
10.5 Functions useful in the C++ Debugger
10.6 Hints on Debugging

11. Summary of Exported Objects and Slots

11.1 Am_Style
11.1.1 Constructors and Creators
11.1.2 Style Accessors
11.1.3 Color styles
11.1.4 Thick and dashed line styles
11.1.5 Stippled styles
11.1.6 Am_No_Style
11.2 Am_Font
11.2.1 Constructors and Accessors
11.2.2 Predefined Fonts
11.3 Am_Cursor
11.3.1 Constructors and Accessors
11.3.2 Predefined Cursor
11.4 Am_Time
11.5 Predefined formula constraints
11.6 Opal Graphical Objects
11.6.1 Am_Graphical_Object
11.6.2 Am_Line
11.6.3 Am_Arrow_Line
11.6.4 Am_Rectangle
11.6.5 Am_Arc
11.6.6 Am_Roundtangle
11.6.7 Am_Polygon
11.6.8 Am_Text
11.6.9 Am_Bitmap
11.6.10 Am_Group
11.6.10.1 Am_Resize_Parts_Group
11.6.10.2 Am_Fade_Group
11.6.10.3 Am_Flip_Book_Group
11.6.11 Am_Map
11.6.12 Am_Window
11.7 Interactors
11.7.1 Am_Interactor
11.7.2 Am_Choice_Interactor and Am_One_Shot_Interactor
11.7.3 Am_Move_Grow_Interactor
11.7.4 Am_New_Points_Interactor
11.7.5 Am_Text_Edit_Interactor
11.7.6 Am_Gesture_Interactor
11.8 Widget objects
11.8.1 Am_Border_Rectangle
11.8.2 Am_Button
11.8.3 Am_Button_Panel
11.8.4 Am_Radio_Button_Panel: Am_Button_Panel
11.8.5 Am_Checkbox_Panel: Am_Button_Panel
11.8.6 Am_Menu: Am_Button_Panel
11.8.7 Am_Menu_Bar: Am_Menu
11.8.8 Am_Option_Button
11.8.9 Am_Pop_Up_Menu_Interactor
11.8.10 Am_Vertical_Scroll_Bar
11.8.11 Am_Vertical_Up_Down_Counter
11.8.12 Am_Scrolling_Group
11.8.13 Am_Text_Input_Widget and Am_Password_Input_Widget
11.8.14 Am_Number_Input_Widget
11.8.15 Am_Tab_To_Next_Widget_Interactor
11.8.16 Am_Selection_Widget
11.8.17 Am_Text_Input_Dialog
11.8.18 Am_Choice_Dialog
11.8.19 Am_Alert_Dialog
11.9 Command Objects
11.9.1 Am_Command
11.9.2 Am_Menu_Line_Command
11.9.3 Am_Selection_Widget_Select_All_Command
11.9.4 Am_Graphics_Set_Property_Command
11.9.5 Am_Graphics_Clear_Command
11.9.6 Am_Graphics_Clear_All_Command
11.9.7 Am_Graphics_Cut_Command
11.9.8 Am_Graphics_Copy_Command
11.9.9 Am_Graphics_Paste_Command
11.9.10 Am_Graphics_Duplicate_Command
11.9.11 Am_Graphics_Group_Command
11.9.12 Am_Graphics_Ungroup_Command
11.9.13 Am_Undo_Command
11.9.14 Am_Redo_Command
11.9.15 Am_Graphics_To_Top_Command
11.9.16 Am_Graphics_To_Bottom_Command
11.9.17 Am_Show_Undo_Dialog_Box_Command
11.9.18 Am_Quit_No_Ask_Command
11.10 Undo objects
11.10.1 Am_Undo_Handler
11.10.2 Am_Single_Undo_Object
11.10.3 Am_Multiple_Undo_Object
11.10.4 Am_Undo_Dialog_Box

12. Index


Last Modified: 01:25pm EDT, August 13, 1997