diff --git a/radio/src/thirdparty/libopenui/src/menu.h b/radio/src/thirdparty/libopenui/src/menu.h index 3cf211f3f..aac85d94f 100644 --- a/radio/src/thirdparty/libopenui/src/menu.h +++ b/radio/src/thirdparty/libopenui/src/menu.h @@ -160,6 +160,11 @@ class Menu: public ModalWindow { content->body.setCancelHandler(handler); } + void setWaitHandler(std::function handler) + { + waitHandler = std::move(handler); + } + void setToolbar(Window * window) { toolbar = window; @@ -190,9 +195,18 @@ class Menu: public ModalWindow { void onEvent(event_t event) override; #endif + void checkEvents() override + { + ModalWindow::checkEvents(); + if (waitHandler) { + waitHandler(); + } + } + protected: MenuWindowContent * content; Window * toolbar = nullptr; + std::function waitHandler; void updatePosition(); };