blob: 8c8dabc54c5dec7f2a20a8ccda3123576ec7e200 [file] [log] [blame]
Yash Malikd862b31c2017-12-02 02:09:321// 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 Grantf47c6e52019-01-02 20:05:119#include "chrome/browser/vr/vr_base_export.h"
Yash Malikd862b31c2017-12-02 02:09:3210
11namespace gfx {
12class Point3F;
Yash Malikd37edaf2017-12-07 22:49:1513class PointF;
Yash Malikd862b31c2017-12-02 02:09:3214class Transform;
15} // namespace gfx
16
17namespace vr {
18
Aldo Culquicondor173c0a12018-08-16 15:39:0819class KeyboardUiInterface;
Yash Malikd862b31c2017-12-02 02:09:3220struct CameraModel;
Aldo Culquicondor173c0a12018-08-16 15:39:0821struct TextInputInfo;
Yash Malikd862b31c2017-12-02 02:09:3222
Christopher Grantf47c6e52019-01-02 20:05:1123class VR_BASE_EXPORT KeyboardDelegate {
Yash Malikd862b31c2017-12-02 02:09:3224 public:
25 virtual ~KeyboardDelegate() {}
26
Aldo Culquicondor173c0a12018-08-16 15:39:0827 virtual void SetUiInterface(KeyboardUiInterface* ui) {}
Yash Malikd862b31c2017-12-02 02:09:3228 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 Grant6df268d2018-02-13 16:55:5436 virtual bool SupportsSelection() = 0;
Yash Malikd37edaf2017-12-07 22:49:1537
Yash Malik3d0c6d92018-02-27 23:32:0938 virtual void OnTouchStateUpdated(bool is_touching,
39 const gfx::PointF& touch_position) {}
Yash Malikd37edaf2017-12-07 22:49:1540 virtual void OnHoverEnter(const gfx::PointF& position) {}
41 virtual void OnHoverLeave() {}
Aldo Culquicondora6d36373e2018-05-25 14:42:3642 virtual void OnHoverMove(const gfx::PointF& position) {}
Yash Malikd37edaf2017-12-07 22:49:1543 virtual void OnButtonDown(const gfx::PointF& position) {}
44 virtual void OnButtonUp(const gfx::PointF& position) {}
Aldo Culquicondor173c0a12018-08-16 15:39:0845
46 // Called to update GVR keyboard with the given text input info.
47 virtual void UpdateInput(const TextInputInfo& info) {}
Yash Malikd862b31c2017-12-02 02:09:3248};
49
50} // namespace vr
51
52#endif // CHROME_BROWSER_VR_KEYBOARD_DELEGATE_H_