1 // Copyright (c) 2012 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.
5 #ifndef UI_AURA_CLIENT_CAPTURE_CLIENT_H_
6 #define UI_AURA_CLIENT_CAPTURE_CLIENT_H_
8 #include "ui/aura/aura_export.h"
15 // An interface implemented by an object that manages input capture.
16 class AURA_EXPORT CaptureClient
{
18 // Does a capture on the |window|.
19 virtual void SetCapture(Window
* window
) = 0;
21 // Releases a capture from the |window|.
22 virtual void ReleaseCapture(Window
* window
) = 0;
24 // Returns the current capture window. This may only return a Window if the
25 // Window that has capture is a child of the Window the CaptureClient is
26 // installed on. GetGlobalCaptureWindow() can be used to locate the Window
27 // that has capture regardless of the Window the CaptureClient is installed
29 virtual Window
* GetCaptureWindow() = 0;
31 // See description of GetCaptureWindow() for details.
32 virtual Window
* GetGlobalCaptureWindow() = 0;
35 virtual ~CaptureClient() {}
38 // Sets/Gets the capture client on the root Window.
39 AURA_EXPORT
void SetCaptureClient(Window
* root_window
,
40 CaptureClient
* client
);
41 AURA_EXPORT CaptureClient
* GetCaptureClient(Window
* root_window
);
43 // A utility function to get the current capture window. Returns NULL
44 // if the window doesn't have a root window, or there is no capture window.
45 AURA_EXPORT Window
* GetCaptureWindow(Window
* window
);
47 } // namespace clients
50 #endif // UI_AURA_CLIENT_CAPTURE_CLIENT_H_