/** * @author Felix Morgner (felix.morgner@gmail.com) * @copyright Copyright (c) 2025 * SPDX-License-Identifier: LGPL-2.1-or-later */ #ifndef LIBADWAITAMM_ABOUT_DIALOG_HPP #define LIBADWAITAMM_ABOUT_DIALOG_HPP #include "adwaitamm/dialog.hpp" #include "adwaitamm/helpers/gobj_mixin.hpp" #include #include #include #include #include #include #include #include #include #define _ADWAITA_INSIDE #include #undef _ADWAITA_INSIDE namespace Adwaita { enum struct ResponseAppearance; struct AboutDialog final : Dialog, helpers::gobj_mixin { using BaseObjectType = AdwAboutDialog; using BaseClassType = AdwAboutDialogClass; using CppObjectType = AboutDialog; using CppClassType = struct AboutDialog_Class; using helpers::gobj_mixin::gobj; using helpers::gobj_mixin::gobj_copy; #pragma mark - Special Member Functions AboutDialog(); AboutDialog(std::string resource_path, std::string release_notes_version); AboutDialog(AboutDialog const & other) = delete; AboutDialog(AboutDialog && other) noexcept = default; auto operator=(AboutDialog const & other) noexcept -> AboutDialog & = delete; auto operator=(AboutDialog && other) noexcept -> AboutDialog & = default; #pragma mark - GObject Support auto static get_type() -> GType; auto static get_base_type() -> GType; #pragma mark - Functions auto add_acknowledgement_section(Glib::ustring const & name, std::vector const & people) -> void; auto add_credit_section(Glib::ustring const & name, std::vector const & people) -> void; auto add_legal_section(Glib::ustring const & title, Glib::ustring const & copyright, Gtk::License license_type, Glib::ustring const & license) -> void; auto add_link(Glib::ustring const & title, Glib::ustring const & url) -> void; auto add_other_app(Glib::ustring const & id, Glib::ustring const & name, Glib::ustring const & summary) -> void; #pragma mark - Getters [[nodiscard]] auto get_application_icon() const -> Glib::ustring; [[nodiscard]] auto get_application_name() const -> Glib::ustring; [[nodiscard]] auto get_artists() const -> std::vector; [[nodiscard]] auto get_comments() const -> Glib::ustring; [[nodiscard]] auto get_copyright() const -> Glib::ustring; [[nodiscard]] auto get_debug_info() const -> Glib::ustring; [[nodiscard]] auto get_debug_info_filename() const -> Glib::ustring; [[nodiscard]] auto get_designers() const -> std::vector; [[nodiscard]] auto get_developer_name() const -> Glib::ustring; [[nodiscard]] auto get_developers() const -> std::vector; [[nodiscard]] auto get_documenters() const -> std::vector; [[nodiscard]] auto get_issue_url() const -> Glib::ustring; [[nodiscard]] auto get_license() const -> Glib::ustring; [[nodiscard]] auto get_license_type() const -> Gtk::License; [[nodiscard]] auto get_release_notes() const -> Glib::ustring; [[nodiscard]] auto get_release_notes_version() const -> Glib::ustring; [[nodiscard]] auto get_support_url() const -> Glib::ustring; [[nodiscard]] auto get_translator_credits() const -> Glib::ustring; [[nodiscard]] auto get_version() const -> Glib::ustring; [[nodiscard]] auto get_website() const -> Glib::ustring; #pragma mark - Setters auto set_application_icon(Glib::ustring const & value) -> void; auto set_application_name(Glib::ustring const & value) -> void; auto set_artists(std::vector const & value) -> void; auto set_comments(Glib::ustring const & value) -> void; auto set_copyright(Glib::ustring const & value) -> void; auto set_debug_info(Glib::ustring const & value) -> void; auto set_debug_info_filename(Glib::ustring const & value) -> void; auto set_designers(std::vector const & value) -> void; auto set_developer_name(Glib::ustring const & value) -> void; auto set_developers(std::vector const & value) -> void; auto set_documenters(std::vector const & value) -> void; auto set_issue_url(Glib::ustring const & value) -> void; auto set_license(Glib::ustring const & value) -> void; auto set_license_type(Gtk::License const & value) -> void; auto set_release_notes(Glib::ustring const & value) -> void; auto set_release_notes_version(Glib::ustring const & value) -> void; auto set_support_url(Glib::ustring const & value) -> void; auto set_translator_credits(Glib::ustring const & value) -> void; auto set_version(Glib::ustring const & value) -> void; auto set_website(Glib::ustring const & value) -> void; #pragma mark - Properties auto property_application_icon() -> Glib::PropertyProxy; auto property_application_icon() const -> Glib::PropertyProxy_ReadOnly; auto property_application_name() -> Glib::PropertyProxy; auto property_application_name() const -> Glib::PropertyProxy_ReadOnly; auto property_artists() -> Glib::PropertyProxy>; auto property_artists() const -> Glib::PropertyProxy_ReadOnly>; auto property_comments() -> Glib::PropertyProxy; auto property_comments() const -> Glib::PropertyProxy_ReadOnly; auto property_copyright() -> Glib::PropertyProxy; auto property_copyright() const -> Glib::PropertyProxy_ReadOnly; auto property_debug_info() -> Glib::PropertyProxy; auto property_debug_info() const -> Glib::PropertyProxy_ReadOnly; auto property_debug_info_filename() -> Glib::PropertyProxy; auto property_debug_info_filename() const -> Glib::PropertyProxy_ReadOnly; auto property_designers() -> Glib::PropertyProxy>; auto property_designers() const -> Glib::PropertyProxy_ReadOnly>; auto property_developer_name() -> Glib::PropertyProxy; auto property_developer_name() const -> Glib::PropertyProxy_ReadOnly; auto property_developers() -> Glib::PropertyProxy>; auto property_developers() const -> Glib::PropertyProxy_ReadOnly>; auto property_documenters() -> Glib::PropertyProxy>; auto property_documenters() const -> Glib::PropertyProxy_ReadOnly>; auto property_issue_url() -> Glib::PropertyProxy; auto property_issue_url() const -> Glib::PropertyProxy_ReadOnly; auto property_license_type() -> Glib::PropertyProxy; auto property_license_type() const -> Glib::PropertyProxy_ReadOnly; auto property_license() -> Glib::PropertyProxy; auto property_license() const -> Glib::PropertyProxy_ReadOnly; auto property_release_notes() -> Glib::PropertyProxy; auto property_release_notes() const -> Glib::PropertyProxy_ReadOnly; auto property_release_notes_version() -> Glib::PropertyProxy; auto property_release_notes_version() const -> Glib::PropertyProxy_ReadOnly; auto property_support_url() -> Glib::PropertyProxy; auto property_support_url() const -> Glib::PropertyProxy_ReadOnly; auto property_translator_credits() -> Glib::PropertyProxy; auto property_translator_credits() const -> Glib::PropertyProxy_ReadOnly; auto property_version() -> Glib::PropertyProxy; auto property_version() const -> Glib::PropertyProxy_ReadOnly; auto property_website() -> Glib::PropertyProxy; auto property_website() const -> Glib::PropertyProxy_ReadOnly; #pragma mark - Signals auto signal_activate_link() -> Glib::SignalProxy; protected: friend AboutDialog_Class; #pragma mark - Internal Constructors explicit AboutDialog(Glib::ConstructParams const & params); explicit AboutDialog(BaseObjectType * gobj); }; } // namespace Adwaita namespace Glib { auto wrap(AdwAboutDialog * object, bool copy = false) -> Adwaita::AboutDialog *; } // namespace Glib #endif