Веб-сайт самохостера Lotigara

summaryrefslogtreecommitdiff
path: root/source/frontend/StarChat.cpp
diff options
context:
space:
mode:
authorKae <80987908+Novaenia@users.noreply.github.com>2024-04-24 07:44:53 +1000
committerKae <80987908+Novaenia@users.noreply.github.com>2024-04-24 07:44:53 +1000
commitd0f8aec244a0d71f67863f94cab4c5f84d93de22 (patch)
treea8e69fa28b7841d942e7e5f994518a69916c45c8 /source/frontend/StarChat.cpp
parent6ac139321b2a03d71192f852ff958cf6176e1c2d (diff)
feat: unicode emoji support + other stuff
Diffstat (limited to 'source/frontend/StarChat.cpp')
-rw-r--r--source/frontend/StarChat.cpp13
1 files changed, 11 insertions, 2 deletions
diff --git a/source/frontend/StarChat.cpp b/source/frontend/StarChat.cpp
index d780d23..bbb28c1 100644
--- a/source/frontend/StarChat.cpp
+++ b/source/frontend/StarChat.cpp
@@ -27,6 +27,7 @@ Chat::Chat(UniverseClientPtr client) : m_client(client) {
m_chatVisTime = config.get("visTime").toFloat();
m_fadeRate = config.get("fadeRate").toDouble();
m_chatHistoryLimit = config.get("chatHistoryLimit").toInt();
+ m_chatFormatString = config.getString("chatFormatString");
m_portraitTextOffset = jsonToVec2I(config.get("portraitTextOffset"));
m_portraitImageOffset = jsonToVec2I(config.get("portraitImageOffset"));
@@ -180,7 +181,7 @@ void Chat::addMessages(List<ChatReceivedMessage> const& messages, bool showPane)
guiContext.setTextStyle(m_chatTextStyle);
StringList lines;
if (message.fromNick != "" && message.portrait == "")
- lines = guiContext.wrapInterfaceText(strf("<{}> {}", message.fromNick, message.text), wrapWidth);
+ lines = guiContext.wrapInterfaceText(strf(m_chatFormatString.utf8Ptr(), message.fromNick, message.text), wrapWidth);
else
lines = guiContext.wrapInterfaceText(message.text, wrapWidth);
@@ -203,7 +204,8 @@ void Chat::addMessages(List<ChatReceivedMessage> const& messages, bool showPane)
show();
}
- m_receivedMessages.resize(std::min((unsigned)m_receivedMessages.size(), m_chatHistoryLimit));
+ if ((unsigned)m_receivedMessages.size() > m_chatHistoryLimit)
+ m_receivedMessages.resize(m_chatHistoryLimit);
}
void Chat::addHistory(String const& chat) {
@@ -216,6 +218,13 @@ void Chat::addHistory(String const& chat) {
m_client->playerStorage()->setMetadata("chatHistory", JsonArray::from(m_chatHistory));
}
+void Chat::clear(size_t count) {
+ if (count > m_receivedMessages.size())
+ m_receivedMessages.clear();
+ else
+ m_receivedMessages.erase(m_receivedMessages.begin(), m_receivedMessages.begin() + count);
+}
+
void Chat::renderImpl() {
Pane::renderImpl();
if (m_textBox->hasFocus())