Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(12)

Side by Side Diff: ash/aura/wm_window_aura.h

Issue 2629643002: chromeos: Renames WmWindowAura to WmWindow (Closed)
Patch Set: feedback Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « ash/aura/wm_shell_aura.cc ('k') | ash/aura/wm_window_aura.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright 2016 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_AURA_WM_WINDOW_AURA_H_
6 #define ASH_AURA_WM_WINDOW_AURA_H_
7
8 #include "ash/ash_export.h"
9 #include "ash/common/wm_window.h"
10 #include "base/macros.h"
11 #include "base/observer_list.h"
12 #include "ui/aura/window_observer.h"
13 #include "ui/wm/core/transient_window_observer.h"
14
15 namespace ash {
16
17 class WmWindowAuraTestApi;
18
19 // WmWindowAura is tied to the life of the underlying aura::Window. Use the
20 // static Get() function to obtain a WmWindowAura from an aura::Window.
21 class ASH_EXPORT WmWindowAura : public WmWindow,
22 public aura::WindowObserver,
23 public ::wm::TransientWindowObserver {
24 public:
25 // NOTE: this class is owned by the corresponding window. You shouldn't delete
26 // TODO(sky): friend deleter and make private.
27 ~WmWindowAura() override;
28
29 // Returns a WmWindow for an aura::Window, creating if necessary. |window| may
30 // be null, in which case null is returned.
31 static WmWindowAura* Get(aura::Window* window) {
32 return const_cast<WmWindowAura*>(
33 Get(const_cast<const aura::Window*>(window)));
34 }
35 static const WmWindowAura* Get(const aura::Window* window);
36
37 static std::vector<WmWindow*> FromAuraWindows(
38 const std::vector<aura::Window*>& aura_windows);
39 static std::vector<aura::Window*> ToAuraWindows(
40 const std::vector<WmWindow*>& windows);
41
42 static aura::Window* GetAuraWindow(WmWindow* wm_window) {
43 return const_cast<aura::Window*>(
44 GetAuraWindow(const_cast<const WmWindow*>(wm_window)));
45 }
46 static const aura::Window* GetAuraWindow(const WmWindow* wm_window);
47
48 aura::Window* aura_window() { return window_; }
49 const aura::Window* aura_window() const { return window_; }
50
51 // See description of |children_use_extended_hit_region_|.
52 bool ShouldUseExtendedHitRegion() const;
53
54 wm::WindowState* GetWindowState() { return WmWindow::GetWindowState(); }
55
56 // WmWindow:
57 void Destroy() override;
58 const WmWindow* GetRootWindow() const override;
59 RootWindowController* GetRootWindowController() override;
60 WmShell* GetShell() const override;
61 void SetName(const char* name) override;
62 std::string GetName() const override;
63 void SetTitle(const base::string16& title) override;
64 base::string16 GetTitle() const override;
65 void SetShellWindowId(int id) override;
66 int GetShellWindowId() const override;
67 WmWindow* GetChildByShellWindowId(int id) override;
68 ui::wm::WindowType GetType() const override;
69 int GetAppType() const override;
70 void SetAppType(int app_type) const override;
71 ui::Layer* GetLayer() override;
72 bool GetLayerTargetVisibility() override;
73 bool GetLayerVisible() override;
74 display::Display GetDisplayNearestWindow() override;
75 bool HasNonClientArea() override;
76 int GetNonClientComponent(const gfx::Point& location) override;
77 gfx::Point ConvertPointToTarget(const WmWindow* target,
78 const gfx::Point& point) const override;
79 gfx::Point ConvertPointToScreen(const gfx::Point& point) const override;
80 gfx::Point ConvertPointFromScreen(const gfx::Point& point) const override;
81 gfx::Rect ConvertRectToScreen(const gfx::Rect& rect) const override;
82 gfx::Rect ConvertRectFromScreen(const gfx::Rect& rect) const override;
83 gfx::Size GetMinimumSize() const override;
84 gfx::Size GetMaximumSize() const override;
85 bool GetTargetVisibility() const override;
86 bool IsVisible() const override;
87 void SetOpacity(float opacity) override;
88 float GetTargetOpacity() const override;
89 gfx::Rect GetMinimizeAnimationTargetBoundsInScreen() const override;
90 void SetTransform(const gfx::Transform& transform) override;
91 gfx::Transform GetTargetTransform() const override;
92 bool IsSystemModal() const override;
93 bool GetBoolProperty(WmWindowProperty key) override;
94 void SetBoolProperty(WmWindowProperty key, bool value) override;
95 SkColor GetColorProperty(WmWindowProperty key) override;
96 void SetColorProperty(WmWindowProperty key, SkColor value) override;
97 int GetIntProperty(WmWindowProperty key) override;
98 void SetIntProperty(WmWindowProperty key, int value) override;
99 std::string GetStringProperty(WmWindowProperty key) override;
100 void SetStringProperty(WmWindowProperty key,
101 const std::string& value) override;
102 gfx::ImageSkia GetWindowIcon() override;
103 gfx::ImageSkia GetAppIcon() override;
104 const wm::WindowState* GetWindowState() const override;
105 WmWindow* GetToplevelWindow() override;
106 WmWindow* GetToplevelWindowForFocus() override;
107 void SetParentUsingContext(WmWindow* context,
108 const gfx::Rect& screen_bounds) override;
109 void AddChild(WmWindow* window) override;
110 void RemoveChild(WmWindow* child) override;
111 const WmWindow* GetParent() const override;
112 const WmWindow* GetTransientParent() const override;
113 std::vector<WmWindow*> GetTransientChildren() override;
114 bool MoveToEventRoot(const ui::Event& event) override;
115 void SetLayoutManager(
116 std::unique_ptr<WmLayoutManager> layout_manager) override;
117 WmLayoutManager* GetLayoutManager() override;
118 void SetVisibilityChangesAnimated() override;
119 void SetVisibilityAnimationType(int type) override;
120 void SetVisibilityAnimationDuration(base::TimeDelta delta) override;
121 void SetVisibilityAnimationTransition(
122 ::wm::WindowVisibilityAnimationTransition transition) override;
123 void Animate(::wm::WindowAnimationType type) override;
124 void StopAnimatingProperty(
125 ui::LayerAnimationElement::AnimatableProperty property) override;
126 void SetChildWindowVisibilityChangesAnimated() override;
127 void SetMasksToBounds(bool value) override;
128 void SetBounds(const gfx::Rect& bounds) override;
129 void SetBoundsWithTransitionDelay(const gfx::Rect& bounds,
130 base::TimeDelta delta) override;
131 void SetBoundsDirect(const gfx::Rect& bounds) override;
132 void SetBoundsDirectAnimated(const gfx::Rect& bounds) override;
133 void SetBoundsDirectCrossFade(const gfx::Rect& bounds) override;
134 void SetBoundsInScreen(const gfx::Rect& bounds_in_screen,
135 const display::Display& dst_display) override;
136 gfx::Rect GetBoundsInScreen() const override;
137 const gfx::Rect& GetBounds() const override;
138 gfx::Rect GetTargetBounds() override;
139 void ClearRestoreBounds() override;
140 void SetRestoreBoundsInScreen(const gfx::Rect& bounds) override;
141 gfx::Rect GetRestoreBoundsInScreen() const override;
142 bool Contains(const WmWindow* other) const override;
143 void SetShowState(ui::WindowShowState show_state) override;
144 ui::WindowShowState GetShowState() const override;
145 void SetRestoreShowState(ui::WindowShowState show_state) override;
146 void SetRestoreOverrides(const gfx::Rect& bounds_override,
147 ui::WindowShowState window_state_override) override;
148 void SetLockedToRoot(bool value) override;
149 bool IsLockedToRoot() const override;
150 void SetCapture() override;
151 bool HasCapture() override;
152 void ReleaseCapture() override;
153 bool HasRestoreBounds() const override;
154 bool CanMaximize() const override;
155 bool CanMinimize() const override;
156 bool CanResize() const override;
157 bool CanActivate() const override;
158 void StackChildAtTop(WmWindow* child) override;
159 void StackChildAtBottom(WmWindow* child) override;
160 void StackChildAbove(WmWindow* child, WmWindow* target) override;
161 void StackChildBelow(WmWindow* child, WmWindow* target) override;
162 void SetPinned(bool trusted) override;
163 void SetAlwaysOnTop(bool value) override;
164 bool IsAlwaysOnTop() const override;
165 void Hide() override;
166 void Show() override;
167 views::Widget* GetInternalWidget() override;
168 void CloseWidget() override;
169 void SetFocused() override;
170 bool IsFocused() const override;
171 bool IsActive() const override;
172 void Activate() override;
173 void Deactivate() override;
174 void SetFullscreen() override;
175 void Maximize() override;
176 void Minimize() override;
177 void Unminimize() override;
178 std::vector<WmWindow*> GetChildren() override;
179 void ShowResizeShadow(int component) override;
180 void HideResizeShadow() override;
181 void InstallResizeHandleWindowTargeter(
182 ImmersiveFullscreenController* immersive_fullscreen_controller) override;
183 void SetBoundsInScreenBehaviorForChildren(
184 BoundsInScreenBehavior behavior) override;
185 void SetSnapsChildrenToPhysicalPixelBoundary() override;
186 void SnapToPixelBoundaryIfNecessary() override;
187 void SetChildrenUseExtendedHitRegion() override;
188 std::unique_ptr<views::View> CreateViewWithRecreatedLayers() override;
189 void AddObserver(WmWindowObserver* observer) override;
190 void RemoveObserver(WmWindowObserver* observer) override;
191 bool HasObserver(const WmWindowObserver* observer) const override;
192 void AddTransientWindowObserver(WmTransientWindowObserver* observer) override;
193 void RemoveTransientWindowObserver(
194 WmTransientWindowObserver* observer) override;
195 void AddLimitedPreTargetHandler(ui::EventHandler* handler) override;
196 void RemoveLimitedPreTargetHandler(ui::EventHandler* handler) override;
197
198 protected:
199 explicit WmWindowAura(aura::Window* window);
200
201 // Returns true if a WmWindowAura has been created for |window|.
202 static bool HasInstance(const aura::Window* window);
203
204 base::ObserverList<WmWindowObserver>& observers() { return observers_; }
205
206 // aura::WindowObserver:
207 void OnWindowHierarchyChanging(const HierarchyChangeParams& params) override;
208 void OnWindowHierarchyChanged(const HierarchyChangeParams& params) override;
209 void OnWindowStackingChanged(aura::Window* window) override;
210 void OnWindowPropertyChanged(aura::Window* window,
211 const void* key,
212 intptr_t old) override;
213 void OnWindowBoundsChanged(aura::Window* window,
214 const gfx::Rect& old_bounds,
215 const gfx::Rect& new_bounds) override;
216 void OnWindowDestroying(aura::Window* window) override;
217 void OnWindowDestroyed(aura::Window* window) override;
218 void OnWindowVisibilityChanging(aura::Window* window, bool visible) override;
219 void OnWindowVisibilityChanged(aura::Window* window, bool visible) override;
220 void OnWindowTitleChanged(aura::Window* window) override;
221
222 // ::wm::TransientWindowObserver overrides:
223 void OnTransientChildAdded(aura::Window* window,
224 aura::Window* transient) override;
225 void OnTransientChildRemoved(aura::Window* window,
226 aura::Window* transient) override;
227
228 private:
229 friend class WmWindowAuraTestApi;
230
231 aura::Window* window_;
232
233 base::ObserverList<WmWindowObserver> observers_;
234
235 bool added_transient_observer_ = false;
236 base::ObserverList<WmTransientWindowObserver> transient_observers_;
237
238 // If true child windows should get a slightly larger hit region to make
239 // resizing easier.
240 bool children_use_extended_hit_region_ = false;
241
242 // Default value for |use_empty_minimum_size_for_testing_|.
243 static bool default_use_empty_minimum_size_for_testing_;
244
245 // If true the minimum size is 0x0, default is minimum size comes from widget.
246 bool use_empty_minimum_size_for_testing_;
247
248 DISALLOW_COPY_AND_ASSIGN(WmWindowAura);
249 };
250
251 } // namespace ash
252
253 #endif // ASH_AURA_WM_WINDOW_AURA_H_
OLDNEW
« no previous file with comments | « ash/aura/wm_shell_aura.cc ('k') | ash/aura/wm_window_aura.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698