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_panels.h" | 5 #include "ash/wm/overview/window_selector_panels.h" |
6 | 6 |
7 #include "ash/screen_ash.h" | 7 #include "ash/screen_ash.h" |
8 #include "ash/shell.h" | 8 #include "ash/shell.h" |
9 #include "ash/shell_window_ids.h" | 9 #include "ash/shell_window_ids.h" |
10 #include "ash/wm/overview/scoped_transform_overview_window.h" | 10 #include "ash/wm/overview/scoped_transform_overview_window.h" |
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
90 WindowSelectorPanels::WindowSelectorPanels() { | 90 WindowSelectorPanels::WindowSelectorPanels() { |
91 } | 91 } |
92 | 92 |
93 WindowSelectorPanels::~WindowSelectorPanels() { | 93 WindowSelectorPanels::~WindowSelectorPanels() { |
94 } | 94 } |
95 | 95 |
96 void WindowSelectorPanels::AddWindow(aura::Window* window) { | 96 void WindowSelectorPanels::AddWindow(aura::Window* window) { |
97 transform_windows_.push_back(new ScopedTransformPanelWindow(window)); | 97 transform_windows_.push_back(new ScopedTransformPanelWindow(window)); |
98 } | 98 } |
99 | 99 |
100 aura::RootWindow* WindowSelectorPanels::GetRootWindow() { | 100 aura::Window* WindowSelectorPanels::GetRootWindow() { |
101 return transform_windows_.front()->window()->GetRootWindow(); | 101 return transform_windows_.front()->window()->GetRootWindow(); |
102 } | 102 } |
103 | 103 |
104 aura::Window* WindowSelectorPanels::TargetedWindow(const aura::Window* target) { | 104 aura::Window* WindowSelectorPanels::TargetedWindow(const aura::Window* target) { |
105 for (WindowList::const_iterator iter = transform_windows_.begin(); | 105 for (WindowList::const_iterator iter = transform_windows_.begin(); |
106 iter != transform_windows_.end(); ++iter) { | 106 iter != transform_windows_.end(); ++iter) { |
107 if ((*iter)->Contains(target)) | 107 if ((*iter)->Contains(target)) |
108 return (*iter)->window(); | 108 return (*iter)->window(); |
109 } | 109 } |
110 return NULL; | 110 return NULL; |
(...skipping 28 matching lines...) Expand all Loading... |
139 return transform_windows_.empty(); | 139 return transform_windows_.empty(); |
140 } | 140 } |
141 | 141 |
142 void WindowSelectorPanels::PrepareForOverview() { | 142 void WindowSelectorPanels::PrepareForOverview() { |
143 for (WindowList::iterator iter = transform_windows_.begin(); | 143 for (WindowList::iterator iter = transform_windows_.begin(); |
144 iter != transform_windows_.end(); ++iter) { | 144 iter != transform_windows_.end(); ++iter) { |
145 (*iter)->PrepareForOverview(); | 145 (*iter)->PrepareForOverview(); |
146 } | 146 } |
147 } | 147 } |
148 | 148 |
149 void WindowSelectorPanels::SetItemBounds(aura::RootWindow* root_window, | 149 void WindowSelectorPanels::SetItemBounds(aura::Window* root_window, |
150 const gfx::Rect& target_bounds, | 150 const gfx::Rect& target_bounds, |
151 bool animate) { | 151 bool animate) { |
152 gfx::Rect bounding_rect; | 152 gfx::Rect bounding_rect; |
153 for (WindowList::iterator iter = transform_windows_.begin(); | 153 for (WindowList::iterator iter = transform_windows_.begin(); |
154 iter != transform_windows_.end(); ++iter) { | 154 iter != transform_windows_.end(); ++iter) { |
155 bounding_rect.Union((*iter)->GetBoundsInScreen()); | 155 bounding_rect.Union((*iter)->GetBoundsInScreen()); |
156 } | 156 } |
157 set_bounds(ScopedTransformOverviewWindow:: | 157 set_bounds(ScopedTransformOverviewWindow:: |
158 ShrinkRectToFitPreservingAspectRatio(bounding_rect, target_bounds)); | 158 ShrinkRectToFitPreservingAspectRatio(bounding_rect, target_bounds)); |
159 gfx::Transform bounding_transform = | 159 gfx::Transform bounding_transform = |
160 ScopedTransformOverviewWindow::GetTransformForRect(bounding_rect, | 160 ScopedTransformOverviewWindow::GetTransformForRect(bounding_rect, |
161 bounds()); | 161 bounds()); |
162 for (WindowList::iterator iter = transform_windows_.begin(); | 162 for (WindowList::iterator iter = transform_windows_.begin(); |
163 iter != transform_windows_.end(); ++iter) { | 163 iter != transform_windows_.end(); ++iter) { |
164 gfx::Transform transform; | 164 gfx::Transform transform; |
165 gfx::Rect bounds = (*iter)->GetBoundsInScreen(); | 165 gfx::Rect bounds = (*iter)->GetBoundsInScreen(); |
166 transform.Translate(bounding_rect.x() - bounds.x(), | 166 transform.Translate(bounding_rect.x() - bounds.x(), |
167 bounding_rect.y() - bounds.y()); | 167 bounding_rect.y() - bounds.y()); |
168 transform.PreconcatTransform(bounding_transform); | 168 transform.PreconcatTransform(bounding_transform); |
169 transform.Translate(bounds.x() - bounding_rect.x(), | 169 transform.Translate(bounds.x() - bounding_rect.x(), |
170 bounds.y() - bounding_rect.y()); | 170 bounds.y() - bounding_rect.y()); |
171 (*iter)->SetTransform(root_window, transform, animate); | 171 (*iter)->SetTransform(root_window, transform, animate); |
172 } | 172 } |
173 } | 173 } |
174 | 174 |
175 } // namespace ash | 175 } // namespace ash |
OLD | NEW |