Separate Simple Backend creation from initialization.
[chromium-blink-merge.git] / ash / wm / window_properties.h
blob21d7ae9e5dfedf7dbe12bf73b0c7cfbe2b0e116a
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"
13 namespace gfx {
14 class Rect;
17 namespace ash {
18 class FramePainter;
19 namespace internal {
20 class AlwaysOnTopController;
21 class RootWindowController;
23 // Shell-specific window property keys.
25 // Alphabetical sort.
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
49 kIgnoredByShelfKey;
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
59 kRestoreShowStateKey;
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
67 kSoloWindowHeaderKey;
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
76 // user.
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
108 } // namespace ash
110 #endif // ASH_WM_WINDOW_PROPERTIES_H_