Add clear_chat command

Add a command to clear all lines of chat messages, same as the `clear_local_console`/`clear_remote_console` commands for the consoles. This is useful for example when taking screenshots or recording videos with initially empty chat.
This commit is contained in:
Robert Müller 2024-10-30 23:06:22 +01:00
parent a52986f006
commit c978ecec39
2 changed files with 19 additions and 6 deletions

View file

@ -95,12 +95,7 @@ void CChat::RebuildChat()
}
}
void CChat::OnWindowResize()
{
RebuildChat();
}
void CChat::Reset()
void CChat::ClearLines()
{
for(auto &Line : m_aLines)
{
@ -115,6 +110,16 @@ void CChat::Reset()
}
m_PrevScoreBoardShowed = false;
m_PrevShowChat = false;
}
void CChat::OnWindowResize()
{
RebuildChat();
}
void CChat::Reset()
{
ClearLines();
m_Show = false;
m_CompletionUsed = false;
@ -183,6 +188,11 @@ void CChat::ConEcho(IConsole::IResult *pResult, void *pUserData)
((CChat *)pUserData)->Echo(pResult->GetString(0));
}
void CChat::ConClearChat(IConsole::IResult *pResult, void *pUserData)
{
((CChat *)pUserData)->ClearLines();
}
void CChat::ConchainChatOld(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData)
{
pfnCallback(pResult, pCallbackUserData);
@ -217,6 +227,7 @@ void CChat::OnConsoleInit()
Console()->Register("chat", "s['team'|'all'] ?r[message]", CFGFLAG_CLIENT, ConChat, this, "Enable chat with all/team mode");
Console()->Register("+show_chat", "", CFGFLAG_CLIENT, ConShowChat, this, "Show chat");
Console()->Register("echo", "r[message]", CFGFLAG_CLIENT | CFGFLAG_STORE, ConEcho, this, "Echo the text in chat window");
Console()->Register("clear_chat", "", CFGFLAG_CLIENT | CFGFLAG_STORE, ConClearChat, this, "Clear chat messages");
}
void CChat::OnInit()

View file

@ -135,6 +135,7 @@ class CChat : public CComponent
static void ConChat(IConsole::IResult *pResult, void *pUserData);
static void ConShowChat(IConsole::IResult *pResult, void *pUserData);
static void ConEcho(IConsole::IResult *pResult, void *pUserData);
static void ConClearChat(IConsole::IResult *pResult, void *pUserData);
static void ConchainChatOld(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData);
static void ConchainChatFontSize(IConsole::IResult *pResult, void *pUserData, IConsole::FCommandCallback pfnCallback, void *pCallbackUserData);
@ -170,6 +171,7 @@ public:
void OnInit() override;
void RebuildChat();
void ClearLines();
void EnsureCoherentFontSize() const;
void EnsureCoherentWidth() const;