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

Unified Diff: chrome/browser/ui/views/toolbar/toolbar_actions_bar_bubble_views.cc

Issue 1881773002: [Extensions UI] Convert ExtensionMessageBubbles to ToolbarActionsBarBubbles (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 4 years, 8 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 side-by-side diff with in-line comments
Download patch
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();
}

Powered by Google App Engine
This is Rietveld 408576698