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..0fa05c49c600cd0d28680d30fda647c3fe20fa1f 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_; // Weak. Owned by AppListView. |
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->profile_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_); |