]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/demo/viewer.py
move wxPython to new trunk
[wxWidgets.git] / wxPython / demo / viewer.py
diff --git a/wxPython/demo/viewer.py b/wxPython/demo/viewer.py
deleted file mode 100644 (file)
index a0332d9..0000000
+++ /dev/null
@@ -1,100 +0,0 @@
-#!/usr/bin/env python
-
-"""
-    Run wxPython in a second thread.
-
-    Overview:
-        Importing this module creates a second thread and starts
-        wxPython in that thread.  Its single method,
-        add_cone(), sends an event to the second thread
-        telling it to create a VTK viewer window with a cone in
-        it.
-
-        This module is meant to be imported into the standard
-        Python interpreter.  It also works with Pythonwin.
-        It doesn't seem to work with IDLE (on NT anyways).
-        It should also work in a wxPython application.
-
-        Applications already running a wxPython app do not
-        need to start a second thread.  In these cases,
-        viewer creates the cone windows in the current
-        thread.  You can test this by running shell.py
-        that comes with wxPython, importing viewer and
-        calling add_cone.
-
-    Usage:
-        [user]$ python
-        Python 1.5.2 (#1, Sep 17 1999, 20:15:36)  ...
-        Copyright 1991-1995 Stichting Mathematisch Centrum, Amsterdam
-        >>> import viewer
-        >>> viewer.add_cone() # pop up a cone window
-        >>> a = 1
-        1
-        >>> viewer.add_cone() # create another cone window
-
-    Why would anyone do this?:
-        When using wxPython, the call to app.Mainloop() takes over
-        the thread from which it is called.  This presents a
-        problem for applications that want to use the standard
-        Python command line user interface, while occasionally
-        creating a GUI window for viewing an image, plot, etc.
-        One solution is to manage the GUI in a second thread.
-
-        wxPython does not behave well if windows are created in
-        a thread other than the one where wxPython was originally
-        imported. ( I assume importing wxPython initializes some
-        info in the thread).  The current solution is to make the
-        original import of wxPython in the second thread and then
-        create all windows in that second thread.
-
-        Methods in the main thread can create a new window by issuing
-        events to a "catcher" window in the second thread.  This
-        catcher window has event handlers that actually create the
-        new window.
-"""
-
-class viewer_thread:
-    def start(self):
-        """ start the GUI thread
-        """
-        import  time
-        import  thread
-        thread.start_new_thread(self.run, ())
-
-    def run(self):
-        """
-            Note that viewer_basices is first imported ***here***.
-            This is the second thread.  viewer_basics imports
-            wxPython.  if we imported it at
-            the module level instead of in this function,
-            the import would occur in the main thread and
-            wxPython wouldn't run correctly in the second thread.
-        """
-        import  viewer_basics
-
-        try:
-            self.app = viewer_basics.SecondThreadApp(0)
-            self.app.MainLoop()
-        except TypeError:
-            self.app = None
-
-    def add_cone(self):
-        """
-            send an event to the catcher window in the
-            other thread and tell it to create a cone window.
-        """
-        import  viewer_basics
-
-        if self.app:
-            evt = viewer_basics.AddCone()
-            viewer_basics.wxPostEvent(self.app.catcher, evt)
-        else:
-            viewer_basics.add_cone()
-
-viewer = viewer_thread()
-viewer.start()
-
-def add_cone():
-    viewer.add_cone()
-
-