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

Side by Side Diff: views/controls/menu/menu_model_adapter_unittest.cc

Issue 6987030: Fix MenuModelAdapter clang build (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years, 7 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 | Annotate | Revision Log
« no previous file with comments | « views/controls/menu/menu_model_adapter.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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/base/l10n/l10n_util.h" 5 #include "ui/base/l10n/l10n_util.h"
6 #include "ui/base/models/menu_model.h" 6 #include "ui/base/models/menu_model.h"
7 #include "ui/base/models/menu_model_delegate.h" 7 #include "ui/base/models/menu_model_delegate.h"
8 #include "views/controls/menu/menu_item_view.h" 8 #include "views/controls/menu/menu_item_view.h"
9 #include "views/controls/menu/menu_model_adapter.h" 9 #include "views/controls/menu/menu_model_adapter.h"
10 #include "views/controls/menu/submenu_view.h" 10 #include "views/controls/menu/submenu_view.h"
11 #include "views/test/views_test_base.h" 11 #include "views/test/views_test_base.h"
12 12
13 namespace { 13 namespace {
14 14
15 // Base command id for test menu and its submenu. 15 // Base command id for test menu and its submenu.
16 const int kRootIdBase = 100; 16 const int kRootIdBase = 100;
17 const int kSubmenuIdBase = 200; 17 const int kSubmenuIdBase = 200;
18 18
19 // Offset to return for GetFirstItemIndex(). This is an arbitrary 19 // Offset to return for GetFirstItemIndex(). This is an arbitrary
20 // number to ensure that we aren't assuming it is 0. 20 // number to ensure that we aren't assuming it is 0.
21 const int kFirstItemIndex = 25; 21 const int kFirstItemIndex = 25;
22 22
23 class MenuModelBase : public ui::MenuModel { 23 class MenuModelBase : public ui::MenuModel {
24 public: 24 public:
25 MenuModelBase(int command_id_base) : command_id_base_(command_id_base), 25 MenuModelBase(int command_id_base) : command_id_base_(command_id_base),
26 last_activation_(-1) { 26 last_activation_(-1) {
27 } 27 }
28 28
29 virtual ~MenuModelBase() {
30 }
31
29 // ui::MenuModel implementation: 32 // ui::MenuModel implementation:
30 33
31 virtual bool HasIcons() const OVERRIDE { 34 virtual bool HasIcons() const OVERRIDE {
32 return false; 35 return false;
33 } 36 }
34 37
35 virtual int GetFirstItemIndex(gfx::NativeMenu native_menu) const OVERRIDE { 38 virtual int GetFirstItemIndex(gfx::NativeMenu native_menu) const OVERRIDE {
36 return kFirstItemIndex; 39 return kFirstItemIndex;
37 } 40 }
38 41
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
150 DISALLOW_COPY_AND_ASSIGN(MenuModelBase); 153 DISALLOW_COPY_AND_ASSIGN(MenuModelBase);
151 }; 154 };
152 155
153 class SubmenuModel : public MenuModelBase { 156 class SubmenuModel : public MenuModelBase {
154 public: 157 public:
155 SubmenuModel() : MenuModelBase(kSubmenuIdBase) { 158 SubmenuModel() : MenuModelBase(kSubmenuIdBase) {
156 items_.push_back(Item(TYPE_COMMAND, "submenu item 0", NULL)); 159 items_.push_back(Item(TYPE_COMMAND, "submenu item 0", NULL));
157 items_.push_back(Item(TYPE_COMMAND, "submenu item 1", NULL)); 160 items_.push_back(Item(TYPE_COMMAND, "submenu item 1", NULL));
158 } 161 }
159 162
163 virtual ~SubmenuModel() {
164 }
165
160 private: 166 private:
161 DISALLOW_COPY_AND_ASSIGN(SubmenuModel); 167 DISALLOW_COPY_AND_ASSIGN(SubmenuModel);
162 }; 168 };
163 169
164 class RootModel : public MenuModelBase { 170 class RootModel : public MenuModelBase {
165 public: 171 public:
166 RootModel() : MenuModelBase(kRootIdBase) { 172 RootModel() : MenuModelBase(kRootIdBase) {
167 submenu_model_.reset(new SubmenuModel); 173 submenu_model_.reset(new SubmenuModel);
168 174
169 items_.push_back(Item(TYPE_COMMAND, "command 0", NULL)); 175 items_.push_back(Item(TYPE_COMMAND, "command 0", NULL));
170 items_.push_back(Item(TYPE_CHECK, "check 1", NULL)); 176 items_.push_back(Item(TYPE_CHECK, "check 1", NULL));
171 items_.push_back(Item(TYPE_SEPARATOR, "", NULL)); 177 items_.push_back(Item(TYPE_SEPARATOR, "", NULL));
172 items_.push_back(Item(TYPE_SUBMENU, "submenu 3", submenu_model_.get())); 178 items_.push_back(Item(TYPE_SUBMENU, "submenu 3", submenu_model_.get()));
173 items_.push_back(Item(TYPE_RADIO, "radio 4", NULL)); 179 items_.push_back(Item(TYPE_RADIO, "radio 4", NULL));
174 } 180 }
175 181
182 virtual ~RootModel() {
183 }
184
176 private: 185 private:
177 scoped_ptr<MenuModel> submenu_model_; 186 scoped_ptr<MenuModel> submenu_model_;
178 187
179 DISALLOW_COPY_AND_ASSIGN(RootModel); 188 DISALLOW_COPY_AND_ASSIGN(RootModel);
180 }; 189 };
181 190
182 } // namespace 191 } // namespace
183 192
184 namespace views { 193 namespace views {
185 194
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
280 } 289 }
281 290
282 // Check activation. 291 // Check activation.
283 static_cast<views::MenuDelegate*>(&delegate)->ExecuteCommand(id); 292 static_cast<views::MenuDelegate*>(&delegate)->ExecuteCommand(id);
284 EXPECT_EQ(i + kFirstItemIndex, submodel->last_activation()); 293 EXPECT_EQ(i + kFirstItemIndex, submodel->last_activation());
285 submodel->set_last_activation(-1); 294 submodel->set_last_activation(-1);
286 } 295 }
287 } 296 }
288 297
289 } // namespace views 298 } // namespace views
OLDNEW
« no previous file with comments | « views/controls/menu/menu_model_adapter.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698