

                           Introduction to the
                      Andrew  User Interface System
                                Andrew7.5

The Andrew User Interface System (Andrew7.5) is an integrated set of
tools for Unix(tm) running under X11(tm).  Depending on which packages
you have installed, Andrew lets you
	create, edit, use, and mail 
both documents and applications which contain
	typographically formatted text 
	and embedded objects.
Everything you see on the screen can be printed to any PostScript(tm) printer.

Andrew applications include
	ez - both a word processor 
		and a program source editor
	help - a help browser
and the following which are both applications and embeddable objects
	figure - a drawing editor
	raster - a bitmap editor
	table - for both spreadsheets and printed tables
	image - for displaying multi-color images
	eq - equations.
Many objects permit other objects--of any kind--to be embedded within
them.  Andrew provides an open system, the Andrew Toolkit (ATK), so
programmers can create new objects that can be embedded as easily as
those system-defined objects.  The Andrew Message System (AMS) provides
a multi-media interface to mail and bulletin-boards.  AMS supports
several mail management strategies and implements many advanced features
including authentication, return receipts, automatic sorting of mail,
vote collection and tabulation, enclosures, audit trails of related
messages, and subscription management.

What is installed?

Andrew7.5 is installed by loading up to six "packages," the first of
which must be 'w', the word processing packages.  Your site may also
have installed any of these additional packages:

    h - 'help' browser, help documents, and source code editors for:
         assembler c c++ help files idl lisp modula-2 modula-3 pascal
        perl rexx

    i - major insets: figure, image, raster, table; the ness
        scripting language and the ADEW developer's tool.

    m - mail and bulletin board reader, write, and manager

    d - programmer documentation

    a - everything not included in the above

A bit of history

In 1982 Carnegie Mellon and IBM entered into a joint venture and formed
the Information Technology Center to design a very powerful, advanced
function workstation and distributed computing environment on campus.
This environment is known as the Andrew System, named for two of the
university's benefactors, Andrew Carnegie and Andrew Mellon.  In 1992,
the School of Computer Science formed the Andrew Consortium to extend,
support and distribute the Andrew User Interface System.  The term
"Andrew"  is used for many different parts of the campus computing
environment, but here it refers only to the user interface applications
and toolkit.


______________________________________________________
Running Andrew

To run Andrew your Unix shell's environment variables must include
definitions for ANDREWDIR and PATH.  You first have to find out where
Andrew has been installed on your computer, the value /usr/local/andrew/
is common.  For non-Bourne shells like csh and tcsh, you can set your
environment variables with these commands.

	setenv ANDREWDIR /usr/local/andrew	(or whatever)
	setenv PATH $ANDREWDIR/bin:$PATH 

For Bourne shells like sh, bash, and ksh, the commands are 

	ANDREWDIR=/usr/andrew; export ANDREWDIR
	PATH=${ANDREWDIR}:$PATH

The lines above can be added to your shell's initialization file to have
Andrew available every time you log in.  For csh the initialization file
is $HOME/.cshrc and for sh it is $HOME/.profile.


Extensive help files are available (if the 'h' package has been
installed) under various keywords listed below.  To see help on some
keyword, invoke the help system with a command like ("%" is the prompt
printed by the system)
	% help tour

Once the help system is running you can ask it for help on additional
topics: select the menu item "Show help on ...".  When the prompt
appears in the bottom line of the window, type the topic name and press
the return key.  Useful topics to begin with include: menus, mouse,
windows, scrollbar, help, ez, messages.  The tour topic lists a number
of other introductory documents.


Andrew Demo

In order to get a feel of the Andrew User Interface System, we've
provided a demo environment you can navigate through.  To start it up,
type the following at the shell prompt (if the 'a' package has been
installed).

	% launch


______________________________________________________
User interface

A few user interface tools are used across all Andrew applications. 
Here are hints to their use.

Scrollbar

The scroll bar is the column on the left of your windows.  When a
document is too long to show its entire contents in a window, you can
use the scroll bar to bring different parts of the document into view. 
The scroll bar consists of 4 parts:

    1.  The buttons at either end of the bar.  A click on one of these
    moves the display immediately to the beginning or end of the
    document.
    2.  The bar itself--the long outer rectangle between the two end
    buttons.  The extent of the document is mapped to this bar so each
    point on the bar corresponds linearly to a point in the document.
    3.  The "elevator"--a rectangle within the bar.  It indicates what
    portion of the entire document is currently displayed in the window.
    4.  The "dot"--a small square or narrow rectangle within the bar. 
    It indicates what region of the document is currently selected.
You can drag the eleveator to view a different part of the document.  Or
you can click the left mouse button to scroll forward through the
document or the right mouse button to scrool backwards.  For more
detailed information on scroll bars, request help on scroll.  

Menus

Menus are cards which contain lists of actions you can take on an entire
window, or on information inside a window.  "Pop-up" menus are invisible
until you pop them up by pressing the middle mouse button;   "pull-down"
menus are pulled down from the menu bar at the top of the window.   The
default menu is the "pop-up", which is the described in this document. 
To learn more about "pull-down" menus,  see the  menubar help file.

There are two different styles of using pop-up menus.   (On machines
with only two buttons, the middle button is simulated by clicking or
pressing both buttons.) 

