]> git.saurik.com Git - wxWidgets.git/blobdiff - utils/wxPython/demo/Main.py
*** empty log message ***
[wxWidgets.git] / utils / wxPython / demo / Main.py
index 175b0c4e151d38a04f28b14b320dc6d3adee11b0..5e42ae882a60ebf244352ce2f3dd4818b6abc09f 100644 (file)
@@ -36,13 +36,14 @@ _treeList = [
                   'wxTreeCtrl', 'wxSpinButton', 'wxStaticText', 'wxStaticBitmap',
                   'wxRadioBox', 'wxSlider']),
 
-    ('Window Layout', ['wxLayoutConstraints', 'Sizers']),
+    ('Window Layout', ['wxLayoutConstraints', 'Sizers', 'OldSizers']),
 
-    ('Miscellaneous', ['wxTimer', 'wxGLCanvas', 'DialogUnits', 'wxImage',
-                      'PrintFramework', 'wxOGL']),
+    ('Miscellaneous', ['wxTimer', 'wxValidator', 'wxGLCanvas', 'DialogUnits',
+                       'wxImage', 'PrintFramework', 'wxOGL']),
 
-    ('wxPython Library', ['Sizers', 'Layoutf', 'wxScrolledMessageDialog',
-                          'wxMultipleChoiceDialog', 'wxPlotCanvas']),
+    ('wxPython Library', ['OldSizers', 'Layoutf', 'wxScrolledMessageDialog',
+                          'wxMultipleChoiceDialog', 'wxPlotCanvas', 'wxFloatBar',
+                          'PyShell']),
 
     ('Cool Contribs', ['pyTree', 'hangman', 'SlashDot', 'XMLtreeview']),
 
