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/root_window.h" 8 #include "ui/aura/window_property.h" 9 10 DECLARE_WINDOW_PROPERTY_TYPE(aura::client::CaptureClient*) 11 12 namespace aura { 13 namespace client { 14 15 DEFINE_WINDOW_PROPERTY_KEY( 16 CaptureClient*, kRootWindowCaptureClientKey, NULL); 17 18 void SetCaptureClient(Window* root_window, CaptureClient* client) { 19 root_window->SetProperty(kRootWindowCaptureClientKey, client); 20 } 21 22 CaptureClient* GetCaptureClient(Window* root_window) { 23 return root_window ? 24 root_window->GetProperty(kRootWindowCaptureClientKey) : NULL; 25 } 26 27 Window* 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