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 "ash/wm/property_util.h" 6 7 #include "ash/ash_export.h" 8 #include "ash/screen_ash.h" 9 #include "ash/wm/window_properties.h" 10 #include "ash/wm/window_util.h" 11 #include "ui/aura/client/aura_constants.h" 12 #include "ui/aura/root_window.h" 13 #include "ui/aura/window.h" 14 #include "ui/base/ui_base_types.h" 15 #include "ui/gfx/rect.h" 16 17 namespace ash { 18 19 void SetRestoreBoundsInScreen(aura::Window* window, const gfx::Rect& bounds) { 20 window->SetProperty(aura::client::kRestoreBoundsKey, new gfx::Rect(bounds)); 21 } 22 23 void SetRestoreBoundsInParent(aura::Window* window, const gfx::Rect& bounds) { 24 SetRestoreBoundsInScreen(window, 25 ScreenAsh::ConvertRectToScreen(window->parent(), bounds)); 26 } 27 28 const gfx::Rect* GetRestoreBoundsInScreen(aura::Window* window) { 29 return window->GetProperty(aura::client::kRestoreBoundsKey); 30 } 31 32 gfx::Rect GetRestoreBoundsInParent(aura::Window* window) { 33 const gfx::Rect* rect = GetRestoreBoundsInScreen(window); 34 if (!rect) 35 return gfx::Rect(); 36 return ScreenAsh::ConvertRectFromScreen(window->parent(), *rect); 37 } 38 39 void ClearRestoreBounds(aura::Window* window) { 40 window->ClearProperty(aura::client::kRestoreBoundsKey); 41 } 42 43 void SetTrackedByWorkspace(aura::Window* window, bool value) { 44 window->SetProperty(internal::kWindowTrackedByWorkspaceKey, value); 45 } 46 47 bool GetTrackedByWorkspace(const aura::Window* window) { 48 return window->GetProperty(internal::kWindowTrackedByWorkspaceKey); 49 } 50 51 void SetIgnoredByShelf(aura::Window* window, bool value) { 52 window->SetProperty(internal::kIgnoredByShelfKey, value); 53 } 54 55 bool GetIgnoredByShelf(const aura::Window* window) { 56 return window->GetProperty(internal::kIgnoredByShelfKey); 57 } 58 59 void SetWindowAlwaysRestoresToRestoreBounds(aura::Window* window, bool value) { 60 window->SetProperty(internal::kWindowRestoresToRestoreBounds, value); 61 } 62 63 bool GetWindowAlwaysRestoresToRestoreBounds(const aura::Window* window) { 64 return window->GetProperty(internal::kWindowRestoresToRestoreBounds); 65 } 66 67 internal::RootWindowController* GetRootWindowController( 68 const aura::RootWindow* root_window) { 69 return root_window ? 70 root_window->GetProperty(internal::kRootWindowControllerKey) : NULL; 71 } 72 73 void SetRootWindowController(aura::RootWindow* root_window, 74 internal::RootWindowController* controller) { 75 root_window->SetProperty(internal::kRootWindowControllerKey, controller); 76 } 77 78 } // namespace ash 79