desktop_lock_menu.h 1.1 KB

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