summaryrefslogtreecommitdiffstats
path: root/Mac/Demo/example2.html
diff options
context:
space:
mode:
authorBenjamin Peterson <benjamin@python.org>2008-07-01 18:23:09 (GMT)
committerBenjamin Peterson <benjamin@python.org>2008-07-01 18:23:09 (GMT)
commitde9c869fb8c1f842bc3dfc4d51f287cb6b644ab2 (patch)
treeda0b9c0e9d56288354f936b59021d94018a172a8 /Mac/Demo/example2.html
parentbbfd71d7ac02bc2053a0ba494a3f055fbec8deee (diff)
downloadcpython-de9c869fb8c1f842bc3dfc4d51f287cb6b644ab2.zip
cpython-de9c869fb8c1f842bc3dfc4d51f287cb6b644ab2.tar.gz
cpython-de9c869fb8c1f842bc3dfc4d51f287cb6b644ab2.tar.bz2
Hopefully fix make framework install on Mac (see 3174)
Removal of the Mac modules broke many of the Mac scripts (including BuildApplet.py) so the building of the Python launcher and IDLE.app was broken. I manually copied built versions of those apps into Mac. Everything else which used Mac modules had to die.
Diffstat (limited to 'Mac/Demo/example2.html')
-rw-r--r--Mac/Demo/example2.html162
1 files changed, 0 insertions, 162 deletions
diff --git a/Mac/Demo/example2.html b/Mac/Demo/example2.html
deleted file mode 100644
index 2c3cd22..0000000
--- a/Mac/Demo/example2.html
+++ /dev/null
@@ -1,162 +0,0 @@
-<HTML><HEAD><TITLE>Using python to create Macintosh applications, part two</TITLE></HEAD>
-<BODY>
-<H1>Using python to create Macintosh applications, part two</H1>
-<HR>
-
-In this document we rewrite the application of the <A
-HREF="example1.html">previous example</A> to use modeless dialogs. We
-will use an application framework, and we will have a look at creating
-applets, standalone applications written in Python. The <A
-HREF="example2/dnslookup-2.py">source code</A> and
-<A HREF="example2/dnslookup-2.rsrc">resource file</A> are available in the folder
-<A HREF="example2">example2</A>. <p>
-
-Again, we start with ResEdit to create our dialogs. Not only do we
-want a main dialog this time but also an "About" dialog. This example is less
-than complete since we do not provide a <A NAME="bundle">BNDL resource</A>
-and related stuff that an application cannot be without. We are able to do this
-when building a python applet since BuildApplet will substitute default resources
-for BNDL, etc. when none are supplied (<A HREF="#no-bundle">See below</A>.)
-"Inside Mac" or various
-books on Macintosh programming will help here. Also, you can refer to
-the resource files provided in the Python source distribution for some
-of the python-specific points of BNDL programming: the
-"appletbundle.rsrc" file is what is used for creating applets if you
-don't provide your own resource file. <p>
-
-When creating your own BNDL resouorces, keep in mind that the Finder gets
-confused if you have more than one application with the same signature. This may be due
-to some incorrectness on the side of "BuildApplet", I am not sure. There is one
-case when you definitely need a unique signature: when you create an applet that
-has its own data files and you want the user to be able to start your
-applet by double-clicking one of the datafiles. <p>
-
-Let's have a look at dnslookup-2.rsrc, our resource file. Dialog 512 is the
-main window which has one button (Lookup), two labels and
-two text entry areas, one of which is used for output only. The "Quit"
-button has disappeared, because its function is handled by a menu choice. Here's
-what it will look like at run time:<p>
-<div align=center>
-<img width=324 height=205 src="example2/dnslookup-2.gif" alt="dialog image">
-</div>
-<p>
-
-<H2>A modeless dialog application using FrameWork</H2>
-
-On to the source code in <A
-HREF="example2/dnslookup-2.py">dnslookup-2.py</A>. The
-start is similar to our previous example program <A
-HREF="example1/dnslookup-1.py">dnslookup-1.py</A>, with
-one extra module being imported. To make life more simple we will use
-the <CODE>FrameWork</CODE> module, a nifty piece of code that handles
-all the gory Mac details of event loop programming, menubar
-installation and all the other code that is the same for every Mac
-program in the world. Like most standard modules, FrameWork will run
-some sample test code when you invoke it as a main program, so try it
-now. It will create a menu bar with an Apple menu with the about box
-and a "File" menu with some pythonesque choices (which do nothing
-interesting, by the way) and a "Quit" command that works. <p>
-
-<BLOCKQUOTE>
-If you have not used <code>FrameWork</code> before you may want to
-first take a look at the <A HREF="textedit.html">Pathetic EDitor</A>
-example, which builds a minimal text editor using FrameWork and TextEdit.
-On the other hand: we don't use many features of FrameWork, so you could
-also continue with this document.
-</BLOCKQUOTE>
-
-After the imports we get the definitions of resource-IDs in our
-resource file, slightly changed from the previous version of our
-program. The main program is also
-similar to our previous version, with one important exception: we
-first check to see whether our resource is available before opening
-the resource file. Why is this? Because later, when we will have
-converted the script to an applet, our resources will be available in
-the applet file and we don't need the separate resource file
-anymore. <p>
-
-Next comes the definition of our main class,
-<CODE>DNSLookup</CODE>, which inherits
-<CODE>FrameWork.Application</CODE>. The Application class handles the
-menu bar and the main event loop and event dispatching. In the
-<CODE>__init__</CODE> routine we first let the base class initialize
-itself, then we create our modeless dialog and finally we jump into
-the main loop. The main loop continues until we call <CODE>self._quit</CODE>,
-which we will do when the user selects "Quit". When we create
-the instance of <CODE>MyDialog</CODE> (which inherits
-<CODE>DialogWindow</CODE>, which inherits <CODE>Window</CODE>) we pass
-a reference to the application object, this reference is used to tell
-Application about our new window. This enables the event loop to keep
-track of all windows and dispatch things like update events and mouse
-clicks. <p>
-
-The <CODE>makeusermenus()</CODE> method (which is called sometime
-during the Application <CODE>__init__</CODE> routine) creates a File
-menu with a Quit command (shortcut command-Q), which will callback to
-our quit() method. <CODE>Quit()</CODE>, in turn, calls <CODE>_quit</CODE> which
-causes the mainloop to terminate at a convenient time. <p>
-
-Application provides a standard about box, but we override this by
-providing our own <CODE>do_about()</CODE> method which shows an about
-box from a resource as a modal dialog. This piece of code should look
-familiar to you from the previous example program. That do_about is
-called when the user selects About from the Apple menu is, again,
-taken care of by the __init__ routine of Application. <p>
-
-The <CODE>MyDialog</CODE> class is the container for our main
-window. Initialization is again done by first calling the base class
-<CODE>__init__</CODE> function and finally setting the local variable
-"parent." <p>
-
-<CODE>Do_itemhit()</CODE> is called when an item is selected in this
-dialog by the user. We are passed the item number (and the original
-event structure, which we normally ignore). The code is similar to the
-main loop of our previous example program: a switch depending on the
-item selected. <CODE>Dnslookup()</CODE> is quite similar to our previous
-example. <p>
-
-<H2><IMG SRC="html.icons/mkapplet.gif"><A NAME="applets">Creating applets</A></H2>
-
-Now let us try to turn the python script into an applet, a standalone
-application. This will <em>not</em> work if you have the "classic 68k"
-Python distribution, only if you have the cfm68k or PPC distribution.
-
-<blockquote>
-Actually, "standalone" is probably not the correct term here, since an
-applet does still depend on a lot of the python environment: the
-PythonCore shared library, the Python Preferences file, the python Lib
-folder and any other modules that the main module depends on. It is
-possible to get rid of all these dependencies and create true standalone
-applications in Python, but this is a bit difficult. See <a href="freezing.html">
-Standalone Applications in Python</a> for details. For this
-document, by standalone we mean here that
-the script has the look-and-feel of an application, including the
-ability to have its own document types, be droppable, etc.
-</blockquote>
-
-The easiest way to create an applet is to take your source file and
-drop it onto "BuildApplet", located in the Python home
-folder. This will create an applet with the same name as your python
-source with the ".py" stripped. Also, if a resource file with the same
-name as your source but with ".rsrc" extension is available the
-resources from that file will be copied to your applet too. If there
-is no resource file for your script a set of default resources will be
-used, and the applet will have the default creator 'Pyt0'. The latter
-also happens if you do have a resource file but without the BNDL
-combo. <A NAME="no-bundle">Actually</A>, as in the present example.
-<p>
-
-If you need slightly more control over the BuildApplet process you can
-double-click it, and you will get dialogs for source and
-destination of the applet. The rest of the process, including locating
-the resource file, remains the same. <p>
-
-Note that though our example application completely bypasses the
-normal python user interface this is by no means necessary. Any python
-script can be turned into an applet, and all the usual features of the
-interpreter still work. <p>
-
-That's all for this example, you may now return to the <A HREF="index.html">
-table of contents</A> to pick another topic. <p>
-</BODY>
-</HTML>