Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(548)

Unified Diff: ui/app_list/views/app_list_menu_views.cc

Issue 20656002: Add profile selector menu to app list. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: remove junk from list_model.h Created 7 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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_);

Powered by Google App Engine
This is Rietveld 408576698