| 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/shelf/shelf.h" | 5 #include "ash/shelf/shelf.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <cmath> | 8 #include <cmath> |
| 9 | 9 |
| 10 #include "ash/aura/wm_window_aura.h" | 10 #include "ash/aura/wm_window_aura.h" |
| (...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 112 return shelf_widget_->shelf_layout_manager()->visibility_state(); | 112 return shelf_widget_->shelf_layout_manager()->visibility_state(); |
| 113 } | 113 } |
| 114 | 114 |
| 115 gfx::Rect Shelf::GetScreenBoundsOfItemIconForWindow( | 115 gfx::Rect Shelf::GetScreenBoundsOfItemIconForWindow( |
| 116 const aura::Window* window) { | 116 const aura::Window* window) { |
| 117 ShelfID id = GetShelfIDForWindow(window); | 117 ShelfID id = GetShelfIDForWindow(window); |
| 118 gfx::Rect bounds(shelf_view_->GetIdealBoundsOfItemIcon(id)); | 118 gfx::Rect bounds(shelf_view_->GetIdealBoundsOfItemIcon(id)); |
| 119 gfx::Point screen_origin; | 119 gfx::Point screen_origin; |
| 120 views::View::ConvertPointToScreen(shelf_view_, &screen_origin); | 120 views::View::ConvertPointToScreen(shelf_view_, &screen_origin); |
| 121 return gfx::Rect(screen_origin.x() + bounds.x(), | 121 return gfx::Rect(screen_origin.x() + bounds.x(), |
| 122 screen_origin.y() + bounds.y(), | 122 screen_origin.y() + bounds.y(), bounds.width(), |
| 123 bounds.width(), | |
| 124 bounds.height()); | 123 bounds.height()); |
| 125 } | 124 } |
| 126 | 125 |
| 127 void Shelf::UpdateIconPositionForWindow(aura::Window* window) { | 126 void Shelf::UpdateIconPositionForWindow(aura::Window* window) { |
| 128 shelf_view_->UpdatePanelIconPosition( | 127 shelf_view_->UpdatePanelIconPosition( |
| 129 GetShelfIDForWindow(window), | 128 GetShelfIDForWindow(window), |
| 130 ScreenUtil::ConvertRectFromScreen( | 129 ScreenUtil::ConvertRectFromScreen(shelf_widget()->GetNativeView(), |
| 131 shelf_widget()->GetNativeView(), | 130 window->GetBoundsInScreen()) |
| 132 window->GetBoundsInScreen()).CenterPoint()); | 131 .CenterPoint()); |
| 133 } | 132 } |
| 134 | 133 |
| 135 void Shelf::ActivateShelfItem(int index) { | 134 void Shelf::ActivateShelfItem(int index) { |
| 136 // We pass in a keyboard event which will then trigger a switch to the | 135 // We pass in a keyboard event which will then trigger a switch to the |
| 137 // next item if the current one is already active. | 136 // next item if the current one is already active. |
| 138 ui::KeyEvent event(ui::ET_KEY_RELEASED, | 137 ui::KeyEvent event(ui::ET_KEY_RELEASED, |
| 139 ui::VKEY_UNKNOWN, // The actual key gets ignored. | 138 ui::VKEY_UNKNOWN, // The actual key gets ignored. |
| 140 ui::EF_NONE); | 139 ui::EF_NONE); |
| 141 | 140 |
| 142 const ShelfItem& item = shelf_view_->model()->items()[index]; | 141 const ShelfItem& item = shelf_view_->model()->items()[index]; |
| 143 ShelfItemDelegate* item_delegate = | 142 ShelfItemDelegate* item_delegate = |
| 144 Shell::GetInstance()->shelf_item_delegate_manager()->GetShelfItemDelegate( | 143 Shell::GetInstance()->shelf_item_delegate_manager()->GetShelfItemDelegate( |
| 145 item.id); | 144 item.id); |
| 146 item_delegate->ItemSelected(event); | 145 item_delegate->ItemSelected(event); |
| 147 } | 146 } |
| 148 | 147 |
| 149 void Shelf::CycleWindowLinear(CycleDirection direction) { | 148 void Shelf::CycleWindowLinear(CycleDirection direction) { |
| 150 int item_index = GetNextActivatedItemIndex( | 149 int item_index = |
| 151 *(shelf_view_->model()), direction); | 150 GetNextActivatedItemIndex(*(shelf_view_->model()), direction); |
| 152 if (item_index >= 0) | 151 if (item_index >= 0) |
| 153 ActivateShelfItem(item_index); | 152 ActivateShelfItem(item_index); |
| 154 } | 153 } |
| 155 | 154 |
| 156 void Shelf::AddIconObserver(ShelfIconObserver* observer) { | 155 void Shelf::AddIconObserver(ShelfIconObserver* observer) { |
| 157 shelf_view_->AddIconObserver(observer); | 156 shelf_view_->AddIconObserver(observer); |
| 158 } | 157 } |
| 159 | 158 |
| 160 void Shelf::RemoveIconObserver(ShelfIconObserver* observer) { | 159 void Shelf::RemoveIconObserver(ShelfIconObserver* observer) { |
| 161 shelf_view_->RemoveIconObserver(observer); | 160 shelf_view_->RemoveIconObserver(observer); |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 212 | 211 |
| 213 gfx::Rect Shelf::GetVisibleItemsBoundsInScreen() const { | 212 gfx::Rect Shelf::GetVisibleItemsBoundsInScreen() const { |
| 214 return shelf_view_->GetVisibleItemsBoundsInScreen(); | 213 return shelf_view_->GetVisibleItemsBoundsInScreen(); |
| 215 } | 214 } |
| 216 | 215 |
| 217 app_list::ApplicationDragAndDropHost* Shelf::GetDragAndDropHostForAppList() { | 216 app_list::ApplicationDragAndDropHost* Shelf::GetDragAndDropHostForAppList() { |
| 218 return shelf_view_; | 217 return shelf_view_; |
| 219 } | 218 } |
| 220 | 219 |
| 221 } // namespace ash | 220 } // namespace ash |
| OLD | NEW |