diff --git a/gooey/gui/pubsub.py b/gooey/gui/pubsub.py new file mode 100644 index 0000000..15c4a43 --- /dev/null +++ b/gooey/gui/pubsub.py @@ -0,0 +1,25 @@ +from collections import defaultdict + +__ALL__ = ['pub'] + +class PubSub(object): + ''' + A super simplified clone of Wx.lib.pubsub since it doesn't exist on linux + + *grumble grumble* Stupid abandoned wx project... >:( *grumble* + ''' + + def __init__(self): + self.registry = defaultdict(list) + + + def subscribe(self, handler, event): + self.registry[event].append(handler) + + + def send_message(self, event, **kwargs): + for event_handler in self.registry.get(event, []): + event_handler(**kwargs) + +pub = PubSub() +