]> granicus.if.org Git - python/commitdiff
Initial revision
authorBarry Warsaw <barry@python.org>
Thu, 29 Jan 1998 23:48:55 +0000 (23:48 +0000)
committerBarry Warsaw <barry@python.org>
Thu, 29 Jan 1998 23:48:55 +0000 (23:48 +0000)
Tools/pynche/ChipViewer.py [new file with mode: 0644]

diff --git a/Tools/pynche/ChipViewer.py b/Tools/pynche/ChipViewer.py
new file mode 100644 (file)
index 0000000..e173a62
--- /dev/null
@@ -0,0 +1,71 @@
+from Tkinter import *
+import Pmw
+
+class ChipWidget(Pmw.MegaWidget):
+    _WIDTH = 80
+    _HEIGHT = 100
+
+    def __init__(self, parent=None, **kw):
+       optionsdefs = (('chipcolor', 'blue', self.__set_color),
+                      ('width', self._WIDTH, self.__set_dims),
+                      ('height', self._HEIGHT, self.__set_dims),
+                      ('text', 'Color', self.__set_label),
+                      )
+       self.defineoptions(kw, optionsdefs)
+
+       # initialize base class -- after defining options
+       Pmw.MegaWidget.__init__(self, parent)
+       interiorarg = (self.interior(),)
+
+       # create the label
+       self.__label = self.createcomponent(
+           # component name, aliases, group
+           'label', (), None,
+           # widget class, widget args
+           Label, interiorarg)
+       self.__label.grid(row=0, column=0)
+
+       # create the color chip
+       self.__chip = self.createcomponent(
+           'chip', (), None,
+           Frame, interiorarg,
+           relief=RAISED, borderwidth=2)
+       self.__chip.grid(row=1, column=0)
+
+       # create the color name
+       self.__name = self.createcomponent(
+           'name', (), None,
+           Label, interiorarg,)
+       self.__name.grid(row=2, column=0)
+
+       # Check keywords and initialize options
+       self.initialiseoptions(ChipWidget)
+
+    # called whenever `chipcolor' option is set
+    def __set_color(self):
+       color = self['chipcolor']
+       self.__chip['background'] = color
+       self.__name['text'] = color
+
+    def __set_dims(self):
+       width = self['width']
+       height = self['height']
+       self.__chip.configure(width=width, height=height)
+
+    def __set_label(self):
+       self.__label['text'] = self['text']
+
+Pmw.forwardmethods(ChipWidget, Frame, '__chip')
+
+
+\f
+if __name__ == '__main__':
+    root = Pmw.initialise(fontScheme='pmw1')
+    root.title('ChipWidget demonstration')
+
+    exitbtn = Button(root, text='Exit', command=root.destroy)
+    exitbtn.pack(side=BOTTOM)
+    widget = ChipWidget(root, chipcolor='red', width=200,
+                       text='Selected Color')
+    widget.pack()
+    root.mainloop()