Beispiel #1
0
void
TAccountXmpp::IconUpdate_MessagesReadForContact(TContact * pContact)
	{
	Assert(pContact != NULL);
	if (m_arraypContactsMessagesUnread.RemoveElementFastF(pContact))
		{
		// We have removed the contact, so check if the list is empty to update the icon
		if (m_arraypContactsMessagesUnread.FIsEmpty())
			{
			m_uFlagsAccountStatus &= ~FAS_kfMessageUnread;
			TreeItemAccount_UpdateIcon();	// No more unread messages, so set the normal icon
			}
		}
	MainWindow_SystemTrayMessageReadForContact(pContact);
	}
//	TGroup::ITreeItem::TreeItem_IconUpdateOnMessagesRead()
void
TGroup::TreeItem_IconUpdateOnMessagesRead()
	{
	if (m_cMessagesUnread <= 0)
		return;	// There are no unread messsages
	m_cMessagesUnread = 0;
	// Loop through every member and remove the count
	TGroupMember ** ppMemberStop;
	TGroupMember ** ppMember = m_arraypaMembers.PrgpGetMembersStop(OUT &ppMemberStop);
	while (ppMember != ppMemberStop)
		{
		TGroupMember * pMember = *ppMember++;
		Assert(pMember != NULL);
		Assert(pMember->EGetRuntimeClass() == RTI(TGroupMember));
		if (pMember->m_cMessagesUnread > 0)
			{
			pMember->m_cMessagesUnread = 0;
			pMember->TreeItemW_UpdateText();
			pMember->TreeItem_IconUpdate();
			MainWindow_SystemTrayMessageReadForContact(pMember->m_pContact);
			}
		}
	TreeItemChatLog_UpdateTextAndIcon();
	}