xremote_scene_xr_list_edit_item.c 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. #include "../xremote.h"
  2. enum SubmenuIndexEdit {
  3. SubmenuIndexRename = 10,
  4. SubmenuIndexEdit,
  5. SubmenuIndexDelete,
  6. };
  7. void xremote_scene_xr_list_edit_item_submenu_callback(void* context, uint32_t index) {
  8. XRemote* app = context;
  9. view_dispatcher_send_custom_event(app->view_dispatcher, index);
  10. }
  11. void xremote_scene_xr_list_edit_item_on_enter(void* context) {
  12. XRemote* app = context;
  13. //submenu_add_item(app->editmenu, "Rename", SubmenuIndexRename, xremote_scene_xr_list_edit_item_submenu_callback, app);
  14. submenu_add_item(
  15. app->editmenu,
  16. "Edit",
  17. SubmenuIndexEdit,
  18. xremote_scene_xr_list_edit_item_submenu_callback,
  19. app);
  20. submenu_add_item(
  21. app->editmenu,
  22. "Delete",
  23. SubmenuIndexDelete,
  24. xremote_scene_xr_list_edit_item_submenu_callback,
  25. app);
  26. submenu_set_selected_item(
  27. app->editmenu, scene_manager_get_scene_state(app->scene_manager, XRemoteSceneMenu));
  28. view_dispatcher_switch_to_view(app->view_dispatcher, XRemoteViewIdEditItem);
  29. }
  30. bool xremote_scene_xr_list_edit_item_on_event(void* context, SceneManagerEvent event) {
  31. XRemote* app = context;
  32. if(event.type == SceneManagerEventTypeBack) {
  33. //exit app
  34. scene_manager_previous_scene(app->scene_manager);
  35. return true;
  36. } else if(event.type == SceneManagerEventTypeCustom) {
  37. if(event.event == SubmenuIndexDelete) {
  38. xremote_cross_remote_delete(app->cross_remote);
  39. } else if(event.event == SubmenuIndexEdit) {
  40. strncpy(
  41. app->text_store[0],
  42. xremote_cross_remote_get_name(app->cross_remote),
  43. XREMOTE_MAX_REMOTE_NAME_LENGTH);
  44. scene_manager_next_scene(app->scene_manager, XRemoteSceneCreate);
  45. return 0;
  46. } else if(event.event == SubmenuIndexRename) {
  47. //scene_manager_next_scene(app->scene_manager, XRemoteSceneSaveRemoteItem);
  48. //scene_manager_next_scene(app->scene_manager, XRemoteSceneWip);
  49. return 0;
  50. }
  51. scene_manager_previous_scene(app->scene_manager);
  52. }
  53. return 0;
  54. }
  55. void xremote_scene_xr_list_edit_item_on_exit(void* context) {
  56. XRemote* app = context;
  57. submenu_reset(app->editmenu);
  58. }