Path: utzoo!attcan!uunet!tut.cis.ohio-state.edu!bloom-beacon!apple!oliveb!tymix!tardis!jms
From: jms@tardis.Tymnet.COM (Joe Smith)
Newsgroups: comp.sys.amiga
Subject: Re: UltraCard Browser & Stacks
Summary: It's like HyperCard, sorta
Message-ID: <514@tardis.Tymnet.COM>
Date: 17 Aug 89 07:58:54 GMT
References: <13480@polyslo.CalPoly.EDU> <609@lehi3b15.csee.Lehigh.EDU>
Reply-To: jms@tardis.Tymnet.COM (Joe Smith)
Organization: McDonnell Douglas Field Service Co, San Jose CA
Lines: 123

In article <609@lehi3b15.csee.Lehigh.EDU> wdimm@lehi3b15.csee.Lehigh.EDU (William Dimm) writes:
>I have been watching all of this talk about UltraCard without a clue
>about what it is.  Could someone post a brief description for those
>of us who don't use Macs (thank God)?

For those of you who haven't seen the July issue of Amazing Computing,
I'll describe version 1.01a of UltraCard.

When you click on UltraCard's icon, it starts up the "Control Room" stack.
It displays a backdrop (an IFF picture) that has four large light blue
squares.  Then it overlays the backdrop with the label "Control Room" in
red along the bottom, and puts buttons in the squares.  The buttons are
dark blue with white borders and a black dropshadow and the letters are in
a font other than Topaz.  (The size, shape, and location of the buttons can
be changed, as can the color, outline color, severity of backdrop, and font.)

The button in the upper left box is marked "Programs".  When you click on
it, a digitized sound sample goes "swoosh" and the narrator device says
"You can create a new frame like a stack frame and install your favorite
programs."  The button in the lower left marked "Ideas!" causes the Amiga
to say "Call the Intuitive Technologies BBS for more stacks".

The two buttons on the right are labeled "Stacks" and "More" and are
gateways to new frames.  They restore the backdrop to its original condition
(minus the title and the previous buttons), then go to a new frame that puts
up a new set of buttons on the backdrop.  After clicking the "More" button
you are sent to a frame that allows you to define which programs are to be
invoked.  There is a new button at the bottom of the screen (taking almost
all the width) that gives instructions when clicked.  If you click on the
button marked "Paint", it sets a global variable inside of UltraCard.  This
variable is the name of the program to be run when a stack frame wants to
run a paint program.  (Global variables are writting to disk so that they
retain their values between runs.)  There is also a white arrow on the
screen which will return you to the previous frame.

Going back to the main Control Room frame, if you click on the "Stacks"
button, it also resets the backdrop and then shows four new buttons;
"Ultradex", "Calender", "Help", and "Open..".  Selecting "Ultradex" puts you
in a Name & Addresses database.  (The Ultradex screen is hi-res (all others
I've mentioned were lo-res) and has all sorts of different buttons.)
Selecting "Calender" brings up a calender with special days marked.  (On
this hi-res screen, each day of the month is a separate button - clicking on
that button brings up notes for that day.)  Selecting "Open.." brings up
a file requester which allows you to select a new stack.  (On the demo
disk, the available stacks are ControlRoom, Ultradex, Calender, and Help.)

If you select "Help", it jumps to a frame with a new backdrop with a
flowchart the recommends that you select the following:
  first: "About Help"
  second: any one or all of "Menus", "Keyboard", "Objects", "UltraTalk"
  third: either "Index" or "HowTo".

The "About Help" button's behaviour is something new:  As long as you keep
the left mouse button down, a previously invisible box pops into view with
instructions.  As soon as you let up on the mouse button, the instruction
box returns to invisibility.  The other buttons on this help screen bring up
scrolling text gadgets that allow you to read descriptions that are bigger
than a window.

By now you should have noticed a problem I have had in trying to describe
all this.  For a new frame, should I describe everything in view and then
go into detail, or should I describe the first object in detail, including
its sub-objects before going back to the second main object?

That, in essence, is what hyper-text is all about.  The user doesn't have
to follow a linear sequence of descriptions like in a book.  By clicking
on whatever looks interesting, one can down several levels, up, over, and
jump all around at whim.

Another product for the Amiga, "Thinker", is primarily hyper-text.  For the
most part, you can click on words or phrases to bring up screens of more
words and phrases.  UltraCard and HyperCard are hyper-media - clicking on
a word can bring up a picture, a sound, an animation, or just about anything
else.

              ----------------------------------

The following is my interpretation of how UltraCard works.  Please excuse
any inaccuracies - I'm trying to get the general ideas across.

In UltraCard, a Stack is a collection of Frames.  There is a script for the
stack, where you can tell UltraCard what to do when entering the stack (such
as copying files to RAM:) and when leaving the stack (such as deleting those
files from RAM:).  A Frame consists of a BackDrop and collection of Objects
(including Buttons and Windows).  Several frames can share a common 
backdrop.  There is a script executed when entering and leaving the backdrop
and one for entering and leaving the frame.

Programming the buttons (Objects) is the most interesting.  One section of
the object's script is executed when the left mouse button is pressed, the
other section is executed when the left mouse button is released.  Things
you can do in the script include playing an audio sample, saying text via
the Amiga's narrator.device, setting internal variables (such as the
visibility of another object), running a program (launched as WorkBench
would have done), and executing a CLI command.  There is also IF/ELSE/ENDIF,
arithmetic operations, string operations, JUMP TO FRAME, GetFileName,
keypress detection, and once a second/minute/hour ticks.

That's just the object's script.  The object can be a rectange/square or a
circle/ellipse.  It can be transparent, opaque with selectable color or an
IFF brush.  It can have no outline, or 1 to 3 lines surrounding it.  It can
a drop shadow of none, light, medium, heavy.  The colors of the outline and
drop shadow are independently setable.  Objects which are simply clicked
upon can have their name inside or outside the object.  You can choose the
font, color, underlining, etc.  An object can have a value, such as the
string of digits in a "Phone Number" object.  A scrollbar options is available
for text whose size exceeds the boundaries of the object.  (Each object can
have a different font, but all the text inside a given object must be the
same font.)

With UltraCard, you can quickly define a full-screen menu that will run
your favorite program when the appropriate button is selected.  Since
the "source code" to the stacks are embedded in the stack's file, you can
customize the existing stacks.  Change the colors, change the fonts, even
do something like modify the name and addresses database stack to display
a small IFF picture of the person whose name is being displayed.

Does that answer the question?  :-)
-- 
Joe Smith (408)922-6220 | SMTP: JMS@F74.TYMNET.COM or jms@tymix.tymnet.com
McDonnell Douglas FSCO  | UUCP: ...!{ames,pyramid}!oliveb!tymix!tardis!jms
PO Box 49019, MS-D21    | PDP-10 support: My car's license plate is "POPJ P,"
San Jose, CA 95161-9019 | narrator.device: "I didn't say that, my Amiga did!"