comparison Widgets/FlyingFader.py @ 11:c65119b66b00

- no more kw args -- they didn't do anything. use configure to change - no more kw args -- they didn't do anything. use configure to change things instead. - colortrough on the way to a more generic color fader, now called colorfade - get/set methods make FlyingFader seem more like a Scale
author dmcc
date Sun, 07 Jul 2002 06:01:57 +0000
parents 342f7d1c7561
children c76b62eccdec
comparison
equal deleted inserted replaced
10:533ac835083f 11:c65119b66b00
1 from Tkinter import * 1 from Tkinter import *
2 from time import time 2 from time import time
3 3
4 class FlyingFader(Frame): 4 class FlyingFader(Frame):
5 def __init__(self, master, variable, label, time=1.5, font=('Arial', 8), 5 def __init__(self, master, variable, label, time=1.5, font=('Arial', 8)):
6 **kw):
7 Frame.__init__(self, master) 6 Frame.__init__(self, master)
8 self.name = label 7 self.name = label
9 self.variable = variable 8 self.variable = variable
10 self.fadelength = time 9 self.fadelength = time
11 self.curfade = None 10 self.curfade = None
29 28
30 self.scale.bind("<Key-0>", lambda evt: self.newfade(100, evt)) 29 self.scale.bind("<Key-0>", lambda evt: self.newfade(100, evt))
31 self.scale.bind("<grave>", lambda evt: self.newfade(0, evt)) 30 self.scale.bind("<grave>", lambda evt: self.newfade(0, evt))
32 31
33 self.scale.bind("<1>", self.cancelfade) 32 self.scale.bind("<1>", self.cancelfade)
33 self.scale.bind("<2>", self.cancelfade)
34 self.scale.bind("<3>", self.mousefade) 34 self.scale.bind("<3>", self.mousefade)
35 35
36 self.variable.trace('w', self.updatelabel) 36 self.variable.trace('w', self.updatelabel)
37 37
38 def cancelfade(self, evt): 38 def cancelfade(self, evt):
71 self.scale['troughcolor'] = self.oldtrough 71 self.scale['troughcolor'] = self.oldtrough
72 return 72 return
73 percent = (now - start) / (end - start) 73 percent = (now - start) / (end - start)
74 newvalue = (percent * (lend - lstart)) + lstart 74 newvalue = (percent * (lend - lstart)) + lstart
75 self.variable.set(newvalue) 75 self.variable.set(newvalue)
76 colortrough(self.scale, percent) 76 colorfade(self.scale, percent)
77 self.after(10, self.gofade) 77 self.after(10, self.gofade)
78 78
79 def updatelabel(self, *args): 79 def updatelabel(self, *args):
80 self.vlabel['text'] = "%.1f" % self.variable.get() 80 self.vlabel['text'] = "%.1f" % self.variable.get()
81 if self.fadetimes[1] == 0: # no fade 81 if self.fadetimes[1] == 0: # no fade
83 elif self.curfade[1] > self.curfade[0]: 83 elif self.curfade[1] > self.curfade[0]:
84 self.vlabel['fg'] = 'red' 84 self.vlabel['fg'] = 'red'
85 else: 85 else:
86 self.vlabel['fg'] = 'blue' 86 self.vlabel['fg'] = 'blue'
87 87
88 def get(self):
89 return self.scale.get()
88 90
89 def colortrough(scale, lev): 91 def set(self, val):
92 self.scale.set(val)
93
94
95 def colorfade(scale, lev):
90 low = (255, 255, 255) 96 low = (255, 255, 255)
91 high = (0, 0, 0) 97 high = (0, 0, 0)
92 out = [int(l+lev*(h-l)) for h,l in zip(high,low)] 98 out = [int(l+lev*(h-l)) for h, l in zip(high,low)]
93 col="#%02X%02X%02X" % tuple(out) 99 col="#%02X%02X%02X" % tuple(out)
94 scale.config(troughcolor=col) 100 scale.config(troughcolor=col)
95 101
96 if __name__ == '__main__': 102 if __name__ == '__main__':
97 root = Tk() 103 root = Tk()