ibutton_event.h 800 B

1234567891011121314151617181920212223242526272829303132333435
  1. #pragma once
  2. #include <stdint.h>
  3. #include <gui/modules/dialog_ex.h>
  4. #include <gui/modules/widget.h>
  5. #include <one_wire/ibutton/ibutton_worker.h>
  6. class iButtonApp;
  7. class iButtonEvent {
  8. public:
  9. // events enum
  10. enum class Type : uint8_t {
  11. EventTypeTick,
  12. EventTypeBack,
  13. EventTypeMenuSelected,
  14. EventTypeDialogResult,
  15. EventTypeTextEditResult,
  16. EventTypeByteEditResult,
  17. EventTypeWidgetButtonResult,
  18. EventTypeWorkerEmulated,
  19. EventTypeWorkerRead,
  20. EventTypeWorkerWrite,
  21. };
  22. // payload
  23. union {
  24. uint32_t menu_index;
  25. DialogExResult dialog_result;
  26. GuiButtonType widget_button_result;
  27. iButtonWorkerWriteResult worker_write_result;
  28. } payload;
  29. // event type
  30. Type type;
  31. };