MCPcopy Create free account
hub / github.com/PiSCSI/piscsi / __init__

Method __init__

python/ctrlboard/src/menu/menu_controller.py:19–48  ·  view source on GitHub ↗
(self, menu_builder: MenuBuilder, menu_renderer=None, menu_renderer_config=None)

Source from the content-addressed store, hash-verified

17 that controls the menu and its associated rendering to a screen."""
18
19 def __init__(self, menu_builder: MenuBuilder, menu_renderer=None, menu_renderer_config=None):
20 self._menus: Dict[str, Menu] = {}
21 self._active_menu: Optional[Menu] = None
22 self._menu_renderer = menu_renderer
23 self._menu_builder: MenuBuilder = menu_builder
24 self._menu_renderer_config: Optional[MenuRendererConfig]
25 if menu_renderer_config is None:
26 self._menu_renderer_config = MenuRendererConfig()
27 else:
28 self._menu_renderer_config = menu_renderer_config
29
30 if menu_renderer is None: # default to LumaOled renderer if nothing else is stated
31 self._menu_renderer = MenuRendererLumaOled(self._menu_renderer_config)
32 else:
33 self._menu_renderer = menu_renderer
34 self._transition: Optional[Transition] = None
35 if self._menu_renderer_config.transition is None:
36 self._transition = None
37 return
38 try:
39 module = importlib.import_module("menu.transition")
40 try:
41 transition_class = getattr(module, self._menu_renderer_config.transition)
42 if transition_class is not None:
43 self._transition = transition_class(self._menu_renderer.disp)
44 except AttributeError:
45 pass
46 except ImportError:
47 print("transition module does not exist. Falling back to default.")
48 self._transition = None
49
50 def add(self, name: str, context_object=None):
51 """Adds a menu to the menu collection internal to the controller by name.

Callers

nothing calls this directly

Calls 2

MenuRendererConfigClass · 0.90

Tested by

no test coverage detected