Added about dialog
diff --git a/Tools/pynche/PyncheWidget.py b/Tools/pynche/PyncheWidget.py
index 44398d7..f266755 100644
--- a/Tools/pynche/PyncheWidget.py
+++ b/Tools/pynche/PyncheWidget.py
@@ -8,6 +8,15 @@
 from TypeinWidget import TypeinWidget
 from StripWidget import StripWidget
 
+
+
+ABOUTTEXT = '''Pynche 1.0 -- The Pythonically Natural Color and Hue Editor
+Copyright (C) 1998 Barry A. Warsaw
+
+Pynche is based on ICE 1.2 (Interactive Color Editor), written by
+Barry A. Warsaw for the SunView window system in 1987.'''
+
+
 
 def constant(numchips):
     step = 255.0 / (numchips - 1)
@@ -42,6 +51,8 @@
 class PyncheWidget(Pmw.MegaWidget):
     def __init__(self, colordb, parent=None, **kw):
 	self.__colordb = colordb
+	self.__parent = parent
+	self.__about = None
 
 	options = (('color', (128, 128, 128), self.__set_color),
 		   ('delegate', None, None),
@@ -50,7 +61,28 @@
 
 	# initialize base class -- after defining options
 	Pmw.MegaWidget.__init__(self, parent)
-	interiorarg = (self.interior(),)
+
+	# create menubar
+	self.__menubar = Pmw.MenuBar(parent,
+				     hull_relief=RAISED,
+				     hull_borderwidth=1)
+	self.__menubar.pack(side=TOP, expand=YES, fill=BOTH)
+	self.__menubar.addmenu('File', None)
+	self.__menubar.addmenuitem('File',
+				   type=COMMAND,
+				   label='Quit',
+				   command=self.__quit,
+				   accelerator='Alt-Q')
+	self.__menubar.addmenu('Help', None, side=RIGHT)
+	self.__menubar.addmenuitem('Help',
+				   type=COMMAND,
+				   label='About...',
+				   command=self.__popup_about,
+				   accelerator='Alt-A')
+	parent.bind('<Alt-q>', self.__quit)
+	parent.bind('<Alt-Q>', self.__quit)
+	parent.bind('<Alt-a>', self.__popup_about)
+	parent.bind('<Alt-A>', self.__popup_about)
 
 	# create color selectors
 	group = Pmw.Group(parent, tag_text='Variations')
@@ -77,8 +109,12 @@
 	self.__nearest = ChipWidget(group.interior(),
 				    label_text='Nearest')
 	self.__nearest.grid(row=0, column=1)
-	chip = self.__nearest.component('chip')
-	chip.bind('<ButtonRelease-1>', self.__set_color_to_chip)
+
+	# TBD: this is somewhat bogus, as the code should be in a derived
+	# class of ChipWidget.
+	self.__chip = self.__nearest.component('chip')
+	self.__chip.bind('<ButtonPress-1>', self.__buttonpress)
+	self.__chip.bind('<ButtonRelease-1>', self.__buttonrelease)
 
 	# create the options window
 	self.__typein = TypeinWidget(group.interior())
@@ -125,7 +161,27 @@
     def __set_color(self):
 	self.set_color(self, self['color'])
 
-    def __set_color_to_chip(self, event=None):
+    def __buttonpress(self, event=None):
+	self.__chip.configure(relief=SUNKEN)
+
+    def __buttonrelease(self, event=None):
+	self.__chip.configure(relief=RAISED)
 	color = self.__nearest['color']
 	rgbtuple = self.__colordb.find_byname(color)
 	self.set_color(self, rgbtuple)
+
+    def __quit(self, event=None):
+	self.__parent.quit()
+
+    def __popup_about(self, event=None):
+	if not self.__about:
+	    Pmw.aboutversion('1.0')
+	    Pmw.aboutcopyright('Copyright (C) 1998 Barry A. Warsaw\n'
+			       'All rights reserved')
+	    Pmw.aboutcontact('For information about Pynche contact:\n'
+			     'Barry A. Warsaw\n'
+			     'email: bwarsaw@python.org')
+	    self.__about = Pmw.AboutDialog(
+		applicationname='Pynche -- the PYthonically Natural\n'
+		'Color and Hue Editor')
+	self.__about.show()