/** * @author Felix Morgner (felix.morgner@gmail.com) * @copyright Copyright (c) 2025 * SPDX-License-Identifier: LGPL-2.1-or-later */ #ifndef LIBADWAITAMM_APPLICATION_HPP #define LIBADWAITAMM_APPLICATION_HPP #include "adwaitamm/helpers/gobj_mixin.hpp" #include #include #include #include #include #include #define _ADWAITA_INSIDE #include #undef _ADWAITA_INSIDE namespace Adwaita { struct Application : Gtk::Application, helpers::gobj_mixin { using BaseObjectType = AdwApplication; using BaseClassType = AdwApplicationClass; using CppObjectType = Application; using CppClassType = struct Application_Class; using helpers::gobj_mixin::gobj; using helpers::gobj_mixin::gobj_copy; Application(Application const & other) = delete; Application(Application && other) noexcept = default; auto operator=(Application const & other) noexcept -> Application & = delete; auto operator=(Application && other) noexcept -> Application & = default; auto static create(Glib::ustring const & id = {}, Gio::Application::Flags flags = Gio::Application::Flags::NONE) -> Glib::RefPtr; auto static get_type() -> GType; auto static get_base_type() -> GType; protected: friend Application_Class; explicit Application(Glib::ConstructParams const & params); explicit Application(BaseObjectType * gobj); explicit Application(Glib::ustring const & id = {}, Gio::Application::Flags flags = Gio::Application::Flags::NONE); private: Glib::Class const & custom_class_init(); }; } // namespace Adwaita namespace Glib { auto wrap(AdwApplication * object, bool copy = false) -> Glib::RefPtr; } // namespace Glib #endif