Chromium Code Reviews| Index: chrome/browser/ui/views/location_bar/action_box_button_view.cc |
| diff --git a/chrome/browser/ui/views/location_bar/action_box_button_view.cc b/chrome/browser/ui/views/location_bar/action_box_button_view.cc |
| index b53bd1597e75e9e1fbb04ca9cbfb7a887468e89c..5555156e350333afbe3269e140aaab56280d7739 100644 |
| --- a/chrome/browser/ui/views/location_bar/action_box_button_view.cc |
| +++ b/chrome/browser/ui/views/location_bar/action_box_button_view.cc |
| @@ -8,7 +8,12 @@ |
| #include "chrome/app/chrome_command_ids.h" |
| #include "chrome/browser/command_updater.h" |
| #include "chrome/browser/extensions/extension_service.h" |
| +#include "chrome/browser/extensions/extension_system.h" |
| +#include "chrome/browser/ui/browser_finder.h" |
| +#include "chrome/browser/ui/tab_contents/tab_contents.h" |
| +#include "chrome/browser/ui/toolbar/action_box_menu_model.h" |
| #include "chrome/browser/ui/view_ids.h" |
| +#include "chrome/browser/ui/views/action_box_menu.h" |
| #include "chrome/browser/ui/views/browser_dialogs.h" |
| #include "grit/generated_resources.h" |
| #include "grit/theme_resources.h" |
| @@ -30,9 +35,12 @@ const SkColor kPushedBorderColor = SkColorSetRGB(191, 191, 191); |
| } // namespace |
| -ActionBoxButtonView::ActionBoxButtonView(ExtensionService* extension_service) |
| +ActionBoxButtonView::ActionBoxButtonView(Profile* profile, |
| + Delegate* delegate) |
| : views::MenuButton(NULL, string16(), this, false), |
| - extension_service_(extension_service) { |
| + profile_(profile), |
| + delegate_(delegate), |
| + bookmark_state_(false) { |
| set_id(VIEW_ID_ACTION_BOX_BUTTON); |
| SetTooltipText(l10n_util::GetStringUTF16(IDS_TOOLTIP_ACTION_BOX_BUTTON)); |
| SetIcon(*ui::ResourceBundle::GetSharedInstance().GetBitmapNamed( |
| @@ -66,6 +74,10 @@ SkColor ActionBoxButtonView::GetBorderColor() { |
| } |
| } |
| +void ActionBoxButtonView::SetBookmarkState(bool on) { |
| + bookmark_state_ = on; |
| +} |
| + |
| void ActionBoxButtonView::GetAccessibleState(ui::AccessibleViewState* state) { |
| MenuButton::GetAccessibleState(state); |
| state->name = l10n_util::GetStringUTF16(IDS_ACCNAME_ACTION_BOX_BUTTON); |
| @@ -73,5 +85,18 @@ void ActionBoxButtonView::GetAccessibleState(ui::AccessibleViewState* state) { |
| void ActionBoxButtonView::OnMenuButtonClicked(View* source, |
| const gfx::Point& point) { |
| - // TODO(yefim): Implement menu here. |
| + ExtensionService* extension_service = |
| + extensions::ExtensionSystem::Get(profile_)->extension_service(); |
| + if (!extension_service) |
| + return; |
| + |
| + Browser* browser = delegate_->GetBrowser(); |
|
Peter Kasting
2012/07/14 02:08:01
Why did you choose to make this a delegate method
yefimt
2012/07/17 18:20:37
First of all it was done this way before my change
|
| + if (!browser) |
| + return; |
| + |
| + ActionBoxMenuModel model(extension_service); |
| + action_box_menu_.reset(new ActionBoxMenu(browser, &model, bookmark_state_)); |
| + action_box_menu_->Init(); |
| + action_box_menu_->RunMenu(this); |
| + action_box_menu_.reset(NULL); |
|
Peter Kasting
2012/07/14 02:08:01
Nit: Omit NULL
yefimt
2012/07/17 18:20:37
Done.
|
| } |