[comp.sys.mac.hypercard] SuperCard 1.5

pfterry@kuhub.cc.ukans.edu (03/13/90)

I picked this up from CI$. It describes the bug fixes and improvements to
SuperCard 1.5. They still haven't announced a definite shipping date, but
it sounds as though it'll be RSN. Maybe by MacWorld. This started out as
a Word formatted file, so it may have lost something in the translation
to text.

Fred Terry
Kansas Geological Survey
Univ. of Kansas

*********************************************************************

SuperCard 1.5
from Silicon Beach Software, Inc.

A Detailed Description of the New Features of SuperCard 1.5

SuperCard 1.5 represents many, many hours of work by the engineers, managers,
creative service folks and testers at Silicon Beach Software.  With the help
of the Killer Beta Testers and the thousands of users who called or wrote in
their suggestions and comments, we have taken SuperCard one giant step closer
to everybodyUs vision for the product.  We have added numerous new and
powerful features to the SuperCard and SuperEdit applications, as well as a
totally re-written version of the Runtime Editor.  The product will also ship
with an extensive User Manual Addendum and a new Language Guide.  We think
that the extensions we have made will greatly enhance your SuperCard projects
and provoke many new ideas.

SuperCard 1.5 will ship early in the second quarter.  The suggested retail
price for SuperCard 1.5 will rise to $299, although the upgrade will be
mailed free of charge to all registered owners of SuperCard 1.0.  If you
havenUt done so already, we suggest that you mail your registration card in.

This document is a definitive list of all the noteworthy changes, additions
and fixes that went into SuperCard 1.5.  It has been uploaded to all of the
major electronic information services.  Thanks for your continued interest
and support!

Conceived and Programmed by
Bill Appleton
with
Gary Poppitz

Assisted by
Christopher Watson

SuperCard Product Team:
Stuart Henigson, Strategic Marketing Manager
Kevin La Rue, Product Manager
Gary Poppitz, Principal Architect, Multimedia Applications
Christopher Watson, Software Engineer

Addendum Written by
Andrew Himes
with Editing and Graphics by
Stuart Henigson, Michael OULear and Kevin La Rue

Addendum Layout by
Virginia Cordova-West and Michael OULear

Samples and Contributions from
Chris Athanas, Eric Azarcon, Jerry Burns, John Gaffney, Kevin La Rue, Kevin
Ostrom, Maurice Rizzuto, John Petit, Gary Poppitz, Chris van Hamersveld,
Christopher Watson, Dean Wette, and George Wood.

Many Thanks to
John Gaffney, Jon Wright and all the SuperCard fans around the world!

Online Product Announcement Document Prepared by
Christopher Watson





THE BIG NEW THINGS

1)	Speed.
	SuperCard is quicker on its feet now!  The interpreter has been
optimized and improved (message overloading is smarter [which speeds up the
determination of whether a message needs to travel the entire hierarchy or go
directly to the system], some instances of redundant scanning have been
removed, the tokenization of scripts is now quicker, and expressions are
evaluated faster); scrolling field response time has been shortened; data
packing/unpacking algorithms have been sped up for quicker card-to-card
navigation; binary data types are used where possible to speed up
calculations.
2)	Memory.
	SuperCard now juggles memory better.  Initialization code is no
longer memory-resident (it has been isolated into its own segment and is
dumped from memory when initialization is complete); the existing code has
been reduced and made more efficient; the application is now much smarter in
determining how much memory is needed to perform a particular task, reducing
the frequency of "out of memory" conditions.
3) 	Bridger.
	A small decoy application called "Bridger" is now loaded and then
dumped from memory whenever the "Run" command is executed from SuperEdit,
which aids in the ability to switch between the two applications without
getting memory errors.
4) 	ScriptTracer.
	A new script tracing environment (debugger) with many powerful
features has been added to SuperCard, including (but not limited to):
stepping through one script line at a time while examining variable contents;
jumping back and forth through message levels; stepping over or directly into
called handlers; viewing the source of all messages; setting of conditional
breakpoints (by evaluation, whenever a variable is written to or read from,
or whenever an XCMD makes a callback); examination of the data structures
associated with a currently executing XCMD; evaluation and alteration of
variable or container contents while a script is executing; jumping to TMON.
5)	Brand SpankinU New Language Guide and Addendum.
	The SuperTalk Language Guide has been totally redone.  This new
Language Guide includes all the new 1.5 language additions as well as many
corrections.  An extensive User Manual Addendum is also included with the
product.
6)	Access To Resource Fork of Projects.
	The ability to open and make available Apple resources within the
