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

TABLE OF CONTENTS

1. Amulet V2.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 Retreiving 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.zip
1.4.3.2 Windows Environment Variables
1.4.3.3 Configuring Visual C++
1.4.3.4 Visual C++ Project Files
1.4.3.5 Compiling The Amulet Library
1.4.3.6 Compiling Test Programs and Demos
1.4.3.7 Using console.cpp to Simulate a Terminal Window
1.4.3.8 Writing and Compiling New Programs Using Amulet
1.4.3.9 PC filenames
1.4.4 Installating 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 Generating the Amulet Library File
1.4.4.4 Compiling Test Programs and Examples
1.4.4.5 Writing and Compiling New Programs Using Amulet
1.4.4.6 Customizing the Makefile.vars.custom Variables
1.4.4.7 Why is my application so big?
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 Creating the Precompiled Header file
1.4.5.4 Compiling The Amulet Library
1.4.5.5 Compiling Test Programs and Demos
1.4.5.6 Writing and Compiling New Programs Using Amulet
1.5 Test Programs and Demos
1.6 Amulet Header Files
1.6.1 Basic header files
1.6.2 Advanced header files
1.6.3 Standard Header File Macros
1.7 Parts of Amulet
1.8 Changes since Version 1.2
1.8.1 Changes from V2.0 alpha to V2.0 beta
1.8.1.1 Major Changes
1.8.1.2 Minor Changes
1.8.1.3 Bug Fixes
1.8.2 Major Changes between V1.2 and V2.0alpha
1.8.3 Minor Changes between V1.2 and V2.0alpha
1.8.4 Very Minor Changes between V1.2 and V2.0alpha
1.8.5 Bug Fixes between V1.2 and V2.0alpha
1.8.6 Summary of Non-Backwards Compatible Changes
1.8.6.1 Details
1.9 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

3. ORE Object and Constraint System

3.1 Introduction
3.2 Include Files
3.3 Objects and Slots
3.3.1 Get and Set
3.3.2 Slot Keys
3.3.3 Value Types
3.3.4 The Basic Types
3.3.5 Bools
3.3.6 The Am_String Class
3.3.7 Using Wrapper Types
3.3.7.1 Standard Wrapper Methods
3.3.8 Storing Methods in Slots
3.3.9 Using Am_Value To Get A Slot Without Errors
3.4 Inheritance: Creating Objects
3.5 Destroying Objects
3.6 Parts
3.6.1 Parts Can Have Names
3.6.2 How Parts Behave With Regard To Create and Copy
3.6.3 Other Operations on Parts
3.7 Formulas
3.7.1 Formula Functions
3.7.1.1 Declaring Formulas
3.7.1.2 Formulas Returning Multiple Types
3.7.2 Using GV
3.7.3 Putting Formulas into Slots
3.7.4 Slot Setting and Inheritance of Formulas
3.7.5 Calling a Formula Procedure From Within Another Formula
3.8 Lists
3.8.1 Current pointer in Lists
3.8.2 Adding items to lists
3.8.3 Other operations on Lists
3.9 Iterators
3.9.1 Reading Iterator Contents
3.9.2 Types of Iterators
3.9.3 The Order of Iterator Items
3.10 Errors
3.11 Advanced Features of the Object System
3.11.1 Destructive Modification of Wrapper Values
3.11.2 Writing a Wrapper Using Amulet's Wrapper Macros
3.11.2.1 Creating the Wrapper Data Layer
3.11.2.2 Using The Wrapper Data Layer
3.11.2.3 Creating The Wrapper Outer Layer
3.11.3 The Am_Web Constraint
3.11.3.1 The Validation Procedure
3.11.3.2 The Create and Initialization Procedures
3.11.3.3 Installing Into a Slot
3.11.4 Using Am_Object_Advanced
3.11.5 Controlling Slot Inheritance
3.11.6 Controlling Formula Inheritance
3.11.7 Writing and Incorporating Demon Procedures
3.11.7.1 Object Level Demons
3.11.7.2 Slot Level Demons
3.11.7.3 Modifying the Demon Set and Activating Slot Demons
3.11.7.4 The Demon Queue
3.11.7.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_Arc
4.5.4 Am_Roundtangle
4.5.5 Am_Polygon
4.5.5.1 The Am_Point_List Class
4.5.5.2 Using Point Lists with Am_Polygon
4.5.6 Am_Text
4.5.6.1 Fonts
4.5.6.2 Functions on Text and Fonts
4.5.6.3 Editing Text
4.5.7 Am_Bitmap
4.5.7.1 Loading Am_Image_Arrays From a File
4.5.7.2 Using Images with Am_Bitmap
4.6 Styles
4.6.1 Predefined Styles
4.6.2 Creating Simple Line and Fill Styles
4.6.2.1 Thick Lines
4.6.2.2 Halftone Stipples
4.6.3 Customizing Line and Fill Style Properties
4.6.3.1 Color Parameter
4.6.3.2 Thickness Parameter
4.6.3.3 Cap_Flag Style Parameter
4.6.3.4 Join_Flag Style Parameter
4.6.3.5 Dash Style Parameters
4.6.3.6 Fill Style Parameters
4.6.3.7 Stipple Parameters
4.6.4 Getting Style Properties
4.7 Groups
4.7.1 Adding and Removing Graphical Objects
4.7.2 Layout
4.7.2.1 Vertical and Horizontal Layout
4.7.2.2 Custom Layout Procedures
4.7.3 Am_Resize_Parts_Group
4.8 Maps
4.9 Methods on all Graphical Objects
4.9.1 Reordering Objects
4.9.2 Finding Objects from their Location
4.9.3 Beeping
4.9.4 Filenames
4.9.5 Translate Coordinates
4.10 Windows
4.10.1 Slots of Am_Window
4.10.2 Destroying windows
4.11 Am_Screen
4.12 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.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. Widgets

