Ejemplo n.º 1
0
void C4ChatControl::ChatSheet::Update(bool fLock) {
  // lock IRC client data if desired
  if (fLock) {
    CStdLock Lock(pChatControl->getIRCClient()->getCSec());
    Update(false);
    return;
  }
  // only channels need updates
  if (eType == CS_Channel) {
    C4Network2IRCChannel *pIRCChan =
        pChatControl->getIRCClient()->getChannel(GetIdent());
    if (pIRCChan) {
      // update user list (if not locked, becuase it's being received)
      if (!pIRCChan->isUsersLocked()) UpdateUsers(pIRCChan->getUsers());
      // update topic
      const char *szTopic = pIRCChan->getTopic();
      sChatTitle.Format("%s%s%s", sIdent.getData(), szTopic ? ": " : "",
                        szTopic ? szTopic : "");
      convUTF8toWindows(sChatTitle);
    }
  }
}