comparison light8/ExtSliderMapper.py @ 87:a5c0b7ac63cf

better colors, color behavior
author dmcc
date Fri, 12 Jul 2002 12:49:03 +0000
parents 5a162150b68d
children 827a675131dc
comparison
equal deleted inserted replaced
86:5a162150b68d 87:a5c0b7ac63cf
10 self.sublevel.set(sublevel) 10 self.sublevel.set(sublevel)
11 self.attached = BooleanVar() # currently attached 11 self.attached = BooleanVar() # currently attached
12 self.attached.set(attached) 12 self.attached.set(attached)
13 self.extlevel = DoubleVar() # external slider's input 13 self.extlevel = DoubleVar() # external slider's input
14 self.extlevel.set(extinputlevel) 14 self.extlevel.set(extinputlevel)
15 self.extlabel = None 15 self.widgets = [] # list of widgets drawn
16 self.sublabel = None 16 self.sublabel = None # the label which represents a sub level. we hold on to
17 # it so we can change its textvariable
18 self.lastbgcolor = None # last background color drawn to avoid unnecessary
19 # updates
17 def attach(self): 20 def attach(self):
18 self.attached.set(1) 21 self.attached.set(1)
19 self.color_text() 22 self.color_text()
20 def detach(self): 23 def detach(self):
21 self.attached.set(0) 24 self.attached.set(0)
41 def set_subname(self, newname): 44 def set_subname(self, newname):
42 self.subname.set(newname) 45 self.subname.set(newname)
43 self.detach() 46 self.detach()
44 self.color_text() 47 self.color_text()
45 def color_text(self): 48 def color_text(self):
46 if self.extlabel: 49 if self.widgets:
47 if self.isdisconnected(): 50 if self.isdisconnected():
48 self.extlabel.configure(fg='honeyDew4') 51 color = 'honeyDew4'
49 elif self.isattached(): 52 elif self.isattached():
50 self.extlabel.configure(fg='honeyDew2') 53 color = 'honeyDew2'
51 else: 54 else: # detached
52 self.extlabel.configure(fg='red') 55 color = 'red'
56
57 if self.lastbgcolor == color: return
58 for widget in self.widgets:
59 widget.configure(bg=color)
60 self.lastbgcolor = color
53 def disconnect(self): 61 def disconnect(self):
54 self.set_subname('disconnected') # a bit hack-like 62 self.set_subname('disconnected') # a bit hack-like
55 self.sublabel.configure(text="N/A") 63 self.sublabel.configure(text="N/A")
56 def set_sublevel_var(self, newvar): 64 def set_sublevel_var(self, newvar):
57 'newvar is one of the variables in scalelevels' 65 'newvar is one of the variables in scalelevels'
72 c.slistbox.listbox.insert(END, "disconnected") 80 c.slistbox.listbox.insert(END, "disconnected")
73 for s in subnames: 81 for s in subnames:
74 c.slistbox.listbox.insert(END, s) 82 c.slistbox.listbox.insert(END, s)
75 c.entry.configure(width=12) 83 c.entry.configure(width=12)
76 statframe = Frame(frame) 84 statframe = Frame(frame)
77 Checkbutton(statframe, variable=self.attached, 85 cb = Checkbutton(statframe, variable=self.attached,
78 text="Attached").grid(columnspan=2, sticky=W) 86 text="Attached")
79 Label(statframe, text="Input", fg='red').grid(row=1, sticky=W) 87 cb.grid(columnspan=2, sticky=W)
80 self.extlabel = Label(statframe, textvariable=self.extlevel, width=5) 88 ilabel = Label(statframe, text="Input", fg='blue')
81 self.extlabel.grid(row=1, column=1) 89 ilabel.grid(row=1, sticky=W)
82 Label(statframe, text="Real").grid(row=2, sticky=W) 90 extlabel = Label(statframe, textvariable=self.extlevel, width=5)
91 extlabel.grid(row=1, column=1)
92 rlabel = Label(statframe, text="Real")
93 rlabel.grid(row=2, sticky=W)
83 self.sublabel = Label(statframe, text="N/A", width=5) 94 self.sublabel = Label(statframe, text="N/A", width=5)
84 self.sublabel.grid(row=2, column=1) 95 self.sublabel.grid(row=2, column=1)
85 statframe.pack(side=BOTTOM, expand=1, fill=X) 96 statframe.pack(side=BOTTOM, expand=1, fill=X)
86 c.pack() 97 c.pack()
87 frame.pack(side=LEFT, expand=1, fill=BOTH) 98 frame.pack(side=LEFT, expand=1, fill=BOTH)
99
100 self.widgets = [frame, c, statframe, cb, ilabel, extlabel, rlabel,
101 self.sublabel]
88 102
89 class ExtSliderMapper(Frame): 103 class ExtSliderMapper(Frame):
90 def __init__(self, parent, sliderlevels, sliderinput, filename='slidermapping', 104 def __init__(self, parent, sliderlevels, sliderinput, filename='slidermapping',
91 numsliders=4): 105 numsliders=4):
92 'Slider levels is scalelevels, sliderinput is an ExternalInput object' 106 'Slider levels is scalelevels, sliderinput is an ExternalInput object'