| Index: chrome/browser/ui/views/bookmarks/bookmark_bar_instructions_view.cc
|
| diff --git a/chrome/browser/ui/views/bookmarks/bookmark_bar_instructions_view.cc b/chrome/browser/ui/views/bookmarks/bookmark_bar_instructions_view.cc
|
| index 7c5787ba8f851eb515c1e5429bb98fd9bc9a8274..698e43ddd4caf0cb982061b0b761645c97318472 100644
|
| --- a/chrome/browser/ui/views/bookmarks/bookmark_bar_instructions_view.cc
|
| +++ b/chrome/browser/ui/views/bookmarks/bookmark_bar_instructions_view.cc
|
| @@ -13,14 +13,25 @@
|
| #include "chrome/grit/generated_resources.h"
|
| #include "ui/accessibility/ax_view_state.h"
|
| #include "ui/base/l10n/l10n_util.h"
|
| +#include "ui/base/resource/material_design/material_design_controller.h"
|
| #include "ui/base/theme_provider.h"
|
| +#include "ui/native_theme/native_theme.h"
|
| #include "ui/views/controls/label.h"
|
| #include "ui/views/controls/link.h"
|
|
|
| namespace {
|
|
|
| // Horizontal padding, in pixels, between the link and label.
|
| -const int kViewPadding = 6;
|
| +const int GetViewPadding() {
|
| + if (ui::MaterialDesignController::IsModeMaterial()) {
|
| + static int space_width =
|
| + views::Label(base::ASCIIToUTF16(" ")).GetPreferredSize().width();
|
| + return space_width;
|
| + }
|
| +
|
| + // Pre-MD is hard-coded to 6px.
|
| + return 6;
|
| +}
|
|
|
| } // namespace
|
|
|
| @@ -34,6 +45,7 @@ BookmarkBarInstructionsView::BookmarkBarInstructionsView(
|
| instructions_ = new views::Label(
|
| l10n_util::GetStringUTF16(IDS_BOOKMARKS_NO_ITEMS));
|
| instructions_->SetAutoColorReadabilityEnabled(false);
|
| + instructions_->SetHorizontalAlignment(gfx::ALIGN_LEFT);
|
| AddChildView(instructions_);
|
|
|
| if (browser_defaults::kShowImportOnBookmarkBar) {
|
| @@ -44,6 +56,7 @@ BookmarkBarInstructionsView::BookmarkBarInstructionsView(
|
| import_link_->set_listener(this);
|
| import_link_->set_context_menu_controller(this);
|
| import_link_->SetAutoColorReadabilityEnabled(false);
|
| + import_link_->SetHorizontalAlignment(gfx::ALIGN_LEFT);
|
| AddChildView(import_link_);
|
| }
|
| }
|
| @@ -62,7 +75,7 @@ gfx::Size BookmarkBarInstructionsView::GetPreferredSize() const {
|
| }
|
| width += pref.width();
|
| }
|
| - width += (child_count() - 1) * kViewPadding;
|
| + width += (child_count() - 1) * GetViewPadding();
|
| if (ascent != 0)
|
| height = std::max(ascent + descent, height);
|
| return gfx::Size(width, height);
|
| @@ -82,7 +95,7 @@ void BookmarkBarInstructionsView::Layout() {
|
| y = (height() - pref.height()) / 2;
|
| int view_width = std::min(remaining_width, pref.width());
|
| view->SetBounds(x, y, view_width, pref.height());
|
| - x += view_width + kViewPadding;
|
| + x += view_width + GetViewPadding();
|
| remaining_width = std::max(0, width() - x);
|
| }
|
| }
|
| @@ -128,6 +141,22 @@ void BookmarkBarInstructionsView::UpdateColors() {
|
| SkColor text_color =
|
| theme_provider->GetColor(ThemeProperties::COLOR_BOOKMARK_TEXT);
|
| instructions_->SetEnabledColor(text_color);
|
| - if (import_link_)
|
| + if (!import_link_)
|
| + return;
|
| +
|
| + if (!ui::MaterialDesignController::IsModeMaterial()) {
|
| import_link_->SetEnabledColor(text_color);
|
| + } else {
|
| + // For MD, use the default link color if it provides enough contrast. If
|
| + // contrast is too low, fall back to the bookmark text color and use an
|
| + // underline to make it obvious it's a link. The default color readability
|
| + // code (which only adjusts luminance) doesn't work well in this case.
|
| + SkColor bg = theme_provider->GetColor(ThemeProperties::COLOR_TOOLBAR);
|
| + SkColor link_color =
|
| + GetNativeTheme()->GetSystemColor(ui::NativeTheme::kColorId_LinkEnabled);
|
| + bool link_has_contrast = color_utils::GetContrastRatio(link_color, bg) >=
|
| + color_utils::kMinimumReadableContrastRatio;
|
| + import_link_->SetUnderline(!link_has_contrast);
|
| + import_link_->SetEnabledColor(link_has_contrast ? link_color : text_color);
|
| + }
|
| }
|
|
|