diff options
| author | Felix Morgner <felix.morgner@gmail.com> | 2025-05-24 11:58:39 +0200 |
|---|---|---|
| committer | Felix Morgner <felix.morgner@gmail.com> | 2025-05-24 11:58:39 +0200 |
| commit | 72ab1fb4c1bf363f46470816d8b914a78ac493c4 (patch) | |
| tree | 27349a1bacbab4ea698be35d2d3d9b5184b15ca1 /gui/include/participant_row.hpp | |
| parent | b7f2ff4d991ae068f7834bf8e565f6261bf7fff1 (diff) | |
| download | turns-72ab1fb4c1bf363f46470816d8b914a78ac493c4.tar.xz turns-72ab1fb4c1bf363f46470816d8b914a78ac493c4.zip | |
gui: restructure file layout and apply licenses
Diffstat (limited to 'gui/include/participant_row.hpp')
| -rw-r--r-- | gui/include/participant_row.hpp | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/gui/include/participant_row.hpp b/gui/include/participant_row.hpp new file mode 100644 index 0000000..81b3610 --- /dev/null +++ b/gui/include/participant_row.hpp @@ -0,0 +1,55 @@ +/* + * SPDX-FileCopyrightText: 2025 Felix Morgner <felix.morgner@gmail.com> + * SPDX-License-Identifier: LGPL-2.1-only + */ + +#ifndef TURNS_UI_PARTICIPANT_ROW_HPP +#define TURNS_UI_PARTICIPANT_ROW_HPP + +#include "turns/core/fwd.hpp" +#include "turns/ui/template_widget.hpp" + +#include <glibmm/property.h> +#include <glibmm/propertyproxy.h> +#include <glibmm/refptr.h> + +#include <gtkmm/button.h> +#include <gtkmm/label.h> +#include <gtkmm/listboxrow.h> +#include <gtkmm/togglebutton.h> + +#include <array> + +namespace turns::ui +{ + struct ParticipantRow : template_widget<ParticipantRow, Gtk::ListBoxRow> + { + auto constexpr inline static children = std::array{ + "delete", + "edit", + "subtitle", + "title", + "toggle_defeated", + }; + + ParticipantRow(Glib::RefPtr<core::Participant> participant); + + auto delete_enabled() -> Glib::PropertyProxy<bool>; + auto edit_enabled() -> Glib::PropertyProxy<bool>; + + private: + auto handle_delete() -> void; + auto handle_edit() -> void; + + Gtk::Button * m_delete; + Gtk::Button * m_edit; + Gtk::Label * m_subtitle; + Gtk::Label * m_title; + Gtk::ToggleButton * m_toggle_defeated; + + Glib::Property<bool> m_delete_enabled; + Glib::Property<bool> m_edit_enabled; + }; +} // namespace turns::ui::widgets + +#endif
\ No newline at end of file |
