InputEventsTarget.h 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. /*
  2. * Copyright (c) 2024, Aliaksandr Kalenik <kalenik.aliaksandr@gmail.com>
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. #pragma once
  7. #include <LibWeb/Forward.h>
  8. namespace Web {
  9. class InputEventsTarget {
  10. public:
  11. virtual ~InputEventsTarget() = default;
  12. virtual void handle_insert(String const&) = 0;
  13. virtual void handle_return_key() = 0;
  14. enum class DeleteDirection {
  15. Backward,
  16. Forward,
  17. };
  18. virtual void handle_delete(DeleteDirection) = 0;
  19. virtual void select_all() = 0;
  20. virtual void set_selection_anchor(JS::NonnullGCPtr<DOM::Node>, size_t offset) = 0;
  21. virtual void set_selection_focus(JS::NonnullGCPtr<DOM::Node>, size_t offset) = 0;
  22. enum class CollapseSelection {
  23. No,
  24. Yes,
  25. };
  26. virtual void move_cursor_to_start(CollapseSelection) = 0;
  27. virtual void move_cursor_to_end(CollapseSelection) = 0;
  28. virtual void increment_cursor_position_offset(CollapseSelection) = 0;
  29. virtual void decrement_cursor_position_offset(CollapseSelection) = 0;
  30. virtual void increment_cursor_position_to_next_word(CollapseSelection) = 0;
  31. virtual void decrement_cursor_position_to_previous_word(CollapseSelection) = 0;
  32. };
  33. }