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

Side by Side 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: undo app_list_service_mac changes Created 7 years, 4 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 unified diff | Download patch
OLDNEW
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 "ui/app_list/views/app_list_menu_views.h" 5 #include "ui/app_list/views/app_list_menu_views.h"
6 6
7 #include "grit/ui_resources.h" 7 #include "grit/ui_resources.h"
8 #include "ui/app_list/app_list_model.h"
8 #include "ui/app_list/app_list_view_delegate.h" 9 #include "ui/app_list/app_list_view_delegate.h"
9 #include "ui/base/resource/resource_bundle.h" 10 #include "ui/base/resource/resource_bundle.h"
10 #include "ui/views/controls/button/menu_button.h" 11 #include "ui/views/controls/button/menu_button.h"
11 #include "ui/views/controls/image_view.h" 12 #include "ui/views/controls/image_view.h"
12 #include "ui/views/controls/label.h" 13 #include "ui/views/controls/label.h"
13 #include "ui/views/controls/menu/menu_config.h" 14 #include "ui/views/controls/menu/menu_config.h"
14 #include "ui/views/controls/menu/menu_item_view.h" 15 #include "ui/views/controls/menu/menu_item_view.h"
15 #include "ui/views/controls/menu/submenu_view.h" 16 #include "ui/views/controls/menu/submenu_view.h"
16 #include "ui/views/layout/grid_layout.h" 17 #include "ui/views/layout/grid_layout.h"
17 18
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
69 private: 70 private:
70 DISALLOW_COPY_AND_ASSIGN(CurrentUserView); 71 DISALLOW_COPY_AND_ASSIGN(CurrentUserView);
71 }; 72 };
72 73
73 class CurrentUserMenuItem : public MenuItemView { 74 class CurrentUserMenuItem : public MenuItemView {
74 public: 75 public:
75 CurrentUserMenuItem(MenuItemView* parent, 76 CurrentUserMenuItem(MenuItemView* parent,
76 int id, 77 int id,
77 const base::string16& user_name, 78 const base::string16& user_name,
78 const base::string16& user_email, 79 const base::string16& user_email,
79 const gfx::ImageSkia& icon) 80 const gfx::ImageSkia& icon,
80 : MenuItemView(parent, id, MenuItemView::NORMAL) { 81 MenuItemView::Type type)
82 : MenuItemView(parent, id, type) {
81 AddChildView(new CurrentUserView(user_name, user_email, icon)); 83 AddChildView(new CurrentUserView(user_name, user_email, icon));
82 } 84 }
83 85
84 private: 86 private:
85 DISALLOW_COPY_AND_ASSIGN(CurrentUserMenuItem); 87 DISALLOW_COPY_AND_ASSIGN(CurrentUserMenuItem);
86 }; 88 };
87 89
88 class AppListMenuModelAdapter : public views::MenuModelAdapter { 90 class AppListMenuModelAdapter : public views::MenuModelAdapter {
89 public: 91 public:
90 AppListMenuModelAdapter(ui::MenuModel* menu_model, 92 AppListMenuModelAdapter(ui::MenuModel* menu_model,
91 AppListViewDelegate* delegate) 93 AppListViewDelegate* delegate,
94 AppListModel* app_list_model)
92 : views::MenuModelAdapter(menu_model), 95 : views::MenuModelAdapter(menu_model),
93 delegate_(delegate) {} 96 delegate_(delegate),
97 app_list_model_(app_list_model) {}
94 virtual ~AppListMenuModelAdapter() {} 98 virtual ~AppListMenuModelAdapter() {}
95 99
96 // Overridden from views::MenuModelAdapter: 100 // Overridden from views::MenuModelAdapter:
97 virtual MenuItemView* AppendMenuItem(MenuItemView* menu, 101 virtual MenuItemView* AppendMenuItem(MenuItemView* menu,
98 ui::MenuModel* model, 102 ui::MenuModel* model,
99 int index) OVERRIDE { 103 int index) OVERRIDE {
100 if (!delegate_) 104 if (!delegate_)
101 return NULL; 105 return NULL;
102 106
103 int id = model->GetCommandIdAt(index); 107 int id = model->GetCommandIdAt(index);
104 if (id != AppListMenu::CURRENT_USER) 108 if (id != AppListMenu::CURRENT_USER)
105 return MenuModelAdapter::AppendMenuItem(menu, model, index); 109 return MenuModelAdapter::AppendMenuItem(menu, model, index);
106 110
107 ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance(); 111 ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance();
108 MenuItemView* item = new CurrentUserMenuItem( 112 MenuItemView* item = new CurrentUserMenuItem(
109 menu, 113 menu,
110 id, 114 id,
111 delegate_->GetCurrentUserName(), 115 app_list_model_->current_user_name(),
112 delegate_->GetCurrentUserEmail(), 116 app_list_model_->current_user_email(),
113 *rb.GetImageSkiaNamed(IDR_APP_LIST_USER_INDICATOR)); 117 *rb.GetImageSkiaNamed(IDR_APP_LIST_USER_INDICATOR),
118 model->GetTypeAt(index) == ui::MenuModel::TYPE_SUBMENU
119 ? MenuItemView::SUBMENU : MenuItemView::NORMAL);
114 menu->CreateSubmenu(); 120 menu->CreateSubmenu();
115 menu->GetSubmenu()->AddChildViewAt(item, index); 121 menu->GetSubmenu()->AddChildViewAt(item, index);
116 return item; 122 return item;
117 } 123 }
118 124
119 private: 125 private:
120 AppListViewDelegate* delegate_; 126 AppListViewDelegate* delegate_;
127 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.
121 128
122 DISALLOW_COPY_AND_ASSIGN(AppListMenuModelAdapter); 129 DISALLOW_COPY_AND_ASSIGN(AppListMenuModelAdapter);
123 }; 130 };
124 131
125 } // namespace 132 } // namespace
126 133
127 AppListMenuViews::AppListMenuViews(AppListViewDelegate* delegate) 134 AppListMenuViews::AppListMenuViews(AppListViewDelegate* delegate,
128 : AppListMenu(delegate) { 135 AppListModel* app_list_model)
129 menu_delegate_.reset(new AppListMenuModelAdapter(menu_model(), delegate)); 136 : AppListMenu(delegate, app_list_model->avatar_menu_items()) {
137 menu_delegate_.reset(new AppListMenuModelAdapter(menu_model(),
138 delegate,
139 app_list_model));
130 menu_ = new MenuItemView(menu_delegate_.get()); 140 menu_ = new MenuItemView(menu_delegate_.get());
131 menu_runner_.reset(new views::MenuRunner(menu_)); 141 menu_runner_.reset(new views::MenuRunner(menu_));
132 menu_delegate_->BuildMenu(menu_); 142 menu_delegate_->BuildMenu(menu_);
133 } 143 }
134 144
135 AppListMenuViews::~AppListMenuViews() {} 145 AppListMenuViews::~AppListMenuViews() {}
136 146
137 void AppListMenuViews::RunMenuAt(views::MenuButton* button, 147 void AppListMenuViews::RunMenuAt(views::MenuButton* button,
138 const gfx::Point& point) { 148 const gfx::Point& point) {
139 ignore_result(menu_runner_->RunMenuAt(button->GetWidget(), button, 149 ignore_result(menu_runner_->RunMenuAt(button->GetWidget(), button,
140 gfx::Rect(point, gfx::Size()), 150 gfx::Rect(point, gfx::Size()),
141 MenuItemView::TOPRIGHT, 151 MenuItemView::TOPRIGHT,
142 ui::MENU_SOURCE_NONE, 0)); 152 ui::MENU_SOURCE_NONE, 0));
143 } 153 }
144 154
145 void AppListMenuViews::Cancel() { 155 void AppListMenuViews::Cancel() {
146 menu_runner_->Cancel(); 156 menu_runner_->Cancel();
147 } 157 }
148 158
149 } // namespace app_list 159 } // namespace app_list
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698