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.
4
5#include "ui/aura/client/capture_client.h"
6
7#include "ui/aura/window_event_dispatcher.h"
8#include "ui/aura/window_property.h"
9
10DECLARE_WINDOW_PROPERTY_TYPE(aura::client::CaptureClient*)
11
12namespace aura {
13namespace client {
14
15DEFINE_WINDOW_PROPERTY_KEY(
16    CaptureClient*, kRootWindowCaptureClientKey, NULL);
17
18void SetCaptureClient(Window* root_window, CaptureClient* client) {
19  root_window->SetProperty(kRootWindowCaptureClientKey, client);
20}
21
22CaptureClient* GetCaptureClient(Window* root_window) {
23  return root_window ?
24      root_window->GetProperty(kRootWindowCaptureClientKey) : NULL;
25}
26
27Window* GetCaptureWindow(Window* window) {
28  Window* root_window = window->GetRootWindow();
29  if (!root_window)
30    return NULL;
31  CaptureClient* capture_client = GetCaptureClient(root_window);
32  return capture_client ? capture_client->GetCaptureWindow() : NULL;
33}
34
35}  // namespace client
36}  // namespace aura
37