resource fork of a project; including new options in the "Convert Stack" and
"Build Standalone" commands that allow for selective placement of the
"non-blessed" resources into either the SharedFile or new project resource
fork.
7)	Real List Fields.
	New field style for support of real lists (scrolling or not)
including: support of all standard selection algorithms and their
combinations; setting and getting an item list of all currently selected
cells; new single and double-click system messages; conversion from one style
to another while retaining all properties; modified "scroll" property that
references cell numbers instead of a pixel value.
8)	Hierarchical Menus.
	Augmentations to existing commands for the runtime creation of
hierarchical menus.
9)	Pop-up Menus.
	Support for real pop-up menus at any location on a card, including a
new "autoWidth" button property to enable the automatic resizing of the
button width based on the name.
10)	Color Text.
	Color can now be applied in SuperEdit to text in graphics or fields,
for the entire object or for a certain range of characters.  An additional
field property (non-query) provides for runtime editing of text color (see
below).
11)	Runtime Menu Editing.
	Ability to insert or remove items within any menu at runtime.  New
items are given a default name of "Untitled", which can then be renamed using
the menu itemUs "name" property.
12)	On-line Help System.
	A new on-line help system has been implemented, providing quick
access to a number of information sources provided with the product,
including an on-line Language Guide and extensive general info and help.


13)	Popup Script Handler Menu.
	In all script editing windows in SuperEdit, if the Command key is
held down while clicking and holding the mouse on the title bar of the
window, a pop-up menu will appear listing the names of all the handlers and
functions in that script.  Choosing one of the items of the menu will select
the matching handler name and scroll the script to that point.
14)	Runtime Editor Rewritten.
	The Runtime Editor has gone through some major changes.  Not only
have all the scripts been rewritten and optimized for speed (including the
use of a special XFCN which unstantly returns a list of selected objects),
there are now various configurations available, and the cumbersome auto-load
boot scripts have been eliminated.  Now it is possible to bring the Runtime
Editor into action at any time, in any of three different configurations: as
a full menu bar, single menu, or floating palette window.  It is also
possible to at any time auto-install a single-line "startUp" handler in your
project to automatically bring up the Runtime Editor when the project opens,
in any of the three configurations.
15)	Informative Error Dialogs.
	SuperCard now displays memory info in any "Out of Memory" alert
dialogs; including available purgeable memory; memory needed to continue
running the project; Operating System error codes; plus the ability to quit
to the Finder directly from the alert dialog.
16)	Custom Error Handler.
	When a script error occurs, a new dedicated system message is now
sent directly to the object containing the offending script, allowing for the
trapping of errors before they get to SuperCard and display an alert.  In
association with some new additions to the SuperTalk language (see below), it
is now possible to ascertain from script precisely where a script error
occurred.
17)	Intermediate Typeing.
	SuperCard is now much more intelligent where it concerns the
relationship between text and numbers because it now converts text-based
numerals into a binary format, and keeps them in that form, for faster
computational speeds.  SuperCard no longer converts text to binary format and
back again.
18)	Additional XCMD Callbacks.
	New callbacks to count and retrieve information on the project
resources within the data fork of a project, and another to send errors
directly to SuperCard.
19)	Personalization.
	Personalization of SuperEdit has been added, where the owner's name
and company is entered and remembered by the program.
20)	New SuperCard Preferences.
	New additions to the SharedFile project optionally allow for the
setting of certain preferences, including default text attributes, blind
typing and text arrows settings, plus the ability to build custom keyboard
shortcut configurations.

PROGRAM CHANGES

1)	Window Resizing.
	Holding down the option key while resizing a background in SuperEdit
will also resize the window accordingly.  Holding down the Shift key will
constrain the resize to either horizontal or vertical motion.
2)	Object Order Shuffling.
	New "Shuffle Forward" and "Shuffle Back" menu commands in SuperEdit
that shuffle objects back and forth in the stacking order, one layer at a
time.
3)	Scrolling Field Minimum Size.
	A new minimum size is imposed on scrolling fields when resizing them
in SuperEdit, so as to prevent scroll bar anomalies when a scrolling field is
resized too small.
4)	Death to Command-K.
	Command-B now toggles between editing the card and background. 
Command-K has been removed.
5)	Show Invisibles Toggle.
	"Show Invisibles" is now a straight-forward toggle.
6)	Gunsight to Crosshair.
	The "gunsight" cursor has been changed to a traditional crosshair
cursor.


7)	Memorized Messages.
	Via new SharedFile project scripts, the message box now keeps a
history of recent messages executed from it, accessible via the up and down
arrow keys.  The number of remembered messages may be altered from the new
SuperCard Preferences window (when this feature is enabled), with a maximum
of 50 messages remembered.
8)	Script Editing Shortcut.
	Another new SharedFile project script handler provides access to any
