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 3dca54328157cfac88fed8b81fd2c80590ffdda9..04c1f2155b463e7f0847d50b83d8d059b4c81738 100644 |
--- a/ui/app_list/views/app_list_menu_views.cc |
+++ b/ui/app_list/views/app_list_menu_views.cc |
@@ -20,120 +20,10 @@ using views::MenuItemView; |
namespace app_list { |
-namespace { |
- |
-class CurrentUserView : public views::View { |
koz (OOO until 15th September)
2013/09/09 22:58:07
Nice!
|
- public: |
- CurrentUserView(const base::string16& user_name, |
- const base::string16& user_email, |
- const gfx::ImageSkia& icon) { |
- const views::MenuConfig& menu_config = views::MenuConfig::instance(NULL); |
- views::GridLayout* layout = new views::GridLayout(this); |
- int item_right_padding = menu_config.label_to_arrow_padding + |
- menu_config.arrow_width + |
- menu_config.arrow_to_edge_padding; |
- |
- layout->SetInsets(0, 0, 0, item_right_padding); |
- SetLayoutManager(layout); |
- |
- views::ColumnSet* columns = layout->AddColumnSet(0); |
- columns->AddColumn(views::GridLayout::FILL, |
- views::GridLayout::FILL, |
- 0, |
- views::GridLayout::USE_PREF, |
- 0, |
- menu_config.check_width + menu_config.item_left_margin); |
- columns->AddColumn(views::GridLayout::FILL, |
- views::GridLayout::FILL, |
- 1, |
- views::GridLayout::USE_PREF, |
- 0, |
- 0); |
- |
- layout->StartRow(0, 0); |
- views::ImageView* image_view = new views::ImageView(); |
- image_view->SetImage(icon); |
- layout->AddView(image_view); |
- |
- views::Label* user_name_view = new views::Label(user_name); |
- user_name_view->SetHorizontalAlignment(gfx::ALIGN_LEFT); |
- layout->AddView(user_name_view); |
- |
- layout->StartRow(0, 0); |
- views::Label* user_email_view = new views::Label(user_email); |
- user_email_view->SetHorizontalAlignment(gfx::ALIGN_LEFT); |
- user_email_view->SetEnabled(false); |
- layout->SkipColumns(1); |
- layout->AddView(user_email_view); |
- } |
- |
- private: |
- DISALLOW_COPY_AND_ASSIGN(CurrentUserView); |
-}; |
- |
-class CurrentUserMenuItem : public MenuItemView { |
- public: |
- CurrentUserMenuItem(MenuItemView* parent, |
- int id, |
- const base::string16& user_name, |
- const base::string16& user_email, |
- const gfx::ImageSkia& icon) |
- : MenuItemView(parent, id, MenuItemView::NORMAL) { |
- AddChildView(new CurrentUserView(user_name, user_email, icon)); |
- } |
- |
- private: |
- DISALLOW_COPY_AND_ASSIGN(CurrentUserMenuItem); |
-}; |
- |
-class AppListMenuModelAdapter : public views::MenuModelAdapter { |
- public: |
- AppListMenuModelAdapter(ui::MenuModel* menu_model, |
- AppListViewDelegate* delegate, |
- AppListModel* app_list_model) |
- : views::MenuModelAdapter(menu_model), |
- delegate_(delegate), |
- app_list_model_(app_list_model) {} |
- virtual ~AppListMenuModelAdapter() {} |
- |
- // Overridden from views::MenuModelAdapter: |
- virtual MenuItemView* AppendMenuItem(MenuItemView* menu, |
- ui::MenuModel* model, |
- int index) OVERRIDE { |
- if (!delegate_) |
- return NULL; |
- |
- int id = model->GetCommandIdAt(index); |
- if (id != AppListMenu::CURRENT_USER) |
- return MenuModelAdapter::AppendMenuItem(menu, model, index); |
- |
- ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance(); |
- MenuItemView* item = new CurrentUserMenuItem( |
- menu, |
- id, |
- app_list_model_->current_user_name(), |
- app_list_model_->current_user_email(), |
- *rb.GetImageSkiaNamed(IDR_APP_LIST_USER_INDICATOR)); |
- menu->CreateSubmenu(); |
- menu->GetSubmenu()->AddChildViewAt(item, index); |
- return item; |
- } |
- |
- private: |
- AppListViewDelegate* delegate_; |
- AppListModel* app_list_model_; // Weak. Owned by AppListView. |
- |
- DISALLOW_COPY_AND_ASSIGN(AppListMenuModelAdapter); |
-}; |
- |
-} // namespace |
- |
AppListMenuViews::AppListMenuViews(AppListViewDelegate* delegate, |
AppListModel* app_list_model) |
- : AppListMenu(delegate) { |
- menu_delegate_.reset(new AppListMenuModelAdapter(menu_model(), |
- delegate, |
- app_list_model)); |
+ : AppListMenu(delegate, app_list_model->users()) { |
+ menu_delegate_.reset(new views::MenuModelAdapter(menu_model())); |
menu_ = new MenuItemView(menu_delegate_.get()); |
menu_runner_.reset(new views::MenuRunner(menu_)); |
menu_delegate_->BuildMenu(menu_); |