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