Index: chrome/browser/ui/autofill/autofill_popup_controller_impl.cc |
diff --git a/chrome/browser/ui/autofill/autofill_popup_controller_impl.cc b/chrome/browser/ui/autofill/autofill_popup_controller_impl.cc |
index 44402305bf6d0e65ff615151dac0e0497b5a4db6..c12b2b4c4fc29ef09abd56eb18a6e1d9ee277dd5 100644 |
--- a/chrome/browser/ui/autofill/autofill_popup_controller_impl.cc |
+++ b/chrome/browser/ui/autofill/autofill_popup_controller_impl.cc |
@@ -122,30 +122,30 @@ void AutofillPopupControllerImpl::Show( |
// Android displays the long text with ellipsis using the view attributes. |
UpdatePopupBounds(); |
- int popup_width = popup_bounds().width(); |
+ float popup_width = popup_bounds().width(); |
// Elide the name and subtext strings so that the popup fits in the available |
// space. |
for (size_t i = 0; i < names_.size(); ++i) { |
- int name_width = GetNameFontForRow(i).GetStringWidth(names_[i]); |
- int subtext_width = subtext_font().GetStringWidth(subtexts_[i]); |
- int total_text_length = name_width + subtext_width; |
+ float name_width = GetNameFontForRow(i).GetStringWidth(names_[i]); |
+ float subtext_width = subtext_font().GetStringWidth(subtexts_[i]); |
+ float total_text_length = name_width + subtext_width; |
// The line can have no strings if it represents a UI element, such as |
// a separator line. |
if (total_text_length == 0) |
continue; |
- int available_width = popup_width - RowWidthWithoutText(i); |
+ float available_width = popup_width - RowWidthWithoutText(i); |
// Each field recieves space in proportion to its length. |
- int name_size = available_width * name_width / total_text_length; |
+ float name_size = available_width * name_width / total_text_length; |
names_[i] = gfx::ElideText(names_[i], |
GetNameFontForRow(i), |
name_size, |
gfx::ELIDE_AT_END); |
- int subtext_size = available_width * subtext_width / total_text_length; |
+ float subtext_size = available_width * subtext_width / total_text_length; |
subtexts_[i] = gfx::ElideText(subtexts_[i], |
subtext_font(), |
subtext_size, |
@@ -335,25 +335,25 @@ bool AutofillPopupControllerImpl::IsWarning(size_t index) const { |
return identifiers_[index] == WebAutofillClient::MenuItemIDWarningMessage; |
} |
-gfx::Rect AutofillPopupControllerImpl::GetRowBounds(size_t index) { |
+gfx::RectF AutofillPopupControllerImpl::GetRowBounds(size_t index) { |
int top = 0; |
for (size_t i = 0; i < index; ++i) { |
top += GetRowHeightFromId(identifiers()[i]); |
} |
- return gfx::Rect( |
+ return gfx::RectF( |
0, |
top, |
popup_bounds_.width(), |
GetRowHeightFromId(identifiers()[index])); |
} |
-void AutofillPopupControllerImpl::SetPopupBounds(const gfx::Rect& bounds) { |
+void AutofillPopupControllerImpl::SetPopupBounds(const gfx::RectF& bounds) { |
popup_bounds_ = bounds; |
UpdateBoundsAndRedrawPopup(); |
} |
-const gfx::Rect& AutofillPopupControllerImpl::popup_bounds() const { |
+const gfx::RectF& AutofillPopupControllerImpl::popup_bounds() const { |
return popup_bounds_; |
} |
@@ -565,17 +565,17 @@ void AutofillPopupControllerImpl::InvalidateRow(size_t row) { |
} |
#if !defined(OS_ANDROID) |
-int AutofillPopupControllerImpl::GetDesiredPopupWidth() const { |
+float AutofillPopupControllerImpl::GetDesiredPopupWidth() const { |
if (!name_font_.platform_font() || !subtext_font_.platform_font()) { |
// We can't calculate the size of the popup if the fonts |
// aren't present. |
return 0; |
} |
- int popup_width = RoundedElementBounds().width(); |
+ float popup_width = RoundedElementBounds().width(); |
DCHECK_EQ(names().size(), subtexts().size()); |
for (size_t i = 0; i < names().size(); ++i) { |
- int row_size = name_font_.GetStringWidth(names()[i]) + |
+ float row_size = name_font_.GetStringWidth(names()[i]) + |
subtext_font_.GetStringWidth(subtexts()[i]) + |
RowWidthWithoutText(i); |
@@ -612,7 +612,7 @@ int AutofillPopupControllerImpl::RowWidthWithoutText(int row) const { |
} |
void AutofillPopupControllerImpl::UpdatePopupBounds() { |
- int popup_required_width = GetDesiredPopupWidth(); |
+ float popup_required_width = GetDesiredPopupWidth(); |
int popup_height = GetDesiredPopupHeight(); |
// This is the top left point of the popup if the popup is above the element |
// and grows to the left (since that is the highest and furthest left the |
@@ -633,15 +633,15 @@ void AutofillPopupControllerImpl::UpdatePopupBounds() { |
gfx::Display bottom_right_display = GetDisplayNearestPoint( |
bottom_right_corner_of_popup); |
- std::pair<int, int> popup_x_and_width = CalculatePopupXAndWidth( |
+ std::pair<float, float> popup_x_and_width = CalculatePopupXAndWidth( |
top_left_display, bottom_right_display, popup_required_width); |
std::pair<int, int> popup_y_and_height = CalculatePopupYAndHeight( |
top_left_display, bottom_right_display, popup_height); |
- popup_bounds_ = gfx::Rect(popup_x_and_width.first, |
- popup_y_and_height.first, |
- popup_x_and_width.second, |
- popup_y_and_height.second); |
+ popup_bounds_ = gfx::RectF(popup_x_and_width.first, |
+ popup_y_and_height.first, |
+ popup_x_and_width.second, |
+ popup_y_and_height.second); |
} |
#endif // !defined(OS_ANDROID) |
@@ -653,7 +653,7 @@ void AutofillPopupControllerImpl::ClearState() { |
// Don't clear view_, because otherwise the popup will have to get regenerated |
// and this will cause flickering. |
- popup_bounds_ = gfx::Rect(); |
+ popup_bounds_ = gfx::RectF(); |
names_.clear(); |
subtexts_.clear(); |
@@ -674,10 +674,10 @@ gfx::Display AutofillPopupControllerImpl::GetDisplayNearestPoint( |
point); |
} |
-std::pair<int, int> AutofillPopupControllerImpl::CalculatePopupXAndWidth( |
+std::pair<float, float> AutofillPopupControllerImpl::CalculatePopupXAndWidth( |
const gfx::Display& left_display, |
const gfx::Display& right_display, |
- int popup_required_width) const { |
+ float popup_required_width) const { |
int leftmost_display_x = left_display.bounds().x(); |
int rightmost_display_x = |
right_display.GetSizeInPixel().width() + right_display.bounds().x(); |
@@ -694,8 +694,8 @@ std::pair<int, int> AutofillPopupControllerImpl::CalculatePopupXAndWidth( |
int right_available = rightmost_display_x - right_growth_start; |
int left_available = left_growth_end - leftmost_display_x; |
- int popup_width = std::min(popup_required_width, |
- std::max(right_available, left_available)); |
+ float popup_width = std::min<float>( |
+ popup_required_width, std::max(right_available, left_available)); |
// If there is enough space for the popup on the right, show it there, |
// otherwise choose the larger size. |