]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/demo/PyPlot.py
fixed child windows scrolling to use wxSIZE_ALLOW_MINUS_ONE
[wxWidgets.git] / wxPython / demo / PyPlot.py
index 954f37ec6e8527a70e0c0a5c63f21febd16787fd..52387c5044ef0daa860dc740d34c0826a1f05643 100644 (file)
@@ -1,6 +1,12 @@
 
 import  wx
-import  wx.lib.plot
+
+hadImportError = False
+try:
+    import  wx.lib.plot
+except ImportError:
+    hadImportError = True
+    
 
 ################################################################\
 # Where's the code???                                           |
@@ -8,23 +14,51 @@ import  wx.lib.plot
 # wx.lib.plot.py came with its own excellent demo built in,     |
 # for testing purposes, but it serves quite well to demonstrate |
 # the code and classes within, so we are simply borrowing that  |
-# code for the demo. Please load up wx.py.plot.py for a review  |
+# code for the demo. Please load up wx.lib.plot.py for a review |
 # of the code itself. The demo/test is at the bottom of         |
 # the file, as expected.                                        |
 ################################################################/
 
-#----------------------------------------------------------------------
+#---------------------------------------------------------------------------
+
+class TestPanel(wx.Panel):
+    def __init__(self, parent, log):
+        self.log = log
+        wx.Panel.__init__(self, parent, -1)
+
+        b = wx.Button(self, -1, "Show the PyPlot sample", (50,50))
+        self.Bind(wx.EVT_BUTTON, self.OnButton, b)
+
+
+    def OnButton(self, evt):
+        win = wx.lib.plot.TestFrame(self, -1, "PlotCanvas Demo")
+        win.Show()
+
+#---------------------------------------------------------------------------
+
 
 def runTest(frame, nb, log):
-    # Loading the demo class directly from the library's
-    # test code.
-    win = wx.lib.plot.TestFrame(nb, -1, "PlotCanvas Demo")
-    frame.otherWin = win
-    return None
+    if not hadImportError:
+        win = TestPanel(nb, log)
+    else:
+        from Main import MessagePanel
+        win = MessagePanel(nb, """\
+This demo requires the Numeric or numarray module,
+which could not be imported.  It probably is not installed
+(it's not part of the standard Python distribution). See the
+Python site (http://www.python.org) for information on
+downloading source or binaries.""",
+                           'Sorry', wx.ICON_WARNING)
+    
+    return win
+
 
 #----------------------------------------------------------------------
 
-overview = """\
+if hadImportError:
+    overview = ""
+else:
+    overview = """\
 <html><body>
 <center><h2>PyPlot</h2></center>
 
@@ -49,22 +83,22 @@ come with the class itself.
     <ul>
     <li>Page Setup
 
-        This allows you to set up how the plot will be printed. This
+        <p>This allows you to set up how the plot will be printed. This
         is built into the library itself.
        
     <li>Print Preview
 
-        As you might expect, this allows you to preview how the plot
+        <p>As you might expect, this allows you to preview how the plot
         will look when printed, in light of the page setup you may
         have selected above.
         
     <li>Print
     
-        Suprise! It prints the current plot to your printer! :-)
+        <p>Surprise! It prints the current plot to your printer! :-)
         
     <li>Save Plot
     
-        That's right, the library even provides you with the means
+        <p>That's right, the library even provides you with the means
         to export the plotted data out to a graphics file. Several
         formats are allowed for, basically any image class that
         supports saving.
@@ -75,24 +109,24 @@ come with the class itself.
     <ul>
     <li>Plot 1 ... Plot 5
      
-        Different data with different plot formats, including one empty
+        <p>Different data with different plot formats, including one empty
         plot.
          
     <li>Enable Zoom
     
-        If Zoom is enabled, you can rubber-band select an area of the
+        <p>If Zoom is enabled, you can rubber-band select an area of the
         plot to examine it in detail using the left mouse button. Right
         mouse button zooms back out. This is automatically supported
         by the library, all you have to do is turn it on.
         
     <li>Enable Grid
     
-        Plots can have different styles of grids, and and these grids can
+        <p>Plots can have different styles of grids, and and these grids can
         be turned on or off as needed.
         
     <li>Enable Legend
     
-        Plot can have legends or not, the contents which are definable 
+        <p>Plot can have legends or not, the contents which are definable 
         by you.
     </ul>
 </ul>
@@ -106,5 +140,5 @@ come with the class itself.
 if __name__ == '__main__':
     import sys,os
     import run
-    run.main(['', os.path.basename(sys.argv[0])])
+    run.main(['', os.path.basename(sys.argv[0])] + sys.argv[1:])