summaryrefslogtreecommitdiffstats
path: root/Tools/pynche/Main.py
diff options
context:
space:
mode:
authorBarry Warsaw <barry@python.org>1998-01-31 23:39:28 (GMT)
committerBarry Warsaw <barry@python.org>1998-01-31 23:39:28 (GMT)
commitf7c1e5a6a316699ca387663e743022df88c435b2 (patch)
tree40bc1efc19072a11962cce996d3c1cfbede28696 /Tools/pynche/Main.py
parentfefbf79ea46f74117c2cd09a83ddd86d810d1936 (diff)
downloadcpython-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.py93
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()