file_browser.h 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. /**
  2. * @file file_browser.h
  3. * GUI: FileBrowser view module API
  4. */
  5. #pragma once
  6. #include <gui/view.h>
  7. #ifdef __cplusplus
  8. extern "C" {
  9. #endif
  10. typedef struct FileBrowser FileBrowser;
  11. typedef void (*FileBrowserCallback)(void* context);
  12. typedef bool (*FileBrowserLoadItemCallback)(
  13. FuriString* path,
  14. void* context,
  15. uint8_t** icon,
  16. FuriString* item_name);
  17. FileBrowser* file_browser_alloc(FuriString* result_path);
  18. void file_browser_free(FileBrowser* browser);
  19. View* file_browser_get_view(FileBrowser* browser);
  20. void file_browser_configure(
  21. FileBrowser* browser,
  22. const char* extension,
  23. bool skip_assets,
  24. const Icon* file_icon,
  25. bool hide_ext);
  26. void file_browser_start(FileBrowser* browser, FuriString* path);
  27. void file_browser_stop(FileBrowser* browser);
  28. void file_browser_set_callback(FileBrowser* browser, FileBrowserCallback callback, void* context);
  29. void file_browser_set_item_callback(
  30. FileBrowser* browser,
  31. FileBrowserLoadItemCallback callback,
  32. void* context);
  33. #ifdef __cplusplus
  34. }
  35. #endif