From 08e9d2f0efa0f90b27b1aefe4d319296964dcfdb Mon Sep 17 00:00:00 2001 From: ouwou <26526779+ouwou@users.noreply.github.com> Date: Sat, 29 Aug 2020 22:45:27 -0400 Subject: rework chat components to make more sense --- components/chatmessage.hpp | 32 ++++++++++++++++++++------------ 1 file changed, 20 insertions(+), 12 deletions(-) (limited to 'components/chatmessage.hpp') diff --git a/components/chatmessage.hpp b/components/chatmessage.hpp index 8007f68..181ffcd 100644 --- a/components/chatmessage.hpp +++ b/components/chatmessage.hpp @@ -7,7 +7,23 @@ enum class ChatDisplayType { Text, }; -class ChatMessageItem : public Gtk::ListBoxRow { +// contains the username and timestamp, chat items get stuck into its box +class ChatMessageContainer : public Gtk::ListBoxRow { +public: + Snowflake UserID; + + ChatMessageContainer(const MessageData *data); + void AddNewContent(Gtk::Widget *widget, bool prepend = false); + +protected: + Gtk::Box *m_main_box; + Gtk::Box *m_content_box; + Gtk::Box *m_meta_box; + Gtk::Label *m_author; + Gtk::Label *m_timestamp; +}; + +class ChatMessageItem { public: Snowflake ID; ChatDisplayType MessageType; @@ -15,18 +31,10 @@ public: virtual void MarkAsDeleted() = 0; }; -class ChatMessageTextItem : public ChatMessageItem { +class ChatMessageTextItem + : public Gtk::TextView // oh well + , public ChatMessageItem { public: ChatMessageTextItem(const MessageData *data); - void AppendNewContent(std::string content); - void PrependNewContent(std::string content); virtual void MarkAsDeleted(); - -protected: - Gtk::Box *m_main_box; - Gtk::Box *m_sub_box; - Gtk::Box *m_meta_box; - Gtk::Label *m_author; - Gtk::Label *m_timestamp; - Gtk::TextView *m_text; }; -- cgit v1.2.3