| 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/focus_cycler.h" | 10 #include "ash/focus_cycler.h" |
| (...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 75 return shelf_widget ? shelf_widget->shelf() : NULL; | 75 return shelf_widget ? shelf_widget->shelf() : NULL; |
| 76 } | 76 } |
| 77 | 77 |
| 78 void Shelf::SetAlignment(ShelfAlignment alignment) { | 78 void Shelf::SetAlignment(ShelfAlignment alignment) { |
| 79 alignment_ = alignment; | 79 alignment_ = alignment; |
| 80 shelf_view_->OnShelfAlignmentChanged(); | 80 shelf_view_->OnShelfAlignmentChanged(); |
| 81 // ShelfLayoutManager will resize the shelf. | 81 // ShelfLayoutManager will resize the shelf. |
| 82 } | 82 } |
| 83 | 83 |
| 84 gfx::Rect Shelf::GetScreenBoundsOfItemIconForWindow(aura::Window* window) { | 84 gfx::Rect Shelf::GetScreenBoundsOfItemIconForWindow(aura::Window* window) { |
| 85 LauncherID id = GetLauncherIDForWindow(window); | 85 ShelfID id = GetShelfIDForWindow(window); |
| 86 gfx::Rect bounds(shelf_view_->GetIdealBoundsOfItemIcon(id)); | 86 gfx::Rect bounds(shelf_view_->GetIdealBoundsOfItemIcon(id)); |
| 87 gfx::Point screen_origin; | 87 gfx::Point screen_origin; |
| 88 views::View::ConvertPointToScreen(shelf_view_, &screen_origin); | 88 views::View::ConvertPointToScreen(shelf_view_, &screen_origin); |
| 89 return gfx::Rect(screen_origin.x() + bounds.x(), | 89 return gfx::Rect(screen_origin.x() + bounds.x(), |
| 90 screen_origin.y() + bounds.y(), | 90 screen_origin.y() + bounds.y(), |
| 91 bounds.width(), | 91 bounds.width(), |
| 92 bounds.height()); | 92 bounds.height()); |
| 93 } | 93 } |
| 94 | 94 |
| 95 void Shelf::UpdateIconPositionForWindow(aura::Window* window) { | 95 void Shelf::UpdateIconPositionForWindow(aura::Window* window) { |
| 96 shelf_view_->UpdatePanelIconPosition( | 96 shelf_view_->UpdatePanelIconPosition( |
| 97 GetLauncherIDForWindow(window), | 97 GetShelfIDForWindow(window), |
| 98 ScreenUtil::ConvertRectFromScreen( | 98 ScreenUtil::ConvertRectFromScreen( |
| 99 shelf_widget()->GetNativeView(), | 99 shelf_widget()->GetNativeView(), |
| 100 window->GetBoundsInScreen()).CenterPoint()); | 100 window->GetBoundsInScreen()).CenterPoint()); |
| 101 } | 101 } |
| 102 | 102 |
| 103 void Shelf::ActivateShelfItem(int index) { | 103 void Shelf::ActivateShelfItem(int index) { |
| 104 // We pass in a keyboard event which will then trigger a switch to the | 104 // We pass in a keyboard event which will then trigger a switch to the |
| 105 // next item if the current one is already active. | 105 // next item if the current one is already active. |
| 106 ui::KeyEvent event(ui::ET_KEY_RELEASED, | 106 ui::KeyEvent event(ui::ET_KEY_RELEASED, |
| 107 ui::VKEY_UNKNOWN, // The actual key gets ignored. | 107 ui::VKEY_UNKNOWN, // The actual key gets ignored. |
| 108 ui::EF_NONE, | 108 ui::EF_NONE, |
| 109 false); | 109 false); |
| 110 | 110 |
| 111 const LauncherItem& item = shelf_view_->model()->items()[index]; | 111 const ShelfItem& item = shelf_view_->model()->items()[index]; |
| 112 ShelfItemDelegate* item_delegate = | 112 ShelfItemDelegate* item_delegate = |
| 113 Shell::GetInstance()->shelf_item_delegate_manager()->GetShelfItemDelegate( | 113 Shell::GetInstance()->shelf_item_delegate_manager()->GetShelfItemDelegate( |
| 114 item.id); | 114 item.id); |
| 115 item_delegate->ItemSelected(event); | 115 item_delegate->ItemSelected(event); |
| 116 } | 116 } |
| 117 | 117 |
| 118 void Shelf::CycleWindowLinear(CycleDirection direction) { | 118 void Shelf::CycleWindowLinear(CycleDirection direction) { |
| 119 int item_index = GetNextActivatedItemIndex( | 119 int item_index = GetNextActivatedItemIndex( |
| 120 *(shelf_view_->model()), direction); | 120 *(shelf_view_->model()), direction); |
| 121 if (item_index >= 0) | 121 if (item_index >= 0) |
| (...skipping 27 matching lines...) Expand all Loading... |
| 149 void Shelf::SchedulePaint() { | 149 void Shelf::SchedulePaint() { |
| 150 shelf_view_->SchedulePaintForAllButtons(); | 150 shelf_view_->SchedulePaintForAllButtons(); |
| 151 } | 151 } |
| 152 | 152 |
| 153 views::View* Shelf::GetAppListButtonView() const { | 153 views::View* Shelf::GetAppListButtonView() const { |
| 154 return shelf_view_->GetAppListButtonView(); | 154 return shelf_view_->GetAppListButtonView(); |
| 155 } | 155 } |
| 156 | 156 |
| 157 void Shelf::LaunchAppIndexAt(int item_index) { | 157 void Shelf::LaunchAppIndexAt(int item_index) { |
| 158 ShelfModel* shelf_model = shelf_view_->model(); | 158 ShelfModel* shelf_model = shelf_view_->model(); |
| 159 const LauncherItems& items = shelf_model->items(); | 159 const ShelfItems& items = shelf_model->items(); |
| 160 int item_count = shelf_model->item_count(); | 160 int item_count = shelf_model->item_count(); |
| 161 int indexes_left = item_index >= 0 ? item_index : item_count; | 161 int indexes_left = item_index >= 0 ? item_index : item_count; |
| 162 int found_index = -1; | 162 int found_index = -1; |
| 163 | 163 |
| 164 // Iterating until we have hit the index we are interested in which | 164 // Iterating until we have hit the index we are interested in which |
| 165 // is true once indexes_left becomes negative. | 165 // is true once indexes_left becomes negative. |
| 166 for (int i = 0; i < item_count && indexes_left >= 0; i++) { | 166 for (int i = 0; i < item_count && indexes_left >= 0; i++) { |
| 167 if (items[i].type != TYPE_APP_LIST) { | 167 if (items[i].type != TYPE_APP_LIST) { |
| 168 found_index = i; | 168 found_index = i; |
| 169 indexes_left--; | 169 indexes_left--; |
| (...skipping 19 matching lines...) Expand all Loading... |
| 189 | 189 |
| 190 gfx::Rect Shelf::GetVisibleItemsBoundsInScreen() const { | 190 gfx::Rect Shelf::GetVisibleItemsBoundsInScreen() const { |
| 191 return shelf_view_->GetVisibleItemsBoundsInScreen(); | 191 return shelf_view_->GetVisibleItemsBoundsInScreen(); |
| 192 } | 192 } |
| 193 | 193 |
| 194 app_list::ApplicationDragAndDropHost* Shelf::GetDragAndDropHostForAppList() { | 194 app_list::ApplicationDragAndDropHost* Shelf::GetDragAndDropHostForAppList() { |
| 195 return shelf_view_; | 195 return shelf_view_; |
| 196 } | 196 } |
| 197 | 197 |
| 198 } // namespace ash | 198 } // namespace ash |
| OLD | NEW |