| // Copyright 2024 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef COMPONENTS_INPUT_RENDER_INPUT_ROUTER_CLIENT_H_ |
| #define COMPONENTS_INPUT_RENDER_INPUT_ROUTER_CLIENT_H_ |
| |
| #include <optional> |
| |
| #include "base/component_export.h" |
| #include "build/build_config.h" |
| #include "components/input/input_router_client.h" |
| #include "third_party/blink/public/common/input/web_input_event.h" |
| #include "third_party/blink/public/mojom/widget/platform_widget.mojom.h" |
| #include "ui/latency/latency_info.h" |
| |
| namespace input { |
| |
| class COMPONENT_EXPORT(INPUT) RenderInputRouterClient { |
| public: |
| virtual void ForwardWheelEventWithLatencyInfo( |
| const blink::WebMouseWheelEvent& wheel_event, |
| const ui::LatencyInfo& latency_info) = 0; |
| |
| virtual bool IsAutoscrollInProgress() = 0; |
| |
| virtual void SetMouseCapture(bool capture) = 0; |
| virtual void SetAutoscrollSelectionActiveInMainFrame( |
| bool autoscroll_selection) = 0; |
| virtual void RequestMouseLock( |
| bool from_user_gesture, |
| bool unadjusted_movement, |
| blink::mojom::WidgetInputHandlerHost::RequestMouseLockCallback |
| response) = 0; |
| |
| virtual void OnImeCancelComposition() = 0; |
| virtual void OnImeCompositionRangeChanged( |
| const gfx::Range& range, |
| const std::optional<std::vector<gfx::Rect>>& character_bounds) = 0; |
| // Initiate stylus handwriting. |
| virtual void OnStartStylusWriting() = 0; |
| // Update which editable element has focus for stylus writing. When |
| // `focus_widget_rect_in_dips` is provided, sets focus and caret position |
| // based on a hit test performed with that rect. Otherwise fallback to the |
| // Element CurrentTouchDownElement() and use default focus caret position. |
| // Caret position is only updated if the target element doesn't already have |
| // focus. |
| virtual void UpdateElementFocusForStylusWriting( |
| #if BUILDFLAG(IS_WIN) |
| const gfx::Rect& focus_widget_rect_in_dips |
| #endif // BUILDFLAG(IS_WIN) |
| ) = 0; |
| }; |
| |
| } // namespace input |
| |
| #endif // COMPONENTS_INPUT_RENDER_INPUT_ROUTER_CLIENT_H_ |