file_browser_worker.h 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. #pragma once
  2. #include "m-string.h"
  3. #include <gui/view.h>
  4. #include <stdint.h>
  5. #ifdef __cplusplus
  6. extern "C" {
  7. #endif
  8. typedef struct BrowserWorker BrowserWorker;
  9. typedef void (*BrowserWorkerFolderOpenCallback)(
  10. void* context,
  11. uint32_t item_cnt,
  12. int32_t file_idx,
  13. bool is_root);
  14. typedef void (*BrowserWorkerListLoadCallback)(void* context, uint32_t list_load_offset);
  15. typedef void (*BrowserWorkerListItemCallback)(
  16. void* context,
  17. string_t item_path,
  18. bool is_folder,
  19. bool is_last);
  20. typedef void (*BrowserWorkerLongLoadCallback)(void* context);
  21. BrowserWorker* file_browser_worker_alloc(string_t path, const char* filter_ext, bool skip_assets);
  22. void file_browser_worker_free(BrowserWorker* browser);
  23. void file_browser_worker_set_callback_context(BrowserWorker* browser, void* context);
  24. void file_browser_worker_set_folder_callback(
  25. BrowserWorker* browser,
  26. BrowserWorkerFolderOpenCallback cb);
  27. void file_browser_worker_set_list_callback(
  28. BrowserWorker* browser,
  29. BrowserWorkerListLoadCallback cb);
  30. void file_browser_worker_set_item_callback(
  31. BrowserWorker* browser,
  32. BrowserWorkerListItemCallback cb);
  33. void file_browser_worker_set_long_load_callback(
  34. BrowserWorker* browser,
  35. BrowserWorkerLongLoadCallback cb);
  36. void file_browser_worker_folder_enter(BrowserWorker* browser, string_t path, int32_t item_idx);
  37. void file_browser_worker_folder_exit(BrowserWorker* browser);
  38. void file_browser_worker_load(BrowserWorker* browser, uint32_t offset, uint32_t count);
  39. #ifdef __cplusplus
  40. }
  41. #endif