| Index: chrome/browser/ui/views/toolbar/toolbar_actions_bar_bubble_views.cc
|
| diff --git a/chrome/browser/ui/views/toolbar/toolbar_actions_bar_bubble_views.cc b/chrome/browser/ui/views/toolbar/toolbar_actions_bar_bubble_views.cc
|
| index 191bfc83d196d3c17833008b1e43a61cf9a60aaa..b27c51536c72207ba8caafcd591b45b81d9c4e0a 100644
|
| --- a/chrome/browser/ui/views/toolbar/toolbar_actions_bar_bubble_views.cc
|
| +++ b/chrome/browser/ui/views/toolbar/toolbar_actions_bar_bubble_views.cc
|
| @@ -10,9 +10,14 @@
|
| #include "ui/base/resource/resource_bundle.h"
|
| #include "ui/views/controls/button/label_button.h"
|
| #include "ui/views/controls/label.h"
|
| +#include "ui/views/controls/link.h"
|
| #include "ui/views/layout/grid_layout.h"
|
| #include "ui/views/layout/layout_constants.h"
|
|
|
| +namespace {
|
| +const int kListPadding = 10;
|
| +}
|
| +
|
| ToolbarActionsBarBubbleViews::ToolbarActionsBarBubbleViews(
|
| views::View* anchor_view,
|
| std::unique_ptr<ToolbarActionsBarBubbleDelegate> delegate)
|
| @@ -21,6 +26,8 @@ ToolbarActionsBarBubbleViews::ToolbarActionsBarBubbleViews(
|
| delegate_(std::move(delegate)),
|
| heading_label_(nullptr),
|
| content_label_(nullptr),
|
| + item_list_(nullptr),
|
| + learn_more_button_(nullptr),
|
| dismiss_button_(nullptr),
|
| action_button_(nullptr),
|
| acknowledged_(false) {
|
| @@ -42,20 +49,23 @@ void ToolbarActionsBarBubbleViews::Init() {
|
|
|
| enum ColumnSetId {
|
| HEADER_AND_BODY_COLUMN_SET = 0,
|
| + LIST_COLUMN_SET,
|
| BUTTON_STRIP_COLUMN_SET,
|
| };
|
|
|
| views::ColumnSet* header_and_body_cs =
|
| layout->AddColumnSet(HEADER_AND_BODY_COLUMN_SET);
|
| - header_and_body_cs->AddColumn(views::GridLayout::TRAILING,
|
| + header_and_body_cs->AddColumn(views::GridLayout::LEADING,
|
| views::GridLayout::LEADING, 1,
|
| views::GridLayout::USE_PREF, 0, 0);
|
| views::ColumnSet* buttons_cs = layout->AddColumnSet(BUTTON_STRIP_COLUMN_SET);
|
| + buttons_cs->AddColumn(views::GridLayout::LEADING, views::GridLayout::CENTER,
|
| + 0, views::GridLayout::USE_PREF, 0, 0);
|
| buttons_cs->AddPaddingColumn(1, 0);
|
| - buttons_cs->AddColumn(views::GridLayout::TRAILING, views::GridLayout::LEADING,
|
| + buttons_cs->AddColumn(views::GridLayout::TRAILING, views::GridLayout::CENTER,
|
| 0, views::GridLayout::USE_PREF, 0, 0);
|
| buttons_cs->AddPaddingColumn(0, views::kRelatedButtonHSpacing);
|
| - buttons_cs->AddColumn(views::GridLayout::TRAILING, views::GridLayout::LEADING,
|
| + buttons_cs->AddColumn(views::GridLayout::TRAILING, views::GridLayout::CENTER,
|
| 0, views::GridLayout::USE_PREF, 0, 0);
|
|
|
| // Add a header.
|
| @@ -78,9 +88,37 @@ void ToolbarActionsBarBubbleViews::Init() {
|
| content_label_->SizeToFit(width);
|
| content_label_->SetHorizontalAlignment(gfx::ALIGN_LEFT);
|
| layout->AddView(content_label_);
|
| +
|
| + base::string16 item_list = delegate_->GetItemListText();
|
| + if (!item_list.empty()) {
|
| + views::ColumnSet* list_cs = layout->AddColumnSet(LIST_COLUMN_SET);
|
| + list_cs->AddPaddingColumn(0, kListPadding);
|
| + list_cs->AddColumn(views::GridLayout::LEADING,
|
| + views::GridLayout::CENTER,
|
| + 0,
|
| + views::GridLayout::USE_PREF,
|
| + 0, 0);
|
| +
|
| + layout->StartRowWithPadding(0, LIST_COLUMN_SET, 0, 0);
|
| + item_list_ = new views::Label(item_list);
|
| + item_list_->SetMultiLine(true);
|
| + item_list_->SetHorizontalAlignment(gfx::ALIGN_LEFT);
|
| + item_list_->SizeToFit(width);
|
| + layout->AddView(item_list_);
|
| + }
|
| +
|
| layout->AddPaddingRow(0, views::kLabelToControlVerticalSpacing);
|
|
|
| layout->StartRow(0, BUTTON_STRIP_COLUMN_SET);
|
| + base::string16 learn_more_text = delegate_->GetLearnMoreButtonText();
|
| + if (!learn_more_text.empty()) {
|
| + learn_more_button_ = new views::Link(learn_more_text);
|
| + learn_more_button_->set_listener(this);
|
| + layout->AddView(learn_more_button_);
|
| + } else {
|
| + layout->SkipColumns(1);
|
| + }
|
| +
|
| base::string16 dismiss_button_text = delegate_->GetDismissButtonText();
|
| if (!dismiss_button_text.empty()) {
|
| dismiss_button_ = new views::LabelButton(this, dismiss_button_text);
|
| @@ -112,7 +150,20 @@ void ToolbarActionsBarBubbleViews::OnWidgetDestroying(views::Widget* widget) {
|
|
|
| void ToolbarActionsBarBubbleViews::ButtonPressed(views::Button* sender,
|
| const ui::Event& event) {
|
| - delegate_->OnBubbleClosed(ToolbarActionsBarBubbleDelegate::CLOSE_EXECUTE);
|
| + if (sender == action_button_) {
|
| + delegate_->OnBubbleClosed(ToolbarActionsBarBubbleDelegate::CLOSE_EXECUTE);
|
| + } else {
|
| + DCHECK_EQ(dismiss_button_, sender);
|
| + delegate_->OnBubbleClosed(
|
| + ToolbarActionsBarBubbleDelegate::CLOSE_DISMISS_USER_ACTION);
|
| + }
|
| + acknowledged_ = true;
|
| + GetWidget()->Close();
|
| +}
|
| +
|
| +void ToolbarActionsBarBubbleViews::LinkClicked(views::Link* link,
|
| + int event_flags) {
|
| + delegate_->OnBubbleClosed(ToolbarActionsBarBubbleDelegate::CLOSE_LEARN_MORE);
|
| acknowledged_ = true;
|
| GetWidget()->Close();
|
| }
|
|
|