# # Copyright (c) Daniel Sheffield 2021 # # All rights reserved # # THIS SOFTWARE IS PROVIDED AS IS WITHOUT WARRANTY import urwid def show_or_exit(key): if isinstance(key, tuple): return if key in ('esc',): raise urwid.ExitMainLoop() class ActivityManager(object): def __init__(self): self.widgets = dict() self.app = None def add(self, widget, name): self.widgets[name] = widget return widget def get(self, name): if name in self.widgets: return self.widgets[name] return None def create(self, cls, name, *args, **kwargs): widget = cls(*args, **kwargs) if name is not None: self.add(widget, name) return widget def show(self, widget): if self.app is not None: self.app.original_widget = widget return self.app = widget def current(self): if self.app is None: return None return self.app.original_widget