Windows should animate when they are about to get docked at screen edges.
[chromium-blink-merge.git] / ash / wm / window_properties.h
blobd32e368db434e9787c46a8ced478912dacaec4be
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 RootWindowController;
22 // Shell-specific window property keys.
24 // Alphabetical sort.
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;
30 // A property key to store display_id an aura::RootWindow is mapped to.
31 extern const aura::WindowProperty<int64>* const kDisplayIdKey;
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;
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;
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;
49 // True if this window is an attached panel.
50 ASH_EXPORT extern const aura::WindowProperty<bool>* const kPanelAttachedKey;
52 extern const aura::WindowProperty<RootWindowController*>* const
53 kRootWindowControllerKey;
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;
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;
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;
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;
77 // Property to tell if the container uses the screen coordinates.
78 extern const aura::WindowProperty<bool>* const kUsesScreenCoordinatesKey;
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;
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;
89 // True if the window is controlled by the workspace manager.
90 extern const aura::WindowProperty<bool>* const
91 kWindowTrackedByWorkspaceKey;
93 // Alphabetical sort.
95 } // namespace internal
96 } // namespace ash
98 #endif // ASH_WM_WINDOW_PROPERTIES_H_