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
__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()