The Macintosh operating system (versions System 7.1 and later) has a system-level extension called AppleScript. AppleScript is an automation tool, and is a method by which you can control the behavior and functionality of specific programs. Application developers make their programs AppleScript-Savvy by adding an "AETE Resource." The AETE Resource for an application tells AppleScript what kinds of things it can do in that particular application.
There are three general levels of compatibility with Apple System resources like AppleScript: "Savvy," "Aware," and "Incompatible." If an application is described as AppleScript Savvy, it means that it has an "AETE Resource," which is the list of commands, or "Dictionary" for that application. It serves as the list of commands that AppleScript can execute in that program. If an application is described as AppleScript Aware, it means that it is fully compatible with AppleScript, and although it does not have an AETE Resource, it may support AppleScript or Apple events in a very limited way. If an application is described as being incompatible with AppleScript, it means that for some reason that program may exhibit crashes or other undesirable behavior when AppleScript is installed.
AppleScript-savvy applications like ClarisWorks 4.0 are described in three ways: "Scriptable," "Recordable," and "Attachable." ClarisWorks 4.0 contains an AETE Resource, so it is AppleScript Savvy, but it is only Scriptable, meaning that its commands must be accessed through scripting applications like Frontier, AppleScript, or even FileMaker Pro.
For an application to be Recordable, that application has to be able to send Apple events to describe what it's doing as it does things - those events can be stored by AppleScript as scripts, because AppleScript was able to "watch" them being done in the application where they were executed. Recordable applications are relatively uncommon due to the amount of programming that is required. Attachable applications allow you to attach scripts to menu selections, buttons, or other controls within the Attachable application itself.
Here is how the ClarisWorks 4.0 event dictionary appears in the AppleScript Script Editor.
Required Suite: Terms that every application should support
open: Open the specified object(s)
open alias -- list of objects to open
print: Print the specified object(s)
print alias -- list of objects to print
quit: Quit application
quit
run: Sent to an application when it is double-clicked
run
Standard Suite Subset: Standard Definitions
close: Close an object
close item -- the object to close
[saving yes/no/ask] -- Specifies whether or not changes should be saved before closing
[saving in alias] -- the file in which to save the object
[as type class] -- the type of file in which to save the document
[using string] -- the name of the XTND translator to use to save the document
open: Open the specified object(s)
open alias -- list of objects to open
[using string] -- the name of the XTND translator to use to open the file
[as DR/WP/SS/DB/PT/CM] -- the type of document as which to open the file
print: Print the specified object(s)
print alias -- list of objects to print
[merge alias] -- list of database files to merge
[one copy boolean] -- print one copy without displaying the print dialog?
quit: Quit application
quit
[saving yes/no/ask] -- specifies whether to save currently open documents
save: Save a document
save document -- the document to save
[in alias] -- the file in which to save the document
[as type class] -- the type of file in which to save the document
[using string] -- the name of the XTND translator to use to save the document
Class application: An application program
Elements:
document by numeric index, by name, as a range of elements
window by numeric index, by name, as a range of elements
Properties:
current slide slide [r/o] -- the current slide being displayed in a slide show
Class document: an open document
Class window: a window
Miscellaneous Standards Subset: Miscellaneous definitions
cut: Cut the current selection to the clipboard
cut
copy: Copy the current selection to the clipboard
copy
paste: Paste from the clipboard to the current selection
paste
do script: Execute the specified macro
do script anything -- the name of the macro to run
do menu: select a menu item and perform its action
do menu menu item -- the menu item to be selected
Class menu: A menu
Plural form:
menus
Elements:
menu item by numeric index, by name, as a range of elements
Properties:
name string [r/o] -- the name of the menu
ID small integer [r/o] -- the menuÕs ID
Class menu item: A menu item
Plural form:
menu items
Properties:
name string [r/o] -- the name of the menu
index integer [r/o] -- the menu item number
ClarisWorks Suite: Definitions specific to ClarisWorks
start slides: Start the slideshow for the current document
start slides
stop slides: Stop the slideshow, returning to the normal application state
stop slides
display: Go to a specific slide
display slide -- the slide to be displayed
Class slide: A slide which may be displayed in the slide show
Plural form:
slides