totp_input_text.h 1.0 KB

123456789101112131415161718192021222324252627282930313233343536
  1. #pragma once
  2. #include <gui/gui.h>
  3. #include <gui/view.h>
  4. #include <gui/modules/text_input.h>
  5. #include "../../../types/plugin_state.h"
  6. #include "../../../types/plugin_event.h"
  7. #define INPUT_BUFFER_SIZE (255)
  8. typedef struct {
  9. char* user_input;
  10. size_t user_input_length;
  11. void* callback_data;
  12. } InputTextSceneCallbackResult;
  13. typedef void (*InputTextSceneCallback)(InputTextSceneCallbackResult* result);
  14. typedef struct {
  15. InputTextSceneCallback callback;
  16. char* header_text;
  17. void* callback_data;
  18. } InputTextSceneContext;
  19. typedef struct {
  20. TextInput* text_input;
  21. View* text_input_view;
  22. char text_input_buffer[INPUT_BUFFER_SIZE];
  23. InputTextSceneCallback callback;
  24. void* callback_data;
  25. } InputTextSceneState;
  26. InputTextSceneState* totp_input_text_activate(InputTextSceneContext* context);
  27. void totp_input_text_render(Canvas* const canvas, InputTextSceneState* text_input_state);
  28. bool totp_input_text_handle_event(PluginEvent* const event, InputTextSceneState* text_input_state);
  29. void totp_input_text_free(InputTextSceneState* state);