X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/efc5f2246391dc536e5ace471af019bba8d6851b..2819545569bbbfcade45a1bfe91d7c53b7c82f5d:/utils/wxPython/demo/Main.py diff --git a/utils/wxPython/demo/Main.py b/utils/wxPython/demo/Main.py index 0d820d7ade..175b0c4e15 100644 --- a/utils/wxPython/demo/Main.py +++ b/utils/wxPython/demo/Main.py @@ -23,7 +23,8 @@ _treeList = [ ('Miscellaneous Windows', ['wxGrid', 'wxSashWindow', 'wxScrolledWindow', 'wxSplitterWindow', - 'wxStatusBar', 'wxToolBar', 'wxNotebook']), + 'wxStatusBar', 'wxToolBar', 'wxNotebook', + 'wxHtmlWindow']), ('Common Dialogs', ['wxColourDialog', 'wxDirDialog', 'wxFileDialog', 'wxSingleChoiceDialog', 'wxTextEntryDialog', @@ -38,7 +39,7 @@ _treeList = [ ('Window Layout', ['wxLayoutConstraints', 'Sizers']), ('Miscellaneous', ['wxTimer', 'wxGLCanvas', 'DialogUnits', 'wxImage', - 'PrintFramework']), + 'PrintFramework', 'wxOGL']), ('wxPython Library', ['Sizers', 'Layoutf', 'wxScrolledMessageDialog', 'wxMultipleChoiceDialog', 'wxPlotCanvas']), @@ -71,34 +72,42 @@ class wxPythonDemo(wxFrame): # Make a File menu self.mainmenu = wxMenuBar() menu = wxMenu() - mID = NewId() + mID = wxNewId() menu.Append(mID, 'E&xit', 'Get the heck outta here!') EVT_MENU(self, mID, self.OnFileExit) self.mainmenu.Append(menu, '&File') + # Make a Demo menu + menu = wxMenu() + for item in _treeList: + submenu = wxMenu() + for childItem in item[1]: + mID = wxNewId() + submenu.Append(mID, childItem) + EVT_MENU(self, mID, self.OnDemoMenu) + menu.AppendMenu(wxNewId(), item[0], submenu) + self.mainmenu.Append(menu, '&Demo') + + # Make a Help menu - mID = NewId() + mID = wxNewId() menu = wxMenu() menu.Append(mID, '&About', 'wxPython RULES!!!') EVT_MENU(self, mID, self.OnHelpAbout) self.mainmenu.Append(menu, '&Help') self.SetMenuBar(self.mainmenu) - selectedDemo = None - selectedDemoName = "Nada" - if len(sys.argv) == 2: - selectedDemoName = sys.argv[1] # Create a TreeCtrl - tID = NewId() + tID = wxNewId() + self.treeMap = {} self.tree = wxTreeCtrl(splitter, tID) root = self.tree.AddRoot("Overview") for item in _treeList: child = self.tree.AppendItem(root, item[0]) for childItem in item[1]: theDemo = self.tree.AppendItem(child, childItem) - if childItem == selectedDemoName: - selectedDemo = theDemo + self.treeMap[childItem] = theDemo self.tree.Expand(root) EVT_TREE_ITEM_EXPANDED (self.tree, tID, self.OnItemExpanded) @@ -142,9 +151,16 @@ class wxPythonDemo(wxFrame): # select initial items self.nb.SetSelection(0) self.tree.SelectItem(root) - if selectedDemo: - self.tree.SelectItem(selectedDemo) - self.tree.EnsureVisible(selectedDemo) + + if len(sys.argv) == 2: + try: + selectedDemo = self.treeMap[sys.argv[1]] + except: + selectedDemo = None + if selectedDemo: + self.tree.SelectItem(selectedDemo) + self.tree.EnsureVisible(selectedDemo) + #--------------------------------------------- def WriteText(self, text): @@ -188,6 +204,7 @@ class wxPythonDemo(wxFrame): #self.nb.ResizeChildren(); self.nb.Refresh(); #wxYield() + self.window = None else: if os.path.exists(itemText + '.py'): @@ -199,15 +216,16 @@ class wxPythonDemo(wxFrame): self.nb.Refresh(); wxYield() - window = module.runTest(self, self.nb, self) - if window: - self.nb.AddPage(window, 'Demo') + self.window = module.runTest(self, self.nb, self) + if self.window: + self.nb.AddPage(self.window, 'Demo') self.nb.SetSelection(2) self.nb.ResizeChildren(); else: self.ovr.Clear() self.txt.Clear() + self.window = None #--------------------------------------------- @@ -240,13 +258,14 @@ class wxPythonDemo(wxFrame): def OnHelpAbout(self, event): - about = wxMessageDialog(self, - "wxPython is a Python extension module that\n" - "encapsulates the wxWindows GUI classes.\n\n" - "This demo shows off some of the capabilities\n" - "of wxPython.\n\n" - " Developed by Robin Dunn", - "About wxPython", wxOK) + #about = wxMessageDialog(self, + # "wxPython is a Python extension module that\n" + # "encapsulates the wxWindows GUI classes.\n\n" + # "This demo shows off some of the capabilities\n" + # "of wxPython.\n\n" + # " Developed by Robin Dunn", + # "About wxPython", wxOK) + about = MyAboutBox(self) about.ShowModal() about.Destroy() @@ -254,14 +273,66 @@ class wxPythonDemo(wxFrame): #--------------------------------------------- def OnCloseWindow(self, event): self.dying = true + self.window = None self.Destroy() #--------------------------------------------- def OnIdle(self, event): if self.otherWin: self.otherWin.Raise() + self.window = self.otherWin self.otherWin = None + #--------------------------------------------- + def OnDemoMenu(self, event): + print event.GetId(), self.mainmenu.GetLabel(event.GetId()) + try: + selectedDemo = self.treeMap[self.mainmenu.GetLabel(event.GetId())] + except: + selectedDemo = None + if selectedDemo: + self.tree.SelectItem(selectedDemo) + self.tree.EnsureVisible(selectedDemo) + + + +#--------------------------------------------------------------------------- +#--------------------------------------------------------------------------- + +class MyAboutBox(wxDialog): + text = ''' + + +
+ + + +

wxPython %s

+ +

wxPython is a Python extension module that +encapsulates the wxWindows GUI classes.

+ +

This demo shows off some of the capabilities +of wxPython. 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.

+ +

wxPython is brought to you by Robin Dunn and
+Total Control Software, copyright 1999.

+ +

Please see license.txt for licensing information.

+
+ + +''' + 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() + #--------------------------------------------------------------------------- #---------------------------------------------------------------------------