/** * @author Felix Morgner (felix.morgner@gmail.com) * @copyright Copyright (c) 2025 * SPDX-License-Identifier: LGPL-2.1-or-later */ #include "adwaitamm/windowtitle.hpp" #include "adwaitamm/private/windowtitle_p.hpp" #include #include #include #include #include #include #include #include namespace Adwaita { namespace { auto constinit _class = WindowTitle_Class{}; namespace property_name { auto constexpr subtitle = "subtitle"; auto constexpr title = "title"; } // namespace property_name } // namespace WindowTitle::WindowTitle(Glib::ustring const & title, Glib::ustring const & subtitle) : Glib::ObjectBase{nullptr} , Gtk::Widget{Glib::ConstructParams{_class.init(), "title", title.c_str(), "subtitle", subtitle.c_str(), nullptr}} { } auto WindowTitle::get_type() -> GType { return _class.init().get_type(); } auto WindowTitle::get_base_type() -> GType { return adw_window_title_get_type(); } auto WindowTitle::get_subtitle() const -> Glib::ustring { return adw_window_title_get_subtitle(const_cast(unwrap(this))); } auto WindowTitle::get_title() const -> Glib::ustring { return adw_window_title_get_title(const_cast(unwrap(this))); } auto WindowTitle::set_subtitle(Glib::ustring const & value) -> void { return adw_window_title_set_subtitle(unwrap(this), value.c_str()); } auto WindowTitle::set_title(Glib::ustring const & value) -> void { return adw_window_title_set_title(unwrap(this), value.c_str()); } auto WindowTitle::property_subtitle() -> Glib::PropertyProxy { return {this, property_name::subtitle}; } auto WindowTitle::property_subtitle() const -> Glib::PropertyProxy_ReadOnly { return {this, property_name::subtitle}; } auto WindowTitle::property_title() -> Glib::PropertyProxy { return {this, property_name::title}; } auto WindowTitle::property_title() const -> Glib::PropertyProxy_ReadOnly { return {this, property_name::title}; } WindowTitle::WindowTitle(Glib::ConstructParams const & params) : Gtk::Widget{params} { } WindowTitle::WindowTitle(BaseObjectType * gobj) : Gtk::Widget(GTK_WIDGET(gobj)) { } } // namespace Adwaita namespace Glib { auto wrap(AdwWindowTitle * object, bool copy) -> Adwaita::WindowTitle * { return dynamic_cast(Glib::wrap_auto(G_OBJECT(object), copy)); } } // namespace Glib