]> granicus.if.org Git - python/commitdiff
Added about dialog
authorBarry Warsaw <barry@python.org>
Tue, 17 Feb 1998 22:25:23 +0000 (22:25 +0000)
committerBarry Warsaw <barry@python.org>
Tue, 17 Feb 1998 22:25:23 +0000 (22:25 +0000)
Tools/pynche/PyncheWidget.py

index 44398d7a541a6e5114b85dd6d410532becf1ee82..f2667554affd9d16fd56cadd522703770d2c4df7 100644 (file)
@@ -8,6 +8,15 @@ from ChipWidget import ChipWidget
 from TypeinWidget import TypeinWidget
 from StripWidget import StripWidget
 
+
+\f
+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.'''
+
+
 \f
 def constant(numchips):
     step = 255.0 / (numchips - 1)
@@ -42,6 +51,8 @@ def constant_yellow_generator(numchips, rgbtuple):
 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 @@ class PyncheWidget(Pmw.MegaWidget):
 
        # 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 @@ class PyncheWidget(Pmw.MegaWidget):
        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 @@ class PyncheWidget(Pmw.MegaWidget):
     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()