| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "ui/wm/core/shadow_controller.h" | 5 #include "ui/wm/core/shadow_controller.h" |
| 6 | 6 |
| 7 #include <utility> | 7 #include <utility> |
| 8 | 8 |
| 9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
| 10 #include "base/logging.h" | 10 #include "base/logging.h" |
| (...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 106 friend class base::RefCounted<Impl>; | 106 friend class base::RefCounted<Impl>; |
| 107 friend class ShadowController; | 107 friend class ShadowController; |
| 108 friend class ShadowController::TestApi; | 108 friend class ShadowController::TestApi; |
| 109 | 109 |
| 110 typedef std::map<aura::Window*, linked_ptr<Shadow> > WindowShadowMap; | 110 typedef std::map<aura::Window*, linked_ptr<Shadow> > WindowShadowMap; |
| 111 | 111 |
| 112 Impl(); | 112 Impl(); |
| 113 ~Impl() override; | 113 ~Impl() override; |
| 114 | 114 |
| 115 // Forwarded from ShadowController. | 115 // Forwarded from ShadowController. |
| 116 void OnWindowActivated(aura::Window* gained_active, | 116 void OnWindowActivated(ActivationReason reason, |
| 117 aura::Window* gained_active, |
| 117 aura::Window* lost_active); | 118 aura::Window* lost_active); |
| 118 | 119 |
| 119 // Checks if |window| is visible and contains a property requesting a shadow. | 120 // Checks if |window| is visible and contains a property requesting a shadow. |
| 120 bool ShouldShowShadowForWindow(aura::Window* window) const; | 121 bool ShouldShowShadowForWindow(aura::Window* window) const; |
| 121 | 122 |
| 122 // Returns |window|'s shadow from |window_shadows_|, or NULL if no shadow | 123 // Returns |window|'s shadow from |window_shadows_|, or NULL if no shadow |
| 123 // exists. | 124 // exists. |
| 124 Shadow* GetShadowForWindow(aura::Window* window); | 125 Shadow* GetShadowForWindow(aura::Window* window); |
| 125 | 126 |
| 126 // Updates the shadow styles for windows when activation changes. | 127 // Updates the shadow styles for windows when activation changes. |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 176 Shadow* shadow = GetShadowForWindow(window); | 177 Shadow* shadow = GetShadowForWindow(window); |
| 177 if (shadow) | 178 if (shadow) |
| 178 shadow->SetContentBounds(gfx::Rect(new_bounds.size())); | 179 shadow->SetContentBounds(gfx::Rect(new_bounds.size())); |
| 179 } | 180 } |
| 180 | 181 |
| 181 void ShadowController::Impl::OnWindowDestroyed(aura::Window* window) { | 182 void ShadowController::Impl::OnWindowDestroyed(aura::Window* window) { |
| 182 window_shadows_.erase(window); | 183 window_shadows_.erase(window); |
| 183 observer_manager_.Remove(window); | 184 observer_manager_.Remove(window); |
| 184 } | 185 } |
| 185 | 186 |
| 186 void ShadowController::Impl::OnWindowActivated(aura::Window* gained_active, | 187 void ShadowController::Impl::OnWindowActivated(ActivationReason reason, |
| 188 aura::Window* gained_active, |
| 187 aura::Window* lost_active) { | 189 aura::Window* lost_active) { |
| 188 if (gained_active) { | 190 if (gained_active) { |
| 189 Shadow* shadow = GetShadowForWindow(gained_active); | 191 Shadow* shadow = GetShadowForWindow(gained_active); |
| 190 if (shadow && !ShouldUseSmallShadowForWindow(gained_active)) | 192 if (shadow && !ShouldUseSmallShadowForWindow(gained_active)) |
| 191 shadow->SetStyle(Shadow::STYLE_ACTIVE); | 193 shadow->SetStyle(Shadow::STYLE_ACTIVE); |
| 192 } | 194 } |
| 193 if (lost_active) { | 195 if (lost_active) { |
| 194 Shadow* shadow = GetShadowForWindow(lost_active); | 196 Shadow* shadow = GetShadowForWindow(lost_active); |
| 195 if (shadow && !ShouldUseSmallShadowForWindow(lost_active)) { | 197 if (shadow && !ShouldUseSmallShadowForWindow(lost_active)) { |
| 196 shadow->SetStyle(GetShadowStyleForWindowLosingActive(lost_active, | 198 shadow->SetStyle(GetShadowStyleForWindowLosingActive(lost_active, |
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 264 : activation_client_(activation_client), | 266 : activation_client_(activation_client), |
| 265 impl_(Impl::GetInstance()) { | 267 impl_(Impl::GetInstance()) { |
| 266 // Watch for window activation changes. | 268 // Watch for window activation changes. |
| 267 activation_client_->AddObserver(this); | 269 activation_client_->AddObserver(this); |
| 268 } | 270 } |
| 269 | 271 |
| 270 ShadowController::~ShadowController() { | 272 ShadowController::~ShadowController() { |
| 271 activation_client_->RemoveObserver(this); | 273 activation_client_->RemoveObserver(this); |
| 272 } | 274 } |
| 273 | 275 |
| 274 void ShadowController::OnWindowActivated(aura::Window* gained_active, | 276 void ShadowController::OnWindowActivated(ActivationReason reason, |
| 277 aura::Window* gained_active, |
| 275 aura::Window* lost_active) { | 278 aura::Window* lost_active) { |
| 276 impl_->OnWindowActivated(gained_active, lost_active); | 279 impl_->OnWindowActivated(reason, gained_active, lost_active); |
| 277 } | 280 } |
| 278 | 281 |
| 279 // ShadowController::TestApi --------------------------------------------------- | 282 // ShadowController::TestApi --------------------------------------------------- |
| 280 | 283 |
| 281 Shadow* ShadowController::TestApi::GetShadowForWindow(aura::Window* window) { | 284 Shadow* ShadowController::TestApi::GetShadowForWindow(aura::Window* window) { |
| 282 return controller_->impl_->GetShadowForWindow(window); | 285 return controller_->impl_->GetShadowForWindow(window); |
| 283 } | 286 } |
| 284 | 287 |
| 285 } // namespace wm | 288 } // namespace wm |
| OLD | NEW |