diff options
author | dec05eba <dec05eba@protonmail.com> | 2024-12-29 20:37:11 +0100 |
---|---|---|
committer | dec05eba <dec05eba@protonmail.com> | 2024-12-29 20:37:11 +0100 |
commit | a119220961d3df6d8f5f96d3a646adedb5d99554 (patch) | |
tree | b075197c3d534e66ea9c74cc1c0bec3ce508f756 /include | |
parent | 9dd20e29165a44993ec64b7074b52d134f4dfcd9 (diff) |
Add buttons to exit program and to go back to old ui for flatpak
Diffstat (limited to 'include')
-rw-r--r-- | include/Overlay.hpp | 5 | ||||
-rw-r--r-- | include/gui/GlobalSettingsPage.hpp | 6 |
2 files changed, 11 insertions, 0 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<KeyBinding, 1> 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<void(bool, int)> on_startup_changed; + // Called with (reason) + std::function<void(const char*)> on_click_exit_program_button; private: std::unique_ptr<Subsection> create_appearance_subsection(ScrollablePage *parent_page); std::unique_ptr<Subsection> create_startup_subsection(ScrollablePage *parent_page); + std::unique_ptr<Button> create_exit_program_button(); + std::unique_ptr<Button> create_go_back_to_old_ui_button(); + std::unique_ptr<Subsection> create_application_options_subsection(ScrollablePage *parent_page); void add_widgets(); private: Config &config; |