]> granicus.if.org Git - python/commitdiff
Initial revision
authorBarry Warsaw <barry@python.org>
Sat, 31 Jan 1998 23:39:01 +0000 (23:39 +0000)
committerBarry Warsaw <barry@python.org>
Sat, 31 Jan 1998 23:39:01 +0000 (23:39 +0000)
Tools/pynche/PyncheWidget.py [new file with mode: 0644]

diff --git a/Tools/pynche/PyncheWidget.py b/Tools/pynche/PyncheWidget.py
new file mode 100644 (file)
index 0000000..d40a6ed
--- /dev/null
@@ -0,0 +1,51 @@
+"""Main Pynche (Pythonically Natural Color and Hue Editor) widget.
+"""
+
+from Tkinter import *
+import Pmw
+import ColorDB
+from ChipWidget import ChipWidget
+
+class PyncheWidget(Pmw.MegaWidget):
+    def __init__(self, colordb, parent=None, **kw):
+       self.__colordb = colordb
+
+       optionsdefs = (('color', 'grey50', self.__set_color),)
+       self.defineoptions(kw, optionsdefs)
+
+       # initialize base class -- after defining options
+       Pmw.MegaWidget.__init__(self, parent)
+       interiorarg = (self.interior(),)
+
+       # create color selectors
+       self.__selectors = Pmw.Group(parent, tag_text='Color Selectors')
+       self.__selectors.pack(side=TOP, expand=YES, fill=BOTH)
+
+       # create chip window
+       group = Pmw.Group(parent, tag_text='Current Color')
+       group.pack(side=LEFT, fill=Y)
+       self.__selected = ChipWidget(group.interior(),
+                                    label_text='Selected')
+       self.__selected.grid()
+       self.__nearest = ChipWidget(group.interior(),
+                                   label_text='Nearest')
+       self.__nearest.grid(row=0, column=1)
+
+       # create the options window
+       options = Pmw.Group(parent, tag_text='Options')
+       options.pack(expand=YES, fill=BOTH)
+
+       # Check keywords and initialize options
+       self.initialiseoptions(PyncheWidget)
+
+
+    def __set_color(self):
+       color = self['color']
+       try:
+           red, green, blue, rrggbb = self.__colordb.find_byname(color)
+       except ColorDB.BadColor:
+           red, green, blue = ColorDB.rrggbb_to_triplet(color)
+           
+       nearest = self.__colordb.nearest(red, green, blue)
+       self.__selected.configure(color=color)
+       self.__nearest.configure(color=nearest)