// Copyright 2018 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef COMPONENTS_EXO_INPUT_METHOD_SURFACE_MANAGER_H_
#define COMPONENTS_EXO_INPUT_METHOD_SURFACE_MANAGER_H_

namespace exo {

class InputMethodSurface;

class InputMethodSurfaceManager {
 public:
  virtual ~InputMethodSurfaceManager() = default;

  // Gets the InputMethodSurface currently used.
  virtual InputMethodSurface* GetSurface() const = 0;

  // Adds an InputMethodSurface to the manager.
  virtual void AddSurface(InputMethodSurface* surface) = 0;

  // Removes an InputMethodSurface from the manager.
  virtual void RemoveSurface(InputMethodSurface* surface) = 0;

  // Called when a touchable bounds of an InputMethodSurface changed.
  virtual void OnTouchableBoundsChanged(InputMethodSurface* surface) = 0;
};

}  // namespace exo

#endif  // COMPONENTS_EXO_INPUT_METHOD_SURFACE_MANAGER_H_
