ibutton_event.h 824 B

123456789101112131415161718192021222324252627282930313233343536
  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 dummy;
  25. uint32_t menu_index;
  26. DialogExResult dialog_result;
  27. GuiButtonType widget_button_result;
  28. iButtonWorkerWriteResult worker_write_result;
  29. } payload;
  30. // event type
  31. Type type;
  32. };