blob: ceac24183cc7f21c8b514bda9b8f8294ae44c734 [file] [log] [blame]
Yuichiro Hanadafe5239c2018-07-17 09:59:521// 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
8namespace exo {
9
10class InputMethodSurface;
11
12class 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 Hanadadc02dd32018-09-13 03:09:0622 // Removes an InputMethodSurface from the manager.
Yuichiro Hanadafe5239c2018-07-17 09:59:5223 virtual void RemoveSurface(InputMethodSurface* surface) = 0;
Yuichiro Hanadadc02dd32018-09-13 03:09:0624
25 // Called when a touchable bounds of an InputMethodSurface changed.
26 virtual void OnTouchableBoundsChanged(InputMethodSurface* surface) = 0;
Yuichiro Hanadafe5239c2018-07-17 09:59:5227};
28
29} // namespace exo
30
31#endif // COMPONENTS_EXO_INPUT_METHOD_SURFACE_MANAGER_H_