summaryrefslogtreecommitdiff
path: root/components/chatmessage.cpp
diff options
context:
space:
mode:
authorouwou <26526779+ouwou@users.noreply.github.com>2020-09-05 23:04:11 -0400
committerouwou <26526779+ouwou@users.noreply.github.com>2020-09-05 23:04:11 -0400
commitaf82a8df8e469739765918b1627de20948186eb4 (patch)
tree4c9f93c9e917d54f9928deae77cc98bd3a322942 /components/chatmessage.cpp
parentde482d6cb7a57c804e771d14dcb1c592b5f07402 (diff)
downloadabaddon-portaudio-af82a8df8e469739765918b1627de20948186eb4.tar.gz
abaddon-portaudio-af82a8df8e469739765918b1627de20948186eb4.zip
better member list, role color, some fixes
Diffstat (limited to 'components/chatmessage.cpp')
-rw-r--r--components/chatmessage.cpp22
1 files changed, 22 insertions, 0 deletions
diff --git a/components/chatmessage.cpp b/components/chatmessage.cpp
index bb61e81..d2b0dde 100644
--- a/components/chatmessage.cpp
+++ b/components/chatmessage.cpp
@@ -6,6 +6,7 @@
ChatMessageContainer::ChatMessageContainer(const MessageData *data) {
UserID = data->Author.ID;
+ ChannelID = data->ChannelID;
m_main_box = Gtk::manage(new Gtk::Box(Gtk::ORIENTATION_HORIZONTAL));
m_content_box = Gtk::manage(new Gtk::Box(Gtk::ORIENTATION_VERTICAL));
@@ -49,6 +50,27 @@ ChatMessageContainer::ChatMessageContainer(const MessageData *data) {
show();
}
+void ChatMessageContainer::SetAbaddon(Abaddon *ptr) {
+ m_abaddon = ptr;
+}
+
+void ChatMessageContainer::Update() {
+ if (m_abaddon == nullptr) return;
+ auto &discord = m_abaddon->GetDiscordClient();
+ auto guild_id = discord.GetChannel(ChannelID)->GuildID;
+ auto role_id = discord.GetMemberHoistedRole(guild_id, UserID, true);
+ auto *user = discord.GetUser(UserID);
+ std::string md;
+ if (role_id.IsValid()) {
+ auto *role = discord.GetRole(role_id);
+ if (role != nullptr)
+ md = "<span weight='bold' color='#" + IntToCSSColor(role->Color) + "'>" + Glib::Markup::escape_text(user->Username) + "</span>";
+ } else {
+ md = "<span weight='bold'>" + Glib::Markup::escape_text(user->Username) + "</span>";
+ }
+ m_author->set_markup(md);
+}
+
void ChatMessageContainer::AddNewContent(Gtk::Widget *widget, bool prepend) {
if (prepend)
m_content_box->pack_end(*widget);