desktop_lock_menu.h 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  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. #define HINT_TIMEOUT 2
  8. typedef enum {
  9. DesktopLockMenuEventLock,
  10. DesktopLockMenuEventPinLock,
  11. DesktopLockMenuEventExit,
  12. } DesktopLockMenuEvent;
  13. typedef struct DesktopLockMenuView DesktopLockMenuView;
  14. typedef void (*DesktopLockMenuViewCallback)(DesktopLockMenuEvent event, void* context);
  15. struct DesktopLockMenuView {
  16. View* view;
  17. DesktopLockMenuViewCallback callback;
  18. void* context;
  19. };
  20. typedef struct {
  21. uint8_t idx;
  22. uint8_t hint_timeout;
  23. bool pin_set;
  24. } DesktopLockMenuViewModel;
  25. void desktop_lock_menu_set_callback(
  26. DesktopLockMenuView* lock_menu,
  27. DesktopLockMenuViewCallback callback,
  28. void* context);
  29. View* desktop_lock_menu_get_view(DesktopLockMenuView* lock_menu);
  30. void desktop_lock_menu_pin_set(DesktopLockMenuView* lock_menu, bool pin_is_set);
  31. void desktop_lock_menu_reset_idx(DesktopLockMenuView* lock_menu);
  32. DesktopLockMenuView* desktop_lock_menu_alloc();
  33. void desktop_lock_menu_free(DesktopLockMenuView* lock_menu);