callback.h 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  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 struct DataLoaderModel DataLoaderModel;
  19. typedef bool (*DataLoaderFetch)(DataLoaderModel *model);
  20. typedef char *(*DataLoaderParser)(DataLoaderModel *model);
  21. struct DataLoaderModel
  22. {
  23. char *title;
  24. char *data_text;
  25. DataState data_state;
  26. DataLoaderFetch fetcher;
  27. DataLoaderParser parser;
  28. void *parser_context;
  29. size_t request_index;
  30. size_t request_count;
  31. ViewNavigationCallback back_callback;
  32. FuriTimer *timer;
  33. FlipperHTTP *fhttp;
  34. };
  35. void generic_switch_to_view(FlipWorldApp *app, char *title, DataLoaderFetch fetcher, DataLoaderParser parser, size_t request_count, ViewNavigationCallback back, uint32_t view_id);
  36. void loader_draw_callback(Canvas *canvas, void *model);
  37. void loader_init(View *view);
  38. void loader_free_model(View *view);
  39. bool custom_event_callback(void *context, uint32_t index);