summaryrefslogtreecommitdiff
path: root/src/DisplayApp/Screens/Modal.cpp
diff options
context:
space:
mode:
authorJF <jf@codingfield.com>2020-04-05 19:59:22 +0200
committerGitea <gitea@fake.local>2020-04-05 19:59:22 +0200
commit86d5732b960fbe7f81ed711b2de7e6b79293c96a (patch)
tree8447f6b7bbff0f423e9cf5d15ed709c630bed25e /src/DisplayApp/Screens/Modal.cpp
parenta91c68c931cc8308e87acd796afb46ba70ae3dc2 (diff)
parent6e1bd118c5ecc53016548072501591b329500870 (diff)
Merge branch 'develop' of JF/PineTime into master
Diffstat (limited to 'src/DisplayApp/Screens/Modal.cpp')
-rw-r--r--src/DisplayApp/Screens/Modal.cpp52
1 files changed, 26 insertions, 26 deletions
diff --git a/src/DisplayApp/Screens/Modal.cpp b/src/DisplayApp/Screens/Modal.cpp
index fc353c49..63ae70c0 100644
--- a/src/DisplayApp/Screens/Modal.cpp
+++ b/src/DisplayApp/Screens/Modal.cpp
@@ -25,7 +25,31 @@ bool Modal::OnButtonPushed() {
return true;
}
-void Modal::Show() {
+void Modal::Hide() {
+ /* Delete the parent modal background */
+ lv_obj_del_async(lv_obj_get_parent(mbox));
+ mbox = NULL; /* happens before object is actually deleted! */
+ isVisible = false;
+}
+
+void Modal::mbox_event_cb(lv_obj_t *obj, lv_event_t evt) {
+ auto* m = static_cast<Modal *>(obj->user_data);
+ m->OnEvent(obj, evt);
+}
+
+void Modal::OnEvent(lv_obj_t *event_obj, lv_event_t evt) {
+ if(evt == LV_EVENT_DELETE && event_obj == mbox) {
+ Hide();
+ } else if(evt == LV_EVENT_VALUE_CHANGED) {
+ /* A button was clicked */
+ lv_mbox_start_auto_close(mbox, 0);
+// Hide();
+ }
+}
+
+void Modal::Show(const char* msg) {
+ if(isVisible) return;
+ isVisible = true;
lv_style_copy(&modal_style, &lv_style_plain_color);
modal_style.body.main_color = modal_style.body.grad_color = LV_COLOR_BLACK;
modal_style.body.opa = LV_OPA_50;
@@ -41,10 +65,7 @@ void Modal::Show() {
/* Create the message box as a child of the modal background */
mbox = lv_mbox_create(obj, NULL);
lv_mbox_add_btns(mbox, btns2);
- char versionStr[20];
- sprintf(versionStr, "VERSION: %d.%d.%d", Version::Major(), Version::Minor(), Version::Patch());
- lv_mbox_set_text(mbox, versionStr);
-// lv_mbox_set_text(mbox, "Hello world!");
+ lv_mbox_set_text(mbox, msg);
lv_obj_align(mbox, NULL, LV_ALIGN_CENTER, 0, 0);
lv_obj_set_event_cb(mbox, Modal::mbox_event_cb);
@@ -58,24 +79,3 @@ void Modal::Show() {
lv_anim_set_exec_cb(&a, obj, (lv_anim_exec_xcb_t)lv_obj_set_opa_scale);
lv_anim_create(&a);
}
-
-void Modal::Hide() {
- /* Delete the parent modal background */
- lv_obj_del_async(lv_obj_get_parent(mbox));
- mbox = NULL; /* happens before object is actually deleted! */
-}
-
-void Modal::mbox_event_cb(lv_obj_t *obj, lv_event_t evt) {
- auto* m = static_cast<Modal *>(obj->user_data);
- m->OnEvent(obj, evt);
-}
-
-void Modal::OnEvent(lv_obj_t *event_obj, lv_event_t evt) {
- if(evt == LV_EVENT_DELETE && event_obj == mbox) {
- Hide();
- } else if(evt == LV_EVENT_VALUE_CHANGED) {
- /* A button was clicked */
- lv_mbox_start_auto_close(mbox, 0);
-// Hide();
- }
-}