summaryrefslogtreecommitdiff
path: root/components/chatmessage.cpp
diff options
context:
space:
mode:
authorouwou <26526779+ouwou@users.noreply.github.com>2020-08-29 22:45:27 -0400
committerouwou <26526779+ouwou@users.noreply.github.com>2020-08-29 22:45:27 -0400
commit08e9d2f0efa0f90b27b1aefe4d319296964dcfdb (patch)
tree2f32a432854470225cda5827eb683c8f5de348f1 /components/chatmessage.cpp
parenta921ee42f9b5e6c658fe7fd29e14ab4814dc286b (diff)
downloadabaddon-portaudio-08e9d2f0efa0f90b27b1aefe4d319296964dcfdb.tar.gz
abaddon-portaudio-08e9d2f0efa0f90b27b1aefe4d319296964dcfdb.zip
rework chat components to make more sense
Diffstat (limited to 'components/chatmessage.cpp')
-rw-r--r--components/chatmessage.cpp45
1 files changed, 22 insertions, 23 deletions
diff --git a/components/chatmessage.cpp b/components/chatmessage.cpp
index 048d725..29b2ac6 100644
--- a/components/chatmessage.cpp
+++ b/components/chatmessage.cpp
@@ -1,20 +1,13 @@
#include "chatmessage.hpp"
-ChatMessageTextItem::ChatMessageTextItem(const MessageData *data) {
+ChatMessageContainer::ChatMessageContainer(const MessageData *data) {
+ UserID = data->Author.ID;
+
m_main_box = Gtk::manage(new Gtk::Box(Gtk::ORIENTATION_HORIZONTAL));
- m_sub_box = Gtk::manage(new Gtk::Box(Gtk::ORIENTATION_VERTICAL));
+ m_content_box = Gtk::manage(new Gtk::Box(Gtk::ORIENTATION_VERTICAL));
m_meta_box = Gtk::manage(new Gtk::Box(Gtk::ORIENTATION_HORIZONTAL));
m_author = Gtk::manage(new Gtk::Label);
m_timestamp = Gtk::manage(new Gtk::Label);
- m_text = Gtk::manage(new Gtk::TextView);
-
- m_text->set_can_focus(false);
- m_text->set_editable(false);
- m_text->set_wrap_mode(Gtk::WRAP_WORD_CHAR);
- m_text->set_halign(Gtk::ALIGN_FILL);
- m_text->set_hexpand(true);
- m_text->get_buffer()->set_text(data->Content);
- m_text->show();
m_author->set_markup("<span weight=\"bold\">" + Glib::Markup::escape_text(data->Author.Username) + "</span>");
m_author->set_single_line_mode(true);
@@ -39,32 +32,38 @@ ChatMessageTextItem::ChatMessageTextItem(const MessageData *data) {
m_meta_box->set_can_focus(false);
m_meta_box->show();
- m_sub_box->set_can_focus(false);
- m_sub_box->show();
+ m_content_box->set_can_focus(false);
+ m_content_box->show();
m_meta_box->add(*m_author);
m_meta_box->add(*m_timestamp);
- m_sub_box->add(*m_meta_box);
- m_sub_box->add(*m_text);
- m_main_box->add(*m_sub_box);
+ m_content_box->add(*m_meta_box);
+ m_main_box->add(*m_content_box);
add(*m_main_box);
set_margin_bottom(8);
show();
}
-void ChatMessageTextItem::AppendNewContent(std::string content) {
- auto buf = m_text->get_buffer();
- buf->set_text(buf->get_text() + "\n" + content);
+void ChatMessageContainer::AddNewContent(Gtk::Widget *widget, bool prepend) {
+ if (prepend)
+ m_content_box->pack_end(*widget);
+ else
+ m_content_box->pack_start(*widget);
}
-void ChatMessageTextItem::PrependNewContent(std::string content) {
- auto buf = m_text->get_buffer();
- buf->set_text(content + "\n" + buf->get_text());
+ChatMessageTextItem::ChatMessageTextItem(const MessageData *data) {
+ set_can_focus(false);
+ set_editable(false);
+ set_wrap_mode(Gtk::WRAP_WORD_CHAR);
+ set_halign(Gtk::ALIGN_FILL);
+ set_hexpand(true);
+ get_buffer()->set_text(data->Content);
+ show();
}
void ChatMessageTextItem::MarkAsDeleted() {
- auto buf = m_text->get_buffer();
+ auto buf = get_buffer();
Gtk::TextBuffer::iterator start, end;
buf->get_bounds(start, end);
buf->insert_markup(end, "<span color='#ff0000'> [deleted]</span>");