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 Known Bugs
- 1.8.1 Linux bugs
- 1.8.2 Visual C++ bugs
- 1.8.3 Macintosh Bugs
- 1.9 Changes since Version 1.2
- 1.9.1 Changes from V2.0 beta to V2.0 official release
- 1.9.1.1 Minor Changes
- 1.9.1.2 Bug Fixes
- 1.9.2 Changes from V2.0 alpha to V2.0 beta
- 1.9.2.1 Major Changes
- 1.9.2.2 Minor Changes
- 1.9.2.3 Bug Fixes
- 1.9.3 Major Changes between V1.2 and V2.0alpha
- 1.9.4 Minor Changes between V1.2 and V2.0alpha
- 1.9.5 Very Minor Changes between V1.2 and V2.0alpha
- 1.9.6 Bug Fixes between V1.2 and V2.0alpha
- 1.9.7 Summary of Non-Backwards Compatible Changes
- 1.9.7.1 Details
- 1.10 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.1.1 Changing the Keys
- 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
Last Modified: 03:02pm EDT, May 24, 1996