| Index: ui/views/controls/label.h
|
| diff --git a/ui/views/controls/label.h b/ui/views/controls/label.h
|
| index 60dfba9165aeb1246c0bf2781775f0d42234a83e..9e2881dc69e93262bcc05df9703e7902d3887b19 100644
|
| --- a/ui/views/controls/label.h
|
| +++ b/ui/views/controls/label.h
|
| @@ -18,9 +18,30 @@
|
|
|
| namespace views {
|
|
|
| -// A view subclass that can display a string.
|
| +/////////////////////////////////////////////////////////////////////////////
|
| +//
|
| +// Label class
|
| +//
|
| +// A label is a view subclass that can display a string.
|
| +//
|
| +/////////////////////////////////////////////////////////////////////////////
|
| class VIEWS_EXPORT Label : public View {
|
| public:
|
| + // The following enum is used to indicate whether using the Chrome UI's
|
| + // directionality as the label's directionality, or auto-detecting the label's
|
| + // directionality.
|
| + //
|
| + // If the label text originates from the Chrome UI, we should use the Chrome
|
| + // UI's directionality as the label's directionality.
|
| + //
|
| + // If the text originates from a web page, its directionality is determined
|
| + // based on its first character with strong directionality, disregarding what
|
| + // directionality the Chrome UI is.
|
| + enum DirectionalityMode {
|
| + USE_UI_DIRECTIONALITY = 0,
|
| + AUTO_DETECT_DIRECTIONALITY
|
| + };
|
| +
|
| // Internal class name.
|
| static const char kViewClassName[];
|
|
|
| @@ -73,17 +94,28 @@
|
| // Set the color of a halo on the painted text (use transparent for none).
|
| void set_halo_color(SkColor halo_color) { halo_color_ = halo_color; }
|
|
|
| - // Sets the horizontal alignment; the argument value is mirrored in RTL UI.
|
| + // Sets horizontal alignment. If the locale is RTL, and the directionality
|
| + // mode is USE_UI_DIRECTIONALITY, the alignment is flipped around.
|
| + //
|
| + // Caveat: for labels originating from a web page, the directionality mode
|
| + // should be reset to AUTO_DETECT_DIRECTIONALITY before the horizontal
|
| + // alignment is set. Otherwise, the label's alignment specified as a parameter
|
| + // will be flipped in RTL locales.
|
| void SetHorizontalAlignment(gfx::HorizontalAlignment alignment);
|
| - gfx::HorizontalAlignment GetHorizontalAlignment() const;
|
| -
|
| - // Sets the directionality mode. The default value is DIRECTIONALITY_FROM_UI,
|
| - // which should be suitable for most text originating from UI string assets.
|
| - // Most text originating from web content should use DIRECTIONALITY_FROM_TEXT.
|
| - void set_directionality_mode(gfx::DirectionalityMode mode) {
|
| +
|
| + gfx::HorizontalAlignment horizontal_alignment() const {
|
| + return horizontal_alignment_;
|
| + }
|
| +
|
| + // Sets the directionality mode. The directionality mode is initialized to
|
| + // USE_UI_DIRECTIONALITY when the label is constructed. USE_UI_DIRECTIONALITY
|
| + // applies to every label that originates from the Chrome UI. However, if the
|
| + // label originates from a web page, its directionality is auto-detected.
|
| + void set_directionality_mode(DirectionalityMode mode) {
|
| directionality_mode_ = mode;
|
| }
|
| - gfx::DirectionalityMode directionality_mode() const {
|
| +
|
| + DirectionalityMode directionality_mode() const {
|
| return directionality_mode_;
|
| }
|
|
|
| @@ -180,7 +212,9 @@
|
| FRIEND_TEST_ALL_PREFIXES(LabelTest, DrawMultiLineString);
|
| FRIEND_TEST_ALL_PREFIXES(LabelTest, DrawSingleLineStringInRTL);
|
| FRIEND_TEST_ALL_PREFIXES(LabelTest, DrawMultiLineStringInRTL);
|
| - FRIEND_TEST_ALL_PREFIXES(LabelTest, DirectionalityFromText);
|
| + FRIEND_TEST_ALL_PREFIXES(LabelTest, AutoDetectDirectionality);
|
| +
|
| + // Calls ComputeDrawStringFlags().
|
| FRIEND_TEST_ALL_PREFIXES(LabelTest, DisableSubpixelRendering);
|
|
|
| // Sets both |text_| and |layout_text_| to appropriate values, taking
|
| @@ -238,9 +272,10 @@
|
| base::string16 tooltip_text_;
|
| // Whether to collapse the label when it's not visible.
|
| bool collapse_when_hidden_;
|
| - // Controls whether the directionality is auto-detected based on first strong
|
| - // directionality character or is determined by the application UI's locale.
|
| - gfx::DirectionalityMode directionality_mode_;
|
| + // The following member variable is used to control whether the
|
| + // directionality is auto-detected based on first strong directionality
|
| + // character or is determined by chrome UI's locale.
|
| + DirectionalityMode directionality_mode_;
|
|
|
| // Colors for shadow.
|
| SkColor enabled_shadow_color_;
|
|
|