callback.h 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. #pragma once
  2. #include <flip_world.h>
  3. #include <flip_storage/storage.h>
  4. void free_all_views(void *context, bool should_free_variable_item_list, bool should_free_submenu_settings);
  5. void callback_submenu_choices(void *context, uint32_t index);
  6. uint32_t callback_to_submenu(void *context);
  7. // Add edits by Derek Jamison
  8. typedef enum DataState DataState;
  9. enum DataState
  10. {
  11. DataStateInitial,
  12. DataStateRequested,
  13. DataStateReceived,
  14. DataStateParsed,
  15. DataStateParseError,
  16. DataStateError,
  17. };
  18. typedef enum MessageState MessageState;
  19. enum MessageState
  20. {
  21. MessageStateAbout,
  22. MessageStateLoading,
  23. };
  24. typedef struct MessageModel MessageModel;
  25. struct MessageModel
  26. {
  27. MessageState message_state;
  28. };
  29. typedef struct DataLoaderModel DataLoaderModel;
  30. typedef bool (*DataLoaderFetch)(DataLoaderModel *model);
  31. typedef char *(*DataLoaderParser)(DataLoaderModel *model);
  32. struct DataLoaderModel
  33. {
  34. char *title;
  35. char *data_text;
  36. DataState data_state;
  37. DataLoaderFetch fetcher;
  38. DataLoaderParser parser;
  39. void *parser_context;
  40. size_t request_index;
  41. size_t request_count;
  42. ViewNavigationCallback back_callback;
  43. FuriTimer *timer;
  44. FlipperHTTP *fhttp;
  45. };
  46. void generic_switch_to_view(FlipWorldApp *app, char *title, DataLoaderFetch fetcher, DataLoaderParser parser, size_t request_count, ViewNavigationCallback back, uint32_t view_id);
  47. void loader_draw_callback(Canvas *canvas, void *model);
  48. void loader_init(View *view);
  49. void loader_free_model(View *view);
  50. bool custom_event_callback(void *context, uint32_t index);