Index: ui/views/controls/label.h |
diff --git a/ui/views/controls/label.h b/ui/views/controls/label.h |
index 9e2881dc69e93262bcc05df9703e7902d3887b19..0f3b922ce0207b48b31ff24f503ad713a5d85235 100644 |
--- a/ui/views/controls/label.h |
+++ b/ui/views/controls/label.h |
@@ -1,305 +1,270 @@ |
-// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#ifndef UI_VIEWS_CONTROLS_LABEL_H_ |
-#define UI_VIEWS_CONTROLS_LABEL_H_ |
- |
-#include <string> |
-#include <vector> |
- |
-#include "base/compiler_specific.h" |
-#include "base/gtest_prod_util.h" |
-#include "base/strings/string16.h" |
-#include "third_party/skia/include/core/SkColor.h" |
-#include "ui/gfx/font_list.h" |
-#include "ui/gfx/text_constants.h" |
-#include "ui/views/view.h" |
- |
-namespace views { |
- |
-///////////////////////////////////////////////////////////////////////////// |
-// |
-// 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[]; |
- |
- // The padding for the focus border when rendering focused text. |
- static const int kFocusBorderPadding; |
- |
- Label(); |
- explicit Label(const base::string16& text); |
- Label(const base::string16& text, const gfx::FontList& font_list); |
- virtual ~Label(); |
- |
- // Gets or sets the fonts used by this label. |
- const gfx::FontList& font_list() const { return font_list_; } |
- virtual void SetFontList(const gfx::FontList& font_list); |
- |
- // Get or set the label text. |
- const base::string16& text() const { return text_; } |
- virtual void SetText(const base::string16& text); |
- |
- // Enables or disables auto-color-readability (enabled by default). If this |
- // is enabled, then calls to set any foreground or background color will |
- // trigger an automatic mapper that uses color_utils::GetReadableColor() to |
- // ensure that the foreground colors are readable over the background color. |
- void SetAutoColorReadabilityEnabled(bool enabled); |
- |
- // Sets the color. This will automatically force the color to be readable |
- // over the current background color. |
- virtual void SetEnabledColor(SkColor color); |
- void SetDisabledColor(SkColor color); |
- |
- SkColor enabled_color() const { return actual_enabled_color_; } |
- |
- // Sets the background color. This won't be explicitly drawn, but the label |
- // will force the text color to be readable over it. |
- void SetBackgroundColor(SkColor color); |
- SkColor background_color() const { return background_color_; } |
- |
- // Enables a drop shadow underneath the text. |
- void SetShadowColors(SkColor enabled_color, SkColor disabled_color); |
- |
- // Sets the drop shadow's offset from the text. |
- void SetShadowOffset(int x, int y); |
- |
- // Sets the shadow blur. Default is zero. |
- void set_shadow_blur(double shadow_blur) { shadow_blur_ = shadow_blur; } |
- |
- // Disables shadows. |
- void ClearEmbellishing(); |
- |
- // 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 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 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; |
- } |
- |
- DirectionalityMode directionality_mode() const { |
- return directionality_mode_; |
- } |
- |
- // Get or set the distance in pixels between baselines of multi-line text. |
- // Default is 0, indicating the distance between lines should be the standard |
- // one for the label's text, font list, and platform. |
- int line_height() const { return line_height_; } |
- void SetLineHeight(int height); |
- |
- // Get or set if the label text can wrap on multiple lines; default is false. |
- bool is_multi_line() const { return is_multi_line_; } |
- void SetMultiLine(bool multi_line); |
- |
- // Get or set if the label text should be obscured before rendering (e.g. |
- // should "Password!" display as "*********"); default is false. |
- bool is_obscured() const { return is_obscured_; } |
- void SetObscured(bool obscured); |
- |
- // Get the text as displayed to the user, respecting the 'obscured' flag. |
- const base::string16& layout_text() const { return layout_text_; } |
- |
- // Sets whether the label text can be split on words. |
- // Default is false. This only works when is_multi_line is true. |
- void SetAllowCharacterBreak(bool allow_character_break); |
- |
- // Sets the eliding or fading behavior, applied as necessary. The default is |
- // to elide at the end. Eliding is not well supported for multi-line labels. |
- void SetElideBehavior(gfx::ElideBehavior elide_behavior); |
- |
- // Sets the tooltip text. Default behavior for a label (single-line) is to |
- // show the full text if it is wider than its bounds. Calling this overrides |
- // the default behavior and lets you set a custom tooltip. To revert to |
- // default behavior, call this with an empty string. |
- void SetTooltipText(const base::string16& tooltip_text); |
- |
- // Resizes the label so its width is set to the width of the longest line and |
- // its height deduced accordingly. |
- // This is only intended for multi-line labels and is useful when the label's |
- // text contains several lines separated with \n. |
- // |max_width| is the maximum width that will be used (longer lines will be |
- // wrapped). If 0, no maximum width is enforced. |
- void SizeToFit(int max_width); |
- |
- // Gets/sets the flag to determine whether the label should be collapsed when |
- // it's hidden (not visible). If this flag is true, the label will return a |
- // preferred size of (0, 0) when it's not visible. |
- void set_collapse_when_hidden(bool value) { collapse_when_hidden_ = value; } |
- bool collapse_when_hidden() const { return collapse_when_hidden_; } |
- |
- // View: |
- virtual gfx::Insets GetInsets() const OVERRIDE; |
- virtual int GetBaseline() const OVERRIDE; |
- // Overridden to compute the size required to display this label. |
- virtual gfx::Size GetPreferredSize() const OVERRIDE; |
- // Returns the width of an ellipsis if the label is non-empty, or 0 otherwise. |
- virtual gfx::Size GetMinimumSize() const OVERRIDE; |
- // Returns the height necessary to display this label with the provided width. |
- // This method is used to layout multi-line labels. It is equivalent to |
- // GetPreferredSize().height() if the receiver is not multi-line. |
- virtual int GetHeightForWidth(int w) const OVERRIDE; |
- virtual const char* GetClassName() const OVERRIDE; |
- virtual View* GetTooltipHandlerForPoint(const gfx::Point& point) OVERRIDE; |
- virtual bool CanProcessEventsWithinSubtree() const OVERRIDE; |
- virtual void GetAccessibleState(ui::AXViewState* state) OVERRIDE; |
- // Gets the tooltip text for labels that are wider than their bounds, except |
- // when the label is multiline, in which case it just returns false (no |
- // tooltip). If a custom tooltip has been specified with SetTooltipText() |
- // it is returned instead. |
- virtual bool GetTooltipText(const gfx::Point& p, |
- base::string16* tooltip) const OVERRIDE; |
- |
- protected: |
- // Called by Paint to paint the text. Override this to change how |
- // text is painted. |
- virtual void PaintText(gfx::Canvas* canvas, |
- const base::string16& text, |
- const gfx::Rect& text_bounds, |
- int flags); |
- |
- virtual gfx::Size GetTextSize() const; |
- |
- SkColor disabled_color() const { return actual_disabled_color_; } |
- |
- // Overridden from View: |
- // Overridden to dirty our text bounds if we're multi-line. |
- virtual void OnBoundsChanged(const gfx::Rect& previous_bounds) OVERRIDE; |
- virtual void OnPaint(gfx::Canvas* canvas) OVERRIDE; |
- virtual void OnNativeThemeChanged(const ui::NativeTheme* theme) OVERRIDE; |
- |
- private: |
- // These tests call CalculateDrawStringParams in order to verify the |
- // calculations done for drawing text. |
- FRIEND_TEST_ALL_PREFIXES(LabelTest, DrawSingleLineString); |
- FRIEND_TEST_ALL_PREFIXES(LabelTest, DrawMultiLineString); |
- FRIEND_TEST_ALL_PREFIXES(LabelTest, DrawSingleLineStringInRTL); |
- FRIEND_TEST_ALL_PREFIXES(LabelTest, DrawMultiLineStringInRTL); |
- FRIEND_TEST_ALL_PREFIXES(LabelTest, AutoDetectDirectionality); |
- |
- // Calls ComputeDrawStringFlags(). |
- FRIEND_TEST_ALL_PREFIXES(LabelTest, DisableSubpixelRendering); |
- |
- // Sets both |text_| and |layout_text_| to appropriate values, taking |
- // the label's 'obscured' status into account. |
- void SetTextInternal(const base::string16& text); |
- |
- void Init(const base::string16& text, const gfx::FontList& font_list); |
- |
- void RecalculateColors(); |
- |
- // Returns where the text is drawn, in the receivers coordinate system. |
- gfx::Rect GetTextBounds() const; |
- |
- int ComputeDrawStringFlags() const; |
- |
- gfx::Rect GetAvailableRect() const; |
- |
- // Returns parameters to be used for the DrawString call. |
- void CalculateDrawStringParams(base::string16* paint_text, |
- gfx::Rect* text_bounds, |
- int* flags) const; |
- |
- // Updates any colors that have not been explicitly set from the theme. |
- void UpdateColorsFromTheme(const ui::NativeTheme* theme); |
- |
- // Resets |cached_heights_| and |cached_heights_cursor_| and mark |
- // |text_size_valid_| as false. |
- void ResetCachedSize(); |
- |
- bool ShouldShowDefaultTooltip() const; |
- |
- base::string16 text_; |
- base::string16 layout_text_; |
- gfx::FontList font_list_; |
- SkColor requested_enabled_color_; |
- SkColor actual_enabled_color_; |
- SkColor requested_disabled_color_; |
- SkColor actual_disabled_color_; |
- SkColor background_color_; |
- |
- // Set to true once the corresponding setter is invoked. |
- bool enabled_color_set_; |
- bool disabled_color_set_; |
- bool background_color_set_; |
- |
- bool auto_color_readability_; |
- mutable gfx::Size text_size_; |
- mutable bool text_size_valid_; |
- int line_height_; |
- bool is_multi_line_; |
- bool is_obscured_; |
- bool allow_character_break_; |
- gfx::ElideBehavior elide_behavior_; |
- gfx::HorizontalAlignment horizontal_alignment_; |
- base::string16 tooltip_text_; |
- // Whether to collapse the label when it's not visible. |
- bool collapse_when_hidden_; |
- // 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_; |
- SkColor disabled_shadow_color_; |
- |
- // Space between text and shadow. |
- gfx::Point shadow_offset_; |
- |
- // Should a shadow be drawn behind the text? |
- bool has_shadow_; |
- |
- // Indicates the level of shadow blurring. Default is zero. |
- double shadow_blur_; |
- |
- // The halo color drawn around the text if it is not transparent. |
- SkColor halo_color_; |
- |
- // The cached heights to avoid recalculation in GetHeightForWidth(). |
- mutable std::vector<gfx::Size> cached_heights_; |
- mutable int cached_heights_cursor_; |
- |
- DISALLOW_COPY_AND_ASSIGN(Label); |
-}; |
- |
-} // namespace views |
- |
-#endif // UI_VIEWS_CONTROLS_LABEL_H_ |
+// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#ifndef UI_VIEWS_CONTROLS_LABEL_H_ |
+#define UI_VIEWS_CONTROLS_LABEL_H_ |
+ |
+#include <string> |
+#include <vector> |
+ |
+#include "base/compiler_specific.h" |
+#include "base/gtest_prod_util.h" |
+#include "base/strings/string16.h" |
+#include "third_party/skia/include/core/SkColor.h" |
+#include "ui/gfx/font_list.h" |
+#include "ui/gfx/text_constants.h" |
+#include "ui/views/view.h" |
+ |
+namespace views { |
+ |
+// A view subclass that can display a string. |
+class VIEWS_EXPORT Label : public View { |
+ public: |
+ // Internal class name. |
+ static const char kViewClassName[]; |
+ |
+ // The padding for the focus border when rendering focused text. |
+ static const int kFocusBorderPadding; |
+ |
+ Label(); |
+ explicit Label(const base::string16& text); |
+ Label(const base::string16& text, const gfx::FontList& font_list); |
+ virtual ~Label(); |
+ |
+ // Gets or sets the fonts used by this label. |
+ const gfx::FontList& font_list() const { return font_list_; } |
+ virtual void SetFontList(const gfx::FontList& font_list); |
+ |
+ // Get or set the label text. |
+ const base::string16& text() const { return text_; } |
+ virtual void SetText(const base::string16& text); |
+ |
+ // Enables or disables auto-color-readability (enabled by default). If this |
+ // is enabled, then calls to set any foreground or background color will |
+ // trigger an automatic mapper that uses color_utils::GetReadableColor() to |
+ // ensure that the foreground colors are readable over the background color. |
+ void SetAutoColorReadabilityEnabled(bool enabled); |
+ |
+ // Sets the color. This will automatically force the color to be readable |
+ // over the current background color. |
+ virtual void SetEnabledColor(SkColor color); |
+ void SetDisabledColor(SkColor color); |
+ |
+ SkColor enabled_color() const { return actual_enabled_color_; } |
+ |
+ // Sets the background color. This won't be explicitly drawn, but the label |
+ // will force the text color to be readable over it. |
+ void SetBackgroundColor(SkColor color); |
+ SkColor background_color() const { return background_color_; } |
+ |
+ // Enables a drop shadow underneath the text. |
+ void SetShadowColors(SkColor enabled_color, SkColor disabled_color); |
+ |
+ // Sets the drop shadow's offset from the text. |
+ void SetShadowOffset(int x, int y); |
+ |
+ // Sets the shadow blur. Default is zero. |
+ void set_shadow_blur(double shadow_blur) { shadow_blur_ = shadow_blur; } |
+ |
+ // Disables shadows. |
+ void ClearEmbellishing(); |
+ |
+ // 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. |
+ 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) { |
+ directionality_mode_ = mode; |
+ } |
+ gfx::DirectionalityMode directionality_mode() const { |
+ return directionality_mode_; |
+ } |
+ |
+ // Get or set the distance in pixels between baselines of multi-line text. |
+ // Default is 0, indicating the distance between lines should be the standard |
+ // one for the label's text, font list, and platform. |
+ int line_height() const { return line_height_; } |
+ void SetLineHeight(int height); |
+ |
+ // Get or set if the label text can wrap on multiple lines; default is false. |
+ bool is_multi_line() const { return is_multi_line_; } |
+ void SetMultiLine(bool multi_line); |
+ |
+ // Get or set if the label text should be obscured before rendering (e.g. |
+ // should "Password!" display as "*********"); default is false. |
+ bool is_obscured() const { return is_obscured_; } |
+ void SetObscured(bool obscured); |
+ |
+ // Get the text as displayed to the user, respecting the 'obscured' flag. |
+ const base::string16& layout_text() const { return layout_text_; } |
+ |
+ // Sets whether the label text can be split on words. |
+ // Default is false. This only works when is_multi_line is true. |
+ void SetAllowCharacterBreak(bool allow_character_break); |
+ |
+ // Sets the eliding or fading behavior, applied as necessary. The default is |
+ // to elide at the end. Eliding is not well supported for multi-line labels. |
+ void SetElideBehavior(gfx::ElideBehavior elide_behavior); |
+ |
+ // Sets the tooltip text. Default behavior for a label (single-line) is to |
+ // show the full text if it is wider than its bounds. Calling this overrides |
+ // the default behavior and lets you set a custom tooltip. To revert to |
+ // default behavior, call this with an empty string. |
+ void SetTooltipText(const base::string16& tooltip_text); |
+ |
+ // Resizes the label so its width is set to the width of the longest line and |
+ // its height deduced accordingly. |
+ // This is only intended for multi-line labels and is useful when the label's |
+ // text contains several lines separated with \n. |
+ // |max_width| is the maximum width that will be used (longer lines will be |
+ // wrapped). If 0, no maximum width is enforced. |
+ void SizeToFit(int max_width); |
+ |
+ // Gets/sets the flag to determine whether the label should be collapsed when |
+ // it's hidden (not visible). If this flag is true, the label will return a |
+ // preferred size of (0, 0) when it's not visible. |
+ void set_collapse_when_hidden(bool value) { collapse_when_hidden_ = value; } |
+ bool collapse_when_hidden() const { return collapse_when_hidden_; } |
+ |
+ // View: |
+ virtual gfx::Insets GetInsets() const OVERRIDE; |
+ virtual int GetBaseline() const OVERRIDE; |
+ // Overridden to compute the size required to display this label. |
+ virtual gfx::Size GetPreferredSize() const OVERRIDE; |
+ // Returns the width of an ellipsis if the label is non-empty, or 0 otherwise. |
+ virtual gfx::Size GetMinimumSize() const OVERRIDE; |
+ // Returns the height necessary to display this label with the provided width. |
+ // This method is used to layout multi-line labels. It is equivalent to |
+ // GetPreferredSize().height() if the receiver is not multi-line. |
+ virtual int GetHeightForWidth(int w) const OVERRIDE; |
+ virtual const char* GetClassName() const OVERRIDE; |
+ virtual View* GetTooltipHandlerForPoint(const gfx::Point& point) OVERRIDE; |
+ virtual bool CanProcessEventsWithinSubtree() const OVERRIDE; |
+ virtual void GetAccessibleState(ui::AXViewState* state) OVERRIDE; |
+ // Gets the tooltip text for labels that are wider than their bounds, except |
+ // when the label is multiline, in which case it just returns false (no |
+ // tooltip). If a custom tooltip has been specified with SetTooltipText() |
+ // it is returned instead. |
+ virtual bool GetTooltipText(const gfx::Point& p, |
+ base::string16* tooltip) const OVERRIDE; |
+ |
+ protected: |
+ // Called by Paint to paint the text. Override this to change how |
+ // text is painted. |
+ virtual void PaintText(gfx::Canvas* canvas, |
+ const base::string16& text, |
+ const gfx::Rect& text_bounds, |
+ int flags); |
+ |
+ virtual gfx::Size GetTextSize() const; |
+ |
+ SkColor disabled_color() const { return actual_disabled_color_; } |
+ |
+ // Overridden from View: |
+ // Overridden to dirty our text bounds if we're multi-line. |
+ virtual void OnBoundsChanged(const gfx::Rect& previous_bounds) OVERRIDE; |
+ virtual void OnPaint(gfx::Canvas* canvas) OVERRIDE; |
+ virtual void OnNativeThemeChanged(const ui::NativeTheme* theme) OVERRIDE; |
+ |
+ private: |
+ // These tests call CalculateDrawStringParams in order to verify the |
+ // calculations done for drawing text. |
+ FRIEND_TEST_ALL_PREFIXES(LabelTest, DrawSingleLineString); |
+ 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, DisableSubpixelRendering); |
+ |
+ // Sets both |text_| and |layout_text_| to appropriate values, taking |
+ // the label's 'obscured' status into account. |
+ void SetTextInternal(const base::string16& text); |
+ |
+ void Init(const base::string16& text, const gfx::FontList& font_list); |
+ |
+ void RecalculateColors(); |
+ |
+ // Returns where the text is drawn, in the receivers coordinate system. |
+ gfx::Rect GetTextBounds() const; |
+ |
+ int ComputeDrawStringFlags() const; |
+ |
+ gfx::Rect GetAvailableRect() const; |
+ |
+ // Returns parameters to be used for the DrawString call. |
+ void CalculateDrawStringParams(base::string16* paint_text, |
+ gfx::Rect* text_bounds, |
+ int* flags) const; |
+ |
+ // Updates any colors that have not been explicitly set from the theme. |
+ void UpdateColorsFromTheme(const ui::NativeTheme* theme); |
+ |
+ // Resets |cached_heights_| and |cached_heights_cursor_| and mark |
+ // |text_size_valid_| as false. |
+ void ResetCachedSize(); |
+ |
+ bool ShouldShowDefaultTooltip() const; |
+ |
+ base::string16 text_; |
+ base::string16 layout_text_; |
+ gfx::FontList font_list_; |
+ SkColor requested_enabled_color_; |
+ SkColor actual_enabled_color_; |
+ SkColor requested_disabled_color_; |
+ SkColor actual_disabled_color_; |
+ SkColor background_color_; |
+ |
+ // Set to true once the corresponding setter is invoked. |
+ bool enabled_color_set_; |
+ bool disabled_color_set_; |
+ bool background_color_set_; |
+ |
+ bool auto_color_readability_; |
+ mutable gfx::Size text_size_; |
+ mutable bool text_size_valid_; |
+ int line_height_; |
+ bool is_multi_line_; |
+ bool is_obscured_; |
+ bool allow_character_break_; |
+ gfx::ElideBehavior elide_behavior_; |
+ gfx::HorizontalAlignment horizontal_alignment_; |
+ 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_; |
+ |
+ // Colors for shadow. |
+ SkColor enabled_shadow_color_; |
+ SkColor disabled_shadow_color_; |
+ |
+ // Space between text and shadow. |
+ gfx::Point shadow_offset_; |
+ |
+ // Should a shadow be drawn behind the text? |
+ bool has_shadow_; |
+ |
+ // Indicates the level of shadow blurring. Default is zero. |
+ double shadow_blur_; |
+ |
+ // The halo color drawn around the text if it is not transparent. |
+ SkColor halo_color_; |
+ |
+ // The cached heights to avoid recalculation in GetHeightForWidth(). |
+ mutable std::vector<gfx::Size> cached_heights_; |
+ mutable int cached_heights_cursor_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(Label); |
+}; |
+ |
+} // namespace views |
+ |
+#endif // UI_VIEWS_CONTROLS_LABEL_H_ |