@@ -52,8 +53,8 @@ _treeList = [
 
 class wxPythonDemo(wxFrame):
     def __init__(self, parent, id, title):
-        wxFrame.__init__(self, parent, -1, title,
-                         wxDefaultPosition, wxSize(700, 550))
+        wxFrame.__init__(self, parent, -1, title, size = (725, 550))
+
         if wxPlatform == '__WXMSW__':
             self.icon = wxIcon('bitmaps/mondrian.ico', wxBITMAP_TYPE_ICO)
             self.SetIcon(self.icon)
@@ -72,9 +73,9 @@ class wxPythonDemo(wxFrame):
         # Make a File menu
         self.mainmenu = wxMenuBar()
         menu = wxMenu()
-        mID = wxNewId()
-        menu.Append(mID, 'E&xit', 'Get the heck outta here!')
-        EVT_MENU(self, mID, self.OnFileExit)
+        exitID = wxNewId()
+        menu.Append(exitID, 'E&xit\tAlt-X', 'Get the heck outta here!')
+        EVT_MENU(self, exitID, self.OnFileExit)
         self.mainmenu.Append(menu, '&File')
 
         # Make a Demo menu
@@ -90,13 +91,18 @@ class wxPythonDemo(wxFrame):
 
 
         # Make a Help menu
-        mID = wxNewId()
+        helpID = wxNewId()
         menu = wxMenu()
-        menu.Append(mID, '&About', 'wxPython RULES!!!')
-        EVT_MENU(self, mID, self.OnHelpAbout)
+        menu.Append(helpID, '&About\tCtrl-H', 'wxPython RULES!!!')
+        EVT_MENU(self, helpID, self.OnHelpAbout)
         self.mainmenu.Append(menu, '&Help')
         self.SetMenuBar(self.mainmenu)
 
+        # set the menu accellerator table...
+        aTable = wxAcceleratorTable([(wxACCEL_ALT,  ord('X'), exitID),
+                                     (wxACCEL_CTRL, ord('H'), helpID)])
+        self.SetAcceleratorTable(aTable)
+
 
         # Create a TreeCtrl
         tID = wxNewId()
@@ -133,7 +139,7 @@ class wxPythonDemo(wxFrame):
         self.log = wxTextCtrl(splitter2, -1,
                               style = wxTE_MULTILINE|wxTE_READONLY|wxHSCROLL)
         (w, self.charHeight) = self.log.GetTextExtent('X')
-        #self.WriteText('wxPython Demo Log:\n')
+        self.WriteText('wxPython Demo Log:\n')
 
 
         # add the windows to the splitter and split it.
@@ -168,8 +174,9 @@ class wxPythonDemo(wxFrame):
         w, h = self.log.GetClientSizeTuple()
         numLines = h/self.charHeight
         x, y = self.log.PositionToXY(self.log.GetLastPosition())
-        self.log.ShowPosition(self.log.XYToPosition(x, y-numLines))
-        ##self.log.ShowPosition(self.log.GetLastPosition())
+        if y > numLines:
+            self.log.ShowPosition(self.log.XYToPosition(x, y-numLines))
+            ##self.log.ShowPosition(self.log.GetLastPosition())
         self.log.SetInsertionPointEnd()
 
     def write(self, txt):
@@ -201,9 +208,7 @@ class wxPythonDemo(wxFrame):
         if itemText == 'Overview':
             self.GetDemoFile('Main.py')
             self.SetOverview('Overview', overview)
-            #self.nb.ResizeChildren();
             self.nb.Refresh();
-            #wxYield()
             self.window = None
 
         else:
@@ -219,8 +224,8 @@ class wxPythonDemo(wxFrame):
                 self.window = module.runTest(self, self.nb, self)
                 if self.window:
                     self.nb.AddPage(self.window, 'Demo')
+                    self.nb.ResizeChildren()
                     self.nb.SetSelection(2)
-                    self.nb.ResizeChildren();
 
             else:
                 self.ovr.Clear()
@@ -228,6 +233,7 @@ class wxPythonDemo(wxFrame):
                 self.window = None
 
 
+
     #---------------------------------------------
     # Get the Demo files
     def GetDemoFile(self, filename):
@@ -265,6 +271,7 @@ class wxPythonDemo(wxFrame):
         #                        "of wxPython.\n\n"
         #                        "          Developed by Robin Dunn",
         #                       "About wxPython", wxOK)
+        from About import MyAboutBox
         about = MyAboutBox(self)
         about.ShowModal()
         about.Destroy()
@@ -274,6 +281,7 @@ class wxPythonDemo(wxFrame):
     def OnCloseWindow(self, event):
         self.dying = true
         self.window = None
+        self.mainmenu = None
         self.Destroy()
 
     #---------------------------------------------
@@ -285,7 +293,6 @@ class wxPythonDemo(wxFrame):
 
     #---------------------------------------------
     def OnDemoMenu(self, event):
-        print event.GetId(), self.mainmenu.GetLabel(event.GetId())
         try:
             selectedDemo = self.treeMap[self.mainmenu.GetLabel(event.GetId())]
         except:
@@ -295,45 +302,6 @@ class wxPythonDemo(wxFrame):
             self.tree.EnsureVisible(selectedDemo)
 
 
-
-#---------------------------------------------------------------------------
-#---------------------------------------------------------------------------
-
-class MyAboutBox(wxDialog):
-    text = '''
-<html>
-<body bgcolor="#AC76DE">
-<center><table bgcolor="#458154" width="100%%" cellspacing="0" cellpadding="0" border="1">
-<tr>
-    <td align="center"><h1>wxPython %s</h1></td>
-</tr>
-</table>
-
-<p><b>wxPython</b> is a Python extension module that
-encapsulates the wxWindows GUI classes.</p>
-
-<p>This demo shows off some of the capabilities
-of <b>wxPython</b>.  Select items from the menu or tree control,
-sit back and enjoy.  Be sure to take a peek at the source code for each
-demo item so you can learn how to use the classes yourself.</p>
-
-<p><b>wxPython</b> is brought to you by <b>Robin Dunn</b> and<br>
-<b>Total Control Software</b>, copyright 1999.</p>
-
-<p><font size="-1">Please see <i>license.txt</i> for licensing information.</font></p>
-</center>
-</body>
-</html>
-'''
-    def __init__(self, parent):
-        from wxPython.html import *
-        wxDialog.__init__(self, parent, -1, 'About wxPython')
-        self.html = wxHtmlWindow(self, -1, wxPoint(5,5), wxSize(400, 350))
-        self.html.SetPage(self.text % wx.__version__)
-        wxButton(self, wxID_OK, 'OK', wxPoint(5, 365)).SetDefault()
-        self.Fit()
-
-
 #---------------------------------------------------------------------------
 #---------------------------------------------------------------------------