diff options
author | ouwou <26526779+ouwou@users.noreply.github.com> | 2021-07-05 17:35:53 -0400 |
---|---|---|
committer | ouwou <26526779+ouwou@users.noreply.github.com> | 2021-07-05 17:35:53 -0400 |
commit | 9ec52e3473f4e90ba940324a5d058afefc0bd8f1 (patch) | |
tree | c03cd181600b50e8e0ecebff727128cbff0fb52c | |
parent | 3565ec885ef631fbfe86c5b2da287ecce0ddf23b (diff) | |
download | abaddon-portaudio-9ec52e3473f4e90ba940324a5d058afefc0bd8f1.tar.gz abaddon-portaudio-9ec52e3473f4e90ba940324a5d058afefc0bd8f1.zip |
make ChannelList directly subclass a container
-rw-r--r-- | components/channels.cpp | 12 | ||||
-rw-r--r-- | components/channels.hpp | 4 | ||||
-rw-r--r-- | windows/mainwindow.cpp | 13 |
3 files changed, 11 insertions, 18 deletions
diff --git a/components/channels.cpp b/components/channels.cpp index bde5639..520c8fd 100644 --- a/components/channels.cpp +++ b/components/channels.cpp @@ -8,8 +8,9 @@ #include "statusindicator.hpp" ChannelList::ChannelList() - : m_model(Gtk::TreeStore::create(m_columns)) - , m_main(Gtk::manage(new Gtk::ScrolledWindow)) { + : Glib::ObjectBase(typeid(ChannelList)) + , Gtk::ScrolledWindow() + , m_model(Gtk::TreeStore::create(m_columns)) { const auto cb = [this](const Gtk::TreeModel::Path &path, Gtk::TreeViewColumn *column) { auto row = *m_model->get_iter(path); if (row[m_columns.m_expanded]) { @@ -38,8 +39,7 @@ ChannelList::ChannelList() m_view.show(); - m_main->add(m_view); - m_main->show_all(); + add(m_view); auto *column = Gtk::manage(new Gtk::TreeView::Column("display")); auto *renderer = Gtk::manage(new CellRendererChannels); @@ -51,10 +51,6 @@ ChannelList::ChannelList() m_view.append_column(*column); } -Gtk::Widget *ChannelList::GetRoot() const { - return m_main; -} - void ChannelList::UpdateListing() { m_model->clear(); diff --git a/components/channels.hpp b/components/channels.hpp index 4854c98..0bc0b04 100644 --- a/components/channels.hpp +++ b/components/channels.hpp @@ -81,10 +81,9 @@ private: Glib::Property<bool> m_property_expanded; // category }; -class ChannelList { +class ChannelList : public Gtk::ScrolledWindow { public: ChannelList(); - Gtk::Widget *GetRoot() const; void UpdateListing(); void UpdateNewGuild(Snowflake id); void UpdateRemoveGuild(Snowflake id); @@ -97,7 +96,6 @@ public: void SetActiveChannel(Snowflake id); protected: - Gtk::ScrolledWindow *m_main; Gtk::TreeView m_view; class ModelColumns : public Gtk::TreeModel::ColumnRecord { diff --git a/windows/mainwindow.cpp b/windows/mainwindow.cpp index 35846b7..77bd6d3 100644 --- a/windows/mainwindow.cpp +++ b/windows/mainwindow.cpp @@ -100,7 +100,6 @@ MainWindow::MainWindow() m_main_box.add(m_content_box); m_main_box.show(); - auto *channel_list = m_channel_list.GetRoot(); auto *member_list = m_members.GetRoot(); auto *chat = m_chat.GetRoot(); @@ -108,9 +107,9 @@ MainWindow::MainWindow() chat->set_hexpand(true); chat->show(); - channel_list->set_vexpand(true); - channel_list->set_size_request(-1, -1); - channel_list->show(); + m_channel_list.set_vexpand(true); + m_channel_list.set_size_request(-1, -1); + m_channel_list.show(); member_list->set_vexpand(true); member_list->show(); @@ -126,10 +125,10 @@ MainWindow::MainWindow() m_content_stack.set_visible_child("chat"); m_content_stack.show(); - m_chan_content_paned.pack1(*channel_list); + m_chan_content_paned.pack1(m_channel_list); m_chan_content_paned.pack2(m_content_members_paned); - m_chan_content_paned.child_property_shrink(*channel_list) = false; - m_chan_content_paned.child_property_resize(*channel_list) = false; + m_chan_content_paned.child_property_shrink(m_channel_list) = false; + m_chan_content_paned.child_property_resize(m_channel_list) = false; m_chan_content_paned.set_position(200); m_chan_content_paned.show(); m_content_box.add(m_chan_content_paned); |