- try:
- callback(node.type)
- except KeyError:
- pass
-
-cdef void new_list (blist.PurpleBuddyList *list):
- debug.c_purple_debug(debug.PURPLE_DEBUG_INFO, "blist", "new_list\n")
- try:
- (<object>blist_cbs["new_list"])("new_list")
- except KeyError:
- pass
-
-cdef void new_node (blist.PurpleBlistNode *node):
- debug.c_purple_debug(debug.PURPLE_DEBUG_INFO, "blist", "new_node\n")
-
- if node.type == blist.PURPLE_BLIST_GROUP_NODE:
- __group_node_cb(node, blist_cbs["new_node"])
- elif node.type == blist.PURPLE_BLIST_CONTACT_NODE:
- __contact_node_cb(node, blist_cbs["new_node"])
- elif node.type == blist.PURPLE_BLIST_BUDDY_NODE:
- __buddy_node_cb(node, blist_cbs["new_node"])
- elif node.type == blist.PURPLE_BLIST_CHAT_NODE:
- __chat_node_cb(node, blist_cbs["new_node"])
- elif node.type == blist.PURPLE_BLIST_OTHER_NODE:
- __other_node_cb(node, blist_cbs["new_node"])
+ callback(node.type)
+
+cdef void new_list(blist.PurpleBuddyList *list):
+ """
+ Sets UI-specific data on a buddy list.
+ """
+ debug.purple_debug_info("blist", "%s", "new-list\n")
+ if blist_cbs.has_key("new-list"):
+ (<object> blist_cbs["new-list"])("new-list: TODO")
+
+cdef void new_node(blist.PurpleBlistNode *node):
+ """
+ Sets UI-specific data on a node.
+ """
+ debug.purple_debug_info("blist", "%s", "new-node\n")
+ if blist_cbs.has_key("new-node"):
+ if node.type == blist.PURPLE_BLIST_GROUP_NODE:
+ __group_node_cb(node, blist_cbs["new-node"])
+ elif node.type == blist.PURPLE_BLIST_CONTACT_NODE:
+ __contact_node_cb(node, blist_cbs["new-node"])
+ elif node.type == blist.PURPLE_BLIST_BUDDY_NODE:
+ __buddy_node_cb(node, blist_cbs["new-node"])
+ elif node.type == blist.PURPLE_BLIST_CHAT_NODE:
+ __chat_node_cb(node, blist_cbs["new-node"])
+ elif node.type == blist.PURPLE_BLIST_OTHER_NODE:
+ __other_node_cb(node, blist_cbs["new-node"])
+
+cdef void show(blist.PurpleBuddyList *list):
+ """
+ The core will call this when it's finished doing its core stuff.
+ """
+ debug.purple_debug_info("blist", "%s", "show\n")
+ if blist_cbs.has_key("show"):
+ (<object> blist_cbs["show"])("show: TODO")
+
+cdef void update(blist.PurpleBuddyList *list, blist.PurpleBlistNode *node):
+ """
+ This will update a node in the buddy list.
+ """
+ debug.purple_debug_info("blist", "%s", "update\n")
+ if blist_cbs.has_key("update"):
+ if node.type == blist.PURPLE_BLIST_GROUP_NODE:
+ __group_node_cb(node, blist_cbs["update"])
+ elif node.type == blist.PURPLE_BLIST_CONTACT_NODE:
+ __contact_node_cb(node, blist_cbs["update"])
+ elif node.type == blist.PURPLE_BLIST_BUDDY_NODE:
+ __buddy_node_cb(node, blist_cbs["update"])
+ elif node.type == blist.PURPLE_BLIST_CHAT_NODE:
+ __chat_node_cb(node, blist_cbs["update"])
+ elif node.type == blist.PURPLE_BLIST_OTHER_NODE:
+ __other_node_cb(node, blist_cbs["update"])
+
+cdef void remove(blist.PurpleBuddyList *list, blist.PurpleBlistNode *node):
+ """
+ This removes a node from the list.
+ """
+ debug.purple_debug_info("blist", "%s", "remove\n")
+ if blist_cbs.has_key("remove"):
+ if node.type == blist.PURPLE_BLIST_GROUP_NODE:
+ __group_node_cb(node, blist_cbs["remove"])
+ elif node.type == blist.PURPLE_BLIST_CONTACT_NODE:
+ __contact_node_cb(node, blist_cbs["remove"])
+ elif node.type == blist.PURPLE_BLIST_BUDDY_NODE:
+ __buddy_node_cb(node, blist_cbs["remove"])
+ elif node.type == blist.PURPLE_BLIST_CHAT_NODE:
+ __chat_node_cb(node, blist_cbs["remove"])
+ elif node.type == blist.PURPLE_BLIST_OTHER_NODE:
+ __other_node_cb(node, blist_cbs["remove"])
+
+cdef void destroy(blist.PurpleBuddyList *list):
+ """
+ When the list gets destroyed, this gets called to destroy the UI.
+ """
+ debug.purple_debug_info("blist", "%s", "destroy\n")
+ if blist_cbs.has_key("destroy"):
+ (<object> blist_cbs["destroy"])("destroy: TODO")
+
+cdef void set_visible(blist.PurpleBuddyList *list, glib.gboolean show):
+ """
+ Hides or unhides the buddy list.
+ """
+ debug.purple_debug_info("blist", "%s", "set-visible\n")
+ if blist_cbs.has_key("set-visible"):
+ (<object> blist_cbs["set-visible"])("set-visible: TODO")
+
+cdef void request_add_buddy(account.PurpleAccount *c_account, \
+ const_char *c_buddy_username, const_char *c_buddy_group, \
+ const_char *c_buddy_alias):
+ """
+ Requests from the user information needed to add a buddy to the buddy
+ list.
+ """
+ debug.purple_debug_info("blist", "%s", "request-add-buddy\n")
+
+ username = account.purple_account_get_username(c_account)
+ protocol_id = account.purple_account_get_protocol_id(c_account)
+
+ if c_buddy_username:
+ buddy_username = <char *> c_buddy_username