6.1 Introduction
6.1.1 Current Widgets
6.1.2 Customization
6.1.3 Using Widget Objects
6.1.4 Application Interface
6.1.4.1 Accessing and Setting Widget Values
6.1.4.2 Commands in Widgets
6.1.4.3 Undoing Widgets
6.2 The Standard Widget Objects
6.2.1 Slots Common to All Widgets
6.2.2 Border_Rectangle
6.2.3 Buttons and Menus
6.2.3.1 Commands in Buttons and Menus
6.2.3.2 Accelerators for Commands
6.2.3.3 Am_Menu_Line_Command
6.2.3.4 Am_Button
6.2.3.5 Am_Button_Panel
6.2.3.6 Am_Radio_Button_Panel
6.2.3.7 Am_Checkbox_Panel
6.2.3.8 Am_Menu
6.2.3.9 Am_Menu_Bar
6.2.3.10 Am_Option_Button
6.2.4 Scroll Bars
6.2.4.1 Integers versus Floats
6.2.4.2 Commands in Scroll Bars
6.2.4.3 Horizontal and vertical scroll bars
6.2.4.4 Am_Scrolling_Group
6.2.5 Am_Text_Input_Widget
6.2.5.1 Command in the Text Input Widget
6.2.5.2 Tabbing from Widget to Widget
6.2.6 Am_Selection_Widget
6.2.6.1 Application Interface for Am_Selection_Widget
6.2.6.2 User Interface to Am_Selection_Widget
6.3 Dialog boxes
6.3.1 Support functions for Dialog Boxes
6.3.2 Slots of dialog boxes
6.3.3 Am_Text_Input_Dialog slots
6.4 Supplied Command Objects
6.4.1 Graphics Clipboard
6.4.2 Am_Graphics_Set_Property_Command
6.5 Starting, Stopping and Aborting Widgets

7. Gem: Amulet Low-Level Graphics Routines

