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

Side by Side Diff: chrome/browser/ui/views/action_box_menu.cc

Issue 11026076: Added MenuConfig setter to MenuItemView, updated rest of the code to use set MenuConfig if it avail… (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 2 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
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "chrome/browser/ui/views/action_box_menu.h" 5 #include "chrome/browser/ui/views/action_box_menu.h"
6 6
7 #include "chrome/browser/ui/toolbar/action_box_menu_model.h" 7 #include "chrome/browser/ui/toolbar/action_box_menu_model.h"
8 #include "chrome/browser/ui/views/browser_action_view.h" 8 #include "chrome/browser/ui/views/browser_action_view.h"
9 #include "grit/generated_resources.h" 9 #include "grit/generated_resources.h"
10 #include "grit/theme_resources.h" 10 #include "grit/theme_resources.h"
11 #include "ui/base/l10n/l10n_util.h" 11 #include "ui/base/l10n/l10n_util.h"
12 #include "ui/base/resource/resource_bundle.h" 12 #include "ui/base/resource/resource_bundle.h"
13 #include "ui/views/bubble/bubble_border.h" 13 #include "ui/views/bubble/bubble_border.h"
14 #include "ui/views/controls/button/menu_button.h" 14 #include "ui/views/controls/button/menu_button.h"
15 #include "ui/views/controls/menu/menu_config.h"
15 #include "ui/views/controls/menu/menu_runner.h" 16 #include "ui/views/controls/menu/menu_runner.h"
16 #include "ui/views/view.h" 17 #include "ui/views/view.h"
17 18
18 #if defined(OS_WIN) && !defined(USE_AURA) 19 #if defined(OS_WIN) && !defined(USE_AURA)
19 // Included for MENU_POPUPITEM and a few other Windows specific constants. 20 // Included for MENU_POPUPITEM and a few other Windows specific constants.
20 #include <vssym32.h> 21 #include <vssym32.h>
21 #include "ui/base/native_theme/native_theme_win.h" 22 #include "ui/base/native_theme/native_theme_win.h"
22 #endif 23 #endif
23 24
25 struct ActionBoxMenuConfig : public views::MenuConfig {
sky 2012/10/08 21:32:26 MenuConfig isn't set up for subclassing for two re
yefimt 2012/10/08 22:32:01 Done.
26 public:
27 ActionBoxMenuConfig() : menu_config_(NULL) {
28 menu_config_ = Create();
29 CustomizeMenu();
30 }
31 void CustomizeMenu() {
32 // TODO(yefim): add menu customization here.
33 }
34 views::MenuConfig* menu_config_;
sky 2012/10/08 21:32:26 There's no need for this now, right?
yefimt 2012/10/08 22:32:01 Done.
35 };
36
24 // static 37 // static
25 scoped_ptr<ActionBoxMenu> ActionBoxMenu::Create( 38 scoped_ptr<ActionBoxMenu> ActionBoxMenu::Create(
26 Browser* browser, 39 Browser* browser,
27 scoped_ptr<ActionBoxMenuModel> model) { 40 scoped_ptr<ActionBoxMenuModel> model) {
28 scoped_ptr<ActionBoxMenu> menu(new ActionBoxMenu(browser, model.Pass())); 41 scoped_ptr<ActionBoxMenu> menu(new ActionBoxMenu(browser, model.Pass()));
29 menu->PopulateMenu(); 42 menu->PopulateMenu();
30 return menu.Pass(); 43 return menu.Pass();
31 } 44 }
32 45
33 ActionBoxMenu::~ActionBoxMenu() { 46 ActionBoxMenu::~ActionBoxMenu() {
(...skipping 11 matching lines...) Expand all
45 views::MenuItemView::TOPRIGHT, 58 views::MenuItemView::TOPRIGHT,
46 views::MenuRunner::HAS_MNEMONICS)); 59 views::MenuRunner::HAS_MNEMONICS));
47 } 60 }
48 61
49 ActionBoxMenu::ActionBoxMenu(Browser* browser, 62 ActionBoxMenu::ActionBoxMenu(Browser* browser,
50 scoped_ptr<ActionBoxMenuModel> model) 63 scoped_ptr<ActionBoxMenuModel> model)
51 : browser_(browser), 64 : browser_(browser),
52 model_(model.Pass()) { 65 model_(model.Pass()) {
53 views::MenuItemView* menu = new views::MenuItemView(this); 66 views::MenuItemView* menu = new views::MenuItemView(this);
54 menu->set_has_icons(true); 67 menu->set_has_icons(true);
68 ActionBoxMenuConfig menu_config;
69 // |menu| will own MenuConfig
70 menu->set_menu_config(menu_config.menu_config_);
71 menu_config.menu_config_ = NULL;
72
55 menu_runner_.reset(new views::MenuRunner(menu)); 73 menu_runner_.reset(new views::MenuRunner(menu));
56 } 74 }
57 75
58 void ActionBoxMenu::ExecuteCommand(int id) { 76 void ActionBoxMenu::ExecuteCommand(int id) {
59 model_->ExecuteCommand(id); 77 model_->ExecuteCommand(id);
60 } 78 }
61 79
62 views::Border* ActionBoxMenu::CreateMenuBorder() { 80 views::Border* ActionBoxMenu::CreateMenuBorder() {
63 // TODO(yefim): Use correct theme color on non-Windows. 81 // TODO(yefim): Use correct theme color on non-Windows.
64 SkColor border_color = SK_ColorBLACK; 82 SkColor border_color = SK_ColorBLACK;
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
136 const extensions::Extension* extension = 154 const extensions::Extension* extension =
137 model_->GetExtensionAt(model_index); 155 model_->GetExtensionAt(model_index);
138 BrowserActionView* view = new BrowserActionView(extension, 156 BrowserActionView* view = new BrowserActionView(extension,
139 browser_, this); 157 browser_, this);
140 // |menu_item| will own the |view| from now on. 158 // |menu_item| will own the |view| from now on.
141 menu_item->SetIconView(view); 159 menu_item->SetIconView(view);
142 } 160 }
143 } 161 }
144 } 162 }
145 } 163 }
OLDNEW
« no previous file with comments | « no previous file | ui/views/controls/menu/menu_config.h » ('j') | ui/views/controls/menu/menu_item_view.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698