static gint compare_last_name(PurpleBlistNode *node1, PurpleBlistNode *node2) { const char *name1=NULL, *name2=NULL; const char *tmp=NULL; if(PURPLE_BLIST_NODE_IS_CONTACT(node1)) { name1 = purple_contact_get_alias((PurpleContact *)node1); } if(!name1) { name1 = PURPLE_BLIST_NODE_NAME(node1); } if(PURPLE_BLIST_NODE_IS_CONTACT(node2)) { name2 = purple_contact_get_alias((PurpleContact *)node2); } if(!name2) { name2 = PURPLE_BLIST_NODE_NAME(node2); } /* Searches for last space in name and, if found, sorts based on characters remaining */ tmp = strrchr(name1, ' '); if(tmp != NULL) { name1 = tmp; } tmp = strrchr(name2, ' '); if(tmp != NULL) { name2 = tmp; } return purple_utf8_strcasecmp(name1, name2); }
void BuddyListContact::ContactContextMenu::onChangeAlias( Button& /*activator*/) { PurpleContact *contact = parent_contact->getPurpleContact(); CppConsUI::InputDialog *dialog = new CppConsUI::InputDialog( _("Alias"), purple_contact_get_alias(contact)); dialog->signal_response.connect(sigc::mem_fun(this, &ContactContextMenu::changeAliasResponseHandler)); dialog->show(); }
static gint compare_name(PurpleBlistNode *node1, PurpleBlistNode *node2) { const char *name1=NULL, *name2=NULL; if(PURPLE_BLIST_NODE_IS_CONTACT(node1)) { name1 = purple_contact_get_alias((PurpleContact *)node1); } if(!name1) { name1 = PURPLE_BLIST_NODE_NAME(node1); } if(PURPLE_BLIST_NODE_IS_CONTACT(node2)) { name2 = purple_contact_get_alias((PurpleContact *)node2); } if(!name2) { name2 = PURPLE_BLIST_NODE_NAME(node2); } return purple_utf8_strcasecmp(name1, name2); }
void BuddyListContact::ContactContextMenu::onRemove(Button& /*activator*/) { PurpleContact *contact = parent_contact->getPurpleContact(); char *msg = g_strdup_printf( _("Are you sure you want to delete contact %s from the list?"), purple_contact_get_alias(contact)); CppConsUI::MessageDialog *dialog = new CppConsUI::MessageDialog( _("Contact deletion"), msg); g_free(msg); dialog->signal_response.connect(sigc::mem_fun(this, &ContactContextMenu::removeResponseHandler)); dialog->show(); }
static void buddy_ticker_update_contact(PurpleContact *contact) { TickerData *td = buddy_ticker_find_contact(contact); if (!td) return; /* pop up the ticker window again */ buddy_ticker_create_window(); if (purple_contact_get_priority_buddy(contact) == NULL) buddy_ticker_remove(td); else { buddy_ticker_set_pixmap(contact); gtk_label_set_text(GTK_LABEL(td->label), purple_contact_get_alias(contact)); } }
static void set_auto_accept_settings(PurpleBlistNode *node, gpointer plugin) { char *message; if (PURPLE_BLIST_NODE_IS_BUDDY(node)) node = purple_blist_node_get_parent(node); g_return_if_fail(PURPLE_BLIST_NODE_IS_CONTACT(node)); message = g_strdup_printf(_("When a file-transfer request arrives from %s"), purple_contact_get_alias((PurpleContact *)node)); purple_request_choice(plugin, _("Set Autoaccept Setting"), message, NULL, purple_blist_node_get_int(node, "autoaccept"), _("_Save"), G_CALLBACK(save_cb), _("_Cancel"), NULL, NULL, NULL, NULL, node, _("Ask"), FT_ASK, _("Auto Accept"), FT_ACCEPT, _("Auto Reject"), FT_REJECT, NULL, purple_contact_get_alias((PurpleContact *)node), NULL, NULL); g_free(message); }
void BuddyListContact::update() { BuddyListNode::update(); PurpleBuddy *buddy = purple_contact_get_priority_buddy(contact); if (!buddy) { /* The contact does not have any associated buddy, ignore it until it gets * a buddy assigned. */ setText("*Contact*"); setVisibility(false); return; } // format contact size char *size; if (contact->currentsize > 1) size = g_strdup_printf(" (%d)", contact->currentsize); else size = NULL; // format contact label const char *alias = purple_contact_get_alias(contact); const char *status = getBuddyStatus(buddy); char *text; if (status[0]) text = g_strdup_printf("%s %s%s", status, alias, size ? size : ""); else text = g_strdup_printf("%s%s", alias, size ? size : ""); setText(text); g_free(size); g_free(text); sortIn(); updateColorScheme(); if (!purple_account_is_connected(purple_buddy_get_account(buddy))) { // hide if account is offline setVisibility(false); } else setVisibility(BUDDYLIST->getShowOfflineBuddiesPref() || status[0]); updateFilterVisibility(alias); }
static void buddy_ticker_add_buddy(PurpleBuddy *b) { GtkWidget *hbox; TickerData *td; PurpleContact *contact; contact = purple_buddy_get_contact(b); buddy_ticker_create_window(); if (!ticker) return; if (buddy_ticker_find_contact(contact)) { buddy_ticker_update_contact(contact); return; } td = g_new0(TickerData, 1); td->contact = contact; tickerbuds = g_list_append(tickerbuds, td); td->ebox = gtk_event_box_new(); gtk_ticker_add(GTK_TICKER(ticker), td->ebox); hbox = gtk_hbox_new(FALSE, 0); gtk_container_add(GTK_CONTAINER(td->ebox), hbox); buddy_ticker_set_pixmap(contact); gtk_box_pack_start(GTK_BOX(hbox), td->icon, FALSE, FALSE, 0); g_signal_connect(G_OBJECT(td->ebox), "button-press-event", G_CALLBACK(buddy_click_cb), contact); td->label = gtk_label_new(purple_contact_get_alias(contact)); gtk_box_pack_start(GTK_BOX(hbox), td->label, FALSE, FALSE, 2); gtk_widget_show_all(td->ebox); gtk_widget_show(tickerwindow); /* * Update the icon in a few seconds (after the open door icon has * changed). This is somewhat ugly. */ td->timeout = g_timeout_add(11000, buddy_ticker_set_pixmap_cb, td); }
const char *BuddyListContact::toString() const { return purple_contact_get_alias(contact); }