annotate Mac/Demo/applescript.html @ 79675:c0a2294de787 2.7

Issue #16199: Backport 2to3 typo fix from 3.2.
author Chris Jerdonek <chris.jerdonek@gmail.com>
date Thu, 11 Oct 2012 16:15:46 -0700
parents 1342dfd52733
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
21807
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
1 <!doctype HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
2 <html><head><title>Using the Open Scripting Architecture from Python</title></head>
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
3 <body>
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
4 <h1>Using the Open Scripting Architecture from Python</h1>
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
5 <hr>
3457
a71d2fd90fa8 Explanations of the examples here
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
6
38925
1342dfd52733 Drop the calldll demo's for macos, calldll isn't present anymore, no need
Ronald Oussoren <ronaldoussoren@mac.com>
parents: 21808
diff changeset
7 <p><b>NOTE:</b> this document describes the OSA support that is shipped with
1342dfd52733 Drop the calldll demo's for macos, calldll isn't present anymore, no need
Ronald Oussoren <ronaldoussoren@mac.com>
parents: 21808
diff changeset
8 the core python distribution. Most users are better of with the more
1342dfd52733 Drop the calldll demo's for macos, calldll isn't present anymore, no need
Ronald Oussoren <ronaldoussoren@mac.com>
parents: 21808
diff changeset
9 userfriendly <a href="http://freespace.virgin.net/hamish.sanderson/appscript.html">appscript library</a>.
1342dfd52733 Drop the calldll demo's for macos, calldll isn't present anymore, no need
Ronald Oussoren <ronaldoussoren@mac.com>
parents: 21808
diff changeset
10
21807
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
11 <p>OSA support in Python is still not 100% complete, but
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
12 there is already enough in place to allow you to do some nifty things
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
13 with other programs from your python program. </p>
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
14
3457
a71d2fd90fa8 Explanations of the examples here
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
15
21807
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
16 <p>
3457
a71d2fd90fa8 Explanations of the examples here
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
17 In this example, we will look at a scriptable application, extract its
21807
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
18 &#8220;AppleScript Dictionary,&#8221; generate a Python interface package from
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
19 the dictionary, and use that package to control the application.
14091
d3f5b453ade8 Updated the applescript documentation for te new framework, and replaced the Eudora example with one that uses Disk Copy (which everyone running MacOS 8 or
Jack Jansen <jack.jansen@cwi.nl>
parents: 6111
diff changeset
20 The application we are going to script is Disk Copy, Apple's standard
d3f5b453ade8 Updated the applescript documentation for te new framework, and replaced the Eudora example with one that uses Disk Copy (which everyone running MacOS 8 or
Jack Jansen <jack.jansen@cwi.nl>
parents: 6111
diff changeset
21 utility for making copies of floppies, creating files that are mountable
21807
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
22 as disk images, etc.
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
23 Because we want
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
24 to concentrate on the OSA details, we won&#8217;t bother with a real
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
25 user-interface for our application. </p>
14091
d3f5b453ade8 Updated the applescript documentation for te new framework, and replaced the Eudora example with one that uses Disk Copy (which everyone running MacOS 8 or
Jack Jansen <jack.jansen@cwi.nl>
parents: 6111
diff changeset
26
d3f5b453ade8 Updated the applescript documentation for te new framework, and replaced the Eudora example with one that uses Disk Copy (which everyone running MacOS 8 or
Jack Jansen <jack.jansen@cwi.nl>
parents: 6111
diff changeset
27
21807
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
28 <p>
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
29 <em>When we say &#8220;AppleScript&#8221; in this document we actually mean
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
30 &#8220;the Open Scripting Architecture.&#8221; There is nothing
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
31 AppleScript-specific in the Python implementation. Most of this document
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
32 focuses on the classic Mac OS; <a href="#osx">Mac OS X</a> users have some
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
33 additional tools.</em>
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
34 </p>
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
35
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
36 <h2>Python OSA architecture</h2>
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
37
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
38 <p>Open Scripting suites and inheritance can be modelled rather nicely
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
39 with Python packages, so we generate
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
40 a package for each application we want to script. Each suite defined in
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
41 the application becomes a module in the
14091
d3f5b453ade8 Updated the applescript documentation for te new framework, and replaced the Eudora example with one that uses Disk Copy (which everyone running MacOS 8 or
Jack Jansen <jack.jansen@cwi.nl>
parents: 6111
diff changeset
42 package, and the package main module imports everything from all the
21807
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
43 submodules and glues together all the classes (in Python terminology&#8212;
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
44 events in OSA terminology or verbs in AppleScript terminology). </p>
14091
d3f5b453ade8 Updated the applescript documentation for te new framework, and replaced the Eudora example with one that uses Disk Copy (which everyone running MacOS 8 or
Jack Jansen <jack.jansen@cwi.nl>
parents: 6111
diff changeset
45
21807
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
46 <p>
14091
d3f5b453ade8 Updated the applescript documentation for te new framework, and replaced the Eudora example with one that uses Disk Copy (which everyone running MacOS 8 or
Jack Jansen <jack.jansen@cwi.nl>
parents: 6111
diff changeset
47 A suite in an OSA application can extend the functionality of a standard
21807
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
48 suite. This is implemented in Python by importing everything from the
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
49 module that implements the standard suites and overriding anything that has
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
50 been extended. The standard suites live in the StdSuite package. </p>
14091
d3f5b453ade8 Updated the applescript documentation for te new framework, and replaced the Eudora example with one that uses Disk Copy (which everyone running MacOS 8 or
Jack Jansen <jack.jansen@cwi.nl>
parents: 6111
diff changeset
51
21807
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
52 <p>
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
53 This all sounds complicated, but the good news is that basic
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
54 scripting is actually pretty simple. You can do strange and wondrous things
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
55 with OSA scripting once you fully understand it. </p>
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
56
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
57 <h2>Creating the Python interface package</h2>
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
58
3457
a71d2fd90fa8 Explanations of the examples here
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
59
21807
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
60 <p>There is a tool in the standard distribution that can automatically
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
61 generate the interface packages. This tool is called
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
62 <code>gensuitemodule.py</code>, and lives in <code>Mac:scripts</code>.
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
63 It looks through a file
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
64 for an &#8216;AETE&#8217; or &#8216;AEUT&#8217; resource,
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
65 the internal representation of the
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
66 AppleScript dictionary, and parses the resource to generate the suite
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
67 modules.
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
68 When we start <code>gensuitemodule</code>, it asks us for an input file;
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
69 for our example,
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
70 we point it to the Disk Copy executable. </p>
3457
a71d2fd90fa8 Explanations of the examples here
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
71
21807
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
72 <p>
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
73 Next, <code>gensuitemodule</code> wants a folder where it will store the
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
74 package it is going to generate.
14091
d3f5b453ade8 Updated the applescript documentation for te new framework, and replaced the Eudora example with one that uses Disk Copy (which everyone running MacOS 8 or
Jack Jansen <jack.jansen@cwi.nl>
parents: 6111
diff changeset
75 Note that this is the package folder, not the parent folder, so we
d3f5b453ade8 Updated the applescript documentation for te new framework, and replaced the Eudora example with one that uses Disk Copy (which everyone running MacOS 8 or
Jack Jansen <jack.jansen@cwi.nl>
parents: 6111
diff changeset
76 navigate to <code>Python:Mac:Demo:applescript</code>, create a folder
21807
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
77 <code>Disk_Copy</code>, and select that. </p>
14091
d3f5b453ade8 Updated the applescript documentation for te new framework, and replaced the Eudora example with one that uses Disk Copy (which everyone running MacOS 8 or
Jack Jansen <jack.jansen@cwi.nl>
parents: 6111
diff changeset
78
21807
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
79 <p>
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
80 We next specify the folder from which <code>gensuitemodule</code>
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
81 should import the standard suites. Here,
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
82 we always select <code>Python:Mac:Lib:lib-scriptpackages:StdSuites</code>. (There is
14091
d3f5b453ade8 Updated the applescript documentation for te new framework, and replaced the Eudora example with one that uses Disk Copy (which everyone running MacOS 8 or
Jack Jansen <jack.jansen@cwi.nl>
parents: 6111
diff changeset
83 one exception to this rule: when you are generating <code>StdSuites</code> itself
21807
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
84 you select <code>_builtinSuites</code>.)
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
85 </p>
14091
d3f5b453ade8 Updated the applescript documentation for te new framework, and replaced the Eudora example with one that uses Disk Copy (which everyone running MacOS 8 or
Jack Jansen <jack.jansen@cwi.nl>
parents: 6111
diff changeset
86
21807
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
87 <p>
14091
d3f5b453ade8 Updated the applescript documentation for te new framework, and replaced the Eudora example with one that uses Disk Copy (which everyone running MacOS 8 or
Jack Jansen <jack.jansen@cwi.nl>
parents: 6111
diff changeset
88 It starts parsing the AETE resource, and for
21807
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
89 each AppleEvent suite it finds, <code>gensuitemodule.py</code>
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
90 prompts us for the filename of the
6111
973ef35ef482 Very sketchy preliminary docs on new applescripting functionality.
Jack Jansen <jack.jansen@cwi.nl>
parents: 4821
diff changeset
91 resulting python module. Remember to change folders for the first
21807
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
92 module&#8212;you don't want to clutter up, say, the
21808
63cba423fa04 Some modifications and clarifications (by me) to Michael's mods.
Jack Jansen <jack.jansen@cwi.nl>
parents: 21807
diff changeset
93 Disk Copy folder
21807
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
94 with your python
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
95 interfaces. If you want to skip a suite, press <code>cancel</code> and the process
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
96 continues with the next suite. </p>
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
97
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
98 <h3>Summary</h3>
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
99
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
100 <ol>
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
101
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
102 <li>Run <code>gensuitemodule</code>.</li>
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
103
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
104 <li>Select the application (or OSAX) for which you would like a Python interface.</li>
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
105
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
106 <li>Select the package folder where the interface modules should be
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
107 stored.</li>
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
108
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
109 <li>Specify the folder <code>Python:Mac:Lib:lib-scriptpackages:StdSuites</code>
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
110 to import the standard suites (or <code>_builtinSuites</code> if you are
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
111 generating <code>StdSuites</code> itself). </li>
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
112
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
113 <li>Save the generated suites (use <code>cancel</code> to skip a suite).</li>
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
114
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
115
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
116 </ol>
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
117
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
118
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
119 <h3>Notes</h3>
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
120
3457
a71d2fd90fa8 Explanations of the examples here
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
121
21807
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
122 <ul>
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
123
21808
63cba423fa04 Some modifications and clarifications (by me) to Michael's mods.
Jack Jansen <jack.jansen@cwi.nl>
parents: 21807
diff changeset
124 <li>The interface package may occasionally need some editing by hand. For example,
21807
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
125 <code>gensuitemodule</code> does not handle all Python reserved words, so
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
126 if
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
127 one of the AppleScript verbs is a Python reserved word, a <code>SyntaxError</code>
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
128 may be raised when the package is imported.
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
129 Simply rename the class into something acceptable, if this happens;
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
130 take a look at how the
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
131 <code>print</code> verb is handled (automatically by <code>gensuitemodule</code>)
21808
63cba423fa04 Some modifications and clarifications (by me) to Michael's mods.
Jack Jansen <jack.jansen@cwi.nl>
parents: 21807
diff changeset
132 in the standard suites. But: f you need to edit your package this should be considered a
63cba423fa04 Some modifications and clarifications (by me) to Michael's mods.
Jack Jansen <jack.jansen@cwi.nl>
parents: 21807
diff changeset
133 bug in gensuitemodule, so please report it so it can be fixed in future releases.
63cba423fa04 Some modifications and clarifications (by me) to Michael's mods.
Jack Jansen <jack.jansen@cwi.nl>
parents: 21807
diff changeset
134 </li>
21807
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
135
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
136
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
137 <li>If you want to re-create the StdSuite modules,
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
138 you should look in one of two places. With versions of AppleScript older than 1.4.0
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
139 (which first shipped with OS 9.0), you will find the
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
140 AEUT resources in <code>System Folder:Extensions:Scripting
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
141 Additions:Dialects:English Dialect</code>. For newer versions, you will
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
142 find them in <code>System Folder:Extensions:Applescript</code>.
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
143 </li>
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
144
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
145 <li>Since MacPython 2.0, this new structure, with packages
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
146 per application and submodules per suite, is used. Older MacPythons had a
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
147 single level of modules, with uncertain semantics. With the new structure,
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
148 it is possible for programs to override standard suites, as programs often do.
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
149
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
150 </li>
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
151
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
152 <li><code>Gensuitemodule.py</code> may ask you questions
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
153 like &#8220;Where is enum 'xyz ' declared?&#8221;.
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
154 This is either due to a misunderstanding on my part or (rather too commonly)
14091
d3f5b453ade8 Updated the applescript documentation for te new framework, and replaced the Eudora example with one that uses Disk Copy (which everyone running MacOS 8 or
Jack Jansen <jack.jansen@cwi.nl>
parents: 6111
diff changeset
155 bugs in the AETE resources. Pressing <code>cancel</code> is usually the
21807
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
156 right choice: it will cause the specific enum not to be treated as an enum
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
157 but as a &#8220;normal&#8221; type. As things like fsspecs and TEXT strings clearly are
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
158 not enumerators, this is correct. If someone understands what is really going on
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
159 here, please let me know.</li>
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
160
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
161 </ul>
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
162
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
163
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
164
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
165 <h2>The Python interface package contents</h2>
6111
973ef35ef482 Very sketchy preliminary docs on new applescripting functionality.
Jack Jansen <jack.jansen@cwi.nl>
parents: 4821
diff changeset
166
21807
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
167 <p>
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
168 Let&#8217;s glance at the
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
169 <a href="applescript/Disk_Copy">Disk_Copy</a> package just created. You
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
170 may want to open Script Editor alongside to see how it
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
171 interprets the dictionary.
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
172 </p>
3457
a71d2fd90fa8 Explanations of the examples here
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
173
21807
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
174
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
175 <p>
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
176 The main package module is in <code>__init__.py</code>.
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
177 The only interesting bit is the <code>Disk_Copy</code> class, which
14091
d3f5b453ade8 Updated the applescript documentation for te new framework, and replaced the Eudora example with one that uses Disk Copy (which everyone running MacOS 8 or
Jack Jansen <jack.jansen@cwi.nl>
parents: 6111
diff changeset
178 includes the event handling classes from the individual suites. It also
d3f5b453ade8 Updated the applescript documentation for te new framework, and replaced the Eudora example with one that uses Disk Copy (which everyone running MacOS 8 or
Jack Jansen <jack.jansen@cwi.nl>
parents: 6111
diff changeset
179 inherits <code>aetools.TalkTo</code>, which is a base class that handles all
d3f5b453ade8 Updated the applescript documentation for te new framework, and replaced the Eudora example with one that uses Disk Copy (which everyone running MacOS 8 or
Jack Jansen <jack.jansen@cwi.nl>
parents: 6111
diff changeset
180 details on how to start the program and talk to it, and a class variable
d3f5b453ade8 Updated the applescript documentation for te new framework, and replaced the Eudora example with one that uses Disk Copy (which everyone running MacOS 8 or
Jack Jansen <jack.jansen@cwi.nl>
parents: 6111
diff changeset
181 <code>_signature</code> which is the default application this class will talk
21807
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
182 to (you can override this in various ways when you instantiate your class, see
14091
d3f5b453ade8 Updated the applescript documentation for te new framework, and replaced the Eudora example with one that uses Disk Copy (which everyone running MacOS 8 or
Jack Jansen <jack.jansen@cwi.nl>
parents: 6111
diff changeset
183 <code>aetools.py</code> for details).
21807
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
184 </p>
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
185
17234
71af3b60aa62 Added a note about the new (since 2.0) OSA architecture.
Jack Jansen <jack.jansen@cwi.nl>
parents: 14091
diff changeset
186 <p>
14091
d3f5b453ade8 Updated the applescript documentation for te new framework, and replaced the Eudora example with one that uses Disk Copy (which everyone running MacOS 8 or
Jack Jansen <jack.jansen@cwi.nl>
parents: 6111
diff changeset
187 The <a href="applescript/Disk_Copy/Special_Events.py">Special_Events</a>
d3f5b453ade8 Updated the applescript documentation for te new framework, and replaced the Eudora example with one that uses Disk Copy (which everyone running MacOS 8 or
Jack Jansen <jack.jansen@cwi.nl>
parents: 6111
diff changeset
188 module is a nice example of a suite module.
21807
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
189 The <code>Special_Events_Events</code> class is the bulk of the code
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
190 generated. For each verb, it contains a method. Each method knows what
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
191 arguments the verb expects, and it makes use of keyword
14091
d3f5b453ade8 Updated the applescript documentation for te new framework, and replaced the Eudora example with one that uses Disk Copy (which everyone running MacOS 8 or
Jack Jansen <jack.jansen@cwi.nl>
parents: 6111
diff changeset
192 arguments to present a palatable
21807
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
193 interface to the python programmer.
3457
a71d2fd90fa8 Explanations of the examples here
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
194
21807
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
195 Notice that each method
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
196 calls some routines from <code>aetools</code>, an auxiliary module
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
197 living in <code>Mac:Lib</code>.
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
198 The other thing to notice is that each method calls
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
199 <code>self.send</code>. This comes from the <code>aetools.TalkTo</code>
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
200 baseclass. </p>
3457
a71d2fd90fa8 Explanations of the examples here
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
201
21807
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
202
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
203 <p>
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
204 After the big class, there are a number of little class declarations. These
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
205 declarations are for the (AppleEvent) classes and properties in the suite.
6111
973ef35ef482 Very sketchy preliminary docs on new applescripting functionality.
Jack Jansen <jack.jansen@cwi.nl>
parents: 4821
diff changeset
206 They allow you to create object IDs, which can then be passed to the verbs.
21807
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
207 For instance,
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
208 when scripting the popular email program Eudora,
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
209 you would use <code>mailbox("inbox").message(1).sender</code>
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
210 to get the name of the sender of the first message in mailbox
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
211 inbox. It is
6111
973ef35ef482 Very sketchy preliminary docs on new applescripting functionality.
Jack Jansen <jack.jansen@cwi.nl>
parents: 4821
diff changeset
212 also possible to specify this as <code>sender(message(1, mailbox("inbox")))</code>,
21807
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
213 which is sometimes needed because these classes don&#8217;t always inherit correctly
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
214 from baseclasses, so you may have to use a class or property from another
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
215 suite. </p>
6111
973ef35ef482 Very sketchy preliminary docs on new applescripting functionality.
Jack Jansen <jack.jansen@cwi.nl>
parents: 4821
diff changeset
216
21807
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
217 <p>
6111
973ef35ef482 Very sketchy preliminary docs on new applescripting functionality.
Jack Jansen <jack.jansen@cwi.nl>
parents: 4821
diff changeset
218 Next we get the enumeration dictionaries, which allow you to pass
973ef35ef482 Very sketchy preliminary docs on new applescripting functionality.
Jack Jansen <jack.jansen@cwi.nl>
parents: 4821
diff changeset
219 english names as arguments to verbs, so you don't have to bother with the 4-letter
973ef35ef482 Very sketchy preliminary docs on new applescripting functionality.
Jack Jansen <jack.jansen@cwi.nl>
parents: 4821
diff changeset
220 type code. So, you can say
21807
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
221 <code>
14091
d3f5b453ade8 Updated the applescript documentation for te new framework, and replaced the Eudora example with one that uses Disk Copy (which everyone running MacOS 8 or
Jack Jansen <jack.jansen@cwi.nl>
parents: 6111
diff changeset
222 diskcopy.create(..., filesystem="Mac OS Standard")
21807
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
223 </code>
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
224 as it is called in Script Editor, instead of the cryptic lowlevel
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
225 <code>
14091
d3f5b453ade8 Updated the applescript documentation for te new framework, and replaced the Eudora example with one that uses Disk Copy (which everyone running MacOS 8 or
Jack Jansen <jack.jansen@cwi.nl>
parents: 6111
diff changeset
226 diskcopy.create(..., filesystem="Fhfs")
21807
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
227 </code></p>
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
228
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
229 <p>
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
230 Finally, we get the &#8220;table of contents&#8221; of the module, listing all
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
231 classes and such
21808
63cba423fa04 Some modifications and clarifications (by me) to Michael's mods.
Jack Jansen <jack.jansen@cwi.nl>
parents: 21807
diff changeset
232 by code, which is used by <code>gensuitemodule</code> itself: if you use this
63cba423fa04 Some modifications and clarifications (by me) to Michael's mods.
Jack Jansen <jack.jansen@cwi.nl>
parents: 21807
diff changeset
233 suite as a base package in a later run this is how it knows what is defined in this
63cba423fa04 Some modifications and clarifications (by me) to Michael's mods.
Jack Jansen <jack.jansen@cwi.nl>
parents: 21807
diff changeset
234 suite, and what the Python names are.
21807
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
235 </p>
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
236
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
237 <h3>Notes</h3>
6111
973ef35ef482 Very sketchy preliminary docs on new applescripting functionality.
Jack Jansen <jack.jansen@cwi.nl>
parents: 4821
diff changeset
238
21807
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
239 <ul>
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
240
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
241 <li>The <code>aetools</code> module contains some other nifty
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
242 AppleEvent tools as well. Have a look at it sometime, there is (of
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
243 course) no documentation yet.
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
244 </li>
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
245
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
246 <li>There are also some older object specifiers for standard objects in aetools.
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
247 You use these in the form <code>aetools.Word(10,
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
248 aetools.Document(1))</code>, where the corresponding AppleScript
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
249 terminology would be <code>word 10 of the first
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
250 document</code>. Examine
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
251 <code>aetools</code> and <code>aetools.TalkTo</code>
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
252 along with
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
253 the comments at the end of your suite module if you need to create
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
254 more than the standard object specifiers.
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
255 </li>
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
256
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
257 </ul>
3457
a71d2fd90fa8 Explanations of the examples here
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
258
21807
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
259
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
260
3457
a71d2fd90fa8 Explanations of the examples here
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
261
21807
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
262 <h2>Using a Python suite module</h2>
3457
a71d2fd90fa8 Explanations of the examples here
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
263
21807
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
264 <p>
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
265 Now that we have created the suite module, we can use it in a Python script.
14091
d3f5b453ade8 Updated the applescript documentation for te new framework, and replaced the Eudora example with one that uses Disk Copy (which everyone running MacOS 8 or
Jack Jansen <jack.jansen@cwi.nl>
parents: 6111
diff changeset
266 In older MacPython distributions this used to be a rather
d3f5b453ade8 Updated the applescript documentation for te new framework, and replaced the Eudora example with one that uses Disk Copy (which everyone running MacOS 8 or
Jack Jansen <jack.jansen@cwi.nl>
parents: 6111
diff changeset
267 complicated affair, but with the package scheme and with the application signature
d3f5b453ade8 Updated the applescript documentation for te new framework, and replaced the Eudora example with one that uses Disk Copy (which everyone running MacOS 8 or
Jack Jansen <jack.jansen@cwi.nl>
parents: 6111
diff changeset
268 known by the package it is very simple: you import the package and instantiate
21807
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
269 the class, e.g.
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
270 <code>
14091
d3f5b453ade8 Updated the applescript documentation for te new framework, and replaced the Eudora example with one that uses Disk Copy (which everyone running MacOS 8 or
Jack Jansen <jack.jansen@cwi.nl>
parents: 6111
diff changeset
271 talker = Disk_Copy.Disk_Copy(start=1)
21807
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
272 </code>
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
273 You will usually specify the <code>start=1</code>: it will run the application if it is
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
274 not already running.
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
275 You may want to omit it if you want to talk to the application
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
276 only if it is already running, or if the application is something like the Finder.
21808
63cba423fa04 Some modifications and clarifications (by me) to Michael's mods.
Jack Jansen <jack.jansen@cwi.nl>
parents: 21807
diff changeset
277 Another way to ensure that the application is running is to call <code>talker._start()</code>.
21807
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
278 </p>
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
279
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
280 <p>
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
281 Looking at the sourcefile <a
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
282 href="applescript/makedisk.py">makedisk.py</a>, we see that it starts
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
283 with some imports. Naturally, one of these is the Python interface to Disk
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
284 Copy.</p>
3457
a71d2fd90fa8 Explanations of the examples here
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
285
21807
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
286 <p>
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
287 The main program itself is a wonder of simplicity: we create the
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
288 object (<code>talker</code>) that talks to Disk Copy,
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
289 create a disk, and mount it. The bulk of
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
290 the work is done by <code>talker</code> and the Python interface package we
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
291 just created.</p>
4318
97d3652e57d3 - Regenerated suites
Jack Jansen <jack.jansen@cwi.nl>
parents: 3531
diff changeset
292
21807
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
293 <p>
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
294 The exception handling does warrant a few comments, though. Since
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
295 AppleScript is basically a connectionless RPC protocol,
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
296 nothing happens
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
297 when we create the <code>talker</code> object. Hence, if the destination application
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
298 is not running, we will not notice until we send our first
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
299 command (avoid this as described above). There is another thing to note about errors returned by
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
300 AppleScript calls: <code>MacOS.Error</code> is raised for
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
301 all of the errors that are known to be <code>OSErr</code>-type errors,
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
302 while
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
303 server generated errors raise <code>aetools.Error</code>. </p>
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
304
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
305 <h2>Scripting Additions</h2>
3457
a71d2fd90fa8 Explanations of the examples here
Jack Jansen <jack.jansen@cwi.nl>
parents:
diff changeset
306
21807
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
307 <p>
4821
391f08a9746b Added a chapter on using OSAXen
Jack Jansen <jack.jansen@cwi.nl>
parents: 4553
diff changeset
308 If you want to use any of the scripting additions (or OSAXen, in
21807
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
309 everyday speech) from a Python program, you can use the same method
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
310 as for applications, i.e. run <code>gensuitemodule</code> on the
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
311 OSAX (commonly found in <code>System Folder:Scripting Additions</code>
14091
d3f5b453ade8 Updated the applescript documentation for te new framework, and replaced the Eudora example with one that uses Disk Copy (which everyone running MacOS 8 or
Jack Jansen <jack.jansen@cwi.nl>
parents: 6111
diff changeset
312 or something similar). There is one minor gotcha: the application
21807
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
313 signature to use is <code>MACS</code>. You will need to edit the main class
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
314 in the <code>__init__.py</code> file of the created package and change the value
21808
63cba423fa04 Some modifications and clarifications (by me) to Michael's mods.
Jack Jansen <jack.jansen@cwi.nl>
parents: 21807
diff changeset
315 of <code>_signature</code> to <code>MACS</code>, or use a subclass to the
63cba423fa04 Some modifications and clarifications (by me) to Michael's mods.
Jack Jansen <jack.jansen@cwi.nl>
parents: 21807
diff changeset
316 same effect.
21807
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
317 </p>
4821
391f08a9746b Added a chapter on using OSAXen
Jack Jansen <jack.jansen@cwi.nl>
parents: 4553
diff changeset
318
21807
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
319 <p>
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
320 There are two minor points to watch out for when using <code>gensuitemodule</code>
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
321 on OSAXen: they appear all to define the class <code>System_Object_Suite</code>,
4821
391f08a9746b Added a chapter on using OSAXen
Jack Jansen <jack.jansen@cwi.nl>
parents: 4553
diff changeset
322 and a lot of them have the command set in multiple dialects. You have to
21807
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
323 watch out for name conflicts and make sure you select a reasonable dialect
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
324 (some of the non-English dialects cause <code>gensuitemodule</code> to generate incorrect
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
325 Python code). </p>
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
326
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
327 Despite these difficulties, OSAXen offer a lot of possibilities. Take a
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
328 look at some of the OSAXen in the Scripting Additions folder, or
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
329 <A HREF="http://www.osaxen.com/index.php">download</A> some from the net.
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
330
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
331 <h2>Further Reading</h2>
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
332
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
333 <p>
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
334 If you want to look at more involved examples of applescripting, look at the standard
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
335 modules <code>findertools</code> and <code>nsremote</code>, or (possibly better, as it
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
336 is more involved) <code>fullbuild</code> from the <code>Mac:scripts</code> folder.
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
337 </p>
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
338
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
339 <h2><a name="alternatives">Alternatives</a></h2>
4821
391f08a9746b Added a chapter on using OSAXen
Jack Jansen <jack.jansen@cwi.nl>
parents: 4553
diff changeset
340
21807
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
341 <h3><a name="osx">Mac OS X</a></h3>
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
342
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
343 <p>
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
344 Under Mac OS X, the above still works, but with some new difficulties.
21808
63cba423fa04 Some modifications and clarifications (by me) to Michael's mods.
Jack Jansen <jack.jansen@cwi.nl>
parents: 21807
diff changeset
345 The application package structure can hide the &#8216;AETE&#8217; or
63cba423fa04 Some modifications and clarifications (by me) to Michael's mods.
Jack Jansen <jack.jansen@cwi.nl>
parents: 21807
diff changeset
346 &#8216;AEUT&#8217; resource from <code>gensuitemodule</code>, so that,
63cba423fa04 Some modifications and clarifications (by me) to Michael's mods.
Jack Jansen <jack.jansen@cwi.nl>
parents: 21807
diff changeset
347 for example, it cannot generate an OSA interface to iTunes. Script
63cba423fa04 Some modifications and clarifications (by me) to Michael's mods.
Jack Jansen <jack.jansen@cwi.nl>
parents: 21807
diff changeset
348 Editor gets at the dictionary of such programs using a &#8216;Get
63cba423fa04 Some modifications and clarifications (by me) to Michael's mods.
Jack Jansen <jack.jansen@cwi.nl>
parents: 21807
diff changeset
349 AETE&#8217; AppleEvent, if someone wants to donate code to use the same
63cba423fa04 Some modifications and clarifications (by me) to Michael's mods.
Jack Jansen <jack.jansen@cwi.nl>
parents: 21807
diff changeset
350 method for gensuitemodule: by all means!
21807
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
351 </p>
14091
d3f5b453ade8 Updated the applescript documentation for te new framework, and replaced the Eudora example with one that uses Disk Copy (which everyone running MacOS 8 or
Jack Jansen <jack.jansen@cwi.nl>
parents: 6111
diff changeset
352
21807
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
353 <p>
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
354 One alternative is available through the Unix command line version of python.
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
355 Apple has provided the <code>osacompile</code> and <code>osascript</code> tools,
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
356 which can be used to compile and execute scripts written in OSA languages. See the
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
357 man pages for more details.
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
358 </p>
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
359
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
360
59d09ba1f782 Rewritten, clarified, corrected and cleaned up by Michael J. Barber.
Jack Jansen <jack.jansen@cwi.nl>
parents: 17234
diff changeset
361 </body>
38925
1342dfd52733 Drop the calldll demo's for macos, calldll isn't present anymore, no need
Ronald Oussoren <ronaldoussoren@mac.com>
parents: 21808
diff changeset
362 </html>