desktop_main.h 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. #pragma once
  2. #include <gui/gui_i.h>
  3. #include <gui/view.h>
  4. #include <gui/canvas.h>
  5. #include <gui/elements.h>
  6. #include <furi.h>
  7. typedef enum {
  8. DesktopMainEventOpenMenu,
  9. DesktopMainEventOpenLockMenu,
  10. DesktopMainEventOpenDebug,
  11. DesktopMainEventUnlocked,
  12. DesktopMainEventOpenArchive,
  13. DesktopMainEventOpenFavorite,
  14. } DesktopMainEvent;
  15. typedef struct DesktopMainView DesktopMainView;
  16. typedef void (*DesktopMainViewCallback)(DesktopMainEvent event, void* context);
  17. struct DesktopMainView {
  18. View* view;
  19. DesktopMainViewCallback callback;
  20. void* context;
  21. };
  22. typedef struct {
  23. IconAnimation* animation;
  24. uint8_t scene_num;
  25. uint32_t hint_expire_at;
  26. } DesktopMainViewModel;
  27. void desktop_main_set_callback(
  28. DesktopMainView* main_view,
  29. DesktopMainViewCallback callback,
  30. void* context);
  31. View* desktop_main_get_view(DesktopMainView* main_view);
  32. DesktopMainView* desktop_main_alloc();
  33. void desktop_main_free(DesktopMainView* main_view);
  34. void desktop_main_switch_dolphin_animation(DesktopMainView* main_view);