"""some of the panels""" from Tkinter import * from uihelpers import * import Patch stdfont = ('Arial', 8) monofont = ('Courier', 8) class Controlpanel(Frame): def __init__(self,parent,xfader,refresh_cb,quit_cb): Frame.__init__(self,parent) controlpanel=self for txt,cmd in ( ('Quit', quit_cb), ('Refresh', refresh_cb), ('Clear all', xfader.clearallbuttons), ('On -> X', lambda: xfader.grab('x')), ('Clear X', lambda: xfader.clearallbuttons('x')), ('On -> Y', lambda: xfader.grab('y')), ('Clear Y', lambda: xfader.clearallbuttons('y'))): Button(controlpanel, text=txt, command=cmd).pack(side='top', fill='x') class Console: def __init__(self): print "Light 8: Everything's under control" t=toplevelat(267,717,w=599,h=19) self.frame = Frame(t) self.entry=Entry(self.frame) self.entry.pack(expand=1, fill='x') self.entry.bind('', lambda evt: self.execute(evt, self.entry.get())) self.frame.pack(fill=BOTH, expand=1) def execute(evt, str): if str[0] == '*': # make a new sub make_sub(str) else: print '>>>', str print eval(str) self.frame.focus() class Leveldisplay: def __init__(self,parent,_oldlevels): global channel_levels frames = (make_frame(parent), make_frame(parent)) channel_levels=[] for channel in range(1, 69): f=Frame(frames[channel > 34]) Label(f,text=str(channel), width=3, bg='lightPink', font=stdfont, padx=0, pady=0, bd=0, height=1).pack(side='left') Label(f,text=Patch.get_channel_name(channel), width=8, font=stdfont, anchor='w', padx=0, pady=0, bd=0, height=1).pack(side='left') l=Label(f,text=_oldlevels[channel-1], width=3, bg='lightBlue', font=stdfont, anchor='e', padx=1, pady=0, bd=0, height=1) l.pack(side='left') colorlabel(l) channel_levels.append(l) f.pack(side='top') class Subpanels: def __init__(self,scenesparent,effectsparent,scalelevels,Subs,xfader,changelevel): sublist = Subs.subs.items() sublist.sort() for name, sub in sublist: if sub.is_effect: parent=effectsparent else: parent=scenesparent f=Frame(parent, bd=1, relief='raised') f.pack(fill='both',exp=1,side='left') if name not in scalelevels: scalelevels[name]=DoubleVar() sub.set_slider_var(scalelevels[name]) scaleopts = {} if sub.color: scaleopts['troughcolor'] = sub.color s=Scale(f,command=lambda l,name=name: changelevel(name,l),showvalue=0, length=300-17,variable=scalelevels[name],width=20, to=0,res=.001,from_=1,bd=1, **scaleopts) l=Label(f,text=str(name), font=stdfont, padx=0, pady=0) v=Label(f,textvariable=scalelevels[name], font=stdfont, padx=0, pady=0) l.pack(side='bottom') v.pack(side='bottom') for axis in ('y','x'): cvar=IntVar() cb=Checkbutton(f,text=axis,variable=cvar,font=stdfont, padx=0, pady=0, bd=1) button = ('Alt','Control')[axis=='y'] # unused? # s.bind(''%axis, lambda ev,cb=cb: cb.invoke) cb.pack(side='bottom',fill='both', padx=0, pady=0) xfader.registerbutton(name,axis,cvar) s.pack(side='left') s.bind('<3>', lambda evt, v=scalelevels[name]: toggle_slider(v))\ # effects frame? sframe = Frame(f,bd=2,relief='groove') sub.draw_tk(sframe) sframe.pack(side='left',fill='y')