Commit 6060457a authored by msw's avatar msw Committed by Commit bot

Use RenderText vertical centering on Label and CanvasSkia text.

Just use RenderText's cap-height vertical centering.
Do not use one-off naive font-height vertical centering.

BUG=411908
TEST=views::Label and gfx::Canvas::DrawString* text baselines look good and match Textfields.
R=sky@chromium.org

Review URL: https://codereview.chromium.org/585053002

Cr-Commit-Position: refs/heads/master@{#296008}
parent dfefffa1
...@@ -124,10 +124,7 @@ void UpdateRenderText(const Rect& rect, ...@@ -124,10 +124,7 @@ void UpdateRenderText(const Rect& rect,
render_text->SetFontList(font_list); render_text->SetFontList(font_list);
render_text->SetText(text); render_text->SetText(text);
render_text->SetCursorEnabled(false); render_text->SetCursorEnabled(false);
render_text->SetDisplayRect(rect);
Rect display_rect = rect;
display_rect.set_height(font_list.GetHeight());
render_text->SetDisplayRect(display_rect);
// Set the text alignment explicitly based on the directionality of the UI, // Set the text alignment explicitly based on the directionality of the UI,
// if not specified. // if not specified.
...@@ -303,11 +300,6 @@ void Canvas::DrawStringRectWithShadows(const base::string16& text, ...@@ -303,11 +300,6 @@ void Canvas::DrawStringRectWithShadows(const base::string16& text,
UpdateRenderText(rect, adjusted_text, font_list, flags, color, UpdateRenderText(rect, adjusted_text, font_list, flags, color,
render_text.get()); render_text.get());
const int text_height = render_text->GetStringSize().height();
rect += Vector2d(0, (text_bounds.height() - text_height) / 2);
rect.set_height(text_height);
render_text->SetDisplayRect(rect);
if (range.IsValid()) if (range.IsValid())
render_text->ApplyStyle(UNDERLINE, true, range); render_text->ApplyStyle(UNDERLINE, true, range);
render_text->Draw(this); render_text->Draw(this);
...@@ -396,11 +388,6 @@ void Canvas::DrawFadedString(const base::string16& text, ...@@ -396,11 +388,6 @@ void Canvas::DrawFadedString(const base::string16& text,
UpdateRenderText(rect, text, font_list, flags, color, render_text.get()); UpdateRenderText(rect, text, font_list, flags, color, render_text.get());
render_text->SetElideBehavior(FADE_TAIL); render_text->SetElideBehavior(FADE_TAIL);
const int line_height = render_text->GetStringSize().height();
rect += Vector2d(0, (display_rect.height() - line_height) / 2);
rect.set_height(line_height);
render_text->SetDisplayRect(rect);
canvas_->save(); canvas_->save();
ClipRect(display_rect); ClipRect(display_rect);
render_text->Draw(this); render_text->Draw(this);
......
...@@ -427,7 +427,7 @@ gfx::Rect Label::GetTextBounds() const { ...@@ -427,7 +427,7 @@ gfx::Rect Label::GetTextBounds() const {
NOTREACHED(); NOTREACHED();
break; break;
} }
origin.Offset(0, std::max(0, (available.height() - text_size.height())) / 2); text_size.set_height(available.height());
return gfx::Rect(origin, text_size); return gfx::Rect(origin, text_size);
} }
......
...@@ -378,9 +378,9 @@ TEST_F(LabelTest, DrawSingleLineString) { ...@@ -378,9 +378,9 @@ TEST_F(LabelTest, DrawSingleLineString) {
EXPECT_EQ(label.text(), paint_text); EXPECT_EQ(label.text(), paint_text);
// The text should be centered horizontally and vertically. // The text should be centered horizontally and vertically.
EXPECT_EQ(extra.width() / 2, text_bounds.x()); EXPECT_EQ(extra.width() / 2, text_bounds.x());
EXPECT_EQ(extra.height() / 2 , text_bounds.y()); EXPECT_EQ(0, text_bounds.y());
EXPECT_EQ(required_size.width(), text_bounds.width()); EXPECT_EQ(required_size.width(), text_bounds.width());
EXPECT_EQ(required_size.height(), text_bounds.height()); EXPECT_EQ(label.height(), text_bounds.height());
EXPECT_EQ(gfx::Canvas::TEXT_ALIGN_CENTER, EXPECT_EQ(gfx::Canvas::TEXT_ALIGN_CENTER,
flags & (gfx::Canvas::TEXT_ALIGN_LEFT | flags & (gfx::Canvas::TEXT_ALIGN_LEFT |
gfx::Canvas::TEXT_ALIGN_CENTER | gfx::Canvas::TEXT_ALIGN_CENTER |
...@@ -394,9 +394,9 @@ TEST_F(LabelTest, DrawSingleLineString) { ...@@ -394,9 +394,9 @@ TEST_F(LabelTest, DrawSingleLineString) {
EXPECT_EQ(label.text(), paint_text); EXPECT_EQ(label.text(), paint_text);
// The text should be left aligned horizontally and centered vertically. // The text should be left aligned horizontally and centered vertically.
EXPECT_EQ(0, text_bounds.x()); EXPECT_EQ(0, text_bounds.x());
EXPECT_EQ(extra.height() / 2 , text_bounds.y()); EXPECT_EQ(0, text_bounds.y());
EXPECT_EQ(required_size.width(), text_bounds.width()); EXPECT_EQ(required_size.width(), text_bounds.width());
EXPECT_EQ(required_size.height(), text_bounds.height()); EXPECT_EQ(label.height(), text_bounds.height());
EXPECT_EQ(gfx::Canvas::TEXT_ALIGN_LEFT, EXPECT_EQ(gfx::Canvas::TEXT_ALIGN_LEFT,
flags & (gfx::Canvas::TEXT_ALIGN_LEFT | flags & (gfx::Canvas::TEXT_ALIGN_LEFT |
gfx::Canvas::TEXT_ALIGN_CENTER | gfx::Canvas::TEXT_ALIGN_CENTER |
...@@ -410,9 +410,9 @@ TEST_F(LabelTest, DrawSingleLineString) { ...@@ -410,9 +410,9 @@ TEST_F(LabelTest, DrawSingleLineString) {
EXPECT_EQ(label.text(), paint_text); EXPECT_EQ(label.text(), paint_text);
// The text should be right aligned horizontally and centered vertically. // The text should be right aligned horizontally and centered vertically.
EXPECT_EQ(extra.width(), text_bounds.x()); EXPECT_EQ(extra.width(), text_bounds.x());
EXPECT_EQ(extra.height() / 2 , text_bounds.y()); EXPECT_EQ(0, text_bounds.y());
EXPECT_EQ(required_size.width(), text_bounds.width()); EXPECT_EQ(required_size.width(), text_bounds.width());
EXPECT_EQ(required_size.height(), text_bounds.height()); EXPECT_EQ(label.height(), text_bounds.height());
EXPECT_EQ(gfx::Canvas::TEXT_ALIGN_RIGHT, EXPECT_EQ(gfx::Canvas::TEXT_ALIGN_RIGHT,
flags & (gfx::Canvas::TEXT_ALIGN_LEFT | flags & (gfx::Canvas::TEXT_ALIGN_LEFT |
gfx::Canvas::TEXT_ALIGN_CENTER | gfx::Canvas::TEXT_ALIGN_CENTER |
...@@ -439,9 +439,9 @@ TEST_F(LabelTest, DrawSingleLineString) { ...@@ -439,9 +439,9 @@ TEST_F(LabelTest, DrawSingleLineString) {
EXPECT_EQ(label.text(), paint_text); EXPECT_EQ(label.text(), paint_text);
// The text should be centered horizontally and vertically within the border. // The text should be centered horizontally and vertically within the border.
EXPECT_EQ(border.left() + extra.width() / 2, text_bounds.x()); EXPECT_EQ(border.left() + extra.width() / 2, text_bounds.x());
EXPECT_EQ(border.top() + extra.height() / 2 , text_bounds.y()); EXPECT_EQ(border.top(), text_bounds.y());
EXPECT_EQ(required_size.width(), text_bounds.width()); EXPECT_EQ(required_size.width(), text_bounds.width());
EXPECT_EQ(required_size.height(), text_bounds.height()); EXPECT_EQ(label.GetContentsBounds().height(), text_bounds.height());
EXPECT_EQ(gfx::Canvas::TEXT_ALIGN_CENTER, EXPECT_EQ(gfx::Canvas::TEXT_ALIGN_CENTER,
flags & (gfx::Canvas::TEXT_ALIGN_LEFT | flags & (gfx::Canvas::TEXT_ALIGN_LEFT |
gfx::Canvas::TEXT_ALIGN_CENTER | gfx::Canvas::TEXT_ALIGN_CENTER |
...@@ -455,9 +455,9 @@ TEST_F(LabelTest, DrawSingleLineString) { ...@@ -455,9 +455,9 @@ TEST_F(LabelTest, DrawSingleLineString) {
EXPECT_EQ(label.text(), paint_text); EXPECT_EQ(label.text(), paint_text);
// The text should be left aligned horizontally and centered vertically. // The text should be left aligned horizontally and centered vertically.
EXPECT_EQ(border.left(), text_bounds.x()); EXPECT_EQ(border.left(), text_bounds.x());
EXPECT_EQ(border.top() + extra.height() / 2 , text_bounds.y()); EXPECT_EQ(border.top(), text_bounds.y());
EXPECT_EQ(required_size.width(), text_bounds.width()); EXPECT_EQ(required_size.width(), text_bounds.width());
EXPECT_EQ(required_size.height(), text_bounds.height()); EXPECT_EQ(label.GetContentsBounds().height(), text_bounds.height());
EXPECT_EQ(gfx::Canvas::TEXT_ALIGN_LEFT, EXPECT_EQ(gfx::Canvas::TEXT_ALIGN_LEFT,
flags & (gfx::Canvas::TEXT_ALIGN_LEFT | flags & (gfx::Canvas::TEXT_ALIGN_LEFT |
gfx::Canvas::TEXT_ALIGN_CENTER | gfx::Canvas::TEXT_ALIGN_CENTER |
...@@ -471,9 +471,9 @@ TEST_F(LabelTest, DrawSingleLineString) { ...@@ -471,9 +471,9 @@ TEST_F(LabelTest, DrawSingleLineString) {
EXPECT_EQ(label.text(), paint_text); EXPECT_EQ(label.text(), paint_text);
// The text should be right aligned horizontally and centered vertically. // The text should be right aligned horizontally and centered vertically.
EXPECT_EQ(border.left() + extra.width(), text_bounds.x()); EXPECT_EQ(border.left() + extra.width(), text_bounds.x());
EXPECT_EQ(border.top() + extra.height() / 2 , text_bounds.y()); EXPECT_EQ(border.top(), text_bounds.y());
EXPECT_EQ(required_size.width(), text_bounds.width()); EXPECT_EQ(required_size.width(), text_bounds.width());
EXPECT_EQ(required_size.height(), text_bounds.height()); EXPECT_EQ(label.GetContentsBounds().height(), text_bounds.height());
EXPECT_EQ(gfx::Canvas::TEXT_ALIGN_RIGHT, EXPECT_EQ(gfx::Canvas::TEXT_ALIGN_RIGHT,
flags & (gfx::Canvas::TEXT_ALIGN_LEFT | flags & (gfx::Canvas::TEXT_ALIGN_LEFT |
gfx::Canvas::TEXT_ALIGN_CENTER | gfx::Canvas::TEXT_ALIGN_CENTER |
...@@ -502,9 +502,9 @@ TEST_F(LabelTest, DrawMultiLineString) { ...@@ -502,9 +502,9 @@ TEST_F(LabelTest, DrawMultiLineString) {
label.CalculateDrawStringParams(&paint_text, &text_bounds, &flags); label.CalculateDrawStringParams(&paint_text, &text_bounds, &flags);
EXPECT_EQ(label.text(), paint_text); EXPECT_EQ(label.text(), paint_text);
EXPECT_EQ(extra.width() / 2, text_bounds.x()); EXPECT_EQ(extra.width() / 2, text_bounds.x());
EXPECT_EQ(extra.height() / 2, text_bounds.y()); EXPECT_EQ(0, text_bounds.y());
EXPECT_GT(text_bounds.width(), kMinTextDimension); EXPECT_GT(text_bounds.width(), kMinTextDimension);
EXPECT_GT(text_bounds.height(), kMinTextDimension); EXPECT_EQ(text_bounds.height(), label.height());
int expected_flags = gfx::Canvas::MULTI_LINE | int expected_flags = gfx::Canvas::MULTI_LINE |
gfx::Canvas::TEXT_ALIGN_CENTER | gfx::Canvas::TEXT_ALIGN_CENTER |
gfx::Canvas::FORCE_LTR_DIRECTIONALITY; gfx::Canvas::FORCE_LTR_DIRECTIONALITY;
...@@ -520,9 +520,9 @@ TEST_F(LabelTest, DrawMultiLineString) { ...@@ -520,9 +520,9 @@ TEST_F(LabelTest, DrawMultiLineString) {
label.CalculateDrawStringParams(&paint_text, &text_bounds, &flags); label.CalculateDrawStringParams(&paint_text, &text_bounds, &flags);
EXPECT_EQ(label.text(), paint_text); EXPECT_EQ(label.text(), paint_text);
EXPECT_EQ(0, text_bounds.x()); EXPECT_EQ(0, text_bounds.x());
EXPECT_EQ(extra.height() / 2, text_bounds.y()); EXPECT_EQ(0, text_bounds.y());
EXPECT_GT(text_bounds.width(), kMinTextDimension); EXPECT_GT(text_bounds.width(), kMinTextDimension);
EXPECT_GT(text_bounds.height(), kMinTextDimension); EXPECT_EQ(text_bounds.height(), label.height());
expected_flags = gfx::Canvas::MULTI_LINE | expected_flags = gfx::Canvas::MULTI_LINE |
gfx::Canvas::TEXT_ALIGN_LEFT | gfx::Canvas::TEXT_ALIGN_LEFT |
gfx::Canvas::FORCE_LTR_DIRECTIONALITY; gfx::Canvas::FORCE_LTR_DIRECTIONALITY;
...@@ -537,9 +537,9 @@ TEST_F(LabelTest, DrawMultiLineString) { ...@@ -537,9 +537,9 @@ TEST_F(LabelTest, DrawMultiLineString) {
label.CalculateDrawStringParams(&paint_text, &text_bounds, &flags); label.CalculateDrawStringParams(&paint_text, &text_bounds, &flags);
EXPECT_EQ(label.text(), paint_text); EXPECT_EQ(label.text(), paint_text);
EXPECT_EQ(extra.width(), text_bounds.x()); EXPECT_EQ(extra.width(), text_bounds.x());
EXPECT_EQ(extra.height() / 2, text_bounds.y()); EXPECT_EQ(0, text_bounds.y());
EXPECT_GT(text_bounds.width(), kMinTextDimension); EXPECT_GT(text_bounds.width(), kMinTextDimension);
EXPECT_GT(text_bounds.height(), kMinTextDimension); EXPECT_EQ(text_bounds.height(), label.height());
expected_flags = gfx::Canvas::MULTI_LINE | expected_flags = gfx::Canvas::MULTI_LINE |
gfx::Canvas::TEXT_ALIGN_RIGHT | gfx::Canvas::TEXT_ALIGN_RIGHT |
gfx::Canvas::FORCE_LTR_DIRECTIONALITY; gfx::Canvas::FORCE_LTR_DIRECTIONALITY;
...@@ -563,7 +563,7 @@ TEST_F(LabelTest, DrawMultiLineString) { ...@@ -563,7 +563,7 @@ TEST_F(LabelTest, DrawMultiLineString) {
label.CalculateDrawStringParams(&paint_text, &text_bounds, &flags); label.CalculateDrawStringParams(&paint_text, &text_bounds, &flags);
EXPECT_EQ(label.text(), paint_text); EXPECT_EQ(label.text(), paint_text);
EXPECT_EQ(border.left() + extra.width() / 2, text_bounds.x()); EXPECT_EQ(border.left() + extra.width() / 2, text_bounds.x());
EXPECT_EQ(border.top() + extra.height() / 2, text_bounds.y()); EXPECT_EQ(border.top(), text_bounds.y());
EXPECT_EQ(center_bounds.width(), text_bounds.width()); EXPECT_EQ(center_bounds.width(), text_bounds.width());
EXPECT_EQ(center_bounds.height(), text_bounds.height()); EXPECT_EQ(center_bounds.height(), text_bounds.height());
expected_flags = gfx::Canvas::MULTI_LINE | expected_flags = gfx::Canvas::MULTI_LINE |
...@@ -580,7 +580,7 @@ TEST_F(LabelTest, DrawMultiLineString) { ...@@ -580,7 +580,7 @@ TEST_F(LabelTest, DrawMultiLineString) {
label.CalculateDrawStringParams(&paint_text, &text_bounds, &flags); label.CalculateDrawStringParams(&paint_text, &text_bounds, &flags);
EXPECT_EQ(label.text(), paint_text); EXPECT_EQ(label.text(), paint_text);
EXPECT_EQ(border.left(), text_bounds.x()); EXPECT_EQ(border.left(), text_bounds.x());
EXPECT_EQ(border.top() + extra.height() / 2, text_bounds.y()); EXPECT_EQ(border.top(), text_bounds.y());
EXPECT_EQ(center_bounds.width(), text_bounds.width()); EXPECT_EQ(center_bounds.width(), text_bounds.width());
EXPECT_EQ(center_bounds.height(), text_bounds.height()); EXPECT_EQ(center_bounds.height(), text_bounds.height());
expected_flags = gfx::Canvas::MULTI_LINE | expected_flags = gfx::Canvas::MULTI_LINE |
...@@ -597,7 +597,7 @@ TEST_F(LabelTest, DrawMultiLineString) { ...@@ -597,7 +597,7 @@ TEST_F(LabelTest, DrawMultiLineString) {
label.CalculateDrawStringParams(&paint_text, &text_bounds, &flags); label.CalculateDrawStringParams(&paint_text, &text_bounds, &flags);
EXPECT_EQ(label.text(), paint_text); EXPECT_EQ(label.text(), paint_text);
EXPECT_EQ(extra.width() + border.left(), text_bounds.x()); EXPECT_EQ(extra.width() + border.left(), text_bounds.x());
EXPECT_EQ(border.top() + extra.height() / 2, text_bounds.y()); EXPECT_EQ(border.top(), text_bounds.y());
EXPECT_EQ(center_bounds.width(), text_bounds.width()); EXPECT_EQ(center_bounds.width(), text_bounds.width());
EXPECT_EQ(center_bounds.height(), text_bounds.height()); EXPECT_EQ(center_bounds.height(), text_bounds.height());
expected_flags = gfx::Canvas::MULTI_LINE | expected_flags = gfx::Canvas::MULTI_LINE |
...@@ -632,9 +632,9 @@ TEST_F(LabelTest, DrawSingleLineStringInRTL) { ...@@ -632,9 +632,9 @@ TEST_F(LabelTest, DrawSingleLineStringInRTL) {
EXPECT_EQ(label.text(), paint_text); EXPECT_EQ(label.text(), paint_text);
// The text should be centered horizontally and vertically. // The text should be centered horizontally and vertically.
EXPECT_EQ(extra.width() / 2, text_bounds.x()); EXPECT_EQ(extra.width() / 2, text_bounds.x());
EXPECT_EQ(extra.height() / 2 , text_bounds.y()); EXPECT_EQ(0, text_bounds.y());
EXPECT_EQ(required_size.width(), text_bounds.width()); EXPECT_EQ(required_size.width(), text_bounds.width());
EXPECT_EQ(required_size.height(), text_bounds.height()); EXPECT_EQ(label.height(), text_bounds.height());
EXPECT_EQ(gfx::Canvas::TEXT_ALIGN_CENTER, EXPECT_EQ(gfx::Canvas::TEXT_ALIGN_CENTER,
flags & (gfx::Canvas::TEXT_ALIGN_LEFT | flags & (gfx::Canvas::TEXT_ALIGN_LEFT |
gfx::Canvas::TEXT_ALIGN_CENTER | gfx::Canvas::TEXT_ALIGN_CENTER |
...@@ -648,9 +648,9 @@ TEST_F(LabelTest, DrawSingleLineStringInRTL) { ...@@ -648,9 +648,9 @@ TEST_F(LabelTest, DrawSingleLineStringInRTL) {
EXPECT_EQ(label.text(), paint_text); EXPECT_EQ(label.text(), paint_text);
// The text should be right aligned horizontally and centered vertically. // The text should be right aligned horizontally and centered vertically.
EXPECT_EQ(extra.width(), text_bounds.x()); EXPECT_EQ(extra.width(), text_bounds.x());
EXPECT_EQ(extra.height() / 2 , text_bounds.y()); EXPECT_EQ(0, text_bounds.y());
EXPECT_EQ(required_size.width(), text_bounds.width()); EXPECT_EQ(required_size.width(), text_bounds.width());
EXPECT_EQ(required_size.height(), text_bounds.height()); EXPECT_EQ(label.height(), text_bounds.height());
EXPECT_EQ(gfx::Canvas::TEXT_ALIGN_RIGHT, EXPECT_EQ(gfx::Canvas::TEXT_ALIGN_RIGHT,
flags & (gfx::Canvas::TEXT_ALIGN_LEFT | flags & (gfx::Canvas::TEXT_ALIGN_LEFT |
gfx::Canvas::TEXT_ALIGN_CENTER | gfx::Canvas::TEXT_ALIGN_CENTER |
...@@ -664,9 +664,9 @@ TEST_F(LabelTest, DrawSingleLineStringInRTL) { ...@@ -664,9 +664,9 @@ TEST_F(LabelTest, DrawSingleLineStringInRTL) {
EXPECT_EQ(label.text(), paint_text); EXPECT_EQ(label.text(), paint_text);
// The text should be left aligned horizontally and centered vertically. // The text should be left aligned horizontally and centered vertically.
EXPECT_EQ(0, text_bounds.x()); EXPECT_EQ(0, text_bounds.x());
EXPECT_EQ(extra.height() / 2 , text_bounds.y()); EXPECT_EQ(0, text_bounds.y());
EXPECT_EQ(required_size.width(), text_bounds.width()); EXPECT_EQ(required_size.width(), text_bounds.width());
EXPECT_EQ(required_size.height(), text_bounds.height()); EXPECT_EQ(label.height(), text_bounds.height());
EXPECT_EQ(gfx::Canvas::TEXT_ALIGN_LEFT, EXPECT_EQ(gfx::Canvas::TEXT_ALIGN_LEFT,
flags & (gfx::Canvas::TEXT_ALIGN_LEFT | flags & (gfx::Canvas::TEXT_ALIGN_LEFT |
gfx::Canvas::TEXT_ALIGN_CENTER | gfx::Canvas::TEXT_ALIGN_CENTER |
...@@ -694,9 +694,9 @@ TEST_F(LabelTest, DrawSingleLineStringInRTL) { ...@@ -694,9 +694,9 @@ TEST_F(LabelTest, DrawSingleLineStringInRTL) {
EXPECT_EQ(label.text(), paint_text); EXPECT_EQ(label.text(), paint_text);
// The text should be centered horizontally and vertically within the border. // The text should be centered horizontally and vertically within the border.
EXPECT_EQ(border.left() + extra.width() / 2, text_bounds.x()); EXPECT_EQ(border.left() + extra.width() / 2, text_bounds.x());
EXPECT_EQ(border.top() + extra.height() / 2 , text_bounds.y()); EXPECT_EQ(border.top(), text_bounds.y());
EXPECT_EQ(required_size.width(), text_bounds.width()); EXPECT_EQ(required_size.width(), text_bounds.width());
EXPECT_EQ(required_size.height(), text_bounds.height()); EXPECT_EQ(label.GetContentsBounds().height(), text_bounds.height());
EXPECT_EQ(gfx::Canvas::TEXT_ALIGN_CENTER, EXPECT_EQ(gfx::Canvas::TEXT_ALIGN_CENTER,
flags & (gfx::Canvas::TEXT_ALIGN_LEFT | flags & (gfx::Canvas::TEXT_ALIGN_LEFT |
gfx::Canvas::TEXT_ALIGN_CENTER | gfx::Canvas::TEXT_ALIGN_CENTER |
...@@ -710,9 +710,9 @@ TEST_F(LabelTest, DrawSingleLineStringInRTL) { ...@@ -710,9 +710,9 @@ TEST_F(LabelTest, DrawSingleLineStringInRTL) {
EXPECT_EQ(label.text(), paint_text); EXPECT_EQ(label.text(), paint_text);
// The text should be right aligned horizontally and centered vertically. // The text should be right aligned horizontally and centered vertically.
EXPECT_EQ(border.left() + extra.width(), text_bounds.x()); EXPECT_EQ(border.left() + extra.width(), text_bounds.x());
EXPECT_EQ(border.top() + extra.height() / 2 , text_bounds.y()); EXPECT_EQ(border.top(), text_bounds.y());
EXPECT_EQ(required_size.width(), text_bounds.width()); EXPECT_EQ(required_size.width(), text_bounds.width());
EXPECT_EQ(required_size.height(), text_bounds.height()); EXPECT_EQ(label.GetContentsBounds().height(), text_bounds.height());
EXPECT_EQ(gfx::Canvas::TEXT_ALIGN_RIGHT, EXPECT_EQ(gfx::Canvas::TEXT_ALIGN_RIGHT,
flags & (gfx::Canvas::TEXT_ALIGN_LEFT | flags & (gfx::Canvas::TEXT_ALIGN_LEFT |
gfx::Canvas::TEXT_ALIGN_CENTER | gfx::Canvas::TEXT_ALIGN_CENTER |
...@@ -726,9 +726,9 @@ TEST_F(LabelTest, DrawSingleLineStringInRTL) { ...@@ -726,9 +726,9 @@ TEST_F(LabelTest, DrawSingleLineStringInRTL) {
EXPECT_EQ(label.text(), paint_text); EXPECT_EQ(label.text(), paint_text);
// The text should be left aligned horizontally and centered vertically. // The text should be left aligned horizontally and centered vertically.
EXPECT_EQ(border.left(), text_bounds.x()); EXPECT_EQ(border.left(), text_bounds.x());
EXPECT_EQ(border.top() + extra.height() / 2 , text_bounds.y()); EXPECT_EQ(border.top(), text_bounds.y());
EXPECT_EQ(required_size.width(), text_bounds.width()); EXPECT_EQ(required_size.width(), text_bounds.width());
EXPECT_EQ(required_size.height(), text_bounds.height()); EXPECT_EQ(label.GetContentsBounds().height(), text_bounds.height());
EXPECT_EQ(gfx::Canvas::TEXT_ALIGN_LEFT, EXPECT_EQ(gfx::Canvas::TEXT_ALIGN_LEFT,
flags & (gfx::Canvas::TEXT_ALIGN_LEFT | flags & (gfx::Canvas::TEXT_ALIGN_LEFT |
gfx::Canvas::TEXT_ALIGN_CENTER | gfx::Canvas::TEXT_ALIGN_CENTER |
...@@ -764,9 +764,9 @@ TEST_F(LabelTest, DrawMultiLineStringInRTL) { ...@@ -764,9 +764,9 @@ TEST_F(LabelTest, DrawMultiLineStringInRTL) {
label.CalculateDrawStringParams(&paint_text, &text_bounds, &flags); label.CalculateDrawStringParams(&paint_text, &text_bounds, &flags);
EXPECT_EQ(label.text(), paint_text); EXPECT_EQ(label.text(), paint_text);
EXPECT_EQ(extra.width() / 2, text_bounds.x()); EXPECT_EQ(extra.width() / 2, text_bounds.x());
EXPECT_EQ(extra.height() / 2, text_bounds.y()); EXPECT_EQ(0, text_bounds.y());
EXPECT_GT(text_bounds.width(), kMinTextDimension); EXPECT_GT(text_bounds.width(), kMinTextDimension);
EXPECT_GT(text_bounds.height(), kMinTextDimension); EXPECT_EQ(text_bounds.height(), label.height());
EXPECT_TRUE(gfx::Canvas::MULTI_LINE & flags); EXPECT_TRUE(gfx::Canvas::MULTI_LINE & flags);
EXPECT_TRUE(gfx::Canvas::TEXT_ALIGN_CENTER & flags); EXPECT_TRUE(gfx::Canvas::TEXT_ALIGN_CENTER & flags);
#if !defined(OS_WIN) #if !defined(OS_WIN)
...@@ -780,9 +780,9 @@ TEST_F(LabelTest, DrawMultiLineStringInRTL) { ...@@ -780,9 +780,9 @@ TEST_F(LabelTest, DrawMultiLineStringInRTL) {
label.CalculateDrawStringParams(&paint_text, &text_bounds, &flags); label.CalculateDrawStringParams(&paint_text, &text_bounds, &flags);
EXPECT_EQ(label.text(), paint_text); EXPECT_EQ(label.text(), paint_text);
EXPECT_EQ(extra.width(), text_bounds.x()); EXPECT_EQ(extra.width(), text_bounds.x());
EXPECT_EQ(extra.height() / 2, text_bounds.y()); EXPECT_EQ(0, text_bounds.y());
EXPECT_GT(text_bounds.width(), kMinTextDimension); EXPECT_GT(text_bounds.width(), kMinTextDimension);
EXPECT_GT(text_bounds.height(), kMinTextDimension); EXPECT_EQ(text_bounds.height(), label.height());
EXPECT_TRUE(gfx::Canvas::MULTI_LINE & flags); EXPECT_TRUE(gfx::Canvas::MULTI_LINE & flags);
EXPECT_TRUE(gfx::Canvas::TEXT_ALIGN_RIGHT & flags); EXPECT_TRUE(gfx::Canvas::TEXT_ALIGN_RIGHT & flags);
#if !defined(OS_WIN) #if !defined(OS_WIN)
...@@ -795,9 +795,9 @@ TEST_F(LabelTest, DrawMultiLineStringInRTL) { ...@@ -795,9 +795,9 @@ TEST_F(LabelTest, DrawMultiLineStringInRTL) {
label.CalculateDrawStringParams(&paint_text, &text_bounds, &flags); label.CalculateDrawStringParams(&paint_text, &text_bounds, &flags);
EXPECT_EQ(label.text(), paint_text); EXPECT_EQ(label.text(), paint_text);
EXPECT_EQ(0, text_bounds.x()); EXPECT_EQ(0, text_bounds.x());
EXPECT_EQ(extra.height() / 2, text_bounds.y()); EXPECT_EQ(0, text_bounds.y());
EXPECT_GT(text_bounds.width(), kMinTextDimension); EXPECT_GT(text_bounds.width(), kMinTextDimension);
EXPECT_GT(text_bounds.height(), kMinTextDimension); EXPECT_EQ(text_bounds.height(), label.height());
EXPECT_TRUE(gfx::Canvas::MULTI_LINE & flags); EXPECT_TRUE(gfx::Canvas::MULTI_LINE & flags);
EXPECT_TRUE(gfx::Canvas::TEXT_ALIGN_LEFT & flags); EXPECT_TRUE(gfx::Canvas::TEXT_ALIGN_LEFT & flags);
#if !defined(OS_WIN) #if !defined(OS_WIN)
...@@ -819,9 +819,9 @@ TEST_F(LabelTest, DrawMultiLineStringInRTL) { ...@@ -819,9 +819,9 @@ TEST_F(LabelTest, DrawMultiLineStringInRTL) {
label.CalculateDrawStringParams(&paint_text, &text_bounds, &flags); label.CalculateDrawStringParams(&paint_text, &text_bounds, &flags);
EXPECT_EQ(label.text(), paint_text); EXPECT_EQ(label.text(), paint_text);
EXPECT_EQ(border.left() + extra.width() / 2, text_bounds.x()); EXPECT_EQ(border.left() + extra.width() / 2, text_bounds.x());
EXPECT_EQ(border.top() + extra.height() / 2, text_bounds.y()); EXPECT_EQ(border.top(), text_bounds.y());
EXPECT_EQ(center_bounds.width(), text_bounds.width()); EXPECT_EQ(center_bounds.width(), text_bounds.width());
EXPECT_EQ(center_bounds.height(), text_bounds.height()); EXPECT_EQ(label.GetContentsBounds().height(), text_bounds.height());
EXPECT_TRUE(gfx::Canvas::MULTI_LINE & flags); EXPECT_TRUE(gfx::Canvas::MULTI_LINE & flags);
EXPECT_TRUE(gfx::Canvas::TEXT_ALIGN_CENTER & flags); EXPECT_TRUE(gfx::Canvas::TEXT_ALIGN_CENTER & flags);
#if !defined(OS_WIN) #if !defined(OS_WIN)
...@@ -834,9 +834,9 @@ TEST_F(LabelTest, DrawMultiLineStringInRTL) { ...@@ -834,9 +834,9 @@ TEST_F(LabelTest, DrawMultiLineStringInRTL) {
label.CalculateDrawStringParams(&paint_text, &text_bounds, &flags); label.CalculateDrawStringParams(&paint_text, &text_bounds, &flags);
EXPECT_EQ(label.text(), paint_text); EXPECT_EQ(label.text(), paint_text);
EXPECT_EQ(border.left() + extra.width(), text_bounds.x()); EXPECT_EQ(border.left() + extra.width(), text_bounds.x());
EXPECT_EQ(border.top() + extra.height() / 2, text_bounds.y()); EXPECT_EQ(border.top(), text_bounds.y());
EXPECT_EQ(center_bounds.width(), text_bounds.width()); EXPECT_EQ(center_bounds.width(), text_bounds.width());
EXPECT_EQ(center_bounds.height(), text_bounds.height()); EXPECT_EQ(label.GetContentsBounds().height(), text_bounds.height());
EXPECT_TRUE(gfx::Canvas::MULTI_LINE & flags); EXPECT_TRUE(gfx::Canvas::MULTI_LINE & flags);
EXPECT_TRUE(gfx::Canvas::TEXT_ALIGN_RIGHT & flags); EXPECT_TRUE(gfx::Canvas::TEXT_ALIGN_RIGHT & flags);
#if !defined(OS_WIN) #if !defined(OS_WIN)
...@@ -849,9 +849,9 @@ TEST_F(LabelTest, DrawMultiLineStringInRTL) { ...@@ -849,9 +849,9 @@ TEST_F(LabelTest, DrawMultiLineStringInRTL) {
label.CalculateDrawStringParams(&paint_text, &text_bounds, &flags); label.CalculateDrawStringParams(&paint_text, &text_bounds, &flags);
EXPECT_EQ(label.text(), paint_text); EXPECT_EQ(label.text(), paint_text);
EXPECT_EQ(border.left(), text_bounds.x()); EXPECT_EQ(border.left(), text_bounds.x());
EXPECT_EQ(border.top() + extra.height() / 2, text_bounds.y()); EXPECT_EQ(border.top(), text_bounds.y());
EXPECT_EQ(center_bounds.width(), text_bounds.width()); EXPECT_EQ(center_bounds.width(), text_bounds.width());
EXPECT_EQ(center_bounds.height(), text_bounds.height()); EXPECT_EQ(label.GetContentsBounds().height(), text_bounds.height());
EXPECT_TRUE(gfx::Canvas::MULTI_LINE & flags); EXPECT_TRUE(gfx::Canvas::MULTI_LINE & flags);
EXPECT_TRUE(gfx::Canvas::TEXT_ALIGN_LEFT & flags); EXPECT_TRUE(gfx::Canvas::TEXT_ALIGN_LEFT & flags);
#if !defined(OS_WIN) #if !defined(OS_WIN)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment