예제 #1
0
class ContactView:
    def __init__(self, core, amsn_contact):
        """
        @type core: L{amsn2.core.amsn.aMSNCore}
        @type amsn_contact: L{amsn2.core.amsn.aMSNContact}
        """

        self.uid = amsn_contact.uid

        self.account = amsn_contact.account
        #self.contact = amsn_contact # Usefull at least if we want to reload the ContactPopupMenu

        self.status = amsn_contact.status
        self.icon = amsn_contact.icon
        #TODO: apply emblem on dp
        self.dp = amsn_contact.dp.clone()
        self.dp.append_imageview(amsn_contact.emblem)
        self.name = StringView()  # TODO : default colors
        self.name.open_tag("nickname")
        self.name.append_stringview(amsn_contact.nickname)  # TODO parse
        self.name.close_tag("nickname")
        self.name.append_text(" ")
        self.name.open_tag("status")
        self.name.append_text("(")
        self.name.append_stringview(amsn_contact.status)
        self.name.append_text(")")
        self.name.close_tag("status")
        self.name.append_text(" ")
        self.name.open_tag("psm")
        self.name.set_italic()
        self.name.append_stringview(amsn_contact.personal_message)
        self.name.unset_italic()
        self.name.close_tag("psm")

        def start_conversation_cb(c_uid):
            core._conversation_manager.new_conversation([c_uid])

        self.on_click = start_conversation_cb
        self.on_double_click = None
        self.on_right_click_popup_menu = ContactPopupMenu(core, amsn_contact)
        self.tooltip = None
        self.context_menu = None

    #TODO: @roproperty: context_menu, tooltip

    def __repr__(self):
        return "<ContactView {uid='%s', name='%s'}>" % (self.uid, self.name)
예제 #2
0
class ContactView:
    def __init__(self, core, amsn_contact):
        """
        @type core: aMSNCore
        @type amsn_contact: aMSNContact
        """

        self.uid = amsn_contact.uid

        self.account = amsn_contact.account
        #self.contact = amsn_contact # Usefull at least if we want to reload the ContactPopupMenu

        self.status = amsn_contact.status
        self.icon = amsn_contact.icon
        #TODO: apply emblem on dp
        self.dp = amsn_contact.dp.clone()
        self.dp.append_imageview(amsn_contact.emblem)
        self.name = StringView() # TODO : default colors
        self.name.open_tag("nickname")
        self.name.append_stringview(amsn_contact.nickname) # TODO parse
        self.name.close_tag("nickname")
        self.name.append_text(" ")
        self.name.open_tag("status")
        self.name.append_text("(")
        self.name.append_stringview(amsn_contact.status)
        self.name.append_text(")")
        self.name.close_tag("status")
        self.name.append_text(" ")
        self.name.open_tag("psm")
        self.name.set_italic()
        self.name.append_stringview(amsn_contact.personal_message)
        self.name.unset_italic()
        self.name.close_tag("psm")

        def start_conversation_cb(c_uid):
            core._conversation_manager.new_conversation([c_uid])
        self.on_click = start_conversation_cb
        self.on_double_click = None
        self.on_right_click_popup_menu = ContactPopupMenu(core, amsn_contact)
        self.tooltip = None
        self.context_menu = None

    #TODO: @roproperty: context_menu, tooltip

    def __repr__(self):
        return "<ContactView {uid='%s', name='%s'}>" % (self.uid, self.name)