Yuichiro Hanada | fe5239c | 2018-07-17 09:59:52 | [diff] [blame] | 1 | // Copyright 2018 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 COMPONENTS_EXO_INPUT_METHOD_SURFACE_MANAGER_H_ |
| 6 | #define COMPONENTS_EXO_INPUT_METHOD_SURFACE_MANAGER_H_ |
| 7 | |
| 8 | namespace exo { |
| 9 | |
| 10 | class InputMethodSurface; |
| 11 | |
| 12 | class InputMethodSurfaceManager { |
| 13 | public: |
| 14 | virtual ~InputMethodSurfaceManager() = default; |
| 15 | |
| 16 | // Gets the InputMethodSurface currently used. |
| 17 | virtual InputMethodSurface* GetSurface() const = 0; |
| 18 | |
| 19 | // Adds an InputMethodSurface to the manager. |
| 20 | virtual void AddSurface(InputMethodSurface* surface) = 0; |
| 21 | |
Yuichiro Hanada | dc02dd3 | 2018-09-13 03:09:06 | [diff] [blame] | 22 | // Removes an InputMethodSurface from the manager. |
Yuichiro Hanada | fe5239c | 2018-07-17 09:59:52 | [diff] [blame] | 23 | virtual void RemoveSurface(InputMethodSurface* surface) = 0; |
Yuichiro Hanada | dc02dd3 | 2018-09-13 03:09:06 | [diff] [blame] | 24 | |
| 25 | // Called when a touchable bounds of an InputMethodSurface changed. |
| 26 | virtual void OnTouchableBoundsChanged(InputMethodSurface* surface) = 0; |
Yuichiro Hanada | fe5239c | 2018-07-17 09:59:52 | [diff] [blame] | 27 | }; |
| 28 | |
| 29 | } // namespace exo |
| 30 | |
| 31 | #endif // COMPONENTS_EXO_INPUT_METHOD_SURFACE_MANAGER_H_ |