Mercurial > code > home > repos > light9
comparison light8/ExtSliderMapper.py @ 103:ddd3c8f04640
more untested code, ready for production: colors for slider mapping
author | dmcc |
---|---|
date | Sun, 14 Jul 2002 09:07:14 +0000 |
parents | e04f7b552bcd |
children | 15ead14b4dd1 |
comparison
equal
deleted
inserted
replaced
102:e04f7b552bcd | 103:ddd3c8f04640 |
---|---|
11 | 11 |
12 from Tix import * | 12 from Tix import * |
13 from uihelpers import FancyDoubleVar, get_selection | 13 from uihelpers import FancyDoubleVar, get_selection |
14 | 14 |
15 stdfont = ('Arial', 8) | 15 stdfont = ('Arial', 8) |
16 colors = ('lightBlue', 'lightPink', 'lightGreen', 'aquamarine1') | |
16 | 17 |
17 class SliderMapping: | 18 class SliderMapping: |
18 def __init__(self, default='disconnected', synced=0, extinputlevel=0, | 19 def __init__(self, color, default='disconnected', synced=0, |
19 sublevel=0): | 20 extinputlevel=0, sublevel=0): |
21 self.color = color | |
20 self.subname = StringVar() # name of submaster we're connected to | 22 self.subname = StringVar() # name of submaster we're connected to |
21 self.subname.set(default) | 23 self.subname.set(default) |
22 self.sublevel = DoubleVar() # scalelevel variable of that submaster | 24 self.sublevel = DoubleVar() # scalelevel variable of that submaster |
23 # self.sublevel = FancyDoubleVar() # scalelevel variable of that submaster | 25 # self.sublevel = FancyDoubleVar() # scalelevel variable of that submaster |
24 self.sublevel.set(sublevel) | 26 self.sublevel.set(sublevel) |
151 self.subnames = subnames | 153 self.subnames = subnames |
152 frame = Frame(master, bg='black') | 154 frame = Frame(master, bg='black') |
153 self.listbox = ScrolledListBox(frame, scrollbar='y', bg='black') | 155 self.listbox = ScrolledListBox(frame, scrollbar='y', bg='black') |
154 self.listbox.listbox.bind("<<ListboxSelect>>", self.listbox_cb, add=1) | 156 self.listbox.listbox.bind("<<ListboxSelect>>", self.listbox_cb, add=1) |
155 self.listbox.listbox.configure(font=stdfont, exportselection=0, | 157 self.listbox.listbox.configure(font=stdfont, exportselection=0, |
156 selectmode=BROWSE, bg='black', fg='white') | 158 selectmode=BROWSE, bg='black', fg='white', |
157 self.listbox.vsb.configure(troughcolor='black') | 159 selectbackground=self.color) |
160 self.listbox.vsb.configure(troughcolor=self.color) | |
158 # self.listbox.listbox.insert(END, "disconnected") | 161 # self.listbox.listbox.insert(END, "disconnected") |
159 for s in subnames: | 162 for s in subnames: |
160 self.listbox.listbox.insert(END, s) | 163 self.listbox.listbox.insert(END, s) |
161 statframe = Frame(frame, bg='black') | 164 statframe = Frame(frame, bg='black') |
162 | 165 |
181 | 184 |
182 self.widgets = [frame, self.listbox, statframe, self.statuslabel, | 185 self.widgets = [frame, self.listbox, statframe, self.statuslabel, |
183 ilabel, extlabel, rlabel, self.sublabel, disc_button] | 186 ilabel, extlabel, rlabel, self.sublabel, disc_button] |
184 | 187 |
185 class ExtSliderMapper(Frame): | 188 class ExtSliderMapper(Frame): |
186 def __init__(self, parent, sliderlevels, sliderinput, filename='slidermapping', | 189 def __init__(self, parent, sliderlevels, sliderinput, |
187 numsliders=4): | 190 lightboard, filename='slidermapping', numsliders=4): |
188 'Slider levels is scalelevels, sliderinput is an ExternalInput object' | 191 'Slider levels is scalelevels, sliderinput is an ExternalInput object' |
189 Frame.__init__(self, parent, bg='black') | 192 Frame.__init__(self, parent, bg='black') |
190 self.parent = parent | 193 self.parent = parent |
191 self.sliderlevels = sliderlevels | 194 self.sliderlevels = sliderlevels |
192 self.sliderinput = sliderinput | 195 self.sliderinput = sliderinput |
193 self.filename = filename | 196 self.filename = filename |
194 self.numsliders = numsliders | 197 self.numsliders = numsliders |
198 self.lightboard = lightboard | |
195 self.file = None | 199 self.file = None |
196 | 200 |
197 # don't call setup, let them do that when scalelevels is created | 201 # don't call setup, let them do that when scalelevels is created |
198 def setup(self): | 202 def setup(self): |
199 self.subnames = self.sliderlevels.keys() | 203 self.subnames = self.sliderlevels.keys() |
201 self.presets = {} | 205 self.presets = {} |
202 self.load_presets() | 206 self.load_presets() |
203 | 207 |
204 self.current_preset = StringVar() # name of current preset | 208 self.current_preset = StringVar() # name of current preset |
205 self.current_mappings = [] | 209 self.current_mappings = [] |
206 for i in range(self.numsliders): | 210 for i, color in zip(range(self.numsliders), colors): |
207 self.current_mappings.append(SliderMapping()) | 211 self.current_mappings.append(SliderMapping(color)) |
208 | 212 |
209 self.draw_interface() | 213 self.draw_interface() |
210 def load_presets(self): | 214 def load_presets(self): |
211 self.presets = {} | 215 self.presets = {} |
212 self.file = open(self.filename, 'r') | 216 self.file = open(self.filename, 'r') |
240 'Called by changelevels, returns a dict of new values for submasters' | 244 'Called by changelevels, returns a dict of new values for submasters' |
241 if not self.sliderinput: return {} | 245 if not self.sliderinput: return {} |
242 | 246 |
243 self.load_scalelevels() # freshen our input from the submasters | 247 self.load_scalelevels() # freshen our input from the submasters |
244 | 248 |
249 for m, color in zip(self.current_mappings, colors): | |
250 if not m.isdisconnected(): | |
251 name = m.get_mapping() | |
252 lastsub = self.subs_highlighted.get(color) | |
253 if name is not lastsub: | |
254 if lastsub is not None: | |
255 self.lightboard.highlight_sub(lastsub, 'restore') | |
256 self.lightboard.highlight_sub(name, color) | |
257 self.subs_highlighted[color] = name | |
258 | |
245 rawlevels = self.sliderinput.get_levels() | 259 rawlevels = self.sliderinput.get_levels() |
246 for rawlev, slidermap in zip(rawlevels, self.current_mappings): | 260 for rawlev, slidermap in zip(rawlevels, self.current_mappings): |
247 slidermap.changed_extinput(rawlev) | 261 slidermap.changed_extinput(rawlev) |
248 | 262 |
249 return dict([m.get_level_pair() | 263 return dict([m.get_level_pair() |
250 for m in self.current_mappings | 264 for m in self.current_mappings |
251 if m.issynced()]) | 265 if m.issynced()]) |
252 def draw_interface(self): | 266 def draw_interface(self): |
253 self.reallevellabels = [] | 267 self.subs_highlighted = {} |
254 subchoiceframe = Frame(self, bg='black') | 268 subchoiceframe = Frame(self, bg='black') |
255 for m in self.current_mappings: | 269 for m in self.current_mappings: |
256 m.draw_interface(subchoiceframe, self.subnames) | 270 m.draw_interface(subchoiceframe, self.subnames) |
257 subchoiceframe.pack() | 271 subchoiceframe.pack() |
258 | 272 |