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 #ifndef ASH_WM_WINDOW_PROPERTIES_H_ 6 #define ASH_WM_WINDOW_PROPERTIES_H_ 7 8 #include "ash/ash_export.h" 9 #include "ash/wm/property_util.h" 10 #include "ui/aura/window.h" 11 #include "ui/base/ui_base_types.h" 12 13 namespace gfx { 14 class Rect; 15 } 16 17 namespace ash { 18 class FramePainter; 19 namespace internal { 20 class RootWindowController; 21 22 // Shell-specific window property keys. 23 24 // Alphabetical sort. 25 26 // A property key to indicate that an in progress drag should be continued 27 // after the window is reparented to another container. 28 extern const aura::WindowProperty<bool>* const kContinueDragAfterReparent; 29 30 // A property key to store display_id an aura::RootWindow is mapped to. 31 extern const aura::WindowProperty<int64>* const kDisplayIdKey; 32 33 // A property key to indicate whether there is any chrome at all that cannot be 34 // hidden when the window is fullscreen. This is unrelated to whether the full 35 // chrome can be revealed by hovering the mouse at the top of the screen. 36 ASH_EXPORT extern const aura::WindowProperty<bool>* const 37 kFullscreenUsesMinimalChromeKey; 38 39 // A property key to disable the frame painter policy for solo windows. 40 // It is only available for root windows. 41 ASH_EXPORT extern const aura::WindowProperty<bool>* const 42 kIgnoreSoloWindowFramePainterPolicy; 43 44 // True if the window is ignored by the shelf layout manager for purposes of 45 // darkening the shelf. 46 extern const aura::WindowProperty<bool>* const 47 kIgnoredByShelfKey; 48 49 // True if this window is an attached panel. 50 ASH_EXPORT extern const aura::WindowProperty<bool>* const kPanelAttachedKey; 51 52 extern const aura::WindowProperty<RootWindowController*>* const 53 kRootWindowControllerKey; 54 55 // RootWindow property to indicate if the window in the active workspace should 56 // use the transparent "solo-window" header style. 57 ASH_EXPORT extern const aura::WindowProperty<bool>* const 58 kSoloWindowHeaderKey; 59 60 // If this is set to true, the window stays in the same root window 61 // even if the bounds outside of its root window is set. 62 // This is exported as it's used in the tests. 63 ASH_EXPORT extern const aura::WindowProperty<bool>* const 64 kStayInSameRootWindowKey; 65 66 // A property key to remember if a windows position or size was changed by a 67 // user. 68 ASH_EXPORT extern const aura::WindowProperty<bool>* const 69 kUserChangedWindowPositionOrSizeKey; 70 71 // A property to remember the window position which was set before the 72 // auto window position manager changed the window bounds, so that it can get 73 // restored when only this one window gets shown. 74 ASH_EXPORT extern const aura::WindowProperty<gfx::Rect*>* const 75 kPreAutoManagedWindowBoundsKey; 76 77 // Property to tell if the container uses the screen coordinates. 78 extern const aura::WindowProperty<bool>* const kUsesScreenCoordinatesKey; 79 80 // A property key to remember if a windows position can be managed by the 81 // workspace manager or not. 82 ASH_EXPORT extern const aura::WindowProperty<bool>* const 83 kWindowPositionManagedKey; 84 85 // A property key to tell the workspace layout manager to always restore the 86 // window to the restore-bounds (false by default). 87 extern const aura::WindowProperty<bool>* const kWindowRestoresToRestoreBounds; 88 89 // True if the window is controlled by the workspace manager. 90 extern const aura::WindowProperty<bool>* const 91 kWindowTrackedByWorkspaceKey; 92 93 // Alphabetical sort. 94 95 } // namespace internal 96 } // namespace ash 97 98 #endif // ASH_WM_WINDOW_PROPERTIES_H_ 99