| // Copyright 2019 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_POINTER_CONSTRAINT_DELEGATE_H_ |
| #define COMPONENTS_EXO_POINTER_CONSTRAINT_DELEGATE_H_ |
| |
| namespace exo { |
| |
| class Surface; |
| |
| class PointerConstraintDelegate { |
| public: |
| virtual ~PointerConstraintDelegate() = default; |
| |
| // Called when this lock is broken for any reason. Possibly: |
| // - A user action broke the lock. |
| // - The lock was granted to a different client. |
| // - The pointer was destroyed while the lock was active. |
| // |
| // No matter the case, this delegate no longer holds the lock and therefore |
| // should not call UnconstrainPointer(). |
| virtual void OnConstraintBroken() = 0; |
| |
| // Callback to access the surface which this delegate wants to lock the |
| // curstor for. |
| virtual Surface* GetConstrainedSurface() = 0; |
| }; |
| |
| } // namespace exo |
| |
| #endif // COMPONENTS_EXO_POINTER_CONSTRAINT_DELEGATE_H_ |