mag_scene_start.c 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. #include "../mag_i.h"
  2. typedef enum {
  3. SubmenuIndexSaved,
  4. //SubmenuIndexAddManually,
  5. SubmenuIndexAbout,
  6. } SubmenuIndex;
  7. static void mag_scene_start_submenu_callback(void* context, uint32_t index) {
  8. Mag* mag = context;
  9. view_dispatcher_send_custom_event(mag->view_dispatcher, index);
  10. }
  11. void mag_scene_start_on_enter(void* context) {
  12. Mag* mag = context;
  13. Submenu* submenu = mag->submenu;
  14. submenu_add_item(submenu, "Saved", SubmenuIndexSaved, mag_scene_start_submenu_callback, mag);
  15. //submenu_add_item(
  16. // submenu, "Add Manually", SubmenuIndexAddManually, mag_scene_start_submenu_callback, mag);
  17. submenu_add_item(submenu, "About", SubmenuIndexAbout, mag_scene_start_submenu_callback, mag);
  18. submenu_set_selected_item(
  19. submenu, scene_manager_get_scene_state(mag->scene_manager, MagSceneStart));
  20. // clear key
  21. furi_string_reset(mag->file_name);
  22. view_dispatcher_switch_to_view(mag->view_dispatcher, MagViewSubmenu);
  23. }
  24. bool mag_scene_start_on_event(void* context, SceneManagerEvent event) {
  25. Mag* mag = context;
  26. bool consumed = false;
  27. if(event.type == SceneManagerEventTypeCustom) {
  28. switch(event.event) {
  29. case SubmenuIndexSaved:
  30. furi_string_set(mag->file_path, MAG_APP_FOLDER);
  31. scene_manager_next_scene(mag->scene_manager, MagSceneFileSelect);
  32. consumed = true;
  33. break;
  34. //case SubmenuIndexAddManually:
  35. // scene_manager_next_scene(mag->scene_manager, MagSceneInputValue);
  36. // consumed = true;
  37. // break;
  38. case SubmenuIndexAbout:
  39. scene_manager_next_scene(mag->scene_manager, MagSceneAbout);
  40. consumed = true;
  41. break;
  42. }
  43. scene_manager_set_scene_state(mag->scene_manager, MagSceneStart, event.event);
  44. }
  45. return consumed;
  46. }
  47. void mag_scene_start_on_exit(void* context) {
  48. Mag* mag = context;
  49. submenu_reset(mag->submenu);
  50. }