irda-app-scene-edit-rename.cpp 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. #include "../irda-app.hpp"
  2. #include <cstdio>
  3. void IrdaAppSceneEditRename::on_enter(IrdaApp* app) {
  4. IrdaAppViewManager* view_manager = app->get_view_manager();
  5. TextInput* text_input = view_manager->get_text_input();
  6. auto remote_manager = app->get_remote_manager();
  7. if(app->get_edit_element() == IrdaApp::EditElement::Button) {
  8. auto button_name = remote_manager->get_current_button_name();
  9. strncpy(app->get_text_store(0), button_name.c_str(), app->get_text_store_size());
  10. } else {
  11. auto remote_name = remote_manager->get_current_remote_name();
  12. strncpy(app->get_text_store(0), remote_name.c_str(), app->get_text_store_size());
  13. }
  14. text_input_set_header_text(text_input, "Name the key");
  15. text_input_set_result_callback(
  16. text_input,
  17. IrdaApp::text_input_callback,
  18. app,
  19. app->get_text_store(0),
  20. app->get_text_store_size());
  21. view_manager->switch_to(IrdaAppViewManager::ViewType::TextInput);
  22. }
  23. bool IrdaAppSceneEditRename::on_event(IrdaApp* app, IrdaAppEvent* event) {
  24. bool consumed = false;
  25. if(event->type == IrdaAppEvent::Type::TextEditDone) {
  26. auto remote_manager = app->get_remote_manager();
  27. if(app->get_edit_element() == IrdaApp::EditElement::Button) {
  28. remote_manager->rename_button(app->get_text_store(0));
  29. } else {
  30. remote_manager->rename_remote(app->get_text_store(0));
  31. }
  32. app->switch_to_next_scene_without_saving(IrdaApp::Scene::EditRenameDone);
  33. consumed = true;
  34. }
  35. return consumed;
  36. }
  37. void IrdaAppSceneEditRename::on_exit(IrdaApp* app) {
  38. }