Yash Malik | d862b31c | 2017-12-02 02:09:32 | [diff] [blame] | 1 | // Copyright 2017 The Chromium Authors. All rights reserved. |
| 2 | // Use of this source code is governed by a BSD-style license that can be |
| 3 | // found in the LICENSE file. |
| 4 | |
| 5 | #ifndef CHROME_BROWSER_VR_KEYBOARD_DELEGATE_H_ |
| 6 | #define CHROME_BROWSER_VR_KEYBOARD_DELEGATE_H_ |
| 7 | |
| 8 | #include "base/memory/weak_ptr.h" |
Christopher Grant | f47c6e5 | 2019-01-02 20:05:11 | [diff] [blame] | 9 | #include "chrome/browser/vr/vr_base_export.h" |
Yash Malik | d862b31c | 2017-12-02 02:09:32 | [diff] [blame] | 10 | |
| 11 | namespace gfx { |
| 12 | class Point3F; |
Yash Malik | d37edaf | 2017-12-07 22:49:15 | [diff] [blame] | 13 | class PointF; |
Yash Malik | d862b31c | 2017-12-02 02:09:32 | [diff] [blame] | 14 | class Transform; |
| 15 | } // namespace gfx |
| 16 | |
| 17 | namespace vr { |
| 18 | |
Aldo Culquicondor | 173c0a1 | 2018-08-16 15:39:08 | [diff] [blame] | 19 | class KeyboardUiInterface; |
Yash Malik | d862b31c | 2017-12-02 02:09:32 | [diff] [blame] | 20 | struct CameraModel; |
Aldo Culquicondor | 173c0a1 | 2018-08-16 15:39:08 | [diff] [blame] | 21 | struct TextInputInfo; |
Yash Malik | d862b31c | 2017-12-02 02:09:32 | [diff] [blame] | 22 | |
Christopher Grant | f47c6e5 | 2019-01-02 20:05:11 | [diff] [blame] | 23 | class VR_BASE_EXPORT KeyboardDelegate { |
Yash Malik | d862b31c | 2017-12-02 02:09:32 | [diff] [blame] | 24 | public: |
| 25 | virtual ~KeyboardDelegate() {} |
| 26 | |
Aldo Culquicondor | 173c0a1 | 2018-08-16 15:39:08 | [diff] [blame] | 27 | virtual void SetUiInterface(KeyboardUiInterface* ui) {} |
Yash Malik | d862b31c | 2017-12-02 02:09:32 | [diff] [blame] | 28 | virtual void ShowKeyboard() = 0; |
| 29 | virtual void HideKeyboard() = 0; |
| 30 | virtual void SetTransform(const gfx::Transform&) = 0; |
| 31 | virtual bool HitTest(const gfx::Point3F& ray_origin, |
| 32 | const gfx::Point3F& ray_target, |
| 33 | gfx::Point3F* hit_position) = 0; |
| 34 | virtual void OnBeginFrame() {} |
| 35 | virtual void Draw(const CameraModel&) = 0; |
Christopher Grant | 6df268d | 2018-02-13 16:55:54 | [diff] [blame] | 36 | virtual bool SupportsSelection() = 0; |
Yash Malik | d37edaf | 2017-12-07 22:49:15 | [diff] [blame] | 37 | |
Yash Malik | 3d0c6d9 | 2018-02-27 23:32:09 | [diff] [blame] | 38 | virtual void OnTouchStateUpdated(bool is_touching, |
| 39 | const gfx::PointF& touch_position) {} |
Yash Malik | d37edaf | 2017-12-07 22:49:15 | [diff] [blame] | 40 | virtual void OnHoverEnter(const gfx::PointF& position) {} |
| 41 | virtual void OnHoverLeave() {} |
Aldo Culquicondor | a6d36373e | 2018-05-25 14:42:36 | [diff] [blame] | 42 | virtual void OnHoverMove(const gfx::PointF& position) {} |
Yash Malik | d37edaf | 2017-12-07 22:49:15 | [diff] [blame] | 43 | virtual void OnButtonDown(const gfx::PointF& position) {} |
| 44 | virtual void OnButtonUp(const gfx::PointF& position) {} |
Aldo Culquicondor | 173c0a1 | 2018-08-16 15:39:08 | [diff] [blame] | 45 | |
| 46 | // Called to update GVR keyboard with the given text input info. |
| 47 | virtual void UpdateInput(const TextInputInfo& info) {} |
Yash Malik | d862b31c | 2017-12-02 02:09:32 | [diff] [blame] | 48 | }; |
| 49 | |
| 50 | } // namespace vr |
| 51 | |
| 52 | #endif // CHROME_BROWSER_VR_KEYBOARD_DELEGATE_H_ |