1<HTML><HEAD><TITLE>Macintosh Python crash course</TITLE></HEAD> 2<BODY> 3<H1><IMG SRC="html.icons/python.gif">Macintosh Python crash course</H1> 4<HR> 5 6<p>This set of documents provides an introduction to various aspects of 7Python programming on the Mac. It is assumed that the reader is 8already familiar with Python and, to some extent, with MacOS Toolbox 9programming. Other readers may find something interesting here too, 10your mileage may vary. </p> 11 12<p>As the previous paragraph reveals to the careful observer these examples 13are dated, most of them were writting before OSX and haven't been updated 14afterwards. They still show how to use the Carbon wrappers but aren't 15necessarily the best way to use the Carbon API's in OSX.</p> 16 17Another set of Macintosh-savvy examples, more aimed at beginners, is 18maintained by Joseph Strout, at Python Tidbits in <A 19HREF="http://www.strout.net/python/"> 20http://www.strout.net/python/</A>. 21<P> 22 23The <a href="http://www.python.org/doc/lib/Top.html">Python Library 24Reference</a> contains a section on <a 25href="http://www.python.org/doc/lib/Macintosh-Specific-Services.html">Macintosh-specific 26modules</a> that you should also read. Documentation is also available 27in PostScript and other forms, see the <a 28href="http://www.python.org/doc/">documentation</a> section on the 29webserver. <p> 30 31<p>The W widget set by Just van Rossum, does not have complete documentation as 32of this writing, but Corran Webster has documented most of it on his 33<A HREF="http://www.nevada.edu/~cwebster/Python/">Python Page</A>.</p> 34 35There are also some documentation links, as well as other MacPython-related 36pages, in the 37<A HREF="http://dmoz.org/Computers/Systems/Macintosh/Development/Scripting/Python/"> 38Open Directory</A>. 39 40 41<H2>Table of contents</H2> 42 43<blockquote><B>Note:</B> 44Some of these documents were actually written a long time ago and have seen 45little maintainance, so use with care. </blockquote> 46<UL> 47<LI> 48<A HREF="example0.html">Using python to create Macintosh applications, 49part zero</A> whets your appetite by showing you how to ask the user 50for a filename, and how to display a message. It explains about end-of-line 51confusion while doing so. 52 53<LI> 54<A HREF="example1.html">Using python to create Macintosh applications, 55part one</A> explains how to create a simple modal-dialog application 56in Python. It also takes a glance at using the toolbox modules Res and 57Dlg, and EasyDialogs for simple question-dialogs. 58 59<LI> 60<A HREF="example2.html">Using python to create Macintosh applications, 61part two</A> turns the previous example program into a more complete 62mac application, using a modeless dialog, menus, etc. It also explains 63how to create applets, standalone applications written in Python. 64 65<LI> 66<A HREF="freezing.html">Freezing Python programs</A> extends on this concept, 67and shows you how to create applications that can be used on machines without 68a full Python installed. This one is probably best skipped on first contact 69with MacPython. 70 71<LI> 72<A HREF="textedit.html">Using FrameWork and TextEdit</A> shows you 73how to use <code>FrameWork</code> application framework and the 74<code>TextEdit</code> toolbox to build a text editor. 75 76<LI> 77<A HREF="plugins.html">Creating a C extension module on the Macintosh</A> 78is meant for the hardcore programmer, and shows how to create an 79extension module in C. It also handles using Modulator to create the 80boilerplate for your module, and creating dynamically-loadable modules 81on PowerPC Macs. It assumes you use CodeWarrior for you development. 82 83<LI> 84<A HREF="mpwextensions.html">Creating C extension modules using MPW</A> 85is a companion document, written by Corran Webster, which explains how you 86can develop Python extensions using Apple's free MPW compiler environment. 87 88<LI> 89<A HREF="applescript.html">Using Open Scripting Architecture from Python</A> explains 90how to create a Python module interfacing to a scriptable application, 91and how to use that module in your python program. 92 93<LI> 94<A HREF="cgi.html">Using python to create CGI scripts</A> is a preliminary 95introduction to writing CGI scripts in Python and to writing scriptable applications 96in Python. 97 98<LI> 99<A HREF="building.html">Building Mac Python from source</A> explains 100how to build a PPC or 68K interpreter from a source distribution. 101 102<LI> 103<A HREF="embed.html">Embedding Python on the Mac</A> is a minimal example of 104how to embed Python in other Mac applications. 105 106</UL> 107 108The Python distribution contains a few more examples, all unexplained: 109<UL> 110<LI> 111<I>PICTbrowse</I> is an application that locates PICT 112resources and displays them, it demonstrates some quickdraw and the 113resource and list managers. In the same folder you will find the very 114similar scripts ICONbrowse and cicnbrowse. oldPICTbrowse is the same program 115but form the pre-Appearance era, it uses a dialog with a user item and 116creates and manages its own List object. 117 118<LI> 119<I>Imgbrowse</I> displays image files in 120many different formats (gif, tiff, pbm, etc). It shows how to use the 121img modules on the mac. 122 123<LI> 124<I>Quicktime</I> has the standard <code>MovieInWindow</code> and 125<code>VerySimplePlayer</code> examples, re-coded in Python. 126 127<LI> 128<I>Resources</I>, <I>Sound</I> and <I>Speech</I> have some examples 129on using the respective managers. In the <i>Mac:Lib</i> folder you 130will also find modules that do useful things with the Communications 131Toolbox, the Finder interface, etc. 132 133<LI> 134<I>Printing</I> has an example on using the Printing module to, you guessed 135it, print from Python. The code is somewhat self-documenting. Donated 136by Just van Rossum, who also donated the Printing module itself. 137</UL> 138 139At some point in the (possibly distant) future, I will add chapters on 140how to use bgen to create modules completely automatic and how to make 141your Python program scriptable, but that will have to wait. <p> 142 143<HR> 144 145Please let me know if you miss critical information in this 146document. I am quite sure that I will never find the time to turn it 147into a complete MacPython programmers guide (which would probably be a 148400-page book instead of 10 lousy html-files), but it should contain 149at least the information that is neither in the standard Python 150documentation nor in Inside Mac or other Mac programmers 151documentation. <p> 152 153<HR> 154<A HREF="http://www.cwi.nl/~jack">Jack Jansen</A>, 155<A HREF="mailto:jack@cwi.nl">jack@cwi.nl</A>, 22-Apr-00. 156</BODY></HTML> 157