blob: 7ebcaee5b7eecbf53774da09daa6b850c7bc64c1 [file] [log] [blame]
// Copyright (c) 2012 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 UI_AURA_CLIENT_CAPTURE_DELEGATE_H_
#define UI_AURA_CLIENT_CAPTURE_DELEGATE_H_
#include "ui/aura/aura_export.h"
namespace aura {
class Window;
namespace client {
// This interface provides API to change the root Window's capture state without
// exposing them as RootWindow API.
class AURA_EXPORT CaptureDelegate {
public:
// Called when a capture is set on |new_capture| and/or a capture is
// released on |old_capture|.
// NOTE: |old_capture| and |new_capture| are not necessarily contained in the
// window hierarchy of the delegate.
virtual void UpdateCapture(aura::Window* old_capture,
aura::Window* new_capture) = 0;
// Called when another root gets capture.
virtual void OnOtherRootGotCapture() = 0;
// Sets/Release a native capture on host windows.
virtual void SetNativeCapture() = 0;
virtual void ReleaseNativeCapture() = 0;
protected:
virtual ~CaptureDelegate() {}
};
} // namespace client
} // namespace aura
#endif // UI_AURA_CLIENT_CAPTURE_DELEGATE_H_