コード例 #1
0
ファイル: ChatView.py プロジェクト: jmissig/gabber
    def __on_send(self):
        tb = self.__txtMessage.get_buffer()
        body = tb.get_text(tb.get_start_iter(), tb.get_end_iter(), 0)
        if not body:
            return

        m = Message(self.__jid, body, Message.Type.mtChat)
        m.requestComposing()
        m.id = self.__app.session.getNextID()

        self.__app.session.send(m)

        self.__txtChatview.append(m, 1)
        
        tb.set_text("")
コード例 #2
0
ファイル: ChatView.py プロジェクト: jmissig/gabber
    def __init__(self, mgr, jid, node=None):
        BaseGabberWindow.__init__(self, "OOOChat_win")
        self.__manager = mgr
        self.__jid = jid

        self.__init()
        ## See what type to start
        if node:
            self.display(Message(node))
コード例 #3
0
ファイル: ChatView.py プロジェクト: jmissig/gabber
    def __on_event_node(self, node):
        m = Message(node)

        x = m.findX("jabber:x:event")
        delivered = x.findElement("delivered")
        composing = x.findElement("composing")
        id = x.findElement("id")

        if composing and id:
            self.__txtChatview.composing(m.sender)
        elif not composing and id:
            self.__txtChatview.cancel_composing(m.sender)
        elif composing and not id:
            if self.__composing_id:
                msg = Message(e.getAttrib("from"), "", Message.Type.mtChat)
                ix = msg.addX("jabber:x:event")
                ix.addElement("composing")
                ix.addElement("id", self.__composing_id)

                self.__app.session.send(msg)

            self.__composing_id = m.getID()
        elif delivered:
            self.__app.session.send(m.delivered())
コード例 #4
0
ファイル: ChatView.py プロジェクト: jmissig/gabber
    def __on_window_event(self, win, ev):
        if not ev.type == gtk.gdk.KEY_PRESS:
            return

        keyval = gtk.gdk.keyval_name(ev.keyval)
        if keyval == "KP_Enter":
            keyval = "Return"

        if keyval == "Escape":
            self.on_delete_event(None, None)

        if keyval == "Return":
            if ev.state & gtk.gdk.SHIFT_MASK:
                return

            self.__on_send()
            return 1

        if self.__composing_id:
            char_count = self.__txtMessage.get_buffer().get_char_count()

            if (char_count == 0 and self.__sent_composing):
                ## They deleted stop the event
                m = Message(self.__jid, "", Message.Type.mtChat)
                x = m.addX("jabber:x:event")
                x.addElement("id", self.__composing_id)

                self.__app.session.send(m)

                self.__sent_composing = 0
            elif (char_count > 0 and not self.__sent_composing):
                m = Message(self.__jid, "", Message.Type.mtChat)
                x = m.addX("jabber:x:event")
                x.addElement("composing")
                x.addElement("id", self.__composing_id)

                self.__app.session.send(m)

                self.__sent_composing = 1
コード例 #5
0
ファイル: ChatView.py プロジェクト: jmissig/gabber
 def __on_chat_node(self, node):
     self.display(Message(node))