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

Side by Side Diff: ui/app_list/views/app_list_menu_views.cc

Issue 22268009: Move signin status and current user information into AppListModel. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase 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
« no previous file with comments | « ui/app_list/views/app_list_menu_views.h ('k') | ui/app_list/views/app_list_view.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
81 AddChildView(new CurrentUserView(user_name, user_email, icon)); 82 AddChildView(new CurrentUserView(user_name, user_email, icon));
82 } 83 }
83 84
84 private: 85 private:
85 DISALLOW_COPY_AND_ASSIGN(CurrentUserMenuItem); 86 DISALLOW_COPY_AND_ASSIGN(CurrentUserMenuItem);
86 }; 87 };
87 88
88 class AppListMenuModelAdapter : public views::MenuModelAdapter { 89 class AppListMenuModelAdapter : public views::MenuModelAdapter {
89 public: 90 public:
90 AppListMenuModelAdapter(ui::MenuModel* menu_model, 91 AppListMenuModelAdapter(ui::MenuModel* menu_model,
91 AppListViewDelegate* delegate) 92 AppListViewDelegate* delegate,
93 AppListModel* app_list_model)
92 : views::MenuModelAdapter(menu_model), 94 : views::MenuModelAdapter(menu_model),
93 delegate_(delegate) {} 95 delegate_(delegate),
96 app_list_model_(app_list_model) {}
94 virtual ~AppListMenuModelAdapter() {} 97 virtual ~AppListMenuModelAdapter() {}
95 98
96 // Overridden from views::MenuModelAdapter: 99 // Overridden from views::MenuModelAdapter:
97 virtual MenuItemView* AppendMenuItem(MenuItemView* menu, 100 virtual MenuItemView* AppendMenuItem(MenuItemView* menu,
98 ui::MenuModel* model, 101 ui::MenuModel* model,
99 int index) OVERRIDE { 102 int index) OVERRIDE {
100 if (!delegate_) 103 if (!delegate_)
101 return NULL; 104 return NULL;
102 105
103 int id = model->GetCommandIdAt(index); 106 int id = model->GetCommandIdAt(index);
104 if (id != AppListMenu::CURRENT_USER) 107 if (id != AppListMenu::CURRENT_USER)
105 return MenuModelAdapter::AppendMenuItem(menu, model, index); 108 return MenuModelAdapter::AppendMenuItem(menu, model, index);
106 109
107 ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance(); 110 ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance();
108 MenuItemView* item = new CurrentUserMenuItem( 111 MenuItemView* item = new CurrentUserMenuItem(
109 menu, 112 menu,
110 id, 113 id,
111 delegate_->GetCurrentUserName(), 114 app_list_model_->current_user_name(),
112 delegate_->GetCurrentUserEmail(), 115 app_list_model_->current_user_email(),
113 *rb.GetImageSkiaNamed(IDR_APP_LIST_USER_INDICATOR)); 116 *rb.GetImageSkiaNamed(IDR_APP_LIST_USER_INDICATOR));
114 menu->CreateSubmenu(); 117 menu->CreateSubmenu();
115 menu->GetSubmenu()->AddChildViewAt(item, index); 118 menu->GetSubmenu()->AddChildViewAt(item, index);
116 return item; 119 return item;
117 } 120 }
118 121
119 private: 122 private:
120 AppListViewDelegate* delegate_; 123 AppListViewDelegate* delegate_;
124 AppListModel* app_list_model_; // Weak. Owned by AppListView.
121 125
122 DISALLOW_COPY_AND_ASSIGN(AppListMenuModelAdapter); 126 DISALLOW_COPY_AND_ASSIGN(AppListMenuModelAdapter);
123 }; 127 };
124 128
125 } // namespace 129 } // namespace
126 130
127 AppListMenuViews::AppListMenuViews(AppListViewDelegate* delegate) 131 AppListMenuViews::AppListMenuViews(AppListViewDelegate* delegate,
132 AppListModel* app_list_model)
128 : AppListMenu(delegate) { 133 : AppListMenu(delegate) {
129 menu_delegate_.reset(new AppListMenuModelAdapter(menu_model(), delegate)); 134 menu_delegate_.reset(new AppListMenuModelAdapter(menu_model(),
135 delegate,
136 app_list_model));
130 menu_ = new MenuItemView(menu_delegate_.get()); 137 menu_ = new MenuItemView(menu_delegate_.get());
131 menu_runner_.reset(new views::MenuRunner(menu_)); 138 menu_runner_.reset(new views::MenuRunner(menu_));
132 menu_delegate_->BuildMenu(menu_); 139 menu_delegate_->BuildMenu(menu_);
133 } 140 }
134 141
135 AppListMenuViews::~AppListMenuViews() {} 142 AppListMenuViews::~AppListMenuViews() {}
136 143
137 void AppListMenuViews::RunMenuAt(views::MenuButton* button, 144 void AppListMenuViews::RunMenuAt(views::MenuButton* button,
138 const gfx::Point& point) { 145 const gfx::Point& point) {
139 ignore_result(menu_runner_->RunMenuAt(button->GetWidget(), button, 146 ignore_result(menu_runner_->RunMenuAt(button->GetWidget(), button,
140 gfx::Rect(point, gfx::Size()), 147 gfx::Rect(point, gfx::Size()),
141 MenuItemView::TOPRIGHT, 148 MenuItemView::TOPRIGHT,
142 ui::MENU_SOURCE_NONE, 0)); 149 ui::MENU_SOURCE_NONE, 0));
143 } 150 }
144 151
145 void AppListMenuViews::Cancel() { 152 void AppListMenuViews::Cancel() {
146 menu_runner_->Cancel(); 153 menu_runner_->Cancel();
147 } 154 }
148 155
149 } // namespace app_list 156 } // namespace app_list
OLDNEW
« no previous file with comments | « ui/app_list/views/app_list_menu_views.h ('k') | ui/app_list/views/app_list_view.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698