diff options
author | msw@chromium.org <msw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-08-01 21:57:31 +0000 |
---|---|---|
committer | msw@chromium.org <msw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-08-01 21:57:31 +0000 |
commit | 46cb5380832a688d32cc39a25080381f90a204f2 (patch) | |
tree | 66795e797e715e0a32b2098ad955f93cd8bb08b0 /ui/gfx/render_text_linux.cc | |
parent | f06188681397c7d6bc785d5dc9c26092c1f3ac03 (diff) | |
download | chromium_src-46cb5380832a688d32cc39a25080381f90a204f2.zip chromium_src-46cb5380832a688d32cc39a25080381f90a204f2.tar.gz chromium_src-46cb5380832a688d32cc39a25080381f90a204f2.tar.bz2 |
Add RenderText DirectionalityMode enum and support; etc.
Add gfx::DirectionalityMode enum.
Add RenderText::SetDirectionalityMode and member.
Revise/consolidate RenderText::GetTextDirection.
Expand on existing unit tests; minor cleanup.
Consume GetTextDirection in layout initialization:
-Windows: RenderTextWin::ItemizeLogicalText()
-Linux: SetupPangoLayoutWithoutFont()
-Mac: Add TODO in RenderTextMac::EnsureLayout()
BUG=134746
TEST=Existing/updated unit tests, no behavioral changes!
Review URL: https://chromiumcodereview.appspot.com/10807082
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@149503 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ui/gfx/render_text_linux.cc')
-rw-r--r-- | ui/gfx/render_text_linux.cc | 23 |
1 files changed, 7 insertions, 16 deletions
diff --git a/ui/gfx/render_text_linux.cc b/ui/gfx/render_text_linux.cc index 4c10062..9619dc1 100644 --- a/ui/gfx/render_text_linux.cc +++ b/ui/gfx/render_text_linux.cc @@ -80,15 +80,6 @@ RenderTextLinux::~RenderTextLinux() { ResetLayout(); } -base::i18n::TextDirection RenderTextLinux::GetTextDirection() { - EnsureLayout(); - - PangoDirection base_dir = pango_find_base_dir(layout_text_, -1); - if (base_dir == PANGO_DIRECTION_RTL || base_dir == PANGO_DIRECTION_WEAK_RTL) - return base::i18n::RIGHT_TO_LEFT; - return base::i18n::LEFT_TO_RIGHT; -} - Size RenderTextLinux::GetStringSize() { EnsureLayout(); int width = 0, height = 0; @@ -288,13 +279,13 @@ void RenderTextLinux::EnsureLayout() { layout_ = pango_cairo_create_layout(cr); cairo_destroy(cr); cairo_surface_destroy(surface); - SetupPangoLayoutWithFontDescription( - layout_, - GetDisplayText(), - font_list().GetFontDescriptionString(), - display_rect().width(), - base::i18n::GetFirstStrongCharacterDirection(text()), - Canvas::DefaultCanvasTextAlignment()); + + SetupPangoLayoutWithFontDescription(layout_, + GetDisplayText(), + font_list().GetFontDescriptionString(), + display_rect().width(), + GetTextDirection(), + Canvas::DefaultCanvasTextAlignment()); // No width set so that the x-axis position is relative to the start of the // text. ToViewPoint and ToTextPoint take care of the position conversion |