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

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

Issue 7044016: Replace ButtonDropDown menu implementation (Menu2) with MenuItemView. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: One last little style fix. Created 9 years, 6 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_item_view.h ('k') | views/controls/menu/menu_model_adapter.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 (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 "views/controls/menu/menu_item_view.h" 5 #include "views/controls/menu/menu_item_view.h"
6 6
7 #include "base/i18n/case_conversion.h" 7 #include "base/i18n/case_conversion.h"
8 #include "base/stl_util-inl.h" 8 #include "base/stl_util-inl.h"
9 #include "base/utf_string_conversions.h" 9 #include "base/utf_string_conversions.h"
10 #include "grit/app_strings.h" 10 #include "grit/app_strings.h"
(...skipping 18 matching lines...) Expand all
29 29
30 // EmptyMenuMenuItem --------------------------------------------------------- 30 // EmptyMenuMenuItem ---------------------------------------------------------
31 31
32 // EmptyMenuMenuItem is used when a menu has no menu items. EmptyMenuMenuItem 32 // EmptyMenuMenuItem is used when a menu has no menu items. EmptyMenuMenuItem
33 // is itself a MenuItemView, but it uses a different ID so that it isn't 33 // is itself a MenuItemView, but it uses a different ID so that it isn't
34 // identified as a MenuItemView. 34 // identified as a MenuItemView.
35 35
36 class EmptyMenuMenuItem : public MenuItemView { 36 class EmptyMenuMenuItem : public MenuItemView {
37 public: 37 public:
38 explicit EmptyMenuMenuItem(MenuItemView* parent) 38 explicit EmptyMenuMenuItem(MenuItemView* parent)
39 : MenuItemView(parent, 0, NORMAL) { 39 : MenuItemView(parent, 0, EMPTY) {
40 // Set this so that we're not identified as a normal menu item. 40 // Set this so that we're not identified as a normal menu item.
41 SetID(kEmptyMenuItemViewID); 41 SetID(kEmptyMenuItemViewID);
42 SetTitle(UTF16ToWide( 42 SetTitle(UTF16ToWide(
43 l10n_util::GetStringUTF16(IDS_APP_MENU_EMPTY_SUBMENU))); 43 l10n_util::GetStringUTF16(IDS_APP_MENU_EMPTY_SUBMENU)));
44 SetEnabled(false); 44 SetEnabled(false);
45 } 45 }
46 46
47 virtual bool GetTooltipText(const gfx::Point& p, std::wstring* tooltip) { 47 virtual bool GetTooltipText(const gfx::Point& p, std::wstring* tooltip) {
48 // Empty menu items shouldn't have a tooltip. 48 // Empty menu items shouldn't have a tooltip.
49 return false; 49 return false;
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
129 case SUBMENU: 129 case SUBMENU:
130 state->state |= ui::AccessibilityTypes::STATE_HASPOPUP; 130 state->state |= ui::AccessibilityTypes::STATE_HASPOPUP;
131 break; 131 break;
132 case CHECKBOX: 132 case CHECKBOX:
133 case RADIO: 133 case RADIO:
134 state->state |= GetDelegate()->IsItemChecked(GetCommand()) ? 134 state->state |= GetDelegate()->IsItemChecked(GetCommand()) ?
135 ui::AccessibilityTypes::STATE_CHECKED : 0; 135 ui::AccessibilityTypes::STATE_CHECKED : 0;
136 break; 136 break;
137 case NORMAL: 137 case NORMAL:
138 case SEPARATOR: 138 case SEPARATOR:
139 case EMPTY:
139 // No additional accessibility states currently for these menu states. 140 // No additional accessibility states currently for these menu states.
140 break; 141 break;
141 } 142 }
142 } 143 }
143 144
144 // static 145 // static
145 string16 MenuItemView::GetAccessibleNameForMenuItem( 146 string16 MenuItemView::GetAccessibleNameForMenuItem(
146 const string16& item_text, const string16& accelerator_text) { 147 const string16& item_text, const string16& accelerator_text) {
147 string16 accessible_name = item_text; 148 string16 accessible_name = item_text;
148 149
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
253 canceled_ = true; 254 canceled_ = true;
254 controller_->Cancel(MenuController::EXIT_ALL); 255 controller_->Cancel(MenuController::EXIT_ALL);
255 } 256 }
256 } 257 }
257 258
258 MenuItemView* MenuItemView::AddMenuItemAt(int index, 259 MenuItemView* MenuItemView::AddMenuItemAt(int index,
259 int item_id, 260 int item_id,
260 const std::wstring& label, 261 const std::wstring& label,
261 const SkBitmap& icon, 262 const SkBitmap& icon,
262 Type type) { 263 Type type) {
264 DCHECK_NE(type, EMPTY);
263 DCHECK_LE(0, index); 265 DCHECK_LE(0, index);
264 if (!submenu_) 266 if (!submenu_)
265 CreateSubmenu(); 267 CreateSubmenu();
266 DCHECK_GE(submenu_->child_count(), index); 268 DCHECK_GE(submenu_->child_count(), index);
267 if (type == SEPARATOR) { 269 if (type == SEPARATOR) {
268 submenu_->AddChildViewAt(new MenuSeparator(), index); 270 submenu_->AddChildViewAt(new MenuSeparator(), index);
269 return NULL; 271 return NULL;
270 } 272 }
271 MenuItemView* item = new MenuItemView(this, item_id, type); 273 MenuItemView* item = new MenuItemView(this, item_id, type);
272 if (label.empty() && GetDelegate()) 274 if (label.empty() && GetDelegate())
(...skipping 283 matching lines...) Expand 10 before | Expand all | Expand 10 after
556 type_ = type; 558 type_ = type;
557 selected_ = false; 559 selected_ = false;
558 command_ = command; 560 command_ = command;
559 submenu_ = NULL; 561 submenu_ = NULL;
560 show_mnemonics_ = false; 562 show_mnemonics_ = false;
561 // Assign our ID, this allows SubmenuItemView to find MenuItemViews. 563 // Assign our ID, this allows SubmenuItemView to find MenuItemViews.
562 SetID(kMenuItemViewID); 564 SetID(kMenuItemViewID);
563 has_icons_ = false; 565 has_icons_ = false;
564 566
565 // Don't request enabled status from the root menu item as it is just 567 // Don't request enabled status from the root menu item as it is just
566 // a container for real items. 568 // a container for real items. EMPTY items will be disabled.
567 MenuDelegate* root_delegate = GetDelegate(); 569 MenuDelegate* root_delegate = GetDelegate();
568 if (parent && root_delegate) 570 if (parent && type != EMPTY && root_delegate)
569 SetEnabled(root_delegate->IsCommandEnabled(command)); 571 SetEnabled(root_delegate->IsCommandEnabled(command));
570 } 572 }
571 573
572 void MenuItemView::DropMenuClosed(bool notify_delegate) { 574 void MenuItemView::DropMenuClosed(bool notify_delegate) {
573 DCHECK(controller_); 575 DCHECK(controller_);
574 DCHECK(!controller_->IsBlockingRun()); 576 DCHECK(!controller_->IsBlockingRun());
575 if (MenuController::GetActiveInstance() == controller_) 577 if (MenuController::GetActiveInstance() == controller_)
576 MenuController::SetActiveInstance(NULL); 578 MenuController::SetActiveInstance(NULL);
577 delete controller_; 579 delete controller_;
578 controller_ = NULL; 580 controller_ = NULL;
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after
745 return string16(); 747 return string16();
746 } 748 }
747 749
748 Accelerator accelerator; 750 Accelerator accelerator;
749 return (GetDelegate() && 751 return (GetDelegate() &&
750 GetDelegate()->GetAccelerator(GetCommand(), &accelerator)) ? 752 GetDelegate()->GetAccelerator(GetCommand(), &accelerator)) ?
751 accelerator.GetShortcutText() : string16(); 753 accelerator.GetShortcutText() : string16();
752 } 754 }
753 755
754 } // namespace views 756 } // namespace views
OLDNEW
« no previous file with comments | « views/controls/menu/menu_item_view.h ('k') | views/controls/menu/menu_model_adapter.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698