summaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
authorConfuSomu2021-04-25 17:02:56 -0400
committerConfuSomu2021-04-25 17:45:45 -0400
commit45d17b9408468cb52ea4e9c27dc23f3682bfa84c (patch)
tree0da4abb94c8370a1174ea8d0fe3cc875396ad8db /apps
parentf8f2810f9e65c5fa715294db5761cfdd1005cfa7 (diff)
downloadpico-watch-45d17b9408468cb52ea4e9c27dc23f3682bfa84c.tar
pico-watch-45d17b9408468cb52ea4e9c27dc23f3682bfa84c.tar.gz
pico-watch-45d17b9408468cb52ea4e9c27dc23f3682bfa84c.zip
Test API methods with main_clock app
Also commit settings.json updates made by VSCode. This commit was done to have a clean working tree.
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;
}
}