#ifndef TURNS_ADW_APPLICATION_HPP #define TURNS_ADW_APPLICATION_HPP #include #include #include #include using AdwApplication = struct _AdwApplication; namespace turns::adw { struct Application_Class; struct Application : Gtk::Application { Application(Application && other) noexcept = default; auto operator=(Application && other) noexcept -> Application & = default; Application(Application const & other) = delete; auto operator=(Application const & other) noexcept -> Application & = delete; auto static get_type() -> GType; auto static get_base_type() -> GType; template auto gobj(this Self && self) noexcept { return reinterpret_cast(self.gobject_); } auto gobj_copy() -> AdwApplication *; auto static create(Glib::ustring const & id = {}, Gio::Application::Flags flags = Gio::Application::Flags::NONE) -> Glib::RefPtr; protected: explicit Application(Glib::ConstructParams const & params); explicit Application(AdwApplication * gobj); explicit Application(Glib::ustring const & id = {}, Gio::Application::Flags flags = Gio::Application::Flags::NONE); private: friend Application_Class; static Application_Class s_class; }; } // namespace turns::adw namespace Glib { auto wrap(AdwApplication * object, bool copy = false) -> Glib::RefPtr; } // namespace Glib #endif