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();
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -60,3 +60,5 @@ typedef enum {
|
||||
SonicareMenuIndexAddManually,
|
||||
SonicareMenuIndexExtraActions,
|
||||
} SonicareMenuIndex;
|
||||
|
||||
void sonicare_widget_callback(GuiButtonType result, InputType type, void* context);
|
||||
|
||||
Reference in New Issue
Block a user