1from gi.repository import GObject
2from ..overrides import override
3from ..importer import modules
4
5GitgExt = modules['GitgExt']._introspection_module
6__all__ = []
7
8class MessageBus(GitgExt.MessageBus):
9    def create(self, msgid, **kwargs):
10        tp = self.lookup(msgid)
11
12        if not tp.is_a(GitgExt.Message.__gtype__):
13            return None
14
15        kwargs['id'] = msgid
16
17        return GObject.new(tp, **kwargs)
18
19    def send(self, msgid, **kwargs):
20        msg = self.create(msgid, **kwargs)
21        self.send_message(msg)
22
23        return msg
24
25MessageBus = override(MessageBus)
26__all__.append('MessageBus')
27
28class Message(GitgExt.Message):
29    def __getattribute__(self, name):
30        try:
31            return GitgExt.Message.__getattribute__(self, name)
32        except:
33            return getattr(self.props, name)
34
35Message = override(Message)
36__all__.append('Message')
37
38# vi:ex:ts=4:et
39