objectUs script by depressing the Option and Command while the browse cursor
is over the object.
9)	Quiet Find.
	The "find" command no longer beeps if it called from a script and
nothing is found.
10)	Subsection Execution.
	Selecting a subsection of the text in the message box and hitting the
Enter key will execute only the selected portion of the text.
11)	New "Sizes" Button.
	A new "Sizes" button has been added to all object information dialogs
that provide a means for direct input of object width, height, location and
rectangle, with additional options to "pin" the changes in size to a
particular point on the object (any of the four corners, the center, or
none).
12)	Quit Button in Alerts.
	A "Quit" button has been added to all Operating System error and
script error alert dialogs, providing for the ability to quit SuperCard
immediately.
13)	The Result is Cleared.
	The string returned by the function "the result" is now emptied out
after each command line in a script.  The only actions that place anything
into "the result" are XCMD's, the "find" command, and script handlers that
"return" data.
14)	Reverse Tabbing Order.
	Depressing the Shift key while tabbing through fields will reverse
the tabbing direction.
15)	Auto-scrolling Fields.
	Fields now automatically scroll to bring the selected text into view.
Selecting a section of text in a field that is currently out of view will
cause the field to scroll to that selected text.  Text located in a field via
the "find" command will also automatically scroll into view.
16)	Many New XCMD's and XFCN's.
	The SharedFile now contains 15 useful External Commands and Functions,
and another separate project contains many more.
17)	Lines and the Universal Tool.
	The universal tool, while active, can now resize line graphics.
18)	Text Styling Shortcuts.
	In SuperEdit, it is now possible to use the standard keyboard
shortcuts to applying text styles, justifications and font sizes to the
currently selected text in a field or graphic.  This is done by pressing
Command-Shift in combination with the appropriate keys.
19)	Automatic Resource Conversion.
	Apple resources in the resource fork of a project may now be
selectively designated to convert and load automatically into the data fork
of the project when the project is opened.  The technique used in making this
possible is described in a Technical Note shipped with SuperCard 1.5.
20)	Maximum Script Edit Window Size.
	Script edit windows are now limited to a maximum size of 1024 x 1024
to avoid problems associated with monitors that make use of virtual desktop
technology.
21)	Smoother Resource Editors.
	Cursor flickering has been removed from the Cursor, Icon, Brush and
Pattern Editors in SuperEdit.  In the Icon Editor, the actual size icon is
now updated simultaneously with the drawing occurring in the "fat-bits" box.
22)	The Pouch is Sacred.
	Any document, project, application or PICS/STEP file placed into the
"SC Pouch" folder will be found by SuperCard immediately, without having to
specify a full pathname.
23)	Overview Window Scrolling.
	In SuperEdit, all Overview windows now open with the scroll set to
the top.  The insertion point (the black triangle at the left edge of the
lists) remains at the bottom, but the list opens with the first item
positioned at the top.

24)	Intelligent Screen Unlocking.
	The commands "set lockScreen to false" and "unlock screen" will cause
a redraw of the entire contents of the current card only if the "lockScreen"
property of the current window had previously been set to true.

LANGUAGE ADDITIONS AND CHANGES

1)	Additions to "Move".
	The move command can now silently return an interpolated list of
potential points of the movement and place them into a variable where a
script can make use of them; plus additional options similar to playing PICS
and STEP files, with respect to the mouse.
2)	Additions to "Play STEP".
	The current clut can now be specified, providing the option of using
the STEP file clut or the current clut (either card or background, whichever
has precedence); plus a cycle command may be added to cycle the clut after
each iteration of the STEP.
3)	Addition to "Play PICS".
	PICS files may now be played at a specified location.
4)	Suspend and Resume.
	Full support added for suspend and resume system messages.
5)	Smart Clipboard.
	The "paste" command and the "clipboard" function will now
automatically check the desk scrap to see if anything new had been placed
there (from an XCMD, for example).
6)	Addition to "Offset".
	The "offset" function now allows a starting position to be specified,
as an optional third parameter, representing the number of characters to skip
before searching for the string.
7)	Locking The Cursor for Good.
	The "lockCursor" global property, when set to true, now locks the
cursor up tight.  SuperCard will never attempt to change the cursor while
this property is set to true (except for when showing a dialog window or
pulling down a menu from the menu bar, both of which force the cursor to an
arrow).
8)	Disabling Script Interrupts.
	A new global property called "allowIntsS is available, which when set
to false, disables the ability to cancel the execution of scripts via the
Command-Period key combination.
9)	Quit System Message Added.
	For better compatibility with HyperCard, the "quit" system message
