Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef VIEWS_CONTROLS_BUTTON_TEXT_BUTTON_H_ | 5 #ifndef VIEWS_CONTROLS_BUTTON_TEXT_BUTTON_H_ |
| 6 #define VIEWS_CONTROLS_BUTTON_TEXT_BUTTON_H_ | 6 #define VIEWS_CONTROLS_BUTTON_TEXT_BUTTON_H_ |
| 7 #pragma once | 7 #pragma once |
| 8 | 8 |
| 9 #include "gfx/font.h" | 9 #include "gfx/font.h" |
| 10 #include "third_party/skia/include/core/SkBitmap.h" | 10 #include "third_party/skia/include/core/SkBitmap.h" |
| (...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 99 ALIGN_CENTER, | 99 ALIGN_CENTER, |
| 100 ALIGN_RIGHT | 100 ALIGN_RIGHT |
| 101 }; | 101 }; |
| 102 | 102 |
| 103 void set_alignment(TextAlignment alignment) { alignment_ = alignment; } | 103 void set_alignment(TextAlignment alignment) { alignment_ = alignment; } |
| 104 | 104 |
| 105 void set_prefix_type(PrefixType type) { prefix_type_ = type; } | 105 void set_prefix_type(PrefixType type) { prefix_type_ = type; } |
| 106 | 106 |
| 107 // Sets the icon. | 107 // Sets the icon. |
| 108 void SetIcon(const SkBitmap& icon); | 108 void SetIcon(const SkBitmap& icon); |
| 109 SkBitmap icon() const { return icon_; } | |
| 110 void SetHoverIcon(const SkBitmap& icon); | 109 void SetHoverIcon(const SkBitmap& icon); |
| 111 SkBitmap icon_hover() const { return icon_hover_; } | 110 void SetPushedIcon(const SkBitmap& icon); |
| 111 | |
| 112 bool HasIcon() const { return !icon_.empty(); } | |
| 112 | 113 |
| 113 // Meanings are reversed for right-to-left layouts. | 114 // Meanings are reversed for right-to-left layouts. |
| 114 enum IconPlacement { | 115 enum IconPlacement { |
| 115 ICON_ON_LEFT, | 116 ICON_ON_LEFT, |
| 116 ICON_ON_RIGHT | 117 ICON_ON_RIGHT |
| 117 }; | 118 }; |
| 118 | 119 |
| 119 IconPlacement icon_placement() { return icon_placement_; } | 120 IconPlacement icon_placement() { return icon_placement_; } |
| 120 void set_icon_placement(IconPlacement icon_placement) { | 121 void set_icon_placement(IconPlacement icon_placement) { |
| 121 icon_placement_ = icon_placement; | 122 icon_placement_ = icon_placement; |
| 122 } | 123 } |
| 123 | 124 |
| 124 // TextButton remembers the maximum display size of the text passed to | 125 // TextButton remembers the maximum display size of the text passed to |
| 125 // SetText. This method resets the cached maximum display size to the | 126 // SetText. This method resets the cached maximum display size to the |
| 126 // current size. | 127 // current size. |
| 127 void ClearMaxTextSize(); | 128 void ClearMaxTextSize(); |
| 128 | 129 |
| 129 void set_max_width(int max_width) { max_width_ = max_width; } | 130 void set_max_width(int max_width) { max_width_ = max_width; } |
| 130 void SetFont(const gfx::Font& font); | 131 void SetFont(const gfx::Font& font); |
| 131 void SetEnabledColor(SkColor color); | 132 void SetEnabledColor(SkColor color); |
| 132 void SetDisabledColor(SkColor color); | 133 void SetDisabledColor(SkColor color); |
| 133 void SetHighlightColor(SkColor color); | 134 void SetHighlightColor(SkColor color); |
| 134 void SetHoverColor(SkColor color); | 135 void SetHoverColor(SkColor color); |
| 135 void SetNormalHasBorder(bool normal_has_border); | 136 void SetNormalHasBorder(bool normal_has_border); |
| 136 // Sets whether or not to show the highlighed (i.e. hot) state. Default true. | 137 // Sets whether or not to show the hot and pushed states in addition to the |
| 137 void SetShowHighlighted(bool show_highlighted); | 138 // normal state. Defaults to true. |
| 139 void SetShowMultipleStates(bool show_multiple_states); | |
|
Ben Goodger (Google)
2010/07/27 21:20:09
I think this should be SetShowMultipleIconStates t
| |
| 138 | 140 |
| 139 // Paint the button into the specified canvas. If |for_drag| is true, the | 141 // Paint the button into the specified canvas. If |for_drag| is true, the |
| 140 // function paints a drag image representation into the canvas. | 142 // function paints a drag image representation into the canvas. |
| 141 virtual void Paint(gfx::Canvas* canvas, bool for_drag); | 143 virtual void Paint(gfx::Canvas* canvas, bool for_drag); |
| 142 | 144 |
| 143 // Overridden from View: | 145 // Overridden from View: |
| 144 virtual gfx::Size GetPreferredSize(); | 146 virtual gfx::Size GetPreferredSize(); |
| 145 virtual gfx::Size GetMinimumSize(); | 147 virtual gfx::Size GetMinimumSize(); |
| 146 virtual void SetEnabled(bool enabled); | 148 virtual void SetEnabled(bool enabled); |
| 147 | 149 |
| 148 // Text colors. | 150 // Text colors. |
| 149 static const SkColor kEnabledColor; | 151 static const SkColor kEnabledColor; |
| 150 static const SkColor kHighlightColor; | 152 static const SkColor kHighlightColor; |
| 151 static const SkColor kDisabledColor; | 153 static const SkColor kDisabledColor; |
| 152 static const SkColor kHoverColor; | 154 static const SkColor kHoverColor; |
| 153 | 155 |
| 154 protected: | 156 protected: |
| 157 SkBitmap icon() const { return icon_; } | |
| 158 | |
| 155 virtual void Paint(gfx::Canvas* canvas); | 159 virtual void Paint(gfx::Canvas* canvas); |
| 156 | 160 |
| 157 // Called when enabled or disabled state changes, or the colors for those | 161 // Called when enabled or disabled state changes, or the colors for those |
| 158 // states change. | 162 // states change. |
| 159 virtual void UpdateColor(); | 163 virtual void UpdateColor(); |
| 160 | 164 |
| 161 private: | 165 private: |
| 162 // Updates text_size_ and max_text_size_ from the current text/font. This is | 166 // Updates text_size_ and max_text_size_ from the current text/font. This is |
| 163 // invoked when the font or text changes. | 167 // invoked when the font or text changes. |
| 164 void UpdateTextSize(); | 168 void UpdateTextSize(); |
| (...skipping 26 matching lines...) Expand all Loading... | |
| 191 SkColor color_highlight_; | 195 SkColor color_highlight_; |
| 192 SkColor color_hover_; | 196 SkColor color_hover_; |
| 193 | 197 |
| 194 // An icon displayed with the text. | 198 // An icon displayed with the text. |
| 195 SkBitmap icon_; | 199 SkBitmap icon_; |
| 196 | 200 |
| 197 // An optional different version of the icon for hover state. | 201 // An optional different version of the icon for hover state. |
| 198 SkBitmap icon_hover_; | 202 SkBitmap icon_hover_; |
| 199 bool has_hover_icon_; | 203 bool has_hover_icon_; |
| 200 | 204 |
| 205 // An optional different version of the icon for pushed state. | |
| 206 SkBitmap icon_pushed_; | |
| 207 bool has_pushed_icon_; | |
| 208 | |
| 201 // The width of the button will never be larger than this value. A value <= 0 | 209 // The width of the button will never be larger than this value. A value <= 0 |
| 202 // indicates the width is not constrained. | 210 // indicates the width is not constrained. |
| 203 int max_width_; | 211 int max_width_; |
| 204 | 212 |
| 205 // This is true if normal state has a border frame; default is false. | 213 // This is true if normal state has a border frame; default is false. |
| 206 bool normal_has_border_; | 214 bool normal_has_border_; |
| 207 | 215 |
| 208 // Whether or not to show the highlighted (i.e. hot) state. | 216 // Whether or not to show the hot and pushed states. |
| 209 bool show_highlighted_; | 217 bool show_multiple_states_; |
| 210 | 218 |
| 211 PrefixType prefix_type_; | 219 PrefixType prefix_type_; |
| 212 | 220 |
| 213 DISALLOW_COPY_AND_ASSIGN(TextButton); | 221 DISALLOW_COPY_AND_ASSIGN(TextButton); |
| 214 }; | 222 }; |
| 215 | 223 |
| 216 } // namespace views | 224 } // namespace views |
| 217 | 225 |
| 218 #endif // VIEWS_CONTROLS_BUTTON_TEXT_BUTTON_H_ | 226 #endif // VIEWS_CONTROLS_BUTTON_TEXT_BUTTON_H_ |
| OLD | NEW |