desktop_main.h 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  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. bool status_bar_background_black;
  30. uint32_t hint_expire_at;
  31. } DesktopMainViewModel;
  32. void desktop_main_set_callback(
  33. DesktopMainView* main_view,
  34. DesktopMainViewCallback callback,
  35. void* context);
  36. View* desktop_main_get_view(DesktopMainView* main_view);
  37. DesktopMainView* desktop_main_alloc();
  38. void desktop_main_free(DesktopMainView* main_view);
  39. void desktop_main_switch_dolphin_animation(
  40. DesktopMainView* main_view,
  41. const Icon* icon,
  42. bool status_bar_background_black);
  43. void desktop_main_unlocked(DesktopMainView* main_view);
  44. void desktop_main_reset_hint(DesktopMainView* main_view);
  45. void desktop_main_switch_dolphin_icon(DesktopMainView* main_view, const Icon* icon);