diff options
author | Barry Warsaw <barry@python.org> | 1998-01-31 23:39:28 (GMT) |
---|---|---|
committer | Barry Warsaw <barry@python.org> | 1998-01-31 23:39:28 (GMT) |
commit | f7c1e5a6a316699ca387663e743022df88c435b2 (patch) | |
tree | 40bc1efc19072a11962cce996d3c1cfbede28696 /Tools/pynche/Main.py | |
parent | fefbf79ea46f74117c2cd09a83ddd86d810d1936 (diff) | |
download | cpython-f7c1e5a6a316699ca387663e743022df88c435b2.zip cpython-f7c1e5a6a316699ca387663e743022df88c435b2.tar.gz cpython-f7c1e5a6a316699ca387663e743022df88c435b2.tar.bz2 |
Moved toplevel widget to PyncheWidget.py
Diffstat (limited to 'Tools/pynche/Main.py')
-rw-r--r-- | Tools/pynche/Main.py | 93 |
1 files changed, 92 insertions, 1 deletions
diff --git a/Tools/pynche/Main.py b/Tools/pynche/Main.py index 25b9aef..3eeccbf 100644 --- a/Tools/pynche/Main.py +++ b/Tools/pynche/Main.py @@ -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 + + + +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 + ] + + + +def usage(status, msg=''): + if msg: + print msg + print __doc__ % globals() + sys.exit(status) + + + +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 + + + +if __name__ == '__main__': + main() |