]> granicus.if.org Git - python/commitdiff
Moved toplevel widget to PyncheWidget.py
authorBarry Warsaw <barry@python.org>
Sat, 31 Jan 1998 23:39:28 +0000 (23:39 +0000)
committerBarry Warsaw <barry@python.org>
Sat, 31 Jan 1998 23:39:28 +0000 (23:39 +0000)
Tools/pynche/Main.py

index 25b9aefb3abcf86926a8bbaf34ac759c7843813b..3eeccbf77747b26516e0abcfa69bcff34c622a63 100644 (file)
@@ -10,7 +10,11 @@ Tkinter + Pmw provides such a nice programming environment, with enough
 power, that I finally buckled down and implemented it.  I changed the name
 because these days, too many other systems have the acronym `ICE'.
 
-Usage: %(PROGRAM) [-h]
+This program currently requires Python 1.5 with Tkinter.  It also requires at
+least Pmw 0.6.1.  It has only been tested on Solaris 2.6.  Feedback is greatly 
+appreciated.  Send email to bwarsaw@python.org
+
+Usage: %(PROGRAM)s [-h]
 
 Where:
     --help
@@ -21,3 +25,90 @@ Where:
 
 __version__ = '1.0'
 
+import sys
+import getopt
+import Pmw
+import ColorDB
+from Tkinter import *
+from PyncheWidget import PyncheWidget
+
+
+\f
+PROGRAM = sys.argv[0]
+
+# Milliseconds between interrupt checks
+KEEPALIVE_TIMER = 500
+
+RGBCOLOR = 1
+HSICOLOR = 2
+NAMEDCOLOR = 3
+
+# Default locations of rgb.txt or other textual color database
+RGB_TXT = [
+    # Solaris OpenWindows
+    '/usr/openwin/lib/rgb.txt',
+    # add more here
+    ]
+
+
+\f
+def usage(status, msg=''):
+    if msg:
+       print msg
+    print __doc__ % globals()
+    sys.exit(status)
+
+
+\f
+app = None
+
+def keepalive():
+    # Exercise the Python interpreter regularly so keybard interrupts get
+    # through.
+    app.tk.createtimerhandler(KEEPALIVE_TIMER, keepalive)
+
+
+def main():
+    global app
+
+    initialcolor = 'grey50'
+    try:
+       opts, args = getopt.getopt(sys.argv[1:],
+                                  'hc:',
+                                  ['color=', 'help'])
+    except getopt.error, msg:
+       usage(1, msg)
+
+    if args:
+       usage(1)
+
+    for opt, arg in opts:
+       if opt in ('-h', '--help'):
+           usage(0)
+       elif opt in ('-c', '--color'):
+           initialcolor = arg
+
+    # create the windows and go
+    for f in RGB_TXT:
+       try:
+           colordb = ColorDB.get_colordb(f)
+           break
+       except IOError:
+           pass
+    else:
+       raise IOError('No color database file found')
+
+    app = Pmw.initialise(fontScheme='pmw1')
+    app.title('Pynche %s' % __version__)
+    app.tk.createtimerhandler(KEEPALIVE_TIMER, keepalive)
+    p = PyncheWidget(colordb, app, color=initialcolor)
+    try:
+       keepalive()
+       app.mainloop()
+    except KeyboardInterrupt:
+       pass
+
+
+\f
+if __name__ == '__main__':
+    main()