| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 "ash/wm/overview/window_selector_item.h" | 5 #include "ash/wm/overview/window_selector_item.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "ash/common/shell_window_ids.h" | 10 #include "ash/common/shell_window_ids.h" |
| 11 #include "ash/common/wm/window_state.h" | 11 #include "ash/common/wm/window_state.h" |
| 12 #include "ash/common/wm/wm_lookup.h" | 12 #include "ash/common/wm_lookup.h" |
| 13 #include "ash/common/wm/wm_root_window_controller.h" | 13 #include "ash/common/wm_root_window_controller.h" |
| 14 #include "ash/common/wm/wm_window.h" | 14 #include "ash/common/wm_window.h" |
| 15 #include "ash/common/wm/wm_window_property.h" | 15 #include "ash/common/wm_window_property.h" |
| 16 #include "ash/material_design/material_design_controller.h" | 16 #include "ash/material_design/material_design_controller.h" |
| 17 #include "ash/wm/overview/overview_animation_type.h" | 17 #include "ash/wm/overview/overview_animation_type.h" |
| 18 #include "ash/wm/overview/scoped_overview_animation_settings.h" | 18 #include "ash/wm/overview/scoped_overview_animation_settings.h" |
| 19 #include "ash/wm/overview/scoped_overview_animation_settings_factory.h" | 19 #include "ash/wm/overview/scoped_overview_animation_settings_factory.h" |
| 20 #include "ash/wm/overview/scoped_transform_overview_window.h" | 20 #include "ash/wm/overview/scoped_transform_overview_window.h" |
| 21 #include "ash/wm/overview/window_selector.h" | 21 #include "ash/wm/overview/window_selector.h" |
| 22 #include "ash/wm/overview/window_selector_controller.h" | 22 #include "ash/wm/overview/window_selector_controller.h" |
| 23 #include "base/auto_reset.h" | 23 #include "base/auto_reset.h" |
| 24 #include "base/strings/string_util.h" | 24 #include "base/strings/string_util.h" |
| 25 #include "base/strings/utf_string_conversions.h" | 25 #include "base/strings/utf_string_conversions.h" |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 65 | 65 |
| 66 // Amount of blur applied to the label shadow | 66 // Amount of blur applied to the label shadow |
| 67 static const int kShadowBlur = 10; | 67 static const int kShadowBlur = 10; |
| 68 | 68 |
| 69 // Opacity for dimmed items. | 69 // Opacity for dimmed items. |
| 70 static const float kDimmedItemOpacity = 0.5f; | 70 static const float kDimmedItemOpacity = 0.5f; |
| 71 | 71 |
| 72 // Calculates the |window| bounds after being transformed to the selector's | 72 // Calculates the |window| bounds after being transformed to the selector's |
| 73 // space. With Material Design at most |title_height| is reserved above the | 73 // space. With Material Design at most |title_height| is reserved above the |
| 74 // |window|. The returned Rect is in virtual screen coordinates. | 74 // |window|. The returned Rect is in virtual screen coordinates. |
| 75 gfx::Rect GetTransformedBounds(wm::WmWindow* window, int title_height) { | 75 gfx::Rect GetTransformedBounds(WmWindow* window, int title_height) { |
| 76 gfx::RectF bounds( | 76 gfx::RectF bounds( |
| 77 window->GetRootWindow()->ConvertRectToScreen(window->GetTargetBounds())); | 77 window->GetRootWindow()->ConvertRectToScreen(window->GetTargetBounds())); |
| 78 gfx::Transform new_transform = TransformAboutPivot( | 78 gfx::Transform new_transform = TransformAboutPivot( |
| 79 gfx::Point(bounds.x(), bounds.y()), window->GetTargetTransform()); | 79 gfx::Point(bounds.x(), bounds.y()), window->GetTargetTransform()); |
| 80 new_transform.TransformRect(&bounds); | 80 new_transform.TransformRect(&bounds); |
| 81 | 81 |
| 82 // With Material Design the preview title is shown above the preview window. | 82 // With Material Design the preview title is shown above the preview window. |
| 83 // Hide the window header for apps or browser windows with no tabs (web apps) | 83 // Hide the window header for apps or browser windows with no tabs (web apps) |
| 84 // to avoid showing both the window header and the preview title. | 84 // to avoid showing both the window header and the preview title. |
| 85 if (ash::MaterialDesignController::IsOverviewMaterial()) { | 85 if (ash::MaterialDesignController::IsOverviewMaterial()) { |
| 86 gfx::RectF header_bounds(bounds); | 86 gfx::RectF header_bounds(bounds); |
| 87 header_bounds.set_height( | 87 header_bounds.set_height( |
| 88 std::min(window->GetIntProperty(wm::WmWindowProperty::TOP_VIEW_INSET), | 88 std::min(window->GetIntProperty(WmWindowProperty::TOP_VIEW_INSET), |
| 89 title_height)); | 89 title_height)); |
| 90 new_transform.TransformRect(&header_bounds); | 90 new_transform.TransformRect(&header_bounds); |
| 91 bounds.Inset(0, header_bounds.height(), 0, 0); | 91 bounds.Inset(0, header_bounds.height(), 0, 0); |
| 92 } | 92 } |
| 93 return ToEnclosingRect(bounds); | 93 return ToEnclosingRect(bounds); |
| 94 } | 94 } |
| 95 | 95 |
| 96 // Convenience method to fade in a Window with predefined animation settings. | 96 // Convenience method to fade in a Window with predefined animation settings. |
| 97 // Note: The fade in animation will occur after a delay where the delay is how | 97 // Note: The fade in animation will occur after a delay where the delay is how |
| 98 // long the lay out animations take. | 98 // long the lay out animations take. |
| 99 void SetupFadeInAfterLayout(views::Widget* widget) { | 99 void SetupFadeInAfterLayout(views::Widget* widget) { |
| 100 wm::WmWindow* window = wm::WmLookup::Get()->GetWindowForWidget(widget); | 100 WmWindow* window = WmLookup::Get()->GetWindowForWidget(widget); |
| 101 window->SetOpacity(0.0f); | 101 window->SetOpacity(0.0f); |
| 102 std::unique_ptr<ScopedOverviewAnimationSettings> | 102 std::unique_ptr<ScopedOverviewAnimationSettings> |
| 103 scoped_overview_animation_settings = | 103 scoped_overview_animation_settings = |
| 104 ScopedOverviewAnimationSettingsFactory::Get() | 104 ScopedOverviewAnimationSettingsFactory::Get() |
| 105 ->CreateOverviewAnimationSettings( | 105 ->CreateOverviewAnimationSettings( |
| 106 OverviewAnimationType:: | 106 OverviewAnimationType:: |
| 107 OVERVIEW_ANIMATION_ENTER_OVERVIEW_MODE_FADE_IN, | 107 OVERVIEW_ANIMATION_ENTER_OVERVIEW_MODE_FADE_IN, |
| 108 window); | 108 window); |
| 109 window->SetOpacity(1.0f); | 109 window->SetOpacity(1.0f); |
| 110 } | 110 } |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 147 | 147 |
| 148 gfx::Rect WindowSelectorItem::OverviewLabelButton::GetChildAreaBounds() { | 148 gfx::Rect WindowSelectorItem::OverviewLabelButton::GetChildAreaBounds() { |
| 149 gfx::Rect bounds = GetLocalBounds(); | 149 gfx::Rect bounds = GetLocalBounds(); |
| 150 if (ash::MaterialDesignController::IsOverviewMaterial()) | 150 if (ash::MaterialDesignController::IsOverviewMaterial()) |
| 151 bounds.Inset(kHorizontalLabelPaddingMD, 0, kHorizontalLabelPaddingMD, 0); | 151 bounds.Inset(kHorizontalLabelPaddingMD, 0, kHorizontalLabelPaddingMD, 0); |
| 152 else | 152 else |
| 153 bounds.Inset(0, top_padding_, 0, 0); | 153 bounds.Inset(0, top_padding_, 0, 0); |
| 154 return bounds; | 154 return bounds; |
| 155 } | 155 } |
| 156 | 156 |
| 157 WindowSelectorItem::WindowSelectorItem(wm::WmWindow* window, | 157 WindowSelectorItem::WindowSelectorItem(WmWindow* window, |
| 158 WindowSelector* window_selector) | 158 WindowSelector* window_selector) |
| 159 : dimmed_(false), | 159 : dimmed_(false), |
| 160 root_window_(window->GetRootWindow()), | 160 root_window_(window->GetRootWindow()), |
| 161 transform_window_(window), | 161 transform_window_(window), |
| 162 in_bounds_update_(false), | 162 in_bounds_update_(false), |
| 163 window_label_button_view_(nullptr), | 163 window_label_button_view_(nullptr), |
| 164 close_button_(new OverviewCloseButton(this)), | 164 close_button_(new OverviewCloseButton(this)), |
| 165 window_selector_(window_selector) { | 165 window_selector_(window_selector) { |
| 166 const bool material = ash::MaterialDesignController::IsOverviewMaterial(); | 166 const bool material = ash::MaterialDesignController::IsOverviewMaterial(); |
| 167 CreateWindowLabel(window->GetTitle()); | 167 CreateWindowLabel(window->GetTitle()); |
| (...skipping 15 matching lines...) Expand all Loading... |
| 183 // Align the center of the button with position (0, 0) so that the | 183 // Align the center of the button with position (0, 0) so that the |
| 184 // translate transform does not need to take the button dimensions into | 184 // translate transform does not need to take the button dimensions into |
| 185 // account. | 185 // account. |
| 186 if (material) { | 186 if (material) { |
| 187 close_button_rect.set_x(-close_button_rect.width()); | 187 close_button_rect.set_x(-close_button_rect.width()); |
| 188 close_button_rect.set_y(-close_button_rect.height()); | 188 close_button_rect.set_y(-close_button_rect.height()); |
| 189 } else { | 189 } else { |
| 190 close_button_rect.set_x(-close_button_rect.width() / 2); | 190 close_button_rect.set_x(-close_button_rect.width() / 2); |
| 191 close_button_rect.set_y(-close_button_rect.height() / 2); | 191 close_button_rect.set_y(-close_button_rect.height() / 2); |
| 192 } | 192 } |
| 193 wm::WmLookup::Get() | 193 WmLookup::Get() |
| 194 ->GetWindowForWidget(&close_button_widget_) | 194 ->GetWindowForWidget(&close_button_widget_) |
| 195 ->SetBounds(close_button_rect); | 195 ->SetBounds(close_button_rect); |
| 196 | 196 |
| 197 GetWindow()->AddObserver(this); | 197 GetWindow()->AddObserver(this); |
| 198 } | 198 } |
| 199 | 199 |
| 200 WindowSelectorItem::~WindowSelectorItem() { | 200 WindowSelectorItem::~WindowSelectorItem() { |
| 201 GetWindow()->RemoveObserver(this); | 201 GetWindow()->RemoveObserver(this); |
| 202 } | 202 } |
| 203 | 203 |
| 204 wm::WmWindow* WindowSelectorItem::GetWindow() { | 204 WmWindow* WindowSelectorItem::GetWindow() { |
| 205 return transform_window_.window(); | 205 return transform_window_.window(); |
| 206 } | 206 } |
| 207 | 207 |
| 208 void WindowSelectorItem::RestoreWindow() { | 208 void WindowSelectorItem::RestoreWindow() { |
| 209 transform_window_.RestoreWindow(); | 209 transform_window_.RestoreWindow(); |
| 210 } | 210 } |
| 211 | 211 |
| 212 void WindowSelectorItem::ShowWindowOnExit() { | 212 void WindowSelectorItem::ShowWindowOnExit() { |
| 213 transform_window_.ShowWindowOnExit(); | 213 transform_window_.ShowWindowOnExit(); |
| 214 } | 214 } |
| 215 | 215 |
| 216 void WindowSelectorItem::PrepareForOverview() { | 216 void WindowSelectorItem::PrepareForOverview() { |
| 217 transform_window_.PrepareForOverview(); | 217 transform_window_.PrepareForOverview(); |
| 218 } | 218 } |
| 219 | 219 |
| 220 bool WindowSelectorItem::Contains(const wm::WmWindow* target) const { | 220 bool WindowSelectorItem::Contains(const WmWindow* target) const { |
| 221 return transform_window_.Contains(target); | 221 return transform_window_.Contains(target); |
| 222 } | 222 } |
| 223 | 223 |
| 224 void WindowSelectorItem::SetBounds(const gfx::Rect& target_bounds, | 224 void WindowSelectorItem::SetBounds(const gfx::Rect& target_bounds, |
| 225 OverviewAnimationType animation_type) { | 225 OverviewAnimationType animation_type) { |
| 226 if (in_bounds_update_) | 226 if (in_bounds_update_) |
| 227 return; | 227 return; |
| 228 base::AutoReset<bool> auto_reset_in_bounds_update(&in_bounds_update_, true); | 228 base::AutoReset<bool> auto_reset_in_bounds_update(&in_bounds_update_, true); |
| 229 target_bounds_ = target_bounds; | 229 target_bounds_ = target_bounds; |
| 230 | 230 |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 268 void WindowSelectorItem::ButtonPressed(views::Button* sender, | 268 void WindowSelectorItem::ButtonPressed(views::Button* sender, |
| 269 const ui::Event& event) { | 269 const ui::Event& event) { |
| 270 if (sender == close_button_) { | 270 if (sender == close_button_) { |
| 271 transform_window_.Close(); | 271 transform_window_.Close(); |
| 272 return; | 272 return; |
| 273 } | 273 } |
| 274 CHECK(sender == window_label_button_view_); | 274 CHECK(sender == window_label_button_view_); |
| 275 window_selector_->SelectWindow(transform_window_.window()); | 275 window_selector_->SelectWindow(transform_window_.window()); |
| 276 } | 276 } |
| 277 | 277 |
| 278 void WindowSelectorItem::OnWindowDestroying(wm::WmWindow* window) { | 278 void WindowSelectorItem::OnWindowDestroying(WmWindow* window) { |
| 279 window->RemoveObserver(this); | 279 window->RemoveObserver(this); |
| 280 transform_window_.OnWindowDestroyed(); | 280 transform_window_.OnWindowDestroyed(); |
| 281 } | 281 } |
| 282 | 282 |
| 283 void WindowSelectorItem::OnWindowTitleChanged(wm::WmWindow* window) { | 283 void WindowSelectorItem::OnWindowTitleChanged(WmWindow* window) { |
| 284 // TODO(flackr): Maybe add the new title to a vector of titles so that we can | 284 // TODO(flackr): Maybe add the new title to a vector of titles so that we can |
| 285 // filter any of the titles the window had while in the overview session. | 285 // filter any of the titles the window had while in the overview session. |
| 286 window_label_button_view_->SetText(window->GetTitle()); | 286 window_label_button_view_->SetText(window->GetTitle()); |
| 287 UpdateCloseButtonAccessibilityName(); | 287 UpdateCloseButtonAccessibilityName(); |
| 288 } | 288 } |
| 289 | 289 |
| 290 void WindowSelectorItem::SetItemBounds(const gfx::Rect& target_bounds, | 290 void WindowSelectorItem::SetItemBounds(const gfx::Rect& target_bounds, |
| 291 OverviewAnimationType animation_type) { | 291 OverviewAnimationType animation_type) { |
| 292 DCHECK(root_window_ == GetWindow()->GetRootWindow()); | 292 DCHECK(root_window_ == GetWindow()->GetRootWindow()); |
| 293 gfx::Rect screen_rect = transform_window_.GetTargetBoundsInScreen(); | 293 gfx::Rect screen_rect = transform_window_.GetTargetBoundsInScreen(); |
| 294 | 294 |
| 295 // Avoid division by zero by ensuring screen bounds is not empty. | 295 // Avoid division by zero by ensuring screen bounds is not empty. |
| 296 gfx::Size screen_size(screen_rect.size()); | 296 gfx::Size screen_size(screen_rect.size()); |
| 297 screen_size.SetToMax(gfx::Size(1, 1)); | 297 screen_size.SetToMax(gfx::Size(1, 1)); |
| 298 screen_rect.set_size(screen_size); | 298 screen_rect.set_size(screen_size); |
| 299 | 299 |
| 300 int top_view_inset = 0; | 300 int top_view_inset = 0; |
| 301 int title_height = 0; | 301 int title_height = 0; |
| 302 if (ash::MaterialDesignController::IsOverviewMaterial()) { | 302 if (ash::MaterialDesignController::IsOverviewMaterial()) { |
| 303 top_view_inset = | 303 top_view_inset = |
| 304 GetWindow()->GetIntProperty(wm::WmWindowProperty::TOP_VIEW_INSET); | 304 GetWindow()->GetIntProperty(WmWindowProperty::TOP_VIEW_INSET); |
| 305 title_height = close_button_->GetPreferredSize().height(); | 305 title_height = close_button_->GetPreferredSize().height(); |
| 306 } | 306 } |
| 307 gfx::Rect selector_item_bounds = | 307 gfx::Rect selector_item_bounds = |
| 308 ScopedTransformOverviewWindow::ShrinkRectToFitPreservingAspectRatio( | 308 ScopedTransformOverviewWindow::ShrinkRectToFitPreservingAspectRatio( |
| 309 screen_rect, target_bounds, top_view_inset, title_height); | 309 screen_rect, target_bounds, top_view_inset, title_height); |
| 310 gfx::Transform transform = ScopedTransformOverviewWindow::GetTransformForRect( | 310 gfx::Transform transform = ScopedTransformOverviewWindow::GetTransformForRect( |
| 311 screen_rect, selector_item_bounds); | 311 screen_rect, selector_item_bounds); |
| 312 ScopedTransformOverviewWindow::ScopedAnimationSettings animation_settings; | 312 ScopedTransformOverviewWindow::ScopedAnimationSettings animation_settings; |
| 313 transform_window_.BeginScopedAnimation(animation_type, &animation_settings); | 313 transform_window_.BeginScopedAnimation(animation_type, &animation_settings); |
| 314 transform_window_.SetTransform(root_window_, transform); | 314 transform_window_.SetTransform(root_window_, transform); |
| (...skipping 15 matching lines...) Expand all Loading... |
| 330 SetupFadeInAfterLayout(window_label_.get()); | 330 SetupFadeInAfterLayout(window_label_.get()); |
| 331 } | 331 } |
| 332 | 332 |
| 333 gfx::Rect label_bounds = root_window_->ConvertRectFromScreen(window_bounds); | 333 gfx::Rect label_bounds = root_window_->ConvertRectFromScreen(window_bounds); |
| 334 window_label_button_view_->set_top_padding(label_bounds.height() - | 334 window_label_button_view_->set_top_padding(label_bounds.height() - |
| 335 kVerticalLabelPadding); | 335 kVerticalLabelPadding); |
| 336 std::unique_ptr<ScopedOverviewAnimationSettings> animation_settings = | 336 std::unique_ptr<ScopedOverviewAnimationSettings> animation_settings = |
| 337 ScopedOverviewAnimationSettingsFactory::Get() | 337 ScopedOverviewAnimationSettingsFactory::Get() |
| 338 ->CreateOverviewAnimationSettings( | 338 ->CreateOverviewAnimationSettings( |
| 339 animation_type, | 339 animation_type, |
| 340 wm::WmLookup::Get()->GetWindowForWidget(window_label_.get())); | 340 WmLookup::Get()->GetWindowForWidget(window_label_.get())); |
| 341 | 341 |
| 342 window_label_->SetBounds(label_bounds); | 342 window_label_->SetBounds(label_bounds); |
| 343 } | 343 } |
| 344 | 344 |
| 345 void WindowSelectorItem::CreateWindowLabel(const base::string16& title) { | 345 void WindowSelectorItem::CreateWindowLabel(const base::string16& title) { |
| 346 const bool material = ash::MaterialDesignController::IsOverviewMaterial(); | 346 const bool material = ash::MaterialDesignController::IsOverviewMaterial(); |
| 347 window_label_.reset(new views::Widget); | 347 window_label_.reset(new views::Widget); |
| 348 views::Widget::InitParams params; | 348 views::Widget::InitParams params; |
| 349 params.type = views::Widget::InitParams::TYPE_POPUP; | 349 params.type = views::Widget::InitParams::TYPE_POPUP; |
| 350 params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; | 350 params.ownership = views::Widget::InitParams::WIDGET_OWNS_NATIVE_WIDGET; |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 382 OverviewAnimationType animation_type) { | 382 OverviewAnimationType animation_type) { |
| 383 gfx::Rect transformed_window_bounds = | 383 gfx::Rect transformed_window_bounds = |
| 384 root_window_->ConvertRectFromScreen(GetTransformedBounds( | 384 root_window_->ConvertRectFromScreen(GetTransformedBounds( |
| 385 GetWindow(), close_button_->GetPreferredSize().height())); | 385 GetWindow(), close_button_->GetPreferredSize().height())); |
| 386 | 386 |
| 387 { | 387 { |
| 388 if (!close_button_->visible()) { | 388 if (!close_button_->visible()) { |
| 389 close_button_->SetVisible(true); | 389 close_button_->SetVisible(true); |
| 390 SetupFadeInAfterLayout(&close_button_widget_); | 390 SetupFadeInAfterLayout(&close_button_widget_); |
| 391 } | 391 } |
| 392 wm::WmWindow* close_button_widget_window = | 392 WmWindow* close_button_widget_window = |
| 393 wm::WmLookup::Get()->GetWindowForWidget(&close_button_widget_); | 393 WmLookup::Get()->GetWindowForWidget(&close_button_widget_); |
| 394 std::unique_ptr<ScopedOverviewAnimationSettings> animation_settings = | 394 std::unique_ptr<ScopedOverviewAnimationSettings> animation_settings = |
| 395 ScopedOverviewAnimationSettingsFactory::Get() | 395 ScopedOverviewAnimationSettingsFactory::Get() |
| 396 ->CreateOverviewAnimationSettings(animation_type, | 396 ->CreateOverviewAnimationSettings(animation_type, |
| 397 close_button_widget_window); | 397 close_button_widget_window); |
| 398 | 398 |
| 399 gfx::Transform close_button_transform; | 399 gfx::Transform close_button_transform; |
| 400 close_button_transform.Translate(transformed_window_bounds.right(), | 400 close_button_transform.Translate(transformed_window_bounds.right(), |
| 401 transformed_window_bounds.y()); | 401 transformed_window_bounds.y()); |
| 402 close_button_widget_window->SetTransform(close_button_transform); | 402 close_button_widget_window->SetTransform(close_button_transform); |
| 403 } | 403 } |
| 404 | 404 |
| 405 // TODO(varkha): Figure out how to draw |window_label_| opaquely over the | 405 // TODO(varkha): Figure out how to draw |window_label_| opaquely over the |
| 406 // occluded header or truly hide the headers in overview mode. | 406 // occluded header or truly hide the headers in overview mode. |
| 407 if (ash::MaterialDesignController::IsOverviewMaterial()) { | 407 if (ash::MaterialDesignController::IsOverviewMaterial()) { |
| 408 gfx::Rect label_rect(close_button_->GetPreferredSize()); | 408 gfx::Rect label_rect(close_button_->GetPreferredSize()); |
| 409 label_rect.set_y(-label_rect.height()); | 409 label_rect.set_y(-label_rect.height()); |
| 410 label_rect.set_width(transformed_window_bounds.width() - | 410 label_rect.set_width(transformed_window_bounds.width() - |
| 411 label_rect.width()); | 411 label_rect.width()); |
| 412 window_label_->SetBounds(label_rect); | 412 window_label_->SetBounds(label_rect); |
| 413 | 413 |
| 414 if (!window_label_button_view_->visible()) { | 414 if (!window_label_button_view_->visible()) { |
| 415 window_label_button_view_->SetVisible(true); | 415 window_label_button_view_->SetVisible(true); |
| 416 SetupFadeInAfterLayout(window_label_.get()); | 416 SetupFadeInAfterLayout(window_label_.get()); |
| 417 } | 417 } |
| 418 wm::WmWindow* window_label_window = | 418 WmWindow* window_label_window = |
| 419 wm::WmLookup::Get()->GetWindowForWidget(window_label_.get()); | 419 WmLookup::Get()->GetWindowForWidget(window_label_.get()); |
| 420 std::unique_ptr<ScopedOverviewAnimationSettings> animation_settings = | 420 std::unique_ptr<ScopedOverviewAnimationSettings> animation_settings = |
| 421 ScopedOverviewAnimationSettingsFactory::Get() | 421 ScopedOverviewAnimationSettingsFactory::Get() |
| 422 ->CreateOverviewAnimationSettings(animation_type, | 422 ->CreateOverviewAnimationSettings(animation_type, |
| 423 window_label_window); | 423 window_label_window); |
| 424 gfx::Transform label_transform; | 424 gfx::Transform label_transform; |
| 425 label_transform.Translate(transformed_window_bounds.x(), | 425 label_transform.Translate(transformed_window_bounds.x(), |
| 426 transformed_window_bounds.y()); | 426 transformed_window_bounds.y()); |
| 427 window_label_window->SetTransform(label_transform); | 427 window_label_window->SetTransform(label_transform); |
| 428 } | 428 } |
| 429 } | 429 } |
| 430 | 430 |
| 431 void WindowSelectorItem::UpdateCloseButtonAccessibilityName() { | 431 void WindowSelectorItem::UpdateCloseButtonAccessibilityName() { |
| 432 close_button_->SetAccessibleName(l10n_util::GetStringFUTF16( | 432 close_button_->SetAccessibleName(l10n_util::GetStringFUTF16( |
| 433 IDS_ASH_OVERVIEW_CLOSE_ITEM_BUTTON_ACCESSIBLE_NAME, | 433 IDS_ASH_OVERVIEW_CLOSE_ITEM_BUTTON_ACCESSIBLE_NAME, |
| 434 GetWindow()->GetTitle())); | 434 GetWindow()->GetTitle())); |
| 435 } | 435 } |
| 436 | 436 |
| 437 } // namespace ash | 437 } // namespace ash |
| OLD | NEW |