Changeset - 2aefd45dceaa
[Not reviewed]
default
0 1 0
drewp@bigasterisk.com - 16 years ago 2009-06-15 02:22:55
drewp@bigasterisk.com
new keys for muting and collapsing a curve
Ignore-this: 6022d4ac284aeffda96cc9a9fb70d02c
1 file changed with 35 insertions and 13 deletions:
0 comments (0 inline, 0 general)
light9/curve.py
Show inline comments
 
from __future__ import division
 
import sys,math,glob,random,os, time
 
from bisect import bisect_left,bisect,bisect_right
 
import Tkinter as tk
 
import math, glob, time
 
from bisect import bisect_left,bisect
 
import Tix as tk
 
try:
 
    from dispatch import dispatcher
 
except ImportError:
 
@@ -30,6 +30,9 @@ class Curve(object):
 
        return locals()
 
    muted = property(**muted())
 

	
 
    def toggleMute(self):
 
        self.muted = not self.muted
 

	
 
    def load(self,filename):
 
        self.points[:]=[]
 
        for line in file(filename):
 
@@ -229,6 +232,10 @@ class Curveview(tk.Canvas):
 

	
 
        self.bind("<ButtonPress-1>", self.check_deselect, add=True)
 

	
 
        self.bind("<Key-m>", lambda *args: self.curve.toggleMute())
 
        self.bind("<Key-c>", lambda *args: dispatcher.send('toggle collapse',
 
                                                           sender=self.curve))
 

	
 
    def knob_in(self, curve, value):
 
        """user turned a hardware knob, which edits the point to the
 
        left of the current time"""
 
@@ -721,9 +728,8 @@ class Curveset:
 
        self.sliders.valueOut("knob%s" % num, value * 127)
 

	
 
class Curvesetview(tk.Frame):
 
    curves = None # curvename : Curveview
 
    def __init__(self, master, curveset, **kw):
 
        self.curves = {}
 
        self.curves = {} # curvename : Curveview
 
        self.curveset = curveset
 
        tk.Frame.__init__(self,master,**kw)
 
        
 
@@ -765,7 +771,16 @@ class Curvesetview(tk.Frame):
 
        curve_name_label.pack(side='left')
 

	
 
        sliderLabel = None
 
        def collapsed_cmd():
 

	
 
        collapsed_cb = tk.Checkbutton(leftside, text="C",
 
                       font=labelFont, variable=collapsed)
 
        collapsed_cb.pack(side='left')
 

	
 
        def toggleCollapsed():
 
            collapsed.set(not collapsed.get())
 

	
 

	
 
        def update_ui_to_collapsed_state(*args):
 
            if collapsed.get():
 
                if sliderLabel:
 
                    sliderLabel.pack_forget()
 
@@ -774,10 +789,8 @@ class Curvesetview(tk.Frame):
 
                if sliderLabel:
 
                    sliderLabel.pack(side='left')
 
                f.pack(exp=1)
 
        collapsed_cb = tk.Checkbutton(leftside, text="C",
 
                       font=labelFont, variable=collapsed, 
 
                       command=collapsed_cmd)
 
        collapsed_cb.pack(side='left')
 
        collapsed.trace('w', update_ui_to_collapsed_state)
 

	
 

	
 
        muted = tk.IntVar()
 
        default_bg = leftside['bg']
 
@@ -797,7 +810,8 @@ class Curvesetview(tk.Frame):
 
        cv.pack(side='left',fill='both',exp=1)
 
        self.curves[name] = cv
 

	
 
        def muted_cmd(*args):
 
        def sync_mute_to_curve(*args):
 
            """send value from Tk var to the master attribute inside Curve"""
 
            new_mute = muted.get()
 
            old_mute = cv.curve.muted
 
            if new_mute == old_mute:
 
@@ -805,6 +819,9 @@ class Curvesetview(tk.Frame):
 

	
 
            cv.curve.muted = new_mute
 

	
 
        muted.trace('w', sync_mute_to_curve)
 

	
 
        def update_mute_look():
 
            if muted.get():
 
                new_bg = 'grey20'
 
            else:
 
@@ -815,9 +832,14 @@ class Curvesetview(tk.Frame):
 
                widgets.append(sliderLabel)
 
            for widget in widgets:
 
                widget['bg'] = new_bg
 
        muted.trace('w', muted_cmd)
 

	
 
        def mute_changed():
 
            muted.set(cv.curve.muted)
 
            update_mute_look()
 

	
 
        dispatcher.connect(mute_changed, 'mute changed', sender=cv.curve)
 
        dispatcher.connect(mute_changed, 'mute changed', sender=cv.curve,
 
                           weak=False)
 

	
 
        dispatcher.connect(toggleCollapsed, "toggle collapse", sender=cv.curve,
 
                           weak=False)
 

	
0 comments (0 inline, 0 general)