From 0018788780d756dbf0d3a77f6b40b384183348f7 Mon Sep 17 00:00:00 2001 From: dec05eba Date: Mon, 14 Apr 2025 11:38:52 +0200 Subject: Redesign audio to support multiple audio tracks explicitly --- include/gui/List.hpp | 5 +++-- include/gui/Page.hpp | 4 +--- include/gui/ScrollablePage.hpp | 1 + include/gui/SettingsPage.hpp | 35 ++++++++++++++++++----------------- include/gui/Subsection.hpp | 5 +++++ include/gui/Widget.hpp | 6 ++++-- 6 files changed, 32 insertions(+), 24 deletions(-) (limited to 'include/gui') diff --git a/include/gui/List.hpp b/include/gui/List.hpp index 72c5353..f79d165 100644 --- a/include/gui/List.hpp +++ b/include/gui/List.hpp @@ -21,19 +21,20 @@ namespace gsr { List(Orientation orientation, Alignment content_alignment = Alignment::START); List(const List&) = delete; List& operator=(const List&) = delete; + virtual ~List() override; bool on_event(mgl::Event &event, mgl::Window &window, mgl::vec2f offset) override; void draw(mgl::Window &window, mgl::vec2f offset) override; - //void remove_child_widget(Widget *widget) override; - void add_widget(std::unique_ptr widget); void remove_widget(Widget *widget); + void replace_widget(Widget *widget, std::unique_ptr new_widget); void clear(); // Return true from |callback| to continue void for_each_child_widget(std::function &widget)> callback); // Returns nullptr if index is invalid Widget* get_child_widget_by_index(size_t index) const; + size_t get_num_children() const; void set_spacing(float spacing); diff --git a/include/gui/Page.hpp b/include/gui/Page.hpp index 0d8536a..00a53c6 100644 --- a/include/gui/Page.hpp +++ b/include/gui/Page.hpp @@ -10,13 +10,11 @@ namespace gsr { Page() = default; Page(const Page&) = delete; Page& operator=(const Page&) = delete; - virtual ~Page() = default; + virtual ~Page() override; virtual void on_navigate_to_page() {} virtual void on_navigate_away_from_page() {} - //void remove_child_widget(Widget *widget) override; - virtual void add_widget(std::unique_ptr widget); protected: SafeVector> widgets; diff --git a/include/gui/ScrollablePage.hpp b/include/gui/ScrollablePage.hpp index 452d0e9..54ec2cb 100644 --- a/include/gui/ScrollablePage.hpp +++ b/include/gui/ScrollablePage.hpp @@ -12,6 +12,7 @@ namespace gsr { ScrollablePage(mgl::vec2f size); ScrollablePage(const ScrollablePage&) = delete; ScrollablePage& operator=(const ScrollablePage&) = delete; + virtual ~ScrollablePage() override; bool on_event(mgl::Event &event, mgl::Window &window, mgl::vec2f offset) override; void draw(mgl::Window &window, mgl::vec2f offset) override; diff --git a/include/gui/SettingsPage.hpp b/include/gui/SettingsPage.hpp index b9f5cde..fb705cc 100644 --- a/include/gui/SettingsPage.hpp +++ b/include/gui/SettingsPage.hpp @@ -18,6 +18,7 @@ namespace gsr { class ScrollablePage; class Label; class LineSeparator; + class Subsection; class SettingsPage : public StaticPage { public: @@ -54,19 +55,20 @@ namespace gsr { std::unique_ptr create_change_video_resolution_section(); std::unique_ptr create_capture_target_section(); std::unique_ptr create_audio_device_selection_combobox(); - std::unique_ptr