From a201d5905ad9188e890eeb0cc0aee8d4fb9dcf3c Mon Sep 17 00:00:00 2001 From: ouwou <26526779+ouwou@users.noreply.github.com> Date: Thu, 20 Aug 2020 03:19:16 -0400 Subject: rudimentary chat --- windows/mainwindow.cpp | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) (limited to 'windows/mainwindow.cpp') diff --git a/windows/mainwindow.cpp b/windows/mainwindow.cpp index cbb6e8a..645b354 100644 --- a/windows/mainwindow.cpp +++ b/windows/mainwindow.cpp @@ -3,7 +3,8 @@ MainWindow::MainWindow() : m_main_box(Gtk::ORIENTATION_VERTICAL) - , m_content_box(Gtk::ORIENTATION_HORIZONTAL) { + , m_content_box(Gtk::ORIENTATION_HORIZONTAL) + , m_chan_chat_paned(Gtk::ORIENTATION_HORIZONTAL) { set_default_size(800, 600); m_menu_discord.set_label("Discord"); @@ -20,7 +21,7 @@ MainWindow::MainWindow() m_menu_bar.append(m_menu_discord); m_menu_discord_connect.signal_activate().connect([&] { - m_abaddon->ActionConnect(); // this feels maybe not too smart + m_abaddon->ActionConnect(); }); m_menu_discord_disconnect.signal_activate().connect([&] { @@ -38,9 +39,17 @@ MainWindow::MainWindow() m_main_box.add(m_content_box); auto *channel_list = m_channel_list.GetRoot(); - channel_list->set_hexpand(true); channel_list->set_vexpand(true); - m_content_box.add(*channel_list); + channel_list->set_size_request(-1, -1); + m_chan_chat_paned.pack1(*channel_list); + auto *chat = m_chat.GetRoot(); + chat->set_vexpand(true); + chat->set_hexpand(true); + m_chan_chat_paned.pack2(*chat); + m_chan_chat_paned.set_position(200); + m_chan_chat_paned.child_property_shrink(*channel_list) = true; + m_chan_chat_paned.child_property_resize(*channel_list) = true; + m_content_box.add(m_chan_chat_paned); add(m_main_box); @@ -70,6 +79,15 @@ void MainWindow::UpdateChannelListing() { m_channel_list.SetListingFromGuilds(discord.GetGuilds()); } +void MainWindow::UpdateChatWindowContents() { + auto &discord = m_abaddon->GetDiscordClient(); + m_chat.SetMessages(discord.GetMessagesForChannel(m_chat.GetActiveChannel())); +} + +void MainWindow::UpdateChatActiveChannel(Snowflake id) { + m_chat.SetActiveChannel(id); +} + void MainWindow::SetAbaddon(Abaddon *ptr) { m_abaddon = ptr; m_channel_list.SetAbaddon(ptr); -- cgit v1.2.3