Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(135)

Unified Diff: ui/gfx/render_text.h

Issue 10807082: Add RenderText DirectionalityMode enum and support; etc. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Restore Label::SetURL; derive the direction from display text. Created 8 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ui/gfx/canvas_skia.cc ('k') | ui/gfx/render_text.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/gfx/render_text.h
diff --git a/ui/gfx/render_text.h b/ui/gfx/render_text.h
index a6265b06feae687d13eb1f361e8eb956216548ea..b36b0ce78b1f7145c9a87cb5b7aed4da1e1be6e1 100644
--- a/ui/gfx/render_text.h
+++ b/ui/gfx/render_text.h
@@ -95,18 +95,26 @@ typedef std::vector<StyleRange> StyleRanges;
// WORD_BREAK cursor movements should stop at the nearest word boundaries.
// LINE_BREAK cursor movements should stop at the text ends as shown on screen.
enum BreakType {
- CHARACTER_BREAK,
+ CHARACTER_BREAK = 0,
Alexei Svitkine (slow) 2012/07/27 11:40:36 Does our style guide require this?
msw 2012/07/28 01:17:11 Not explicitly, but the Google C++ style guide sho
WORD_BREAK,
LINE_BREAK,
};
// Horizontal text alignment styles.
enum HorizontalAlignment {
- ALIGN_LEFT,
+ ALIGN_LEFT = 0,
ALIGN_CENTER,
ALIGN_RIGHT,
};
+// The directionality modes used to determine the base text direction.
+enum DirectionalityMode {
+ DERIVE_FROM_TEXT = 0, // Use the first strong character's direction.
Alexei Svitkine (slow) 2012/07/27 11:40:36 This is not a good name for an enum entry in the g
msw 2012/07/28 01:17:11 Done (ui/gfx/text_constants.h and "DIRECTIONALITY_
+ DERIVE_FROM_UI, // Use the UI's language/locale direction.
+ FORCE_LTR, // Use LTR regardless of the text content or UI locale.
+ FORCE_RTL, // Use RTL regardless of the text content or UI locale.
+};
+
// RenderText represents an abstract model of styled text and its corresponding
// visual layout. Support is built in for a cursor, a selection, simple styling,
// complex scripts, and bi-directional text. Implementations provide mechanisms
@@ -246,8 +254,9 @@ class UI_EXPORT RenderText {
// Apply |default_style_| over the entire text range.
void ApplyDefaultStyle();
- // Returns the dominant direction of the current text.
- virtual base::i18n::TextDirection GetTextDirection() = 0;
+ // Set the text directionality mode and get the text direction yielded.
+ void SetDirectionalityMode(DirectionalityMode mode);
+ base::i18n::TextDirection GetTextDirection();
// Returns the visual movement direction corresponding to the logical end
// of the text, considering only the dominant direction returned by
@@ -439,6 +448,12 @@ class UI_EXPORT RenderText {
// Horizontal alignment of the text with respect to |display_rect_|.
HorizontalAlignment horizontal_alignment_;
+ // The text directionality mode, defaults to DERIVE_FROM_TEXT.
+ DirectionalityMode directionality_mode_;
+
+ // The cached text direction, potentially computed from the text or UI locale.
+ base::i18n::TextDirection text_direction_;
+
// A list of fonts used to render |text_|.
FontList font_list_;
« no previous file with comments | « ui/gfx/canvas_skia.cc ('k') | ui/gfx/render_text.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698