/** * @author Felix Morgner (felix.morgner@gmail.com) * @copyright Copyright (c) 2025 * SPDX-License-Identifier: LGPL-2.1-or-later */ #ifndef LIBADWAITAMM_WINDOW_TITLE_HPP #define LIBADWAITAMM_WINDOW_TITLE_HPP #include "helpers/gobj_mixin.hpp" #include #include #include #include #include #define _ADWAITA_INSIDE #include #undef _ADWAITA_INSIDE namespace Adwaita { struct WindowTitle final : Gtk::Widget, helpers::gobj_mixin { using BaseObjectType = AdwWindowTitle; using BaseClassType = AdwWindowTitleClass; using CppObjectType = WindowTitle; using CppClassType = struct WindowTitle_Class; using helpers::gobj_mixin::gobj; using helpers::gobj_mixin::gobj_copy; #pragma mark - Special Member Functions WindowTitle(Glib::ustring const & title, Glib::ustring const & subtitle); WindowTitle(WindowTitle const & other) = delete; WindowTitle(WindowTitle && other) noexcept = default; auto operator=(WindowTitle const & other) noexcept -> WindowTitle & = delete; auto operator=(WindowTitle && other) noexcept -> WindowTitle & = default; #pragma mark - GObject Support auto static get_type() -> GType; auto static get_base_type() -> GType; #pragma mark - Getters [[nodiscard]] auto get_subtitle() const -> Glib::ustring; [[nodiscard]] auto get_title() const -> Glib::ustring; #pragma mark - Setters auto set_subtitle(Glib::ustring const & value) -> void; auto set_title(Glib::ustring const & value) -> void; #pragma mark - Properties [[nodiscard]] auto property_subtitle() -> Glib::PropertyProxy; [[nodiscard]] auto property_subtitle() const -> Glib::PropertyProxy_ReadOnly; [[nodiscard]] auto property_title() -> Glib::PropertyProxy; [[nodiscard]] auto property_title() const -> Glib::PropertyProxy_ReadOnly; protected: friend WindowTitle_Class; #pragma mark - Internal Constructors explicit WindowTitle(Glib::ConstructParams const & params); explicit WindowTitle(BaseObjectType * gobj); }; } // namespace Adwaita namespace Glib { auto wrap(AdwWindowTitle * object, bool copy = false) -> Adwaita::WindowTitle *; } // namespace Glib #endif