//! @brief Output a message said in the channel. //! //! @param who nick of the person who said something. //! @param message the message to be outputted. void ChatPanel::Said( const wxString& who, const wxString& message ) { wxString me = GetMe().GetNick(); wxColour col; bool req_user = false; if ( who.Upper() == me.Upper() ) { col = sett().GetChatColorMine(); } else { // change the image of the tab to show new events SetIconHighlight( highlight_say ); if ( m_type == CPT_User ) req_user = true; //process logic for custom word highlights if ( ContainsWordToHighlight( message ) ) { req_user = sett().GetRequestAttOnHighlight(); col = sett().GetChatColorHighlight(); } else col = sett().GetChatColorNormal(); } if ( ( who == _T( "MelBot" ) || who == _T( "[BOT]tizbacbridgebot" ) ) && message.StartsWith( _T( "<" ) ) && message.Find( _T( ">" ) ) != wxNOT_FOUND ) { wxString who2; wxString message2; who2 = message.BeforeFirst( '>' ).AfterFirst( '<' ); if ( who != _T( "[BOT]tizbacbridgebot" ) ) who2 += _T( "@IRC" ); //don't highlight if i'm talking from irc to channel if ( who2.Upper().BeforeLast(_T('@')) == me.Upper() ) { req_user = false; col = sett().GetChatColorNormal(); } message2 = message.AfterFirst( '>' ); OutputLine( _T( " <" ) + who2 + _T( "> " ) + message2, col, sett().GetChatFont() ); } else { OutputLine( _T( " <" ) + who + _T( "> " ) + message, col, sett().GetChatFont() ); } if ( req_user ) { bool inactive = ui().GetActiveChatPanel() != this || !wxTheApp->IsActive() ; ui().mw().RequestUserAttention(); if ( inactive ) UiEvents::GetNotificationEventSender().SendEvent( UiEvents::NotficationData( UiEvents::PrivateMessage, wxString::Format( _T("%s:\n%s"), who.c_str(), message.Left(50).c_str() ) ) ); } }
//! @brief Output a message said in the channel. //! //! @param who nick of the person who said something. //! @param message the message to be outputted. void ChatPanel::Said(const wxString& who, const wxString& message) { if (m_active_users.find(who) == m_active_users.end()) { m_active_users.insert(who); } wxString me = TowxString(GetMe().GetNick()); wxColour col; bool req_user = false; if (who.Upper() == me.Upper()) { col = sett().GetChatColorMine(); } else { // change the image of the tab to show new events SetIconHighlight(highlight_say); if (m_type == CPT_User) req_user = true; //process logic for custom word highlights if (ContainsWordToHighlight(message)) { req_user = sett().GetRequestAttOnHighlight(); col = sett().GetChatColorHighlight(); } else col = sett().GetChatColorNormal(); } if ((who == cfg().ReadString(_T("/Channel/bridgebot"))) && (message.StartsWith(_T( "<" ))) && (message.Find(_T( ">" )) != wxNOT_FOUND)) { wxString who2; wxString message2; who2 = message.BeforeFirst('>').AfterFirst('<'); message2 = message.AfterFirst('>'); OutputLine(_T( "<" ) + who2 + _T( "> " ) + message2, col); } else { OutputLine(_T( "<" ) + who + _T( "> " ) + message, col); } if (req_user) { bool inactive = ui().GetActiveChatPanel() != this || !wxTheApp->IsActive(); if (inactive) { ui().mw().RequestUserAttention(); const wxString msg = wxString::Format(_T("%s:\n%s"), who.c_str(), message.Left(50).c_str()); UiEvents::GetNotificationEventSender().SendEvent( UiEvents::NotficationData(UiEvents::PrivateMessage, msg)); } } }