/** * @author Felix Morgner (felix.morgner@gmail.com) * @copyright Copyright (c) 2025 * SPDX-License-Identifier: LGPL-2.1-or-later */ #ifndef LIBADWAITAMM_ACTION_ROW_HPP #define LIBADWAITAMM_ACTION_ROW_HPP #include "adwaitamm/helpers/gobj_mixin.hpp" #include "adwaitamm/preferencesrow.hpp" #include #include #include #include #include #include #include #include #include #define _ADWAITA_INSIDE #include #undef _ADWAITA_INSIDE namespace Adwaita { struct ActionRow : PreferencesRow, helpers::gobj_mixin { using BaseObjectType = AdwActionRow; using BaseClassType = AdwActionRowClass; using CppObjectType = ActionRow; using CppClassType = struct ActionRow_Class; using helpers::gobj_mixin::gobj; using helpers::gobj_mixin::gobj_copy; explicit ActionRow(); ActionRow(ActionRow const & other) = delete; ActionRow(ActionRow && other) noexcept = default; auto operator=(ActionRow const & other) noexcept -> ActionRow & = delete; auto operator=(ActionRow && other) noexcept -> ActionRow & = default; auto static get_type() -> GType; auto static get_base_type() -> GType; #pragma mark - Functions auto activate() -> void; auto add_prefix(Gtk::Widget & widget) -> void; auto add_suffix(Gtk::Widget & widget) -> void; auto remove(Gtk::Widget & widget) -> void; #pragma mark - Getters auto get_activatable_widget() const noexcept -> Gtk::Widget *; [[deprecated("replaced by add_prefix")]] auto get_icon_name() const -> Glib::ustring; auto get_subtitle() const -> Glib::ustring; auto get_subtitle_lines() const noexcept -> int; auto get_subtitle_selectable() const noexcept -> bool; auto get_title_lines() const noexcept -> int; #pragma mark - Setters auto set_activatable_widget(Gtk::Widget & widget) noexcept -> void; [[deprecated("replaced by add_prefix")]] auto set_icon_name(Glib::ustring const & name) -> void; auto set_subtitle(Glib::ustring const & subtitle) -> void; auto set_subtitle_lines(int subtitle_lines) noexcept -> void; auto set_subtitle_selectable(bool subtitle_selectable) noexcept -> void; auto set_title_lines(int title_lines) noexcept -> void; #pragma mark - Properties auto property_activatable_widget() noexcept -> Glib::PropertyProxy; auto property_activatable_widget() const noexcept -> Glib::PropertyProxy_ReadOnly; [[deprecated("replaced by add_prefix")]] auto property_icon_name() noexcept -> Glib::PropertyProxy; [[deprecated("replaced by add_prefix")]] auto property_icon_name() const noexcept -> Glib::PropertyProxy_ReadOnly; auto property_subtitle() noexcept -> Glib::PropertyProxy; auto property_subtitle() const noexcept -> Glib::PropertyProxy_ReadOnly; auto property_subtitle_lines() noexcept -> Glib::PropertyProxy; auto property_subtitle_lines() const noexcept -> Glib::PropertyProxy_ReadOnly; auto property_subtitle_selectable() noexcept -> Glib::PropertyProxy; auto property_subtitle_selectable() const noexcept -> Glib::PropertyProxy_ReadOnly; auto property_title_lines() noexcept -> Glib::PropertyProxy; auto property_title_lines() const noexcept -> Glib::PropertyProxy_ReadOnly; #pragma mark - Signals auto signal_activated() -> Glib::SignalProxy; protected: friend struct ActionRow_Class; #pragma mark - GTK Virtual Functions auto virtual activate_vfunc() -> void; #pragma mark - Internal Constructors explicit ActionRow(Glib::ConstructParams const & params); explicit ActionRow(BaseObjectType * gobj); }; } // namespace Adwaita namespace Glib { auto wrap(AdwActionRow * object, bool copy = false) -> Adwaita::ActionRow *; } // namespace Glib #endif