Add a stub __cxa_demangle to disable LLVM's demangler.
[chromium-blink-merge.git] / ui / aura / client / capture_client.h
blob6d27a29d6572be00e110053b388f0c8bbdbe6a69
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"
10 namespace aura {
11 class Window;
13 namespace client {
15 // An interface implemented by an object that manages input capture.
16 class AURA_EXPORT CaptureClient {
17 public:
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
28 // on.
29 virtual Window* GetCaptureWindow() = 0;
31 // See description of GetCaptureWindow() for details.
32 virtual Window* GetGlobalCaptureWindow() = 0;
34 protected:
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
48 } // namespace aura
50 #endif // UI_AURA_CLIENT_CAPTURE_CLIENT_H_