desktop_settings_scene_start.c 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. #include <applications.h>
  2. #include "../desktop_settings_app.h"
  3. #include "desktop_settings_scene.h"
  4. #define SCENE_EVENT_SELECT_FAVORITE 0
  5. #define SCENE_EVENT_SELECT_PIN_SETUP 1
  6. static void desktop_settings_scene_start_submenu_callback(void* context, uint32_t index) {
  7. DesktopSettingsApp* app = context;
  8. view_dispatcher_send_custom_event(app->view_dispatcher, index);
  9. }
  10. void desktop_settings_scene_start_on_enter(void* context) {
  11. DesktopSettingsApp* app = context;
  12. Submenu* submenu = app->submenu;
  13. submenu_add_item(
  14. submenu,
  15. "Favorite App",
  16. SCENE_EVENT_SELECT_FAVORITE,
  17. desktop_settings_scene_start_submenu_callback,
  18. app);
  19. submenu_add_item(
  20. submenu,
  21. "PIN Setup",
  22. SCENE_EVENT_SELECT_PIN_SETUP,
  23. desktop_settings_scene_start_submenu_callback,
  24. app);
  25. view_dispatcher_switch_to_view(app->view_dispatcher, DesktopSettingsAppViewMenu);
  26. }
  27. bool desktop_settings_scene_start_on_event(void* context, SceneManagerEvent event) {
  28. DesktopSettingsApp* app = context;
  29. bool consumed = false;
  30. if(event.type == SceneManagerEventTypeCustom) {
  31. switch(event.event) {
  32. case SCENE_EVENT_SELECT_FAVORITE:
  33. scene_manager_next_scene(app->scene_manager, DesktopSettingsAppSceneFavorite);
  34. consumed = true;
  35. break;
  36. case SCENE_EVENT_SELECT_PIN_SETUP:
  37. scene_manager_next_scene(app->scene_manager, DesktopSettingsAppScenePinMenu);
  38. consumed = true;
  39. break;
  40. }
  41. }
  42. return consumed;
  43. }
  44. void desktop_settings_scene_start_on_exit(void* context) {
  45. DesktopSettingsApp* app = context;
  46. submenu_reset(app->submenu);
  47. }