Changeset - 2ef72bb3a707
[Not reviewed]
default
0 2 0
drewp - 22 years ago 2002-07-07 15:12:38

finished the re-class of Console so it can make new subs again
2 files changed with 44 insertions and 34 deletions:
0 comments (0 inline, 0 general)
light8/panels.py
Show inline comments
 
"""some of the panels"""
 
from __future__ import nested_scopes
 

	
 
from Tkinter import *
 
from uihelpers import *
 
import Patch
 
from FlyingFader import FlyingFader
 
import Pmw
 
@@ -22,30 +23,56 @@ class Controlpanel(Frame):
 
            ('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):
 
    def __init__(self,refresh,currentlevels,configfilename):
 
        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('<Return>', lambda evt: self.execute(evt, 
 
            self.entry.get()))
 
        self.entry.bind('<Return>',
 
                        lambda evt: self.execute(evt, self.entry.get()))
 
        self.frame.pack(fill=BOTH, expand=1)
 
        self.refreshcmd=refresh
 
        self.currentlevels=currentlevels
 
        self.configfilename=configfilename
 
    
 
    def execute(evt, str):
 
    def execute(self, evt, str):
 
        if str[0] == '*': # make a new sub
 
            make_sub(str)
 
            self.make_sub(str)
 
        else:
 
            print '>>>', str
 
            print eval(str)
 
        self.frame.focus()
 

	
 
    def make_sub(self, name):
 
        i = 1
 
        if not name:
 
            print "Enter sub name in console."
 
            return
 

	
 
        st = ''
 
        linebuf = 'subs["%s"] = {' % name
 
        for l in self.currentlevels:
 
            if l:
 
                if len(linebuf) > 60: 
 
                    st += linebuf + '\n   '
 
                    linebuf = ''
 

	
 
                linebuf += ' "%s" : %d,' % (Patch.get_channel_name(i), l)
 
            i += 1
 
        st += linebuf + '}\n'
 
        f = open(self.configfilename, 'a')
 
        f.write(st)
 
        f.close()
 
        print 'Added sub:', st
 
        self.refreshcmd()
 

	
 
class Leveldisplay:
 
    def __init__(self, parent, channel_levels, num_channels=68):
 
        frames = (make_frame(parent), make_frame(parent))
 
        channel_levels[:]=[]
 
        self.number_labels = []
 
        for channel in range(1, num_channels+1):
 
@@ -84,27 +111,29 @@ class Subpanels:
 

	
 
        for name, sub in sublist:
 
            # choose one of the sub panels to add to
 
            if sub.is_effect:
 
                parent=effectsparent
 
                side1='bottom'
 
                side2='left'
 
                orient1='vert'
 
                end1=0
 
                end2=1
 
                width1=len(name)
 
            else:
 
                parent=scenesparent
 
                side1='right'
 
                side2='top'
 
                orient1='horiz'
 
                end1=1
 
                end2=0
 
                width1=longestname
 

	
 
            # make frame that surrounds the whole submaster
 
            f=Frame(parent, bd=1, relief='raised')
 
            f.pack(fill='both',exp=1,side=('top','left')[sub.is_effect])
 
            f.pack(fill='both',exp=1,side=side2)
 

	
 
            # make DoubleVar (there might be one left around from before a refresh)
 
            if name not in scalelevels:
 
                scalelevels[name]=DoubleVar()
 

	
 
            sub.set_slider_var(scalelevels[name])
 
@@ -119,13 +148,14 @@ class Subpanels:
 
                            to=end1,res=.001,from_=end2,bd=0, font=stdfont,
 
                            orient=orient1,
 
                            labelwidth=width1,
 
                            **scaleopts)
 

	
 
            if not sub.is_effect:
 
                eb = Button(f,text="E",font=stdfont,padx=0,pady=0,bd=1,command=lambda subediting=subediting,sub=sub: subediting.setsub(sub))
 
                eb = Togglebutton(f,text="Edit",font=stdfont,padx=0,pady=0,bd=1,
 
                                  command=lambda: subediting.setsub(sub))
 
                eb.pack(side=side1,fill='both',padx=0,pady=0)
 

	
 
            for axis in ('y','x'):
 
                cvar=IntVar()
 
                cb=Togglebutton(f,text=axis.upper(),variable=cvar,font=stdfont, padx=0, 
 
                               pady=0, bd=1)
light8/rsn.py
Show inline comments
 
@@ -43,20 +43,21 @@ class Lightboard:
 
    def __init__(self, master):
 
        self.master = master
 

	
 
        self.channel_levels = []
 
        self.scalelevels = {}
 
        self.xfader = Xfader(self.scalelevels) # doesn't draw any UI yet-- look for self.xfader.setupwidget()
 
        self.oldlevels = [None] * 68
 
        self.oldlevels = [None] * 68 # never replace this; just clear it
 
        self.subediting = Subediting(currentoutputlevels=self.oldlevels)
 

	
 
        self.buildinterface()
 
        self.load()
 
        self.backgroundloop()
 
        
 
    def buildinterface(self):
 
        global DUMMY
 
        for w in self.master.winfo_children():
 
            w.destroy()
 

	
 
        stage_tl = toplevelat(44,723)
 
        s = stage.Stage(stage_tl)
 
        stage.createlights(s)
 
@@ -71,13 +72,17 @@ class Lightboard:
 

	
 
        leveldisplay_tl = toplevelat(873,400)
 
        leveldisplay_tl.bind('<Escape>', sys.exit)
 

	
 
        self.leveldisplay = Leveldisplay(leveldisplay_tl, self.channel_levels)
 

	
 
        Console()
 
        if DUMMY:
 
            filename = 'ConfigDummy.py'
 
        else:
 
            filename = 'Config.py'
 
        Console(self.refresh,currentlevels=self.oldlevels,configfilename=filename)
 

	
 
        # root frame
 
        controlpanel = Controlpanel(root, self.xfader, self.refresh, self.quit)
 
        
 
        xf=Frame(root)
 
        xf.pack(side='right')
 
@@ -146,38 +151,13 @@ class Lightboard:
 
        except IOError:
 
            print "IOError: Couldn't load prefs (%s)" % filename
 
        except EOFError:
 
            print "EOFrror: Couldn't load prefs (%s)" % filename
 
        except:
 
            print "BigTrouble: Couldn't load prefs (%s)" % filename
 
    def make_sub(self, name):
 
        i = 1
 
        if not name:
 
            print "Enter sub name in console."
 
            return
 

	
 
        st = ''
 
        linebuf = 'subs["%s"] = {' % name
 
        for l in self.oldlevels:
 
            if l:
 
                if len(linebuf) > 60: 
 
                    st += linebuf + '\n   '
 
                    linebuf = ''
 

	
 
                linebuf += ' "%s" : %d,' % (Patch.get_channel_name(i), l)
 
            i += 1
 
        st += linebuf + '}\n'
 
        if DUMMY:
 
            filename = 'ConfigDummy.py'
 
        else:
 
            filename = 'Config.py'
 
        f = open(filename, 'a')
 
        f.write(st)
 
        f.close()
 
        print 'Added sub:', st
 
        self.refresh()
 
    def backgroundloop(self, *args):
 
        self.master.after(50, self.backgroundloop, ())
 
        self.changelevel()
 
    def quit(self, *args):
 
        self.save()
 
        root.destroy()
0 comments (0 inline, 0 general)