diff options
author | ouwou <26526779+ouwou@users.noreply.github.com> | 2021-01-15 06:37:35 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-01-15 06:37:35 +0000 |
commit | 462f801af20562f151cd7ad7fa70aa65695b3e22 (patch) | |
tree | ec5ab7509bc9478ac82715fe9e74381bbfc4a9df /windows/guildsettingswindow.cpp | |
parent | f51ab48009e7fcfafee1d09800764fcbd5d36bf5 (diff) | |
download | abaddon-portaudio-462f801af20562f151cd7ad7fa70aa65695b3e22.tar.gz abaddon-portaudio-462f801af20562f151cd7ad7fa70aa65695b3e22.zip |
Guild settings 1 (#19)
* start guild settings window, tweak style
Diffstat (limited to 'windows/guildsettingswindow.cpp')
-rw-r--r-- | windows/guildsettingswindow.cpp | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/windows/guildsettingswindow.cpp b/windows/guildsettingswindow.cpp new file mode 100644 index 0000000..618bcf5 --- /dev/null +++ b/windows/guildsettingswindow.cpp @@ -0,0 +1,45 @@ +#include "guildsettingswindow.hpp" +#include "../abaddon.hpp" + +GuildSettingsWindow::GuildSettingsWindow(Snowflake id) + : m_main(Gtk::ORIENTATION_VERTICAL) + , GuildID(id) + , m_pane_info(id) { + auto &discord = Abaddon::Get().GetDiscordClient(); + const auto guild = *discord.GetGuild(id); + + auto guild_update_cb = [this](Snowflake id) { + if (id != GuildID) return; + const auto guild = *Abaddon::Get().GetDiscordClient().GetGuild(id); + set_title(guild.Name); + if (guild.HasIcon()) + Abaddon::Get().GetImageManager().LoadFromURL(guild.GetIconURL(), sigc::mem_fun(*this, &GuildSettingsWindow::set_icon)); + }; + discord.signal_guild_update().connect(sigc::track_obj(guild_update_cb, *this)); + + set_name("guild-settings"); + set_default_size(800, 600); + set_title(guild.Name); + set_position(Gtk::WIN_POS_CENTER); + get_style_context()->add_class("app-window"); + + if (guild.HasIcon()) { + Abaddon::Get().GetImageManager().LoadFromURL(guild.GetIconURL(), sigc::mem_fun(*this, &GuildSettingsWindow::set_icon)); + } + + m_switcher.set_stack(m_stack); + m_switcher.set_halign(Gtk::ALIGN_CENTER); + m_switcher.set_hexpand(true); + m_switcher.set_margin_top(10); + m_switcher.show(); + + m_pane_info.show(); + + m_stack.add(m_pane_info, "info", "Info"); + m_stack.show(); + + m_main.add(m_switcher); + m_main.add(m_stack); + m_main.show(); + add(m_main); +} |