# # Copyright (c) 2008 INdT - Instituto Nokia de Tecnologia # # This file is part of python-purple. # # python-purple is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # python-purple is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # cimport purple cdef class Conversation: """ Conversation class """ cdef conversation.PurpleConversation *__conv cdef object __acc cdef object __name def __init__(self): conversation.c_purple_conversations_init() self.__name = None self.__acc = None def __get_account(self): return self.__acc def __set_account(self, acc): self.__acc = acc account = property(__get_account, __set_account) def __get_name(self): return self.__name def __set_name(self, name): self.__name = name name = property(__get_name, __set_name) def initialize(self, acc, type, char *name): cdef account.PurpleAccount *c_account self.__acc = acc self.__name = name c_account = account.c_purple_accounts_find(acc[0], acc[1]) if not c_account: return if type == "UNKNOWN": self.__conv =\ conversation.c_purple_conversation_new(conversation.PURPLE_CONV_TYPE_UNKNOWN,\ c_account, self.__name) elif type == "IM": self.__conv =\ conversation.c_purple_conversation_new(conversation.PURPLE_CONV_TYPE_IM,\ c_account, self.__name) elif type == "CHAT": self.__conv =\ conversation.c_purple_conversation_new(conversation.PURPLE_CONV_TYPE_CHAT,\ c_account, self.__name) elif type == "MISC": self.__conv =\ conversation.c_purple_conversation_new(conversation.PURPLE_CONV_TYPE_MISC,\ c_account, self.__name) elif type == "ANY": self.__conv =\ conversation.c_purple_conversation_new(conversation.PURPLE_CONV_TYPE_ANY,\ c_account, self.__name) def conversation_set_ui_ops(self): cdef conversation.PurpleConversationUiOps c_conv_ui_ops c_conv_ui_ops.create_conversation = NULL c_conv_ui_ops.destroy_conversation = NULL c_conv_ui_ops.write_chat = NULL c_conv_ui_ops.write_im = NULL c_conv_ui_ops.write_conv = NULL c_conv_ui_ops.chat_add_users = NULL c_conv_ui_ops.chat_rename_user = NULL c_conv_ui_ops.chat_remove_users = NULL c_conv_ui_ops.chat_update_user = NULL c_conv_ui_ops.present = NULL c_conv_ui_ops.has_focus = NULL c_conv_ui_ops.custom_smiley_add = NULL c_conv_ui_ops.custom_smiley_write = NULL c_conv_ui_ops.custom_smiley_close = NULL c_conv_ui_ops.send_confirm = NULL conversation.c_purple_conversation_set_ui_ops(self.__conv, &c_conv_ui_ops) def write(self, char *message): if self.__conv: conversation.c_purple_conv_im_send(conversation.c_purple_conversation_get_im_data(self.__conv), message) def get_handle(self): conversation.c_purple_conversations_get_handle() def destroy(self): print "[DEBUG]: Destroy conversation: %s" % self.__name if self.__conv: conversation.c_purple_conversation_destroy(self.__conv)