def __init__(self, scrollable_list=None, data_sources=tuple(), *a, **k): super(ListComponent, self).__init__(*a, **k) self._data_sources = data_sources self._activation_task = task.Task() self._action_on_scroll_task = task.Task() self._scrollable_list = None self._scroller = ScrollComponent(parent=self) self._pager = ScrollComponent(parent=self) self.last_action_item = lambda: self._last_action_item self.item_formatter = DefaultItemFormatter() for c in (self._scroller, self._pager): for button in (c.scroll_up_button, c.scroll_down_button): button.color = b'List.ScrollerOn' button.pressed_color = None button.disabled_color = b'List.ScrollerOff' if scrollable_list == None: self.scrollable_list = ActionList( num_visible_items=len(data_sources)) else: self.scrollable_list = scrollable_list self._scrollable_list.num_visible_items = len(data_sources) self._delay_activation = BooleanContext() self._selected_index_float = 0.0 self._in_encoder_selection = BooleanContext(False) self._execute_action_task = self._tasks.add( task.sequence(task.delay(1), task.run(self._execute_action))) self._execute_action_task.kill() return
def __init__(self, preferences=dict(), commit_model_changes=None, selection=None, main_modes_ref=None, *a, **k): assert commit_model_changes is not None super(BrowserComponent, self).__init__(*a, **k) self._lists = [] self._browser = Live.Application.get_application().browser self._current_hotswap_target = self._browser.hotswap_target self._updating_root_items = BooleanContext() self._focused_list_index = 0 self._commit_model_changes = commit_model_changes self._preferences = preferences self._expanded = False self._unexpand_with_scroll_encoder = False self._delay_preview_list = BooleanContext() self._selection = selection self._main_modes_ref = main_modes_ref if main_modes_ref is not None else nop self._load_neighbour_overlay = self.register_component( LoadNeighbourOverlayComponent(is_enabled=False)) self._content_filter_type = None self._content_hotswap_target = None self._preview_list_task = self._tasks.add( task.sequence(task.wait(self.REVEAL_PREVIEW_LIST_TIME), task.run( self._replace_preview_list_by_task))).kill() self._update_root_items() self._update_navigation_buttons() self._update_context() self.prehear_button.is_toggled = preferences.setdefault( u'browser_prehear', True) self._on_selected_track_color_index_changed.subject = self.song.view self._on_selected_track_name_changed.subject = self.song.view self._on_detail_clip_name_changed.subject = self.song.view self._on_hotswap_target_changed.subject = self._browser self._on_load_next.subject = self._load_neighbour_overlay self._on_load_previous.subject = self._load_neighbour_overlay self._on_focused_item_changed.subject = self self.register_slot(self, self.notify_focused_item, u'focused_list_index') def auto_unexpand(): self.expanded = False self._update_list_offset() self._unexpand_task = self._tasks.add( task.sequence(task.wait(self.EXPAND_LIST_TIME), task.run(auto_unexpand))).kill() return
def __init__(self, device_bank_registry=None, banking_info=None, info_layer=None, delete_handler=None, session_ring=None, *a, **k): super(DeviceNavigationComponent, self).__init__(*a, **k) self._make_navigation_node = partial( make_navigation_node, session_ring=session_ring, device_bank_registry=device_bank_registry, banking_info=banking_info) self._delete_handler = delete_handler self._updating_children = BooleanContext() self._device_list = self.register_component( ScrollableListWithTogglesComponent()) self._on_selection_clicked_in_controller.subject = self._device_list self._on_selection_changed_in_controller.subject = self._device_list self._on_state_changed_in_controller.subject = self._device_list self._current_node = None self._message_box = self.register_component( MessageBoxComponent(layer=info_layer, is_enabled=False)) self._message_box.text = consts.MessageBoxText.EMPTY_DEVICE_CHAIN self._selected_track = None self._on_selected_track_changed.subject = self.song.view with inject(selection=const(NamedTuple( selected_device=None))).everywhere(): self._on_selected_track_changed() self._on_device_parameters_changed.subject = self._selected_track.view.selected_device return
def __init__(self, *a, **k): self.suppressing_control_notifications = BooleanContext() super(ActionsComponent, self).__init__(*a, **k) self._record_quantization = RecordingQuantization.rec_q_sixtenth self._on_record_quantization_changed_in_live.subject = self.song self._on_record_quantization_changed_in_live() self._metronome_toggle = ToggleComponent(u'metronome', self.song)
def __init__(self, *a, **k): super(FullBrowserModel, self).__init__(*a, **k) self._contents = [] self._num_contents = 0 self._push_content_list() self._inside_item_activated_notification = BooleanContext()
def __init__(self, muted=False, *a, **k): super(MessengerModesComponent, self).__init__(*a, **k) self._mode_message_map = {} self._default_and_alternative_mode_map = {} self._is_being_enabled = BooleanContext() self._muted = muted
def __init__(self, *a, **k): super(ProviderDeviceComponent, self).__init__(*a, **k) self.set_parameter_controls([]) self._suppress_parameter_notification = BooleanContext()
def __init__(self, *a, **k): super(MessengerModesComponent, self).__init__(*a, **k) self._mode_message_map = {} self._is_being_enabled = BooleanContext()