«School of Computer Science Carnegie Mellon University Pittsburgh, PA 15213 This manual describes Version 3.0 of the Amulet User Interface Toolkit, ...»
The Amulet V3.0 Reference Manual
Brad A. Myers,
Ellen Borison, Alan Ferrency, Rich McDaniel,
Robert C. Miller, Andrew Faulring, Bruce D. Kyle,
Patrick Doane, Andy Mickish, Alex Klimovitski
School of Computer Science
Carnegie Mellon University
Pittsburgh, PA 15213
This manual describes Version 3.0 of the Amulet User Interface Toolkit, and replaces all previous
versions: CMU-CS-95-166-R1/ CMU-HCII-95-102-R1 (Jan, 1996),
CMU-CS-95-166/ CMU-HCII-95-102 (June, 1995), and all change documents.
Copyright © 1997 - Carnegie Mellon University This research was sponsored by NCCOSC under Contract No. N66001-94-C-6037, Arpa Order No. B326. The views and conclusions contained in this document are those of the authors and should not be interpreted as representing the ofﬁcial policies, either expressed or implied, of NCCOSC or the U.S. Government.
Keywords: User Interface Development Environments, User Interface Management Systems, Constraints, Prototype-Instance Object System, Widgets, Object-Oriented Programming, Direct Manipulation, Input/Output, Amulet, Garnet.
Abstract The Amulet User Interface Development Environment contains a comprehensive set of tools that make it signiﬁcantly easier to design and implement highly interactive, graphical, direct manipulation user interfaces. Applications implemented in Amulet will run without modiﬁcation on Unix, PC, and Macintosh platforms. Amulet provides a high level of support, while still being Look-and-Feel independent and providing applications with tremendous ﬂexibility.
Amulet currently provides a low-level toolkit layer, which is an object-oriented, constraint-based graphical system that allows properties of graphical objects to be speciﬁed in a simple, declarative manner, and then maintained automatically by the system.
The dynamic, interactive behavior of the objects can be speciﬁed separately by attaching high-level "interactor" objects to the graphics. Higher-level tools, such as the Gilt interface builder, allow parts of the user interface to be layed out without programming.
The Amulet toolkit is available for unlimited distribution by anonymous FTP or WWW. Amulet uses X/11 on Unixbased systems, the native Windows NT or Windows 95 toolkit on PCs, and standard Quickdraw on the Macintosh.
This document contai
1.1 Introduction The Amulet research project in the School of Computer Science at Carnegie Mellon University is creating a comprehensive set of tools which make it signiﬁcantly easier to create graphical, highlyinteractive user interfaces. The lower levels of Amulet are called the ‘Amulet Toolkit,’ and these provide mechanisms that allow programmers to code user interfaces much more easily. Amulet stands for Automatic Manufacture of Usable and Learnable Editors and Toolkits.
This manual describes version 3.0 of Amulet.
The Amulet version 3 release notes describe the differences between Amulet v3 and previous versions of Amulet. Code written for Amulet v2 will need to be edited before it will compile and run properly with Amulet v3.
The Amulet Toolkit is a portable toolkit designed for the creation of 2D direct manipulation grapical user interfaces. It is written in C++ and can be used with Unix systems running X Windows, PC’s running Microsoft Windows NT or ‘95, or Macintosh systems running MacOS.
Amulet has been successfully installed on several platforms. Some of these are at CMU, and some
installations are at other users’ sites:
Unix OS: SunOS, Solaris, HP/UX, IBM AIX, SGI, Linux, SCO, digital unix, NetBSD Compilers: gcc 2.7.2 and 126.96.36.199, ObjectCenter 2.1, AIX xlc, SGI CC, SCO 2.1 C++, Sun C++ 3.0.1 and 4.1 PC OS: Windows NT 3.51 and 4.0 and Windows 95 Compilers: Visual C++ 4.0, 4.2 or 5.0 Mac Compilers: Metrowerks CodeWarrior 10 or CodeWarrior Pro 1 (not CodeWarrior 11) Other OS: OpenVMS, QNX/X-Windows Compilers: DEC CXX 5.4, Watcom 10.6 We are running SunOS and HP/UX using gcc and ObjectCenter, Windows NT 4.0 and Windows 95 using Visual C++, and Macintosh System 7.6 using Codewarrior, so we’ll be best able to help you if you’re using one of these systems.
We have found that most users who try to use a vendor speciﬁc C++ compiler on a Unix workstation (for example, SGI’s CC) run into too many language inconsistencies to successfully build Amulet. We will do what we can to help you install Amulet, but sometimes it’s easier to install a new compiler (gcc is free) than to try to get Amulet to work on a native compiler.
Page 20 Amulet V3.0 Overview There is a known bug in the gcc 2.5.8 compiler involving premature destruction of local variables that prevents it from being able to compile Amulet.
Amulet provides support for color and gray-scale displays. Amulet runs on X/11 R5 and R6, using any window manager such as mwm, uwm, twm, etc. It does not use any X toolkit (such as Xtk or TCL). It has been implemented using the native Windows graphics system on the PC, and standard QuickDraw on the Macintosh. Because of stack-size limitations on the 16-bit Windows operating system, Amulet requires PC users to run Windows NT or Windows 95.
More details about Amulet are available in the Amulet home page on the World Wide Web:
http://www.cs.cmu.edu/~amulet A previous project named Garnet was developed by the same group who is now writing Amulet. It has features similar to those in Amulet, but is implemented in Lisp. For information about Garnet,
please refer to the Garnet home page:
1.2 Amulet Email Addresses There is a mailing list called email@example.com where users and developers exchange information about Amulet. Topics include user questions and software releases. To be added to the list, please send your request to firstname.lastname@example.org.
Please send questions about installing Amulet to email@example.com.
You can also send bug reports directly to firstname.lastname@example.org. This mail is read only by the Amulet developers.
Another mailing list, email@example.com, is available for people who are interested in learning only about new releases of Amulet.
1.3 Using Amulet in Products: Copyright and Licensing Amulet is available for free by anonymous FTP or WWW. Amulet has been put into the public domain. This means that anyone can use Amulet for whatever they want. In particular, Amulet can be used for commercial development without any license or fees. The resulting binaries and libraries can also be distributed commercially or for free without payments or licenses to Carnegie Mellon University (CMU). You can even include portions of the Amulet source code in your projects or products. The only restriction is that the documentation for Amulet is copyrighted, so you cannot distribute the Amulet manual or papers without permission from CMU. In return, CMU assumes no responsibility for how well Amulet works, and will not guarantee to provide any support. If you need more formal legal language, see Section 1.12 below. If you need this formally signed, then replace your company’s name for COMPANY and send it back to us.
Amulet V3.0 Overview Page 21 Of course, the Amulet research group would appreciate any corporate grants or donations to support the further development and maintenance of Amulet.
We would also be interested in discussing grants to support adding speciﬁc features to the system that would make it more useful for your needs. Please contact Brad Myers at firstname.lastname@example.org to discuss this.
If you decide to use Amulet, we would like to be able to mention this in our publicity and reports to our sponsors. (We get recognition for having users, both commercial and research projects.) Please send mail to email@example.com with the name of your project or product. We also like to receive screenshots. If you write papers or advertisements about systems built with Amulet, we would appreciate if you included a mention that you used Amulet, and a reference to this manual, and we would like a copy of your paper for our ﬁles.
For complete license and legal information, please see Section 1.12.
1.4 How to Retrieve and Install Amulet You will download a different ﬁle depending on whether you’re installing Amulet on a Unix, PC, or Macintosh system. You will get only the ﬁles you need to compile Amulet on your machine. If you plan to install Amulet on multiple platform types, you will need to download a different distribution for each platform type.
These instructions assume that a C++ compiler such as gcc, CC, or Visual C++ has been installed properly on your system, and you know the location of your window manager libraries, etc. Amulet will not compile with gcc 2.5.8.
1.4.1 The Amulet Manual The Amulet documentation is also available for free, but it is copyrighted. This means you cannot distribute the Amulet manuals without written permission from the authors.
The Amulet manual is distributed separately from the Amulet source code. It is available in postscript format, either uncompressed, or compressed with compress (for UNIX) or gzip (for the
PC). The amulet manual is also available online. The table of contents is at:
To retrieve the Amulet documentation via WWW, launch your favorite browser and go to the following URL:
http://www.cs.cmu.edu/~amulet/amulet3-documentation.html Follow the instructions on that web page to download a copy of the Amulet manual.
To download the Amulet manual using FTP, connect to ftp.cs.cmu.edu (188.8.131.52) and login as “anonymous” with your e-mail address as the password. Type ’cd /usr0/anon/project/amulet/amulet3’ (note the double amulet’s). Do not type a trailing “/” in the directory name, and do not try to change directories in multiple steps, since the intermediate directories are probably protected from anonymous access.
Page 22 Amulet V3.0 Overview Set the mode of your FTP connection to binary: Some versions of FTP require you to type ’binary’ at the prompt, and others require something like ’set mode binary’.
At the “ftp” prompt, get the manual ﬁle you require using the get command: “ammanual.ps” is raw postscript, “ammanual.gz” is in gzip format, and “ammanual.Z” is UNIX compress format.
The PC gzip ﬁle can be extracted using WinZip 6.2, which is available for evaluation from Nico Mak Computing, Inc. at http://www.winzip.com.
1.4.2 Retrieving the Amulet source code distribution The Amulet source distribution can be retrieved via anonymous FTP, or from the Amulet WWW pages.
184.108.40.206 Retrieving the source distribution via FTP To download the compressed Amulet source code ﬁles via FTP, you’ll need an FTP client program.
FTP to ftp.cs.cmu.edu (220.127.116.11) and login as ’anonymous’ with your e-mail address as the password.
Type ’cd /usr/anon/project/amulet/amulet3’. Do not type a trailing ’/’ in the name of the directory, and do not try to change directories in multiple steps, since the intermediate directories are probably protected from anonymous access.
Set the mode of your FTP connection to binary: Some versions of FTP require you to type ’binary’ at the prompt, and others require something like ’set mode binary’.
At the “ftp” prompt, type “get” followed by the name of the source distribution you require. The UNIX version of Amulet is called “amulet.tar.Z”, the PC version is called “amulet.tar.gz”, and the Macintosh version is called “amulet.sea.hqx”. For example, if you wanted the UNIX version, you’d type “get amulet.tar.Z” and press return.
18.104.22.168 Retrieving the source distribution via WWW
To download the compressed Amulet source code files from the WWW go to the Amulet home
and follow the Amulet3 Release link. You can also connect directly to the URL:
http://www.cs.cmu.edu/~amulet/amulet3-release.html Scroll down to the section of the web page labelled “Downloading the current release of Amulet.” Follow the link appropriate for the version of Amulet you want to download. This will automatically download the compressed Amulet source code to your machine.
Amulet V3.0 Overview Page 23
1.4.3 Installing Amulet on a PC
To install Amulet on your PC, you will need to retrieve the ﬁle amulet.tar.gz as described in Section 1.4.2. If you are using Microsoft’s Internet Explorer, note that it will be confused by the two periods in the ﬁlename and will create a ﬁle with extension.tar. If you change the extension you should be able to successfully unpack the ﬁle as described below.
Procedures for building the Amulet libraries under Windows have changed signiﬁcantly since Amulet Version 2. In particular, we now use long ﬁlenames and we use the same Makeﬁle for both Windows and UNIX. It is not necessary to understand the Makeﬁle to build Amulet, and you may still use Microsoft Developer Studio projects to build your own applications. You may invoke the Amulet Makeﬁle from a Command Prompt using NMAKE or you may invoke the Makeﬁle from a Microsoft Developer Studio project which we have supplied. If you have a need to customize how Amulet is built, see Section 1.6 for a description of the Amulet Makeﬁle structure.
22.214.171.124 Unpacking amulet.tar.gz Once you have retrieved the ﬁle amulet.tar.gz via FTP or WWW, you must extract it into the directory where you want it to reside, preserving the directory structure. The following instructions assume that you will be installing Amulet in the directory C:\amulet.
Amulet V3 for the PC is distributed as a gzipped tar ﬁle. It can be unpacked the Gnu tools gzip and tar, or it can be unpacked using WinZip 6.2. You can download an evaluation copy of WinZip 6.2 from the URL http://www.winzip.com.
To unpack using gzip and tar do the following at the MSDOS prompt. Having downloaded amulet.tar.gz to the parent directory (e.g. C:\), connect to the parent directory and run gzip to decompress amulet.tar.gz producing amulet.tar:
C:\ gzip -d amulet.tar
Next expand the archive using tar: