Chromium Code Reviews| Index: ui/app_list/views/app_list_menu_views.cc |
| diff --git a/ui/app_list/views/app_list_menu_views.cc b/ui/app_list/views/app_list_menu_views.cc |
| index 0eb853607f01c9c0aaad8f34a0b4f88f779d0415..4683d6044af5eca1fb76a187d6bf61a30f2e0bed 100644 |
| --- a/ui/app_list/views/app_list_menu_views.cc |
| +++ b/ui/app_list/views/app_list_menu_views.cc |
| @@ -5,6 +5,7 @@ |
| #include "ui/app_list/views/app_list_menu_views.h" |
| #include "grit/ui_resources.h" |
| +#include "ui/app_list/app_list_model.h" |
| #include "ui/app_list/app_list_view_delegate.h" |
| #include "ui/base/resource/resource_bundle.h" |
| #include "ui/views/controls/button/menu_button.h" |
| @@ -76,8 +77,9 @@ class CurrentUserMenuItem : public MenuItemView { |
| int id, |
| const base::string16& user_name, |
| const base::string16& user_email, |
| - const gfx::ImageSkia& icon) |
| - : MenuItemView(parent, id, MenuItemView::NORMAL) { |
| + const gfx::ImageSkia& icon, |
| + MenuItemView::Type type) |
| + : MenuItemView(parent, id, type) { |
| AddChildView(new CurrentUserView(user_name, user_email, icon)); |
| } |
| @@ -88,9 +90,11 @@ class CurrentUserMenuItem : public MenuItemView { |
| class AppListMenuModelAdapter : public views::MenuModelAdapter { |
| public: |
| AppListMenuModelAdapter(ui::MenuModel* menu_model, |
| - AppListViewDelegate* delegate) |
| + AppListViewDelegate* delegate, |
| + AppListModel* app_list_model) |
| : views::MenuModelAdapter(menu_model), |
| - delegate_(delegate) {} |
| + delegate_(delegate), |
| + app_list_model_(app_list_model) {} |
| virtual ~AppListMenuModelAdapter() {} |
| // Overridden from views::MenuModelAdapter: |
| @@ -108,9 +112,11 @@ class AppListMenuModelAdapter : public views::MenuModelAdapter { |
| MenuItemView* item = new CurrentUserMenuItem( |
| menu, |
| id, |
| - delegate_->GetCurrentUserName(), |
| - delegate_->GetCurrentUserEmail(), |
| - *rb.GetImageSkiaNamed(IDR_APP_LIST_USER_INDICATOR)); |
| + app_list_model_->current_user_name(), |
| + app_list_model_->current_user_email(), |
| + *rb.GetImageSkiaNamed(IDR_APP_LIST_USER_INDICATOR), |
| + model->GetTypeAt(index) == ui::MenuModel::TYPE_SUBMENU |
| + ? MenuItemView::SUBMENU : MenuItemView::NORMAL); |
| menu->CreateSubmenu(); |
| menu->GetSubmenu()->AddChildViewAt(item, index); |
| return item; |
| @@ -118,15 +124,19 @@ class AppListMenuModelAdapter : public views::MenuModelAdapter { |
| private: |
| AppListViewDelegate* delegate_; |
| + AppListModel* app_list_model_; |
|
tapted
2013/07/31 05:43:53
nit: This should have a comment that it is a weak
calamity
2013/08/01 08:35:45
Done.
|
| DISALLOW_COPY_AND_ASSIGN(AppListMenuModelAdapter); |
| }; |
| } // namespace |
| -AppListMenuViews::AppListMenuViews(AppListViewDelegate* delegate) |
| - : AppListMenu(delegate) { |
| - menu_delegate_.reset(new AppListMenuModelAdapter(menu_model(), delegate)); |
| +AppListMenuViews::AppListMenuViews(AppListViewDelegate* delegate, |
| + AppListModel* app_list_model) |
| + : AppListMenu(delegate, app_list_model->avatar_menu_items()) { |
| + menu_delegate_.reset(new AppListMenuModelAdapter(menu_model(), |
| + delegate, |
| + app_list_model)); |
| menu_ = new MenuItemView(menu_delegate_.get()); |
| menu_runner_.reset(new views::MenuRunner(menu_)); |
| menu_delegate_->BuildMenu(menu_); |