desktop_main.h 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  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. DesktopMainEventOpenLockMenu,
  9. DesktopMainEventOpenArchive,
  10. DesktopMainEventOpenFavorite,
  11. DesktopMainEventOpenMenu,
  12. DesktopMainEventOpenDebug,
  13. DesktopMainEventUnlocked,
  14. DesktopMainEventRightShort,
  15. DesktopMainEventUpdateAnimation,
  16. DesktopMainEventUpdateOneShotAnimation,
  17. } DesktopMainEvent;
  18. typedef struct DesktopMainView DesktopMainView;
  19. typedef void (*DesktopMainViewCallback)(DesktopMainEvent event, void* context);
  20. struct DesktopMainView {
  21. View* view;
  22. DesktopMainViewCallback callback;
  23. void* context;
  24. };
  25. typedef struct {
  26. IconAnimation* animation;
  27. const Icon* icon;
  28. uint8_t scene_num;
  29. uint32_t hint_expire_at;
  30. } DesktopMainViewModel;
  31. void desktop_main_set_callback(
  32. DesktopMainView* main_view,
  33. DesktopMainViewCallback callback,
  34. void* context);
  35. View* desktop_main_get_view(DesktopMainView* main_view);
  36. DesktopMainView* desktop_main_alloc();
  37. void desktop_main_free(DesktopMainView* main_view);
  38. void desktop_main_switch_dolphin_animation(DesktopMainView* main_view, const Icon* icon);
  39. void desktop_main_unlocked(DesktopMainView* main_view);
  40. void desktop_main_reset_hint(DesktopMainView* main_view);
  41. void desktop_main_switch_dolphin_icon(DesktopMainView* main_view, const Icon* icon);