| Home | Trees | Indices | Help |
|---|
|
|
1 #Embedded file name: /Users/versonator/Hudson/live/Projects/AppLive/Resources/MIDI Remote Scripts/_Framework/ScrollComponent.py 2 from _Framework.ControlSurfaceComponent import ControlSurfaceComponent 3 from _Framework.SubjectSlot import subject_slot 4 from _Framework import Task 5 from _Framework import Defaults8 """ 9 Abstract interface for an object that can be scrolled in discreet 10 steps in one dimension. 11 """ 12 15 18 212427 """ 28 A component that handles scrolling behavior over a Scrollable 29 with a pair of buttons. 30 """ 31 is_private = True 32 scrolling_delay = Defaults.MOMENTARY_DELAY 33 scrolling_step_delay = 0.1 34 default_scrollable = Scrollable() 35 _scrollable = default_scrollable 3614138 super(ScrollComponent, self).__init__(*a, **k) 39 self._scroll_task_up = self._make_scroll_task(self._do_scroll_up) 40 self._scroll_task_down = self._make_scroll_task(self._do_scroll_down) 41 if scrollable != None: 42 self.scrollable = scrollable4345 task = self._tasks.add(Task.sequence(Task.wait(self.scrolling_delay), Task.loop(Task.wait(self.scrolling_step_delay), Task.run(scroll_step)))) 46 task.kill() 47 return task4850 return self._scrollable51 55 56 scrollable = property(_get_scrollable, _set_scrollable) 57 60 63 66 69 73 77 81 91 101 102 @subject_slot('value')104 self._on_scroll_value(value, self._on_scroll_up_value.subject, self._do_scroll_up, self._scroll_task_up)105 106 @subject_slot('value')108 self._on_scroll_value(value, self._on_scroll_down_value.subject, self._do_scroll_down, self._scroll_task_down)109 114 119121 if self.is_enabled(): 122 is_momentary = button.is_momentary() 123 if not not self._scroll_task_up.is_killed: 124 is_scrolling = not self._scroll_task_down.is_killed 125 if not is_scrolling or not is_momentary: 126 scroll_step() 127 scroll_task.kill() 128 is_momentary and value and scroll_task.restart() 129 self._ensure_scroll_one_direction() 130 self.update()131133 scroll_up_button = self._on_scroll_up_value.subject 134 scroll_down_button = self._on_scroll_down_value.subject 135 if scroll_up_button and scroll_up_button.is_pressed() and scroll_down_button and scroll_down_button.is_pressed(): 136 self._scroll_task_up.pause() 137 self._scroll_task_down.pause() 138 else: 139 self._scroll_task_up.resume() 140 self._scroll_task_down.resume()
| Home | Trees | Indices | Help |
|---|
| Generated by Epydoc 3.0.1 on Wed Mar 6 18:53:33 2013 | http://epydoc.sourceforge.net |