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

Side by Side Diff: chrome/browser/ui/views/location_bar/action_box_button_view.cc

Issue 10533086: Action box menu (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 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
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/location_bar/action_box_button_view.h" 5 #include "chrome/browser/ui/views/location_bar/action_box_button_view.h"
6 6
7 #include "base/utf_string_conversions.h" 7 #include "base/utf_string_conversions.h"
8 #include "chrome/app/chrome_command_ids.h" 8 #include "chrome/app/chrome_command_ids.h"
9 #include "chrome/browser/command_updater.h" 9 #include "chrome/browser/command_updater.h"
10 #include "chrome/browser/extensions/extension_service.h" 10 #include "chrome/browser/extensions/extension_service.h"
11 #include "chrome/browser/extensions/extension_system.h"
12 #include "chrome/browser/ui/browser_finder.h"
13 #include "chrome/browser/ui/toolbar/action_box_menu_model.h"
11 #include "chrome/browser/ui/view_ids.h" 14 #include "chrome/browser/ui/view_ids.h"
15 #include "chrome/browser/ui/views/action_box_menu.h"
12 #include "chrome/browser/ui/views/browser_dialogs.h" 16 #include "chrome/browser/ui/views/browser_dialogs.h"
13 #include "grit/generated_resources.h" 17 #include "grit/generated_resources.h"
14 #include "grit/theme_resources.h" 18 #include "grit/theme_resources.h"
15 #include "grit/theme_resources_standard.h" 19 #include "grit/theme_resources_standard.h"
16 #include "ui/base/accessibility/accessible_view_state.h" 20 #include "ui/base/accessibility/accessible_view_state.h"
17 #include "ui/base/l10n/l10n_util.h" 21 #include "ui/base/l10n/l10n_util.h"
18 #include "ui/base/resource/resource_bundle.h" 22 #include "ui/base/resource/resource_bundle.h"
19 23
20 namespace { 24 namespace {
21 25
22 // Colors used for button backgrounds. 26 // Colors used for button backgrounds.
23 const SkColor kNormalBackgroundColor = SkColorSetRGB(255, 255, 255); 27 const SkColor kNormalBackgroundColor = SkColorSetRGB(255, 255, 255);
24 const SkColor kHotBackgroundColor = SkColorSetRGB(239, 239, 239); 28 const SkColor kHotBackgroundColor = SkColorSetRGB(239, 239, 239);
25 const SkColor kPushedBackgroundColor = SkColorSetRGB(207, 207, 207); 29 const SkColor kPushedBackgroundColor = SkColorSetRGB(207, 207, 207);
26 30
27 const SkColor kNormalBorderColor = SkColorSetRGB(255, 255, 255); 31 const SkColor kNormalBorderColor = SkColorSetRGB(255, 255, 255);
28 const SkColor kHotBorderColor = SkColorSetRGB(223, 223, 223); 32 const SkColor kHotBorderColor = SkColorSetRGB(223, 223, 223);
29 const SkColor kPushedBorderColor = SkColorSetRGB(191, 191, 191); 33 const SkColor kPushedBorderColor = SkColorSetRGB(191, 191, 191);
30 34
31 } // namespace 35 } // namespace
32 36
33 37
34 ActionBoxButtonView::ActionBoxButtonView(ExtensionService* extension_service) 38 ActionBoxButtonView::ActionBoxButtonView(Profile* profile)
35 : views::MenuButton(NULL, string16(), this, false), 39 : views::MenuButton(NULL, string16(), this, false),
36 extension_service_(extension_service) { 40 profile_(profile),
41 bookmark_state_(false) {
37 set_id(VIEW_ID_ACTION_BOX_BUTTON); 42 set_id(VIEW_ID_ACTION_BOX_BUTTON);
38 SetTooltipText(l10n_util::GetStringUTF16(IDS_TOOLTIP_ACTION_BOX_BUTTON)); 43 SetTooltipText(l10n_util::GetStringUTF16(IDS_TOOLTIP_ACTION_BOX_BUTTON));
39 SetIcon(*ui::ResourceBundle::GetSharedInstance().GetBitmapNamed( 44 SetIcon(*ui::ResourceBundle::GetSharedInstance().GetBitmapNamed(
40 IDR_ACTION_BOX_BUTTON)); 45 IDR_ACTION_BOX_BUTTON));
41 set_accessibility_focusable(true); 46 set_accessibility_focusable(true);
42 set_border(NULL); 47 set_border(NULL);
43 } 48 }
44 49
45 ActionBoxButtonView::~ActionBoxButtonView() { 50 ActionBoxButtonView::~ActionBoxButtonView() {
46 } 51 }
(...skipping 13 matching lines...) Expand all
60 switch (state()) { 65 switch (state()) {
61 case BS_PUSHED: 66 case BS_PUSHED:
62 return kPushedBorderColor; 67 return kPushedBorderColor;
63 case BS_HOT: 68 case BS_HOT:
64 return kHotBorderColor; 69 return kHotBorderColor;
65 default: 70 default:
66 return kNormalBorderColor; 71 return kNormalBorderColor;
67 } 72 }
68 } 73 }
69 74
75 void ActionBoxButtonView::SetBookmarkState(bool on) {
76 bookmark_state_ = on;
77 }
78
70 void ActionBoxButtonView::GetAccessibleState(ui::AccessibleViewState* state) { 79 void ActionBoxButtonView::GetAccessibleState(ui::AccessibleViewState* state) {
71 MenuButton::GetAccessibleState(state); 80 MenuButton::GetAccessibleState(state);
72 state->name = l10n_util::GetStringUTF16(IDS_ACCNAME_ACTION_BOX_BUTTON); 81 state->name = l10n_util::GetStringUTF16(IDS_ACCNAME_ACTION_BOX_BUTTON);
73 } 82 }
74 83
75 void ActionBoxButtonView::OnMenuButtonClicked(View* source, 84 void ActionBoxButtonView::OnMenuButtonClicked(View* source,
76 const gfx::Point& point) { 85 const gfx::Point& point) {
77 // TODO(yefim): Implement menu here. 86 ExtensionService* extension_service =
87 ExtensionSystem::Get(profile_)->extension_service();
88 if (!extension_service)
89 return;
90
91 Browser* browser = browser::FindBrowserWithProfile(profile_);
92 if (!browser)
93 return;
94
95 ActionBoxMenuModel model(extension_service);
96 action_box_menu_.reset(new ActionBoxMenu(browser, &model, bookmark_state_));
97 action_box_menu_->Init();
98 action_box_menu_->RunMenu(this);
99 action_box_menu_.reset(NULL);
78 } 100 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698