7.1 Introduction
7.2 Include Files
7.3 Drawonables
7.3.1 Creating Drawonables
7.3.2 Modifying and Querying Drawonables
7.4 Drawing
7.4.1 General drawonable operations
7.4.2 Size Calculation for Images and Text
7.4.3 Clipping Operations
7.4.4 Regions
7.4.5 Drawing Functions
7.5 Event Handling
7.5.1 Am_Input_Event_Handlers
7.5.2 Input Events
7.5.2.1 Multiple Click Events
7.5.3 Main Loop

8. Debugging and the Inspector

8.1 Introduction
8.2 Include Files
8.3 Inspector
8.3.1 Invoking the Inspector
8.3.2 Overview of Inspector User Interface and Menus
8.3.3 Viewing and Editing Slot Values
8.4 Accessing Debugging Functions Procedurally
8.5 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
11.2.2 Predefined Font
11.3 Predefined formula constraints
11.4 Opal Graphical Objects
11.4.1 Am_Graphical_Object
11.4.2 Am_Line
11.4.3 Am_Rectangle
11.4.4 Am_Arc
11.4.5 Am_Roundtangle
11.4.6 Am_Polygon
11.4.7 Am_Text
11.4.8 Am_Bitmap
11.4.9 Am_Group
11.4.9.1 Am_Resize_Parts_Group
11.4.10 Am_Map
11.4.11 Am_Window
11.5 Interactors
11.5.1 Am_Interactor
11.5.2 Am_Choice_Interactor
11.5.3 Am_One_Shot_Interactor
11.5.4 Am_Text_Edit_Interactor
11.5.5 Am_Move_Grow_Interactor
11.5.6 Am_New_Points_Interactor
11.5.7 Am_Gesture_Interactor
11.6 Widget objects
11.6.1 Am_Border_Rectangle
11.6.2 Am_Button
11.6.3 Am_Button_Panel
11.6.4 Am_Radio_Button_Panel: Am_Button_Panel
11.6.5 Am_Checkbox_Panel: Am_Button_Panel
11.6.6 Am_Menu: Am_Button_Panel
11.6.7 Am_Menu_Bar: Am_Menu
11.6.8 Am_Vertical_Scroll_Bar
11.6.9 Am_Horizontal_Scroll_Bar
11.6.10 Am_Scrolling_Group
11.6.11 Am_Text_Input_Widget
11.6.11.1 Am_Tab_To_Next_Widget_Interactor
11.6.12 Am_Selection_Widget
11.6.13 Am_Option_Button
11.6.14 Am_Alert_Dialog
11.6.15 Am_Text_Input_Dialog
11.6.16 Am_Choice_Dialog
11.7 Command Objects
11.7.1 Am_Command
11.7.2 Am_Menu_Line_Command
11.7.3 Am_Selection_Widget_Select_All_Command
11.7.4 Am_Graphics_Set_Property_Command
11.7.5 Am_Graphics_Clear_Command
11.7.6 Am_Graphics_Clear_All_Command
11.7.7 Am_Graphics_Cut_Command
11.7.8 Am_Graphics_Copy_Command
11.7.9 Am_Graphics_Paste_Command
11.7.10 Am_Graphics_Duplicate_Command
11.7.11 Am_Graphics_Group_Command
11.7.12 Am_Graphics_Ungroup_Command
11.7.13 Am_Undo_Command
11.7.14 Am_Redo_Command
11.7.15 Am_Graphics_To_Top_Command
11.7.16 Am_Graphics_To_Bottom_Command
11.7.17 Am_Show_Undo_Dialog_Box_Command
11.7.18 Am_Quit_No_Ask_Command
11.8 Undo objects
11.8.1 Am_Undo_Handler
11.8.2 Am_Single_Undo_Object
11.8.3 Am_Multiple_Undo_Object
11.8.4 Am_Undo_Dialog_Box

12. Index


Last Modified: 03:55pm EDT, April 11, 1996