diff options
author | msw@chromium.org <msw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-10-30 03:56:22 +0000 |
---|---|---|
committer | msw@chromium.org <msw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-10-30 03:56:22 +0000 |
commit | 657d679bbc865d8171949787b4765e73d3148eb0 (patch) | |
tree | 14b8d838cca9cc528d09b8ca0e090d202b5e09c3 /ui/gfx/canvas_skia.cc | |
parent | 955edfd7049eff71c77cd515293541570988c5ad (diff) | |
download | chromium_src-657d679bbc865d8171949787b4765e73d3148eb0.zip chromium_src-657d679bbc865d8171949787b4765e73d3148eb0.tar.gz chromium_src-657d679bbc865d8171949787b4765e73d3148eb0.tar.bz2 |
Use string directionality for CanvasSkia fade truncation; cleanup.
Fix Canvas::DrawFadeTruncatingStringRect LTR/RTL handling.
Use GetFirstStrongCharacterDirection for string direction.
Remove DrawFadeTruncatingString; use FontList version.
Remove unused TruncateFadeHeadAndTail enum and code.
Update TextExample for FontList and lift OS_WIN checks.
BUG=145418
R=asvitkine@chromium.org,sky@chromium.org
Review URL: https://codereview.chromium.org/49903003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@231734 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ui/gfx/canvas_skia.cc')
-rw-r--r-- | ui/gfx/canvas_skia.cc | 40 |
1 files changed, 3 insertions, 37 deletions
diff --git a/ui/gfx/canvas_skia.cc b/ui/gfx/canvas_skia.cc index d062ff1..c22f440 100644 --- a/ui/gfx/canvas_skia.cc +++ b/ui/gfx/canvas_skia.cc @@ -372,7 +372,6 @@ void Canvas::DrawStringRectWithHalo(const base::string16& text, void Canvas::DrawFadeTruncatingStringRect( const base::string16& text, TruncateFadeMode truncate_mode, - size_t desired_characters_to_truncate_from_head, const FontList& font_list, SkColor color, const Rect& display_rect) { @@ -385,8 +384,8 @@ void Canvas::DrawFadeTruncatingStringRect( } scoped_ptr<RenderText> render_text(RenderText::CreateInstance()); - base::string16 clipped_text = text; - const bool is_rtl = AdjustStringDirection(flags, &clipped_text); + const bool is_rtl = base::i18n::GetFirstStrongCharacterDirection(text) == + base::i18n::RIGHT_TO_LEFT; switch (truncate_mode) { case TruncateFadeTail: @@ -399,26 +398,6 @@ void Canvas::DrawFadeTruncatingStringRect( if (!is_rtl) flags |= TEXT_ALIGN_RIGHT; break; - case TruncateFadeHeadAndTail: - DCHECK_GT(desired_characters_to_truncate_from_head, 0u); - // Due to the fade effect the first character is hard to see. - // We want to make sure that the first character starting at - // |desired_characters_to_truncate_from_head| is readable so we reduce - // the offset by a little bit. - desired_characters_to_truncate_from_head = - std::max<int>(0, desired_characters_to_truncate_from_head - 2); - - if (desired_characters_to_truncate_from_head) { - // Make sure to clip the text at a UTF16 boundary. - U16_SET_CP_LIMIT(text.data(), 0, - desired_characters_to_truncate_from_head, - text.length()); - clipped_text = text.substr(desired_characters_to_truncate_from_head); - } - - render_text->set_fade_tail(true); - render_text->set_fade_head(true); - break; } // Default to left alignment unless right alignment was chosen above. @@ -426,8 +405,7 @@ void Canvas::DrawFadeTruncatingStringRect( flags |= TEXT_ALIGN_LEFT; Rect rect = display_rect; - UpdateRenderText(rect, clipped_text, font_list, flags, color, - render_text.get()); + UpdateRenderText(rect, text, font_list, flags, color, render_text.get()); const int line_height = render_text->GetStringSize().height(); // Center the text vertically. @@ -441,16 +419,4 @@ void Canvas::DrawFadeTruncatingStringRect( canvas_->restore(); } -void Canvas::DrawFadeTruncatingString( - const base::string16& text, - TruncateFadeMode truncate_mode, - size_t desired_characters_to_truncate_from_head, - const Font& font, - SkColor color, - const Rect& display_rect) { - DrawFadeTruncatingStringRect(text, truncate_mode, - desired_characters_to_truncate_from_head, - FontList(font), color, display_rect); -} - } // namespace gfx |