has been implemented and is sent to the current card when it is determined by
SuperCard that any particular action will result in all windows being closed
(for example, when closing the last open window, or executing the "close all
windows" statement).
10)	New "LineOffset" Function.
	A new function called "lineOffset" operates the same as "offset"
except it returns the line in which the search string was found, instead of
the character position.
11)	Invisible Windows.
	A new keyword addition to the "open window" and "new window" commands
("open invisible window") provides for the opening or creation of new windows
without initially showing them.
12)	Invisible New Projects.
	A new keyword addition to the "new project" command ("new invisible
project") provides for the creation of new projects during runtime without
initially showing the first window.
13)	Shuffling Objects.
	New commands called "shuffleForward" and "shuffleBack" provide the
capability to shuffle selected objects forward and backward in the stacking 
order, one level at a time.
14)	Addition to "Close All Windows".
	This command now defaults to going back to SuperEdit to the Project
Overview
Window, and optionally, to bring up the current card window, or to return
immediately to the Finder.
15)	Memory Management Augmentations.
	The "heapSpace" function no longer purges any internal RAM caches,
and only returns the size of the largest contiguous block of memory (not the
total amount).  A new function called "hasMemory", which takes a byte amount
as a parameter, returns true or false indicating whether or not that amount
of free space is available in the application heap.  It purges memory until
it can't purge any more (in which case, it will return false), or until it
can return true.
16)	Configurable Serial Ports.
	A new global property called "the serialControl" provides for the
full configuration of the modem and printer port settings for use with the
"dial" command.  The baud rate, parity, data bits, and stop bit are
changeable, along with a stipulation of whether or not a carriage return
character will be sent out at the end of the string, and which port will be
used (printer or modem).
17)	Changing Delimiters.
	Two new global properties called "itemDel" and "wordDel" allow for
the modification of the characters used to delimit items and words,
respectively.
18)	Change to MenuKey Message.
	The "menuKey" system message now accepts only printable characters as
a parameter.
19)	Numeric String Comparisons Converted.
	In the form of an example, the statement "0234 = 234" now evaluates
totrue.
20)	System Message for Keystrokes.
	A new system message called "keyStroke" is sent to the current card
whenever a key on the keyboard is depressed and no other other legitimate
destination for that keystroke has been established (such as typing into a
field or the message box).  Basically, whenever SuperCard 1.0 would have
beeped with a key press, SuperCard 1.5 now sends the "keyStroke" message.
The message carries with it one parameter, which is the key that was pressed.
If the message is not trapped by a handler, it continues up to the
application, resulting in the normal beep.
21)	New Object for the Shared File Project Script.
	The project script for the SharedFile project can now be referred to
as "the sharedScript".  Using this new object, you can send message directly
to the project script of the SharedFile, bypassing the entire message
hierarchy.
22)	SharedFile StartUp Message.
	A new system message called "shareInit" is sent directly to the
project script of the SharedFile project at start-up time.  It is sent out
immediately prior to the existing "startUp" message, and is only seen by the
SharedFile.
23)	Saving Everything from Script.
	When the "save" command is used with the additional keyword "all"
(save all), everything that is currently open is saved to disk.
24)	New Script Error System Message.
	Now, whenever a script error occurs, a new system message called
"scriptError" is sent directly to the object containing the offending script.
This message carries with it a single parameter, which is the error code
associated with the particular type of script error that occurred.  Trapping
for this message allows the developer to handle script errors in any manner,
knowing exactly what kind of error has occurred.
25)	Zeroing In On Script Errors.
	Two new functions have been added for use in determining from a
script precisely where a script error occurred.  Using the above mentioned
"scriptError" message, the "errorObject" function returns the descriptor of
the object containing the offending script (very handy in cases where the
object may have already been disposed of -- for example, a menu item in a
pop-up menu).  The "errorOffset" function returns information regarding
exactly where in the offending script the error occurred; the line number,
the character offset to that line, and the actual character offset to the
exact error point.
26)	Clearing the Entire Clipboard.
	When the "cut" command is used with the additional keyword "empty"
(cut empty), zero-length data is put on both the public and private scraps
maintained by SuperCard, and the entire clipboard is cleared.
27)	Deleting Objects.
	Augmentations to the "delete" command allow for the deletion of
specific objects via script control.  Delete now functions similar to the
"cut" command, except the object or selected text is not placed on the
clipboard.  It is simply removed.
28)	Variation on the "CloseField" System Message.
	A new system message for fields called "leaveField" is sent to a
field whenever the insertion point is removed from that field without any
modifications being made to the field contents.  This message essentially
works the same as "closeField" except that "leaveField" is sent to the field
only when no changes were made to the text.  When changes have been made to
the field contents and the user clicks outside the field, the usual
"closeField" message is sent.