From a119220961d3df6d8f5f96d3a646adedb5d99554 Mon Sep 17 00:00:00 2001 From: dec05eba Date: Sun, 29 Dec 2024 20:37:11 +0100 Subject: Add buttons to exit program and to go back to old ui for flatpak --- include/Overlay.hpp | 5 +++++ include/gui/GlobalSettingsPage.hpp | 6 ++++++ src/Overlay.cpp | 20 +++++++++++++++++++- src/gui/GlobalSettingsPage.cpp | 29 +++++++++++++++++++++++++++++ src/main.cpp | 10 +++++++++- 5 files changed, 68 insertions(+), 2 deletions(-) diff --git a/include/Overlay.hpp b/include/Overlay.hpp index 283f2b1..50a38cd 100644 --- a/include/Overlay.hpp +++ b/include/Overlay.hpp @@ -56,6 +56,8 @@ namespace gsr { void save_replay(); void show_notification(const char *str, double timeout_seconds, mgl::Color icon_color, mgl::Color bg_color, NotificationType notification_type); bool is_open() const; + bool should_exit(std::string &reason) const; + void exit(); private: void xi_setup(); void handle_xi_events(); @@ -161,5 +163,8 @@ namespace gsr { std::array key_bindings; bool drawn_first_frame = false; + + bool do_exit = false; + std::string exit_reason; }; } \ No newline at end of file diff --git a/include/gui/GlobalSettingsPage.hpp b/include/gui/GlobalSettingsPage.hpp index 35b6003..c55648b 100644 --- a/include/gui/GlobalSettingsPage.hpp +++ b/include/gui/GlobalSettingsPage.hpp @@ -12,6 +12,7 @@ namespace gsr { class ScrollablePage; class Subsection; class RadioButton; + class Button; class GlobalSettingsPage : public StaticPage { public: @@ -25,9 +26,14 @@ namespace gsr { // Called with (enable, exit_status) std::function on_startup_changed; + // Called with (reason) + std::function on_click_exit_program_button; private: std::unique_ptr create_appearance_subsection(ScrollablePage *parent_page); std::unique_ptr create_startup_subsection(ScrollablePage *parent_page); + std::unique_ptr