Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "ui/gfx/render_text.h" | 5 #include "ui/gfx/render_text.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <climits> | 8 #include <climits> |
| 9 | 9 |
| 10 #include "base/command_line.h" | 10 #include "base/command_line.h" |
| (...skipping 704 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 715 VisualCursorDirection RenderText::GetVisualDirectionOfLogicalEnd() { | 715 VisualCursorDirection RenderText::GetVisualDirectionOfLogicalEnd() { |
| 716 return GetTextDirection() == base::i18n::LEFT_TO_RIGHT ? | 716 return GetTextDirection() == base::i18n::LEFT_TO_RIGHT ? |
| 717 CURSOR_RIGHT : CURSOR_LEFT; | 717 CURSOR_RIGHT : CURSOR_LEFT; |
| 718 } | 718 } |
| 719 | 719 |
| 720 SizeF RenderText::GetStringSizeF() { | 720 SizeF RenderText::GetStringSizeF() { |
| 721 return GetStringSize(); | 721 return GetStringSize(); |
| 722 } | 722 } |
| 723 | 723 |
| 724 float RenderText::GetContentWidth() { | 724 float RenderText::GetContentWidth() { |
| 725 return GetStringSizeF().width() + (cursor_enabled_ ? 1 : 0); | 725 return cursor_enabled_ ? |
|
msw
2014/11/24 21:51:00
This change seems hinge on the cursor painting 1px
ckocagil
2014/11/25 01:39:47
Correct.
| |
| 726 GetStringSize().width() + 1 : GetStringSizeF().width(); | |
| 726 } | 727 } |
| 727 | 728 |
| 728 int RenderText::GetBaseline() { | 729 int RenderText::GetBaseline() { |
| 729 if (baseline_ == kInvalidBaseline) | 730 if (baseline_ == kInvalidBaseline) |
| 730 baseline_ = DetermineBaselineCenteringText(display_rect(), font_list()); | 731 baseline_ = DetermineBaselineCenteringText(display_rect(), font_list()); |
| 731 DCHECK_NE(kInvalidBaseline, baseline_); | 732 DCHECK_NE(kInvalidBaseline, baseline_); |
| 732 return baseline_; | 733 return baseline_; |
| 733 } | 734 } |
| 734 | 735 |
| 735 void RenderText::Draw(Canvas* canvas) { | 736 void RenderText::Draw(Canvas* canvas) { |
| (...skipping 328 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1064 | 1065 |
| 1065 Vector2d RenderText::GetAlignmentOffset(size_t line_number) { | 1066 Vector2d RenderText::GetAlignmentOffset(size_t line_number) { |
| 1066 // TODO(ckocagil): Enable |lines_| usage in other platforms. | 1067 // TODO(ckocagil): Enable |lines_| usage in other platforms. |
| 1067 #if defined(OS_WIN) | 1068 #if defined(OS_WIN) |
| 1068 DCHECK_LT(line_number, lines_.size()); | 1069 DCHECK_LT(line_number, lines_.size()); |
| 1069 #endif | 1070 #endif |
| 1070 Vector2d offset; | 1071 Vector2d offset; |
| 1071 HorizontalAlignment horizontal_alignment = GetCurrentHorizontalAlignment(); | 1072 HorizontalAlignment horizontal_alignment = GetCurrentHorizontalAlignment(); |
| 1072 if (horizontal_alignment != ALIGN_LEFT) { | 1073 if (horizontal_alignment != ALIGN_LEFT) { |
| 1073 #if defined(OS_WIN) | 1074 #if defined(OS_WIN) |
| 1074 const int width = lines_[line_number].size.width() + | 1075 const int width = std::ceil(lines_[line_number].size.width()) + |
| 1075 (cursor_enabled_ ? 1 : 0); | 1076 (cursor_enabled_ ? 1 : 0); |
| 1076 #else | 1077 #else |
| 1077 const int width = GetContentWidth(); | 1078 const int width = GetContentWidth(); |
| 1078 #endif | 1079 #endif |
| 1079 offset.set_x(display_rect().width() - width); | 1080 offset.set_x(display_rect().width() - width); |
| 1080 // Put any extra margin pixel on the left to match legacy behavior. | 1081 // Put any extra margin pixel on the left to match legacy behavior. |
| 1081 if (horizontal_alignment == ALIGN_CENTER) | 1082 if (horizontal_alignment == ALIGN_CENTER) |
| 1082 offset.set_x((offset.x() + 1) / 2); | 1083 offset.set_x((offset.x() + 1) / 2); |
| 1083 } | 1084 } |
| 1084 | 1085 |
| (...skipping 318 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1403 SetDisplayOffset(display_offset_.x() + delta_x); | 1404 SetDisplayOffset(display_offset_.x() + delta_x); |
| 1404 } | 1405 } |
| 1405 | 1406 |
| 1406 void RenderText::DrawSelection(Canvas* canvas) { | 1407 void RenderText::DrawSelection(Canvas* canvas) { |
| 1407 const std::vector<Rect> sel = GetSubstringBounds(selection()); | 1408 const std::vector<Rect> sel = GetSubstringBounds(selection()); |
| 1408 for (std::vector<Rect>::const_iterator i = sel.begin(); i < sel.end(); ++i) | 1409 for (std::vector<Rect>::const_iterator i = sel.begin(); i < sel.end(); ++i) |
| 1409 canvas->FillRect(*i, selection_background_focused_color_); | 1410 canvas->FillRect(*i, selection_background_focused_color_); |
| 1410 } | 1411 } |
| 1411 | 1412 |
| 1412 } // namespace gfx | 1413 } // namespace gfx |
| OLD | NEW |