aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authordec05eba <dec05eba@protonmail.com>2024-12-29 20:37:11 +0100
committerdec05eba <dec05eba@protonmail.com>2024-12-29 20:37:11 +0100
commita119220961d3df6d8f5f96d3a646adedb5d99554 (patch)
treeb075197c3d534e66ea9c74cc1c0bec3ce508f756 /include
parent9dd20e29165a44993ec64b7074b52d134f4dfcd9 (diff)
Add buttons to exit program and to go back to old ui for flatpak
Diffstat (limited to 'include')
-rw-r--r--include/Overlay.hpp5
-rw-r--r--include/gui/GlobalSettingsPage.hpp6
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;