summaryrefslogtreecommitdiff
path: root/src/events.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/events.py')
-rw-r--r--src/events.py87
1 files changed, 0 insertions, 87 deletions
diff --git a/src/events.py b/src/events.py
deleted file mode 100644
index 15ef3e35..00000000
--- a/src/events.py
+++ /dev/null
@@ -1,87 +0,0 @@
-#
-# This file is part of Poezio.
-#
-# Poezio is free software: you can redistribute it and/or modify
-# it under the terms of the zlib license. See the COPYING file.
-
-"""
-Defines the EventHandler class.
-The list of available events is here:
-http://poezio.eu/doc/en/plugins.html#_poezio_events
-"""
-
-class EventHandler(object):
- """
- A class keeping a list of possible events that are triggered
- by poezio. You (a plugin for example) can add an event handler
- associated with an event name, and whenever that event is triggered,
- the callback is called.
- """
- def __init__(self):
- self.events = {
- 'highlight': [],
- 'muc_say': [],
- 'muc_say_after': [],
- 'conversation_say': [],
- 'conversation_say_after': [],
- 'private_say': [],
- 'private_say_after': [],
- 'conversation_msg': [],
- 'private_msg': [],
- 'muc_msg': [],
- 'conversation_chatstate': [],
- 'muc_chatstate': [],
- 'private_chatstate': [],
- 'normal_presence': [],
- 'muc_presence': [],
- 'muc_join': [],
- 'joining_muc': [],
- 'changing_nick': [],
- 'muc_kick': [],
- 'muc_nickchange': [],
- 'muc_ban': [],
- 'send_normal_presence': [],
- 'ignored_private': [],
- 'tab_change': [],
- }
-
- def add_event_handler(self, name, callback, position=0):
- """
- Add a callback to a given event.
- Note that if that event name doesn’t exist, it just returns False.
- If it was successfully added, it returns True
- position: 0 means insert at the beginning, -1 means end
- """
- if name not in self.events:
- return False
-
- if position >= 0:
- self.events[name].insert(position, callback)
- else:
- self.events[name].append(callback)
-
- return True
-
- def trigger(self, name, *args, **kwargs):
- """
- Call all the callbacks associated to the given event name.
- """
- callbacks = self.events.get(name, None)
- if callbacks is None:
- return
- for callback in callbacks:
- callback(*args, **kwargs)
-
- def del_event_handler(self, name, callback):
- """
- Remove the callback from the list of callbacks of the given event
- """
- if not name:
- for event in self.events:
- while callback in self.events[event]:
- self.events[event].remove(callback)
- return True
- else:
- if callback in self.events[name]:
- self.events[name].remove(callback)
-