Mercurial > code > home > repos > light9
comparison flax/CueFaders.py @ 155:4c3060ceddcc
autoshifting is controllable now
author | dmcc |
---|---|
date | Mon, 07 Jul 2003 06:56:15 +0000 |
parents | 990a9474d0e7 |
children | 7d3a0f9107a8 |
comparison
equal
deleted
inserted
replaced
154:e3a92ccea4be | 155:4c3060ceddcc |
---|---|
64 | 64 |
65 class CueFader(Tk.Frame): | 65 class CueFader(Tk.Frame): |
66 def __init__(self, master, cuelist): | 66 def __init__(self, master, cuelist): |
67 Tk.Frame.__init__(self, master) | 67 Tk.Frame.__init__(self, master) |
68 self.cuelist = cuelist | 68 self.cuelist = cuelist |
69 self.auto_shift = 0 | 69 self.auto_shift = Tk.IntVar() |
70 self.auto_shift.set(1) | |
70 | 71 |
71 self.scales = {} | 72 self.scales = {} |
72 self.shift_buttons = {} | 73 self.shift_buttons = {} |
73 | 74 |
74 topframe = Tk.Frame(self) | 75 topframe = Tk.Frame(self) |
75 self.current_cues = Tk.Label(topframe) | 76 self.current_cues = Tk.Label(topframe) |
76 self.current_cues.pack() | 77 self.current_cues.pack() |
77 self.update_cue_display() | 78 self.update_cue_display() |
78 topframe.pack() | 79 topframe.pack() |
79 | 80 |
81 bottomframe = Tk.Frame(self) | |
82 self.auto_shift_checkbutton = Tk.Checkbutton(self, | |
83 variable=self.auto_shift, text='Autoshift', | |
84 command=self.toggle_autoshift) | |
85 self.auto_shift_checkbutton.pack() | |
86 bottomframe.pack(side='bottom') | |
87 | |
88 middleframe = Tk.Frame(self) | |
80 for name, start, end, side in (('Prev', 1, 0, 'left'), | 89 for name, start, end, side in (('Prev', 1, 0, 'left'), |
81 ('Next', 0, 1, 'right')): | 90 ('Next', 0, 1, 'right')): |
82 | |
83 shift = Tk.Button(self, text="Shift %s" % name, state='disabled', | |
84 command=lambda name=name: self.shift(name)) | |
85 shift.pack(side=side, fill='both', expand=1) | |
86 | |
87 frame = Tk.Frame(self) | 91 frame = Tk.Frame(self) |
88 scale = LabelledScale(frame, name, from_=start, to_=end, | 92 scale = LabelledScale(frame, name, from_=start, to_=end, |
89 res=0.01, orient='horiz') | 93 res=0.01, orient='horiz') |
90 scale.pack(fill='both', expand=1) | 94 scale.pack(fill='both', expand=1) |
91 go = TimedGoButton(frame, 'Go %s' % name, scale) | 95 go = TimedGoButton(frame, 'Go %s' % name, scale) |
92 go.pack(fill='both', expand=1) | 96 go.pack(fill='both', expand=1) |
93 frame.pack(side=side, fill='both', expand=1) | 97 frame.pack(side=side, fill='both', expand=1) |
94 | 98 |
99 shift = Tk.Button(frame, text="Shift %s" % name, state='disabled', | |
100 command=lambda name=name: self.shift(name)) | |
101 | |
95 self.scales[name] = scale | 102 self.scales[name] = scale |
96 self.shift_buttons[name] = shift | 103 self.shift_buttons[name] = shift |
97 | 104 |
98 scale.scale_var.trace('w', \ | 105 scale.scale_var.trace('w', \ |
99 lambda x, y, z, name=name, scale=scale: self.xfade(name, scale)) | 106 lambda x, y, z, name=name, scale=scale: self.xfade(name, scale)) |
107 middleframe.pack(side='bottom', fill='both', expand=1) | |
108 def toggle_autoshift(self): | |
109 for name, button in self.shift_buttons.items(): | |
110 if not self.auto_shift.get(): | |
111 button.pack(side='bottom', fill='both', expand=1) | |
112 else: | |
113 button.pack_forget() | |
114 | |
100 def shift(self, name): | 115 def shift(self, name): |
101 for scale in self.scales.values(): | 116 for scale in self.scales.values(): |
102 scale.scale_var.set(0) | 117 scale.scale_var.set(0) |
103 if name == 'Next': scale.update() | 118 scale.scale.update() |
104 print "shift", name | 119 print "shift", name |
105 self.cuelist.shift((-1, 1)[name == 'Next']) | 120 self.cuelist.shift((-1, 1)[name == 'Next']) |
106 self.update_cue_display() | 121 self.update_cue_display() |
107 def update_cue_display(self): | 122 def update_cue_display(self): |
108 current_cues = [cue.name for cue in self.cuelist.get_current_cues()] | 123 current_cues = [cue.name for cue in self.cuelist.get_current_cues()] |
109 self.current_cues['text'] = ', '.join(current_cues) | 124 self.current_cues['text'] = ', '.join(current_cues) |
110 def xfade(self, name, scale): | 125 def xfade(self, name, scale): |
111 scale_val = scale.scale_var.get() | 126 scale_val = scale.scale_var.get() |
112 | 127 |
113 if scale_val == 1: | 128 if scale_val == 1: |
114 if self.auto_shift: | 129 if self.auto_shift.get(): |
115 self.shift(name) | 130 self.shift(name) |
116 else: | 131 else: |
117 self.shift_buttons[name]['state'] = 'normal' | 132 self.shift_buttons[name]['state'] = 'normal' |
118 else: | 133 else: |
119 # disable any dangerous shifting | 134 # disable any dangerous shifting |