Style 1: Press and hold

    To see menus, move the mouse cursor into the body of the window.
     Press and hold down the middle mouse button.  To vanish the
    menus, move the cursor outside of the menu and release the mouse
    button.

    To select an option in the menus, move the cursor so that the
    desired option is darkened.  Release the mouse button.  After
    you've selected an option, the menus disappear.

Style 2: Clicking

    To see menus, move the mouse cursor into the body of the window.
     Click the middle mouse button.  (If the menus do not appear,
    you held the button down too long;  try again.)  To remove
    menus, move the cursor outside of the menu and click the mouse
    button again.

    To select an option in the menus, move the cursor so that the
    desired option is darkened.  Click the middle mouse button
    again.  After you've selected an option, the menus disappear.

Text Selection

When editing text in Andrew you typically select a piece of text and
then perform some action with either a keystroke sequence or a menu
selection.  The current text selection is either a position between two
characters as indicated with a caret below the base line, or it is a
range of text indicated in reverse video.  You select text with the
mouse.

To set the caret:  point between two characters and click the left mouse
button.

To select a range of text:  move the mouse cursor to one end of the
range and press the left mouse button.  While holding it down, move to
the other end of the range and let the button up.

To extend a range of text: move the mouse cursor to the desired end of
the range and click the right button.  Or press the right button and
hold it down while moving the mouse until the desired range is
highlighted;  then release the button.

Message line

The bottom edge of most Andrew windows is partitioned off.  When an
application has a message for you, it often displays it here.  Messages
may also appear in a dialog box in the middle of the window
or--occasionally--in the console window.  If an application needs
information from you, such as a help topic or a file name, it prompts in
the message line and characters you type are displayed there.  You may
use almost all Andrew text editing operations to construct your reply in
the message line.

Preferences

A "preference" is exactly that; you indicate your preference as to how a
program should behave for you, where there are more than one behavior
provided by the system designers (usually at the behest of users).  When
a program starts up, it consults the file "preferences" in your home
directory.  See the preferences help topic.


______________________________________________________
Andrew Applications

For each of the following components the name of the component is a help
topic.  

typescript  ('a' package)

    Typescript is a window in which you type and enter Andrew and
    operating system commands.

    Commands that you enter in Typescript get passed along to the
    shell, a program that interprets commands for the operating
    system.  You do not have to know more about the shell in order
    to use Typescript.  However, if you would like to know more
    about the shell, you can look at the csh help document. 
    Typescript can be used as a front end to other programs in
    addition to the shell.   

ez   ('w' package)

    The ez help document tells you how to use EZ to create and edit
    text documents.  Other formats (available in the 'i' package)
    include raster, table, and drawings (figure).  Equations (eq)
    and animations (fad) are installed with the 'a' package. 
    Typically, ez is started with the name of a file as its argument:

        ez ~/preferences

    If the file is a plain ASCII file, it will be maintained that
    way and written out that way.  If styles are editted, the stored
    form will contain formatting information.  For those accustomed
    to editing without a mouse, ez accepts most of the more commonly
    used keysequences of Emacs (help ez-keys).  By setting a
    preference option, you can have keybindings somewhat closer to
    those of GNU emacs (help gnuemacs).

console  ('a' package)

    Console keeps track of of status information about your
    workstation and files.  It can display a digital or analog
    clock, monitor various aspects of your system's performance,
    notify you about the arrival of mail, warn you about system
    errors, and much more.

help   ('h' package)

    Help finds and displays information about Andrew and its programs as
    well as about the UNIX operating system.

ezprint  ('w' package)

    Ezprint prepares document files (created using the  EZ  editor)
    for printing and then prints them.  Files can also be printed
    from a menu option on the File card of ez menus.


______________________________________________________
Andrew insets

An inset is a software package that helps you create, edit, and display
information in a particular format--like a text editor lets you
manipulate text, or a spreadsheet lets you manipulate tabular
information.  A document created with ez can have many different insets
in it.  For example, you can put a table inset directly into a document
and edit it in place.  You can also nest insets recursively, so you
might have a raster inset (displaying a digitized picture) inside a
table that is itself inside a text document.

Several insets are also applications, meaning that they can be run as
programs separately, without being inside an ez document.  Most
applications are editors of different types of information.

The following insets are both embeddable insets and standalone
applications.  The first two are in the 'i' package and the rest are in
the 'a' package.)

    raster - a raster (bitmap) editor
    table - a simple spreadsheet
    eq - an equation editor
    fad - a simple frame animator
    org - an organizational chart editor
    bush - a directory tree/file browser (built on org)
    chart - a chart/graph program (line graphs, pie charts,
    histograms etc.)

With the toolkit, programmers can create new objects that can be
embedded as easily as those that come with the system.  One way to
create a new inset is with the createinset command.


______________________________________________________
The Andrew Message System (AMS)  ('m' package)

The Andrew Message System is the system by which mail and bulletin board
messages are transmitted on Andrew.  The Andrew Message System includes
user programs (such as messages and sendmessage) as well as underlying
programs and subroutines (the message server, the CUI library, the SNAP
remote procedure call package, and the guardian).  The Andrew Message
System also provides a White Pages facility that can be used by
mail-sending programs for matching user names to user ids so that mail
can be sent to Andrew users by their names as well as by their user ids. 

More detailed information about the Andrew Message System can be found
by requesting help on AMS. 


