Source code for pyvisor.GUI.model.callback_handler

"""Simple observer-pattern callback registry."""


[docs] class CallbackHandler: """Manages a set of registered callback functions. Widgets register callables via :meth:`register` and receive a numeric ID for later removal. Iterating over the handler invokes all registered callbacks. """ def __init__(self): self.n_registered = -1 self.callback_functions = {}
[docs] def register(self, callback) -> int: self.n_registered += 1 self.callback_functions[self.n_registered] = callback return self.n_registered
[docs] def pop(self, n: int): if n in self.callback_functions: self.callback_functions.pop(n)
[docs] def clear(self): self.callback_functions.clear()
def __iter__(self): return self.callback_functions.values().__iter__()