summaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
Diffstat (limited to 'apps')
-rw-r--r--apps/main_clock.cpp20
1 files changed, 18 insertions, 2 deletions
diff --git a/apps/main_clock.cpp b/apps/main_clock.cpp
index f034e04..ee97c3c 100644
--- a/apps/main_clock.cpp
+++ b/apps/main_clock.cpp
@@ -6,6 +6,9 @@
#include "../buttons.hpp"
namespace app_main_clock {
+ bool *ask_user_choice;
+ int *user_choice;
+ const char *choices[] = {"One", "Two", "Three!", "This is looong!", "make sure to choose me!:p"};
// Time as string
// Adapted from pico-sdk/scr/common/pico_util/datetime.c
void time_as_str(char *buf, uint buf_size, const datetime_t *t) {
@@ -54,18 +57,29 @@ namespace app_main_clock {
int render(Api *app_api) {
app_api->gui_header_text("Test clock", 17);
show_datetime(app_api);
+ if (*ask_user_choice) {
+ *user_choice = app_api->gui_popup_strchoice("Ohh!", "Make a good choice:", choices, 5, 0, -1, *user_choice);
+ *ask_user_choice = false;
+ }
+ app_api->gui_footer_text(choices[*user_choice],0,1);
return 0;
}
// Interpretation of button inputs
int btnpressed(Api *app_api, uint gpio) {
+ if (gpio == BUTTON_MODE)
+ *ask_user_choice = true;
return 0;
}
// Initlisation of the app.
int init(Api *app_api) {
app_api->performance_set(Api::perf_modes::LOW_POWER);
- return 1; // return 1 when function not implemented
+ ask_user_choice = new bool; *ask_user_choice = false;
+ user_choice = new int; *user_choice = 0;
+ if (!(user_choice or ask_user_choice))
+ return Api::app_init_return_status::MALLOC_FAILED;
+ return Api::app_init_return_status::OK;
}
// Processor intensive operations and functions related to drawing to the screen should only be done when the app is in_foreground(=1). This function is only called when the app is init.
@@ -75,6 +89,8 @@ namespace app_main_clock {
// Destruction of app, deinitlisation should be done here. This is only called if the app's APPS_DESTROY_ON_EXIT is set to 1. When it is not a "service" app.
int destroy(Api *app_api) {
- return 1;
+ delete ask_user_choice; ask_user_choice = 0;
+ delete user_choice; user_choice = 0;
+ return 0;
}
}