#include "turns/ui/widgets/preferences.hpp" #include "turns/adw/actionrow.hpp" #include "turns/ui/widgets/template_widget.hpp" #include #include #include #include #include #include namespace turns::ui::widgets { namespace { auto constexpr static TYPE_NAME = "preferences"; auto constexpr static TEMPLATE = "/widgets/preferences.ui"; } // namespace preferences::preferences(Glib::RefPtr settings) : Glib::ObjectBase{TYPE_NAME} , template_widget{TEMPLATE} , m_settings{settings} , m_friendly{get_widget("friendly")} , m_hostile{get_widget("hostile")} , m_secret{get_widget("secret")} { if (!m_settings) { return; } m_friendly->add_suffix(m_friendly_button); m_friendly->set_activatable_widget(m_friendly_button); m_friendly_button.set_dialog(Gtk::ColorDialog::create()); m_friendly_button.set_valign(Gtk::Align::CENTER); m_settings->bind("disposition-color-friendly", m_friendly_button.property_rgba(), Gio::Settings::BindFlags::DEFAULT, [](auto value) { return Gdk::RGBA{value}; }, [](auto color) { return color.to_string(); }); m_hostile->add_suffix(m_hostile_button); m_hostile->set_activatable_widget(m_hostile_button); m_hostile_button.set_dialog(Gtk::ColorDialog::create()); m_hostile_button.set_valign(Gtk::Align::CENTER); m_settings->bind("disposition-color-hostile", m_hostile_button.property_rgba(), Gio::Settings::BindFlags::DEFAULT, [](auto value) { return Gdk::RGBA{value}; }, [](auto color) { return color.to_string(); }); m_secret->add_suffix(m_secret_button); m_secret->set_activatable_widget(m_secret_button); m_secret_button.set_dialog(Gtk::ColorDialog::create()); m_secret_button.set_valign(Gtk::Align::CENTER); m_settings->bind("disposition-color-secret", m_secret_button.property_rgba(), Gio::Settings::BindFlags::DEFAULT, [](auto value) { return Gdk::RGBA{value}; }, [](auto color) { return color.to_string(); }); } } // namespace turns::ui::widgets