Changeset - 5a2c85174a19
[Not reviewed]
default
0 1 0
David McClosky - 20 years ago 2005-06-17 17:52:38
dmcc@bigasterisk.com
Fadable (i.e. keyboardcomposer) has mute again
1 file changed with 6 insertions and 8 deletions:
0 comments (0 inline, 0 general)
light9/Fadable.py
Show inline comments
 
@@ -39,38 +39,38 @@ class Fadable:
 
            for k in range(1, 10):
 
                self.bind("<Key-%d>" % k,
 
                    lambda evt, k=k: self.fade(k / 10.0))
 
            self.bind("<Key-0>", lambda evt: self.fade(1.0))
 
            self.bind("<grave>", lambda evt: self.fade(0))
 

	
 
            # up / down arrows
 
            self.bind("<Key-Up>", lambda evt: self.increase())
 
            self.bind("<Key-Down>", lambda evt: self.decrease())
 

	
 
        if mouse_bindings:
 
            # right mouse button toggles muting
 
            # self.bind('<3>', lambda evt: self.toggle_mute())
 
            # "NOT ANY MORE!" - homer
 
            self.bind('<3>', lambda evt: self.toggle_mute())
 
            # not "NOT ANY MORE!" - homer (i.e. it works again)
 

	
 
            # mouse wheel
 
            self.bind('<4>', lambda evt: self.increase())
 
            self.bind('<5>', lambda evt: self.decrease())
 

	
 
            # modified mouse wheel
 
            self.bind('<Shift-4>', lambda evt: self.increase(multiplier=0.2))
 
            self.bind('<Shift-5>', lambda evt: self.decrease(multiplier=0.2))
 
            self.bind('<Control-4>', lambda evt: self.increase(length=1))
 
            self.bind('<Control-5>', lambda evt: self.decrease(length=1))
 

	
 
        self.last_level = 0 # used for muting
 
        self.last_level = None # used for muting
 
    def fade(self, value, length=0.5, step_time=10):
 
        """Fade to value in length seconds with steps every step_time
 
        milliseconds"""
 
        if length == 0: # 0 seconds fades happen right away and prevents
 
                        # and prevents us from entering the fade loop,
 
                        # which would cause a divide by zero
 
            self.fade_var.set(value)
 
            self.fading = 0 # we stop all fades
 
        else: # the general case
 
            self.fade_start_time = time.time()
 
            self.fade_length = length
 

	
 
@@ -115,32 +115,30 @@ class Fadable:
 
            newlevel = self.fade_var.get() - amount
 
        newlevel = max(0, newlevel)
 
        self.set_volume(newlevel, length)
 
    def set_volume(self, newlevel, length=0.3):
 
        """Sets the volume to newlevel, performing a fade of length if
 
        use_fades is true."""
 
        if self.use_fades:
 
            self.fade(newlevel, length=length)
 
        else:
 
            self.fade_var.set(newlevel)
 
    def toggle_mute(self):
 
        """Toggles whether the volume is being muted."""
 
        curlevel = self.fade_var.get()
 
        if curlevel:
 
        if self.last_level is None:
 
            self.last_level = self.fade_var.get()
 
            newlevel = 0
 
            self.last_level = curlevel
 
            self['bg'] = 'red' # TODO: let them choose these colors
 
        else:
 
            newlevel = self.last_level
 
            self['bg'] = 'lightGray'
 
            self.last_level = None
 

	
 
        self.fade_var.set(newlevel)
 

	
 
if __name__ == "__main__":
 
    class SubScale(Scale, Fadable):
 
        def __init__(self, master, *args, **kw):
 
            self.scale_var = DoubleVar()
 
            kw['variable'] = self.scale_var
 
            Scale.__init__(self, master, *args, **kw)
 
            Fadable.__init__(self, var=self.scale_var)
 

	
 
    root = Tk()
0 comments (0 inline, 0 general)