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

Unified Diff: chrome/browser/ui/views/location_bar/icon_label_bubble_view.cc

Issue 1834933002: Misc. cleanup (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix missing spacing Created 4 years, 9 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/location_bar/icon_label_bubble_view.cc
diff --git a/chrome/browser/ui/views/location_bar/icon_label_bubble_view.cc b/chrome/browser/ui/views/location_bar/icon_label_bubble_view.cc
index 480e856968adfca0028ee4f9dddb5f47a2c7f1ee..dc316501e9c8fc78a6bbffbdba1dcc6d34b93e0f 100644
--- a/chrome/browser/ui/views/location_bar/icon_label_bubble_view.cc
+++ b/chrome/browser/ui/views/location_bar/icon_label_bubble_view.cc
@@ -110,10 +110,7 @@ bool IconLabelBubbleView::IsShrinking() const {
}
int IconLabelBubbleView::GetImageAndPaddingWidth() const {
- const int image_width = image_->GetPreferredSize().width();
- return image_width
- ? image_width + GetLayoutConstant(ICON_LABEL_VIEW_INTERNAL_PADDING)
- : 0;
+ return image_->GetPreferredSize().width() + GetInternalSpacing();
}
gfx::Size IconLabelBubbleView::GetPreferredSize() const {
@@ -131,9 +128,9 @@ void IconLabelBubbleView::Layout() {
// below. That layout, however, may need for this layout to have already
// happened, since the value of ShouldShowBackground() we read below may
// depend on whether the label has nonzero size. Therefore, we do this first.
- const int label_x = GetBubbleOuterPadding(true) + GetImageAndPaddingWidth();
+ const int label_x = GetOuterPadding(true) + GetImageAndPaddingWidth();
const int label_width =
- std::max(0, width() - label_x - GetBubbleOuterPadding(false));
+ std::max(0, width() - label_x - GetOuterPadding(false));
label_->SetBounds(label_x, 0, label_width, height());
// Now compute the image bounds. In non-MD, the leading padding depends on
@@ -142,9 +139,8 @@ void IconLabelBubbleView::Layout() {
// same, so it's not necessary to handle the two types differently.
const bool icon_has_enough_padding =
!is_extension_icon_ || ui::MaterialDesignController::IsModeMaterial();
- int image_x = GetBubbleOuterPadding(icon_has_enough_padding);
- const int image_preferred_width = image_->GetPreferredSize().width();
- int bubble_trailing_padding = GetBubbleOuterPadding(false);
+ int image_x = GetOuterPadding(icon_has_enough_padding);
+ int bubble_trailing_padding = GetOuterPadding(false);
// If ShouldShowBackground() is true, then either we show a background in the
// steady state, or we're not yet in the last portion of the animation. In
@@ -155,6 +151,7 @@ void IconLabelBubbleView::Layout() {
// close to it. In these cases, we want to shrink the trailing padding first,
// so the image slides all the way to the trailing edge before slowing or
// stopping; then we want to shrink the leading padding down to zero.
+ const int image_preferred_width = image_->GetPreferredSize().width();
if (!ShouldShowBackground()) {
image_x = std::min(image_x, width() - image_preferred_width);
bubble_trailing_padding = std::min(
@@ -216,37 +213,30 @@ SkColor IconLabelBubbleView::GetParentBackgroundColor() const {
gfx::Size IconLabelBubbleView::GetSizeForLabelWidth(int label_width) const {
gfx::Size size(image_->GetPreferredSize());
- bool shrinking = IsShrinking();
+ const bool shrinking = IsShrinking();
// Animation continues for the last few pixels even after the label is not
// visible in order to slide the icon into its final position. Therefore it
// is necessary to animate |total_width| even when the background is hidden
// as long as the animation is still shrinking.
if (ShouldShowBackground() || shrinking) {
- const int image_width = size.width();
- const int padding = GetLayoutConstant(ICON_LABEL_VIEW_INTERNAL_PADDING) +
- GetBubbleOuterPadding(true) +
- GetBubbleOuterPadding(false);
// |multiplier| grows from zero to one, stays equal to one and then shrinks
// to zero again. The view width should correspondingly grow from zero to
// fully showing both label and icon, stay there, then shrink to just large
// enough to show the icon. We don't want to shrink all the way back to
// zero, since this would mean the view would completely disappear and then
// pop back to an icon after the animation finishes.
- int total_width = WidthMultiplier() * (label_width + image_width + padding);
- if (shrinking)
- total_width = std::max(total_width, image_width);
- size.set_width(total_width);
+ const int max_width = MinimumWidthForImageWithBackgroundShown() +
+ GetInternalSpacing() + label_width;
+ const int current_width = WidthMultiplier() * max_width;
+ size.set_width(
+ shrinking ? std::max(current_width, size.width()) : current_width);
}
return size;
}
-int IconLabelBubbleView::GetBubbleOuterPadding(bool leading) const {
- if (ui::MaterialDesignController::IsModeMaterial())
- return GetBubbleOuterPaddingMd(leading);
-
- return GetLayoutConstant(LOCATION_BAR_HORIZONTAL_PADDING) -
- GetLayoutConstant(LOCATION_BAR_BUBBLE_HORIZONTAL_PADDING) +
- (leading ? 0 : GetLayoutConstant(ICON_LABEL_VIEW_TRAILING_PADDING));
+int IconLabelBubbleView::MinimumWidthForImageWithBackgroundShown() const {
+ return GetOuterPadding(true) + image_->GetPreferredSize().width() +
+ GetOuterPadding(false);
}
void IconLabelBubbleView::SetLabelBackgroundColor(
@@ -263,13 +253,20 @@ void IconLabelBubbleView::SetLabelBackgroundColor(
SkColorGetA(chip_background_color)));
}
-int IconLabelBubbleView::GetBubbleOuterPaddingMd(bool leading) const {
- // When the image is empty, leading and trailing padding are equal.
- if (image_->GetPreferredSize().IsEmpty() || !leading)
+int IconLabelBubbleView::GetOuterPadding(bool leading) const {
+ if (ui::MaterialDesignController::IsModeMaterial()) {
+ // Leading and trailing padding are equal.
return GetLayoutConstant(ICON_LABEL_VIEW_TRAILING_PADDING);
+ }
+
+ return GetLayoutConstant(LOCATION_BAR_HORIZONTAL_PADDING) -
+ GetLayoutConstant(LOCATION_BAR_BUBBLE_HORIZONTAL_PADDING) +
+ (leading ? 0 : GetLayoutConstant(ICON_LABEL_VIEW_TRAILING_PADDING));
+}
- // Leading padding is 2dp.
- return 2;
+int IconLabelBubbleView::GetInternalSpacing() const {
+ return image_->GetPreferredSize().IsEmpty() ?
+ 0 : GetLayoutConstant(ICON_LABEL_VIEW_INTERNAL_SPACING);
}
const char* IconLabelBubbleView::GetClassName() const {

Powered by Google App Engine
This is Rietveld 408576698