file_browser.h 1.0 KB

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