Index: chrome/browser/ui/views/location_bar/keyword_hint_view.cc |
diff --git a/chrome/browser/ui/views/location_bar/keyword_hint_view.cc b/chrome/browser/ui/views/location_bar/keyword_hint_view.cc |
index 2c0db47e9c027d48e0686b733789a504bca20eb5..1e6ef680a772cad36908767d93fcb1e139226ada 100644 |
--- a/chrome/browser/ui/views/location_bar/keyword_hint_view.cc |
+++ b/chrome/browser/ui/views/location_bar/keyword_hint_view.cc |
@@ -20,6 +20,7 @@ |
#include "ui/strings/grit/ui_strings.h" |
#include "ui/views/border.h" |
#include "ui/views/controls/label.h" |
+#include "ui/views/layout/fill_layout.h" |
#if defined(USE_AURA) |
#include "ui/keyboard/keyboard_util.h" |
@@ -27,19 +28,6 @@ |
namespace { |
-// This view looks somewhat like a keyboard key. |
-class KeyboardKeyView : public views::Label { |
- public: |
- explicit KeyboardKeyView(const gfx::FontList& font_list); |
- ~KeyboardKeyView() override; |
- |
- private: |
- // views::Label: |
- gfx::Size GetPreferredSize() const override; |
- |
- DISALLOW_COPY_AND_ASSIGN(KeyboardKeyView); |
-}; |
- |
bool IsVirtualKeyboardVisible() { |
#if defined(USE_AURA) |
return keyboard::IsKeyboardVisible(); |
@@ -48,48 +36,42 @@ bool IsVirtualKeyboardVisible() { |
#endif |
} |
-KeyboardKeyView::KeyboardKeyView(const gfx::FontList& font_list) |
- : views::Label(base::string16(), {font_list}) { |
- SetBorder(views::CreateEmptyBorder( |
- gfx::Insets(LocationBarView::kBubbleVerticalPadding, 0))); |
-} |
- |
-KeyboardKeyView::~KeyboardKeyView() {} |
- |
-gfx::Size KeyboardKeyView::GetPreferredSize() const { |
- gfx::Size size = views::Label::GetPreferredSize(); |
- constexpr int kPaddingInsideBorder = 5; |
- // Even though the border is 1 px thick visibly, it takes 1 DIP logically. |
- size.Enlarge(2 * (kPaddingInsideBorder + 1), 0); |
- return size; |
-} |
- |
} // namespace |
KeywordHintView::KeywordHintView(views::ButtonListener* listener, |
Profile* profile, |
const gfx::FontList& font_list, |
const gfx::FontList& bubble_font_list, |
- int chip_height, |
SkColor text_color, |
SkColor background_color) |
: CustomButton(listener), |
profile_(profile), |
leading_label_(nullptr), |
- chip_view_(new KeyboardKeyView(bubble_font_list)), |
- trailing_label_(nullptr), |
- chip_view_height_(chip_height) { |
+ chip_container_(new views::View()), |
+ chip_label_(new views::Label(base::string16(), {bubble_font_list})), |
+ trailing_label_(nullptr) { |
leading_label_ = |
CreateLabel(font_list, text_color, background_color); |
- chip_view_->SetEnabledColor(text_color); |
+ |
+ constexpr int kPaddingInsideBorder = 5; |
+ // Even though the border is 1 px thick visibly, it takes 1 DIP logically. |
+ chip_label_->SetBorder( |
+ views::CreateEmptyBorder(gfx::Insets(0, kPaddingInsideBorder + 1))); |
+ chip_label_->SetEnabledColor(text_color); |
bool inverted = color_utils::IsDark(background_color); |
SkColor tab_bg_color = |
inverted ? SK_ColorWHITE : SkColorSetA(text_color, 0x13); |
SkColor tab_border_color = inverted ? SK_ColorWHITE : text_color; |
- chip_view_->SetBackgroundColor(tab_bg_color); |
- chip_view_->set_background( |
+ chip_label_->SetBackgroundColor(tab_bg_color); |
+ |
+ chip_container_->SetBorder(views::CreateEmptyBorder( |
+ gfx::Insets(LocationBarView::kBubbleVerticalPadding, 0))); |
+ chip_container_->set_background( |
new BackgroundWith1PxBorder(tab_bg_color, tab_border_color)); |
- AddChildView(chip_view_); |
+ chip_container_->AddChildView(chip_label_); |
+ chip_container_->SetLayoutManager(new views::FillLayout()); |
+ AddChildView(chip_container_); |
+ |
trailing_label_ = |
CreateLabel(font_list, text_color, background_color); |
} |
@@ -114,12 +96,12 @@ void KeywordHintView::SetKeyword(const base::string16& keyword) { |
int message_id = is_extension_keyword |
? IDS_OMNIBOX_EXTENSION_KEYWORD_HINT_TOUCH |
: IDS_OMNIBOX_KEYWORD_HINT_TOUCH; |
- chip_view_->SetText(l10n_util::GetStringFUTF16(message_id, short_name)); |
+ chip_label_->SetText(l10n_util::GetStringFUTF16(message_id, short_name)); |
leading_label_->SetText(base::string16()); |
trailing_label_->SetText(base::string16()); |
} else { |
- chip_view_->SetText(l10n_util::GetStringUTF16(IDS_APP_TAB_KEY)); |
+ chip_label_->SetText(l10n_util::GetStringUTF16(IDS_APP_TAB_KEY)); |
std::vector<size_t> content_param_offsets; |
int message_id = is_extension_keyword ? IDS_OMNIBOX_EXTENSION_KEYWORD_HINT |
@@ -137,7 +119,7 @@ void KeywordHintView::SetKeyword(const base::string16& keyword) { |
gfx::Size KeywordHintView::GetPreferredSize() const { |
// Height will be ignored by the LocationBarView. |
return gfx::Size(leading_label_->GetPreferredSize().width() + |
- chip_view_->GetPreferredSize().width() + |
+ chip_container_->GetPreferredSize().width() + |
trailing_label_->GetPreferredSize().width() + |
LocationBarView::kIconInteriorPadding, |
0); |
@@ -145,20 +127,19 @@ gfx::Size KeywordHintView::GetPreferredSize() const { |
gfx::Size KeywordHintView::GetMinimumSize() const { |
// Height will be ignored by the LocationBarView. |
- return chip_view_->GetPreferredSize(); |
+ return chip_container_->GetPreferredSize(); |
} |
void KeywordHintView::Layout() { |
- int chip_width = chip_view_->GetPreferredSize().width(); |
+ int chip_width = chip_container_->GetPreferredSize().width(); |
bool show_labels = (width() != chip_width); |
gfx::Size leading_size(leading_label_->GetPreferredSize()); |
leading_label_->SetBounds(0, 0, show_labels ? leading_size.width() : 0, |
height()); |
- chip_view_->SetBounds(leading_label_->bounds().right(), |
- (height() - chip_view_height_) / 2, chip_width, |
- chip_view_height_); |
+ chip_container_->SetBounds(leading_label_->bounds().right(), 0, chip_width, |
+ height()); |
gfx::Size trailing_size(trailing_label_->GetPreferredSize()); |
- trailing_label_->SetBounds(chip_view_->bounds().right(), 0, |
+ trailing_label_->SetBounds(chip_container_->bounds().right(), 0, |
show_labels ? trailing_size.width() : 0, height()); |
} |