mag_scene_saved_info.c 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. #include "../mag_i.h"
  2. void mag_scene_saved_info_on_enter(void* context) {
  3. Mag* mag = context;
  4. Widget* widget = mag->widget;
  5. FuriString* tmp_str;
  6. tmp_str = furi_string_alloc();
  7. // Use strlcpy instead perhaps, to truncate to screen width, then add ellipses if needed?
  8. furi_string_printf(tmp_str, "%s\r\n", mag->mag_dev->dev_name);
  9. widget_add_icon_element(widget, 1, 1, &I_mag_10px);
  10. widget_add_string_element(
  11. widget, 13, 2, AlignLeft, AlignTop, FontPrimary, furi_string_get_cstr(tmp_str));
  12. furi_string_reset(tmp_str);
  13. for(uint8_t i = 0; i < MAG_DEV_TRACKS; i++) {
  14. FuriString* trackstr = mag->mag_dev->dev_data.track[i].str;
  15. furi_string_cat_printf(
  16. tmp_str,
  17. "Track %d:\n%s\n\n",
  18. (i + 1),
  19. furi_string_empty(trackstr) ? "< empty >" : furi_string_get_cstr(trackstr));
  20. }
  21. widget_add_text_scroll_element(widget, 0, 15, 128, 49, furi_string_get_cstr(tmp_str));
  22. //widget_add_button_element(widget, GuiButtonTypeLeft, "Back", mag_widget_callback, mag);
  23. view_dispatcher_switch_to_view(mag->view_dispatcher, MagViewWidget);
  24. furi_string_free(tmp_str);
  25. }
  26. bool mag_scene_saved_info_on_event(void* context, SceneManagerEvent event) {
  27. Mag* mag = context;
  28. SceneManager* scene_manager = mag->scene_manager;
  29. bool consumed = false;
  30. UNUSED(event);
  31. UNUSED(scene_manager);
  32. return consumed;
  33. }
  34. void mag_scene_saved_info_on_exit(void* context) {
  35. Mag* mag = context;
  36. widget_reset(mag->widget);
  37. }