예제 #1
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
예제 #2
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())