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 ASH_WM_WINDOW_PROPERTIES_H_
6 #define ASH_WM_WINDOW_PROPERTIES_H_
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"
20 class AlwaysOnTopController
;
21 class RootWindowController
;
23 // Shell-specific window property keys.
27 // A Key to store AlwaysOnTopController per RootWindow. The value is
28 // owned by the RootWindow.
29 extern const aura::WindowProperty
<internal::AlwaysOnTopController
*>* const
30 kAlwaysOnTopControllerKey
;
32 // A property key to indicate that an in progress drag should be continued
33 // after the window is reparented to another container.
34 extern const aura::WindowProperty
<bool>* const kContinueDragAfterReparent
;
36 // A property key to indicate that the user is cycling through workspaces.
37 // The property should only be set on the root window.
38 ASH_EXPORT
extern const aura::WindowProperty
<bool>* const
39 kCyclingThroughWorkspacesKey
;
41 // A property key to disable the frame painter policy for solo windows.
42 // It is only available for root windows.
43 ASH_EXPORT
extern const aura::WindowProperty
<bool>* const
44 kIgnoreSoloWindowFramePainterPolicy
;
46 // True if the window is ignored by the shelf layout manager for purposes of
47 // darkening the shelf.
48 extern const aura::WindowProperty
<bool>* const
51 // True if this is a browser window in immersive mode.
52 ASH_EXPORT
extern const aura::WindowProperty
<bool>* const kImmersiveModeKey
;
54 // True if this window is an attached panel.
55 ASH_EXPORT
extern const aura::WindowProperty
<bool>* const kPanelAttachedKey
;
57 // Used to remember the show state before the window was minimized.
58 extern const aura::WindowProperty
<ui::WindowShowState
>* const
61 extern const aura::WindowProperty
<RootWindowController
*>* const
62 kRootWindowControllerKey
;
64 // RootWindow property to indicate if the window in the active workspace should
65 // use the transparent "solo-window" header style.
66 ASH_EXPORT
extern const aura::WindowProperty
<bool>* const
69 // If this is set to true, the window stays in the same root window
70 // even if the bounds outside of its root window is set.
71 // This is exported as it's used in the tests.
72 ASH_EXPORT
extern const aura::WindowProperty
<bool>* const
73 kStayInSameRootWindowKey
;
75 // A property key to remember if a windows position or size was changed by a
77 ASH_EXPORT
extern const aura::WindowProperty
<bool>* const
78 kUserChangedWindowPositionOrSizeKey
;
80 // A property to remember the window position which was set before the
81 // auto window position manager changed the window bounds, so that it can get
82 // restored when only this one window gets shown.
83 ASH_EXPORT
extern const aura::WindowProperty
<gfx::Rect
*>* const
84 kPreAutoManagedWindowBoundsKey
;
86 // Property to tell if the container uses the screen coordinates.
87 extern const aura::WindowProperty
<bool>* const kUsesScreenCoordinatesKey
;
89 extern const aura::WindowProperty
<WindowPersistsAcrossAllWorkspacesType
>* const
90 kWindowPersistsAcrossAllWorkspacesKey
;
92 // A property key to remember if a windows position can be managed by the
93 // workspace manager or not.
94 ASH_EXPORT
extern const aura::WindowProperty
<bool>* const
95 kWindowPositionManagedKey
;
97 // A property key to tell the workspace layout manager to always restore the
98 // window to the restore-bounds (false by default).
99 extern const aura::WindowProperty
<bool>* const kWindowRestoresToRestoreBounds
;
101 // True if the window is controlled by the workspace manager.
102 extern const aura::WindowProperty
<bool>* const
103 kWindowTrackedByWorkspaceKey
;
105 // Alphabetical sort.
107 } // namespace internal
110 #endif // ASH_WM_WINDOW_PROPERTIES_H_