Mercurial > code > home > repos > light9
comparison light8/panels.py @ 53:032b2b67bc10
result of July 7th on-site editing
author | dmcc |
---|---|
date | Mon, 08 Jul 2002 14:31:20 +0000 |
parents | 065896b0913c |
children | f177a2ff34f5 |
comparison
equal
deleted
inserted
replaced
52:065896b0913c | 53:032b2b67bc10 |
---|---|
24 ('Clear Y', lambda: xfader.clearallbuttons('y'))): | 24 ('Clear Y', lambda: xfader.clearallbuttons('y'))): |
25 Button(controlpanel, text=txt, command=cmd).pack(side='top', | 25 Button(controlpanel, text=txt, command=cmd).pack(side='top', |
26 fill='x') | 26 fill='x') |
27 | 27 |
28 class Console: | 28 class Console: |
29 def __init__(self,refresh,currentlevels,configfilename): | 29 def __init__(self,lightboard): |
30 print "Light 8: Everything's under control" | 30 print "Light 8: Everything's under control" |
31 t=toplevelat(267,717,w=599,h=19) | 31 t=toplevelat(267,717,w=599,h=19) |
32 self.frame = Frame(t) | 32 self.frame = Frame(t) |
33 self.entry=Entry(self.frame) | 33 self.entry=Entry(self.frame) |
34 self.entry.pack(expand=1, fill='x') | 34 self.entry.pack(expand=1, fill='x') |
35 self.entry.bind('<Return>', | 35 self.entry.bind('<Return>', |
36 lambda evt: self.execute(evt, self.entry.get())) | 36 lambda evt: self.execute(evt, self.entry.get())) |
37 self.frame.pack(fill=BOTH, expand=1) | 37 self.frame.pack(fill=BOTH, expand=1) |
38 self.refreshcmd=refresh | 38 self.lightboard=lightboard |
39 self.currentlevels=currentlevels | |
40 self.configfilename=configfilename | |
41 | 39 |
42 def execute(self, evt, str): | 40 def execute(self, evt, str): |
43 if str[0] == '*': # make a new sub | 41 if str[0] == '*': # make a new sub from the current levels |
44 self.make_sub(str) | 42 self.lightboard.save_sub(str,self.lightboard.stageassub()) |
45 else: | 43 else: |
46 print '>>>', str | 44 print '>>>', str |
47 print eval(str) | 45 print eval(str) |
48 self.frame.focus() | 46 self.frame.focus() |
49 | |
50 def make_sub(self, name): | |
51 i = 1 | |
52 if not name: | |
53 print "Enter sub name in console." | |
54 return | |
55 | |
56 st = '' | |
57 linebuf = 'subs["%s"] = {' % name | |
58 for l in self.currentlevels: | |
59 if l: | |
60 if len(linebuf) > 60: | |
61 st += linebuf + '\n ' | |
62 linebuf = '' | |
63 | |
64 linebuf += ' "%s" : %d,' % (Patch.get_channel_name(i), l) | |
65 i += 1 | |
66 st += linebuf + '}\n' | |
67 f = open(self.configfilename, 'a') | |
68 f.write(st) | |
69 f.close() | |
70 print 'Added sub:', st | |
71 self.refreshcmd() | |
72 | 47 |
73 class Leveldisplay: | 48 class Leveldisplay: |
74 def __init__(self, parent, channel_levels, num_channels=68): | 49 def __init__(self, parent, channel_levels, num_channels=68): |
75 frames = (make_frame(parent), make_frame(parent)) | 50 frames = (make_frame(parent), make_frame(parent)) |
76 channel_levels[:]=[] | 51 channel_levels[:]=[] |
101 self.channel_levels = channel_levels | 76 self.channel_levels = channel_levels |
102 # channel_levels is an output - changelevel will use it to access | 77 # channel_levels is an output - changelevel will use it to access |
103 # these labels | 78 # these labels |
104 | 79 |
105 class Subpanels: | 80 class Subpanels: |
106 def __init__(self, scenesparent, effectsparent, scalelevels, Subs, xfader, | 81 def __init__(self, scenesparent, effectsparent, lightboard, |
107 changelevel, subediting, longestname): | 82 scalelevels, Subs, xfader, |
83 changelevel, subediting, longestname): | |
108 | 84 |
109 sublist = Subs.subs.items() | 85 sublist = Subs.subs.items() |
110 sublist.sort() | 86 sublist.sort() |
111 | 87 |
112 for name, sub in sublist: | 88 for name, sub in sublist: |
130 | 106 |
131 # make frame that surrounds the whole submaster | 107 # make frame that surrounds the whole submaster |
132 f=Frame(parent, bd=1, relief='raised') | 108 f=Frame(parent, bd=1, relief='raised') |
133 f.pack(fill='both',exp=1,side=side2) | 109 f.pack(fill='both',exp=1,side=side2) |
134 | 110 |
135 # make DoubleVar (there might be one left around from before a refresh) | 111 # make DoubleVar (there might be one left around from |
112 # before a refresh) | |
136 if name not in scalelevels: | 113 if name not in scalelevels: |
137 scalelevels[name]=DoubleVar() | 114 scalelevels[name]=DoubleVar() |
138 | 115 |
139 sub.set_slider_var(scalelevels[name]) | 116 sub.set_slider_var(scalelevels[name]) |
140 | 117 |
141 scaleopts = {} | 118 scaleopts = {'troughcolor' : 'grey70'} |
142 if sub.color: | 119 if sub.color: |
143 scaleopts['troughcolor'] = sub.color | 120 scaleopts['troughcolor'] = sub.color |
144 | 121 |
145 s = FlyingFader(f, label=str(name), variable=scalelevels[name], | 122 s = FlyingFader(f, label=str(name), variable=scalelevels[name], |
146 showvalue=0, length=300-17, | 123 showvalue=0, length=300-17, |
147 width=18, sliderlength=18, | 124 width=14, sliderlength=14, |
148 to=end1,res=.001,from_=end2,bd=0, font=stdfont, | 125 to=end1,res=.001,from_=end2,bd=1, font=stdfont, |
149 orient=orient1, | 126 orient=orient1, |
150 labelwidth=width1, | 127 labelwidth=width1, |
151 **scaleopts) | 128 **scaleopts) |
152 | 129 |
130 # tell subediting what widget to highlight when it's | |
131 # editing a sub | |
132 for w in (s,s.label,s.vlabel, s.scale): | |
133 subediting.register(subname=name,widget=w) | |
134 | |
153 if not sub.is_effect: | 135 if not sub.is_effect: |
154 eb = Togglebutton(f,text="Edit",font=stdfont,padx=0,pady=0,bd=1, | 136 self.subeditingbuttons(f,side1,sub,name,lightboard,subediting) |
155 command=lambda: subediting.setsub(sub)) | |
156 eb.pack(side=side1,fill='both',padx=0,pady=0) | |
157 | 137 |
158 for axis in ('y','x'): | 138 self.axisbuttons(f,s,xfader,stdfont,side1,name) |
159 cvar=IntVar() | |
160 eb_color = ('red', 'green')[axis == 'y'] | |
161 cb=Togglebutton(f,text=axis.upper(),variable=cvar,font=stdfont, | |
162 padx=0, pady=0, bd=1, downcolor=eb_color) | |
163 cb.pack(side=side1,fill='both', padx=0, pady=0) | |
164 s.bind('<Key-%s>'%axis, lambda ev,cb=cb: cb.invoke) | |
165 xfader.registerbutton(name,axis,cvar) | |
166 | 139 |
167 s.pack(side='left', fill=BOTH) | 140 s.pack(side='left', fill=BOTH) |
168 | 141 |
169 # effects frame? | 142 # effects frame? |
170 sframe = Frame(f,bd=2,relief='groove') | 143 sframe = Frame(f,bd=2,relief='groove') |
171 sub.draw_tk(sframe) | 144 sub.draw_tk(sframe) |
172 sframe.pack(side='left',fill='y') | 145 sframe.pack(side='left',fill='y') |
146 | |
147 def subediting_edit(self,subediting,sub): | |
148 subediting.setsub(sub) | |
149 | |
150 def subediting_save(self,name,sub,lightboard): | |
151 lightboard.save_sub(name,sub.getlevels()) | |
152 | |
153 def subeditingbuttons(self,f,side1,sub,name,lightboard,subediting): | |
154 for txt,cmd in (("Edit",lambda subediting=subediting,sub=sub: self.subediting_edit(subediting,sub)), | |
155 ("Save",lambda sub=sub,name=name,lightboard=lightboard: self.subediting_save(name,sub,lightboard))): | |
156 eb = Button(f,text=txt,font=stdfont,padx=0,pady=0, | |
157 bd=1,command=cmd) | |
158 eb.pack(side=side1,fill='both',padx=0,pady=0) | |
159 | |
160 def axisbuttons(self,f,s,xfader,stdfont,side1,name): | |
161 for axis in ('y','x'): | |
162 cvar=IntVar() | |
163 eb_color = ('red', 'green')[axis == 'y'] | |
164 cb=Togglebutton(f,text=axis.upper(),variable=cvar,font=stdfont, | |
165 padx=3, pady=0, bd=1, downcolor=eb_color) | |
166 cb.pack(side=side1,fill='both', padx=0, pady=0) | |
167 s.bind('<Key-%s>'%axis, lambda ev,cb=cb: cb.invoke) | |
168 xfader.registerbutton(name,axis,cvar) | |
169 | |
170 |