Index: views/controls/label.h |
=================================================================== |
--- views/controls/label.h (revision 104769) |
+++ views/controls/label.h (working copy) |
@@ -75,17 +75,25 @@ |
// Return the label URL. |
const GURL GetURL() const; |
- // Set the color |
- virtual void SetColor(const SkColor& color); |
+ // 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 set_auto_color_readability_enabled(bool enabled) { |
+ auto_color_readability_ = enabled; |
+ } |
- // Return a reference to the currently used color. |
- virtual SkColor GetColor() const; |
+ // Set the color. This will automatically force the color to be readable |
+ // over the current background color. |
+ virtual void SetEnabledColor(const SkColor& color); |
+ void SetDisabledColor(const SkColor& color); |
- // If you'll be displaying the label over some non-system background color, |
- // call this with the relevant color and the label will auto-set its color to |
- // be readable. |
- virtual void MakeReadableOverBackgroundColor(const SkColor& background_color); |
+ SkColor enabled_color() const { return actual_enabled_color_; } |
+ // Set the background color. This won't be explicitly drawn, but the label |
+ // will force the text color to be readable over it. |
+ void SetBackgroundColor(const SkColor& color); |
+ |
// Set horizontal alignment. If the locale is RTL, and the RTL alignment |
// setting is set as USE_UI_ALIGNMENT, the alignment is flipped around. |
// |
@@ -168,8 +176,6 @@ |
// 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); |
- // Sets the enabled state. Setting the enabled state resets the color. |
- virtual void OnEnabledChanged() OVERRIDE; |
virtual std::string GetClassName() const OVERRIDE; |
virtual bool HitTest(const gfx::Point& l) const OVERRIDE; |
// Mouse enter/exit are overridden to render mouse over background color. |
@@ -216,6 +222,8 @@ |
void Init(const string16& text, const gfx::Font& font); |
+ void RecalculateColors(); |
+ |
// If the mouse is over the text, SetContainsMouse(true) is invoked, otherwise |
// SetContainsMouse(false) is invoked. |
void UpdateContainsMouse(const MouseEvent& event); |
@@ -240,7 +248,12 @@ |
string16 text_; |
GURL url_; |
gfx::Font font_; |
- SkColor color_; |
+ SkColor requested_enabled_color_; |
+ SkColor actual_enabled_color_; |
+ SkColor requested_disabled_color_; |
+ SkColor actual_disabled_color_; |
+ SkColor background_color_; |
+ bool auto_color_readability_; |
mutable gfx::Size text_size_; |
mutable bool text_size_valid_; |
bool is_multi_line_; |