Changeset - e9d2e7754fd9
[Not reviewed]
default
0 3 0
drewp - 22 years ago 2002-07-07 10:48:38

sideways subs, new x/y buttons (which don't draw right, but they work)
3 files changed with 62 insertions and 9 deletions:
0 comments (0 inline, 0 general)
light8/panels.py
Show inline comments
 
"""some of the panels"""
 

	
 
from Tkinter import *
 
from uihelpers import *
 
import Patch
 
from FlyingFader import FlyingFader
 
import Pmw
 

	
 
stdfont = ('Arial', 8)
 
monofont = ('Courier', 8)
 

	
 
class Controlpanel(Frame):
 
    def __init__(self, parent, xfader, refresh_cb, quit_cb):
 
@@ -79,41 +80,50 @@ class Subpanels:
 
        changelevel):
 
        
 
        sublist = Subs.subs.items()
 
        sublist.sort()
 

	
 
        for name, sub in sublist:
 
            # choose one of the sub panels to add to
 
            if sub.is_effect:
 
                parent=effectsparent
 
                side1='bottom'
 
                orient='vert'
 
            else:
 
                parent=scenesparent
 
                side1='right'
 
                orient='horiz'
 

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

	
 
            # 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])
 

	
 
            scaleopts = {}
 
            if sub.color:
 
                scaleopts['troughcolor'] = sub.color
 

	
 
            s = FlyingFader(f, label=str(name), variable=scalelevels[name],
 
                    showvalue=0, length=300-17,
 
                    width=20, to=0,res=.001,from_=1,bd=1, font=stdfont,
 
                            width=18, sliderlength=18,
 
                            to=1,res=.001,from_=0,bd=0, font=stdfont,
 
                            orient=orient,
 
                            labelwidth=12, # this should be equal to the longest label name
 
                    **scaleopts)
 

	
 
            for axis in ('y','x'):
 
                cvar=IntVar()
 
                cb=Checkbutton(f,text=axis,variable=cvar,font=stdfont, padx=0, 
 
                cb=Togglebutton(f,text=axis.upper(),variable=cvar,font=stdfont, padx=0, 
 
                               pady=0, bd=1)
 
                button = ('Alt','Control')[axis=='y'] # unused?
 
                # s.bind('<Key-%s>'%axis, lambda ev,cb=cb: cb.invoke)
 
                cb.pack(side='bottom',fill='both', padx=0, pady=0)
 
                cb.pack(side=side1,fill='both', padx=0, pady=0)
 
                s.bind('<Key-%s>'%axis, lambda ev,cb=cb: cb.invoke)
 
                xfader.registerbutton(name,axis,cvar)
 

	
 
            s.pack(side='left', fill=BOTH)
 

	
 
            # effects frame?
 
            sframe = Frame(f,bd=2,relief='groove')
light8/rsn.py
Show inline comments
 
@@ -20,13 +20,13 @@ else:
 
    DUMMY = 1
 
    print "Dummy mode"
 
    window_title = "Light 8.8 (Bogus)"
 

	
 
root = Tk()
 
root.wm_title(window_title)
 
root.wm_geometry('+447+373')
 
root.wm_geometry('+462+470')
 
root.tk_focusFollowsMouse()
 

	
 
import Subs, Patch
 

	
 
def get_data(*args):
 
    Subs.reload_data(DUMMY)
 
@@ -50,19 +50,19 @@ class Lightboard:
 
        self.load()
 
        self.backgroundloop()
 
    def buildinterface(self):
 
        for w in self.master.winfo_children():
 
            w.destroy()
 

	
 
        stage_tl = toplevelat(165,90)
 
        stage_tl = toplevelat(65,37)
 
        s = stage.Stage(stage_tl)
 
        stage.createlights(s)
 
        s.pack()
 

	
 
        sub_tl = toplevelat(0,0)
 
        effect_tl = toplevelat(0,352)
 
        effect_tl = toplevelat(462,4)
 

	
 
        self.xfader = Xfader(self.scalelevels)
 

	
 
        self.subpanels = Subpanels(sub_tl, effect_tl, self.scalelevels, Subs, 
 
            self.xfader, self.changelevel)
 

	
light8/uihelpers.py
Show inline comments
 
@@ -36,6 +36,49 @@ def colorlabel(label):
 
    lev=float(txt)/100
 
    low=(80,80,180)
 
    high=(255,55,050)
 
    out = [int(l+lev*(h-l)) for h,l in zip(high,low)]
 
    col="#%02X%02X%02X" % tuple(out)
 
    label.config(bg=col)
 

	
 
class Togglebutton(Button):
 
    """works like a single radiobutton, but it's a button so the label's on the button face, not to the side"""
 
    def __init__(self,parent,**kw):
 
        if kw['variable']:
 
            self.variable = kw['variable']
 
            self.variable.trace('w',self.varchanged)
 
            del kw['variable']
 
        else:
 
            self.variable=None
 
        self.oldcommand = kw.get('command',None)
 
        kw['command'] = self.invoke
 
        Button.__init__(self,parent,**kw)
 

	
 
        self.origbkg = self.cget('bg')
 

	
 
        self.state=0
 
        if self.variable:
 
            self.state = self.variable.get()
 

	
 
        self.setstate(self.state)
 

	
 
        self.bind("<Enter>",lambda ev: self.setstate)
 
        self.bind("<Leave>",lambda ev: self.setstate)
 

	
 
    def varchanged(self,*args):
 
        self.setstate(self.variable.get())
 
        
 
    def invoke(self):
 
        self.setstate(not self.state)
 
        
 
        if self.oldcommand:
 
            self.oldcommand()
 

	
 
    def setstate(self,newstate):
 
        self.variable.set(newstate)
 
        if newstate: # set
 
            self.tk.call('tkButtonDown',self)
 
            self.config(bg='green')
 
        else: # unset
 
            self.tk.call('tkButtonUp',self)
 
            self.config(bg=self.origbkg)
 
        return "break"
0 comments (0 inline, 0 general)