From a77bcbacfb245b7582abd146813979db00cf3265 Mon Sep 17 00:00:00 2001 From: Markus Birth Date: Mon, 26 Jan 2026 16:15:35 +0000 Subject: [PATCH] Add widget support Signed-off-by: Markus Birth --- uk_mbirth_sonicare.c | 15 +++++++++++++++ uk_mbirth_sonicare.h | 2 ++ 2 files changed, 17 insertions(+) diff --git a/uk_mbirth_sonicare.c b/uk_mbirth_sonicare.c index 2175e85..d14e961 100644 --- a/uk_mbirth_sonicare.c +++ b/uk_mbirth_sonicare.c @@ -39,12 +39,20 @@ static Sonicare* sonicare_alloc(void) { sonicare->submenu = submenu_alloc(); view_dispatcher_add_view(sonicare->view_dispatcher, SonicareViewSubmenu, submenu_get_view(sonicare->submenu)); + // Widget + sonicare->widget = widget_alloc(); + view_dispatcher_add_view(sonicare->view_dispatcher, SonicareViewWidget, widget_get_view(sonicare->widget)); + return sonicare; } static void sonicare_free(Sonicare* sonicare) { furi_assert(sonicare); + // Widget + view_dispatcher_remove_view(sonicare->view_dispatcher, SonicareViewWidget); + widget_free(sonicare->widget); + // Submenu view_dispatcher_remove_view(sonicare->view_dispatcher, SonicareViewSubmenu); submenu_free(sonicare->submenu); @@ -80,3 +88,10 @@ int32_t sonicare_app(void* p) { return 0; } + +void sonicare_widget_callback(GuiButtonType result, InputType type, void* context) { + Sonicare* app = context; + if (type == InputTypeShort) { + view_dispatcher_send_custom_event(app->view_dispatcher, result); + } +} diff --git a/uk_mbirth_sonicare.h b/uk_mbirth_sonicare.h index c8f6adf..50c9ba4 100644 --- a/uk_mbirth_sonicare.h +++ b/uk_mbirth_sonicare.h @@ -60,3 +60,5 @@ typedef enum { SonicareMenuIndexAddManually, SonicareMenuIndexExtraActions, } SonicareMenuIndex; + +void sonicare_widget_callback(GuiButtonType result, InputType type, void* context);