desktop_lock_menu.h 993 B

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