file_browser_worker.h 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  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_set_config(
  37. BrowserWorker* browser,
  38. string_t path,
  39. const char* filter_ext,
  40. bool skip_assets);
  41. void file_browser_worker_folder_enter(BrowserWorker* browser, string_t path, int32_t item_idx);
  42. void file_browser_worker_folder_exit(BrowserWorker* browser);
  43. void file_browser_worker_folder_refresh(BrowserWorker* browser, int32_t item_idx);
  44. void file_browser_worker_load(BrowserWorker* browser, uint32_t offset, uint32_t count);
  45. #ifdef __cplusplus
  46. }
  47. #endif