1
2 from ModeSelectorComponent import ModeSelectorComponent
3 from ControlSurfaceComponent import ControlSurfaceComponent
4 from ButtonElement import ButtonElement
5
7 """ Class that handles modes by enabling and disabling components """
8
12
16
32
34 return len(self._components_per_mode)
35
37 if not (len(self._modes_buttons) == 0 or len(self._modes_buttons) == len(self._components_per_mode)):
38 raise AssertionError
39 if not len(self._components_per_mode) > self._mode_index:
40 raise AssertionError
41 index = 0
42 active_components = None
43 active_components = self.is_enabled() and self._components_per_mode[self._mode_index]
44 for index in range(len(self._components_per_mode)):
45 if self._components_per_mode[index] != active_components:
46 if len(self._modes_buttons) == len(self._components_per_mode):
47 self._modes_buttons[index].turn_off()
48 for component in self._components_per_mode[index]:
49 component.set_enabled(False)
50
51 if active_components != None:
52 for component in active_components:
53 component.set_enabled(True)
54
55 len(self._modes_buttons) == len(self._components_per_mode) and self._modes_buttons[self._mode_index].turn_on()
56