Moved mirage2 to use newer GTK template structure patterns

This commit is contained in:
2026-05-22 18:27:16 -05:00
parent 447b087188
commit bbd8fd7a2c
94 changed files with 2846 additions and 814 deletions

View File

@@ -13,18 +13,34 @@ class EventSystem(Singleton):
def __init__(self):
self.subscribers = defaultdict(list)
self._is_paused = False
self._subscribe_to_events()
def subscribe(self, event_type, fn):
def _subscribe_to_events(self):
self.subscribe("pause_event_processing", self._pause_processing_events)
self.subscribe("resume_event_processing", self._resume_processing_events)
def _pause_processing_events(self):
self._is_paused = True
def _resume_processing_events(self):
self._is_paused = False
def subscribe(self, event_type: str, fn: callable):
self.subscribers[event_type].append(fn)
def unsubscribe(self, event_type, fn):
def unsubscribe(self, event_type: str, fn: callable):
self.subscribers[event_type].remove(fn)
def unsubscribe_all(self, event_type):
def unsubscribe_all(self, event_type: str):
self.subscribers.pop(event_type, None)
def emit(self, event_type, data = None):
def emit(self, event_type: str, data: tuple = ()):
if self._is_paused and event_type != "resume_event_processing":
return
if event_type in self.subscribers:
for fn in self.subscribers[event_type]:
if data:
@@ -35,7 +51,10 @@ class EventSystem(Singleton):
else:
fn()
def emit_and_await(self, event_type, data = None):
def emit_and_await(self, event_type: str, data: tuple = ()):
if self._is_paused and event_type != "resume_event_processing":
return
""" NOTE: Should be used when signal has only one listener and vis-a-vis """
if event_type in self.subscribers:
response = None