int32 RosterView::FindUser(UserID *compare_user) { if (compare_user == NULL) return -1; for (int i=0; i<FullListCountItems(); ++i) { RosterItem *item = dynamic_cast<RosterItem *>(FullListItemAt(i)); if (item == NULL || item->StalePointer()) continue; if (item->GetUserID() == compare_user) return i; } return -1; }
void RosterView::UpdatePopUpMenu() { RosterItem *item = CurrentItemSelection(); if (item && !item->StalePointer()) { const UserID *user = item->GetUserID(); _change_user_item->SetEnabled(true); _remove_user_item->SetEnabled(true); if (user->OnlineStatus() != UserID::CONF_STATUS) { _presence->SetEnabled(true); if (user->HaveSubscriptionTo()) { _subscribe_presence->SetEnabled(false); _unsubscribe_presence->SetEnabled(true); } else { _subscribe_presence->SetEnabled(true); _unsubscribe_presence->SetEnabled(false); } } else { _presence->SetEnabled(false); } } else { _change_user_item->SetEnabled(false); _remove_user_item->SetEnabled(false); _presence->SetEnabled(false); } }
const UserID *RosterView::GetConference(int i) { RosterItem *item = (RosterItem*)ItemUnderAt(_conferences, true, i); if (item) return item->GetUserID(); else return NULL; }