# GUI Demo - just a worker script to invoke all the other demo/test scripts. import sys import __main__ import regutil import win32api import win32ui demos = [ # ('Font', 'import fontdemo;fontdemo.FontDemo()'), ("Open GL Demo", "import openGLDemo;openGLDemo.test()"), ("Threaded GUI", "import threadedgui;threadedgui.ThreadedDemo()"), ("Tree View Demo", "import hiertest;hiertest.demoboth()"), ("3-Way Splitter Window", "import splittst;splittst.demo()"), ("Custom Toolbars and Tooltips", "import toolbar;toolbar.test()"), ("Progress Bar", "import progressbar;progressbar.demo()"), ("Slider Control", "import sliderdemo;sliderdemo.demo()"), ("Dynamic window creation", "import createwin;createwin.demo()"), ("Various Dialog demos", "import dlgtest;dlgtest.demo()"), ("OCX Control Demo", "from ocx import ocxtest;ocxtest.demo()"), ("OCX Serial Port Demo", "from ocx import ocxserialtest; ocxserialtest.test()"), ( "IE4 Control Demo", 'from ocx import webbrowser; webbrowser.Demo("http://www.python.org")', ), ] def demo(): try: # seeif I can locate the demo files. import fontdemo except ImportError: # else put the demos direectory on the path (if not already) try: instPath = regutil.GetRegistryDefaultValue( regutil.BuildDefaultPythonKey() + "\\InstallPath" ) except win32api.error: print( "The InstallPath can not be located, and the Demos directory is not on the path" ) instPath = "." demosDir = win32ui.FullPath(instPath + "\\Demos") for path in sys.path: if win32ui.FullPath(path) == demosDir: break else: sys.path.append(demosDir) import fontdemo import sys if "/go" in sys.argv: for name, cmd in demos: try: exec(cmd) except: print( "Demo of %s failed - %s:%s" % (cmd, sys.exc_info()[0], sys.exc_info()[1]) ) return # Otherwise allow the user to select the demo to run import pywin.dialogs.list while 1: rc = pywin.dialogs.list.SelectFromLists("Select a Demo", demos, ["Demo Title"]) if rc is None: break title, cmd = demos[rc] try: exec(cmd) except: print( "Demo of %s failed - %s:%s" % (title, sys.exc_info()[0], sys.exc_info()[1]) ) if __name__ == __main__.__name__: import demoutils if demoutils.NeedGoodGUI(): demo()