Пример #1
0
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;
}
Пример #2
0
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);
	}
}
Пример #3
0
const UserID *RosterView::GetConference(int i)
{
	RosterItem *item = (RosterItem*)ItemUnderAt(_conferences, true, i);
	if (item) return item->GetUserID();
	else return NULL;
}