Commit d859ec2e authored by mathieui's avatar mathieui

Add a 'tab_change' event

parent 4e4ab569
......@@ -7,6 +7,12 @@ The following events are poezio-only events, for SleekXMPP events, check out
.. glossary::
:sorted:
tab_change
- **old_tab_nb:** :py:class:`int` Old current tab number.
- **new_tab_nb:** :py:class:`int` New current tab number.
Triggered whenever the user switches between tabs.
muc_say
- **message:** :py:class:`~sleekxmpp.Message` that will be sent
- **tab:** :py:class:`~tabs.MucTab` source
......
......@@ -1098,12 +1098,15 @@ class Core(object):
Prevents the tab number from going over the total number of opened
tabs, or under 0
"""
old = self._current_tab_nb
if value >= len(self.tabs):
self._current_tab_nb = 0
elif value < 0:
self._current_tab_nb = len(self.tabs) - 1
else:
self._current_tab_nb = value
if old != self._current_tab_nb:
self.events.trigger('tab_change', old, self._current_tab_nb)
### Opening actions ###
......
......@@ -45,6 +45,7 @@ class EventHandler(object):
'muc_ban': [],
'send_normal_presence': [],
'ignored_private': [],
'tab_change': [],
}
def add_event_handler(self, name, callback, position=0):
......@@ -72,6 +73,7 @@ class EventHandler(object):
if callbacks is None:
log.debug('%s: No such event.', name)
return
log.debug('Event %s triggered, callbacks: %s', name, callbacks)
for callback in callbacks:
callback(*args, **kwargs)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment