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

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: Action box menu Created 8 years, 5 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/tab_contents/tab_contents.h"
14 #include "chrome/browser/ui/toolbar/action_box_menu_model.h"
11 #include "chrome/browser/ui/view_ids.h" 15 #include "chrome/browser/ui/view_ids.h"
16 #include "chrome/browser/ui/views/action_box_menu.h"
12 #include "chrome/browser/ui/views/browser_dialogs.h" 17 #include "chrome/browser/ui/views/browser_dialogs.h"
13 #include "grit/generated_resources.h" 18 #include "grit/generated_resources.h"
14 #include "grit/theme_resources.h" 19 #include "grit/theme_resources.h"
15 #include "grit/theme_resources_standard.h" 20 #include "grit/theme_resources_standard.h"
16 #include "ui/base/accessibility/accessible_view_state.h" 21 #include "ui/base/accessibility/accessible_view_state.h"
17 #include "ui/base/l10n/l10n_util.h" 22 #include "ui/base/l10n/l10n_util.h"
18 #include "ui/base/resource/resource_bundle.h" 23 #include "ui/base/resource/resource_bundle.h"
19 24
20 namespace { 25 namespace {
21 26
22 // Colors used for button backgrounds. 27 // Colors used for button backgrounds.
23 const SkColor kNormalBackgroundColor = SkColorSetRGB(255, 255, 255); 28 const SkColor kNormalBackgroundColor = SkColorSetRGB(255, 255, 255);
24 const SkColor kHotBackgroundColor = SkColorSetRGB(239, 239, 239); 29 const SkColor kHotBackgroundColor = SkColorSetRGB(239, 239, 239);
25 const SkColor kPushedBackgroundColor = SkColorSetRGB(207, 207, 207); 30 const SkColor kPushedBackgroundColor = SkColorSetRGB(207, 207, 207);
26 31
27 const SkColor kNormalBorderColor = SkColorSetRGB(255, 255, 255); 32 const SkColor kNormalBorderColor = SkColorSetRGB(255, 255, 255);
28 const SkColor kHotBorderColor = SkColorSetRGB(223, 223, 223); 33 const SkColor kHotBorderColor = SkColorSetRGB(223, 223, 223);
29 const SkColor kPushedBorderColor = SkColorSetRGB(191, 191, 191); 34 const SkColor kPushedBorderColor = SkColorSetRGB(191, 191, 191);
30 35
31 } // namespace 36 } // namespace
32 37
33 38
34 ActionBoxButtonView::ActionBoxButtonView(ExtensionService* extension_service) 39 ActionBoxButtonView::ActionBoxButtonView(Profile* profile,
40 LocationBarView::Delegate* delegate)
35 : views::MenuButton(NULL, string16(), this, false), 41 : views::MenuButton(NULL, string16(), this, false),
36 extension_service_(extension_service) { 42 profile_(profile),
43 delegate_(delegate),
44 bookmark_state_(false) {
37 set_id(VIEW_ID_ACTION_BOX_BUTTON); 45 set_id(VIEW_ID_ACTION_BOX_BUTTON);
38 SetTooltipText(l10n_util::GetStringUTF16(IDS_TOOLTIP_ACTION_BOX_BUTTON)); 46 SetTooltipText(l10n_util::GetStringUTF16(IDS_TOOLTIP_ACTION_BOX_BUTTON));
39 SetIcon(*ui::ResourceBundle::GetSharedInstance().GetBitmapNamed( 47 SetIcon(*ui::ResourceBundle::GetSharedInstance().GetBitmapNamed(
40 IDR_ACTION_BOX_BUTTON)); 48 IDR_ACTION_BOX_BUTTON));
41 set_accessibility_focusable(true); 49 set_accessibility_focusable(true);
42 set_border(NULL); 50 set_border(NULL);
43 } 51 }
44 52
45 ActionBoxButtonView::~ActionBoxButtonView() { 53 ActionBoxButtonView::~ActionBoxButtonView() {
46 } 54 }
(...skipping 13 matching lines...) Expand all
60 switch (state()) { 68 switch (state()) {
61 case BS_PUSHED: 69 case BS_PUSHED:
62 return kPushedBorderColor; 70 return kPushedBorderColor;
63 case BS_HOT: 71 case BS_HOT:
64 return kHotBorderColor; 72 return kHotBorderColor;
65 default: 73 default:
66 return kNormalBorderColor; 74 return kNormalBorderColor;
67 } 75 }
68 } 76 }
69 77
78 void ActionBoxButtonView::SetBookmarkState(bool on) {
79 bookmark_state_ = on;
Aaron Boodman 2012/07/02 22:41:34 Do you need to trigger a paint here?
yefimt 2012/07/11 22:34:34 I don't think so, button by itself doesn't show bo
80 }
81
70 void ActionBoxButtonView::GetAccessibleState(ui::AccessibleViewState* state) { 82 void ActionBoxButtonView::GetAccessibleState(ui::AccessibleViewState* state) {
71 MenuButton::GetAccessibleState(state); 83 MenuButton::GetAccessibleState(state);
72 state->name = l10n_util::GetStringUTF16(IDS_ACCNAME_ACTION_BOX_BUTTON); 84 state->name = l10n_util::GetStringUTF16(IDS_ACCNAME_ACTION_BOX_BUTTON);
73 } 85 }
74 86
75 void ActionBoxButtonView::OnMenuButtonClicked(View* source, 87 void ActionBoxButtonView::OnMenuButtonClicked(View* source,
76 const gfx::Point& point) { 88 const gfx::Point& point) {
77 // TODO(yefim): Implement menu here. 89 ExtensionService* extension_service =
90 ExtensionSystem::Get(profile_)->extension_service();
91 if (!extension_service)
92 return;
93
94 const TabContents* tab_contents = delegate_->GetTabContents();
95 if (!tab_contents)
96 return;
97 Browser* browser =
Aaron Boodman 2012/07/02 22:41:34 Add blank line before this one.
yefimt 2012/07/11 22:34:34 Done.
98 browser::FindBrowserWithWebContents(tab_contents->web_contents());
99
Aaron Boodman 2012/07/02 22:41:34 Remove blank line.
yefimt 2012/07/11 22:34:34 Done.
100 if (!browser)
101 return;
102
103 ActionBoxMenuModel model(extension_service);
104 action_box_menu_.reset(new ActionBoxMenu(browser, &model, bookmark_state_));
105 action_box_menu_->Init();
106 action_box_menu_->RunMenu(this);
107 action_box_menu_.reset(NULL);
78 } 108 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698