Add widget support
Signed-off-by: Markus Birth <markus@birth-online.de>
This commit is contained in:
@@ -39,12 +39,20 @@ static Sonicare* sonicare_alloc(void) {
|
|||||||
sonicare->submenu = submenu_alloc();
|
sonicare->submenu = submenu_alloc();
|
||||||
view_dispatcher_add_view(sonicare->view_dispatcher, SonicareViewSubmenu, submenu_get_view(sonicare->submenu));
|
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;
|
return sonicare;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sonicare_free(Sonicare* sonicare) {
|
static void sonicare_free(Sonicare* sonicare) {
|
||||||
furi_assert(sonicare);
|
furi_assert(sonicare);
|
||||||
|
|
||||||
|
// Widget
|
||||||
|
view_dispatcher_remove_view(sonicare->view_dispatcher, SonicareViewWidget);
|
||||||
|
widget_free(sonicare->widget);
|
||||||
|
|
||||||
// Submenu
|
// Submenu
|
||||||
view_dispatcher_remove_view(sonicare->view_dispatcher, SonicareViewSubmenu);
|
view_dispatcher_remove_view(sonicare->view_dispatcher, SonicareViewSubmenu);
|
||||||
submenu_free(sonicare->submenu);
|
submenu_free(sonicare->submenu);
|
||||||
@@ -80,3 +88,10 @@ int32_t sonicare_app(void* p) {
|
|||||||
|
|
||||||
return 0;
|
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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -60,3 +60,5 @@ typedef enum {
|
|||||||
SonicareMenuIndexAddManually,
|
SonicareMenuIndexAddManually,
|
||||||
SonicareMenuIndexExtraActions,
|
SonicareMenuIndexExtraActions,
|
||||||
} SonicareMenuIndex;
|
} SonicareMenuIndex;
|
||||||
|
|
||||||
|
void sonicare_widget_callback(GuiButtonType result, InputType type, void* context);
|
||||||
|
|||||||
Reference in New Issue
Block a user