OLD | NEW |
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2008 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 CHROME_VIEWS_CONTROLS_LABEL_H_ | 5 #ifndef CHROME_VIEWS_CONTROLS_LABEL_H_ |
6 #define CHROME_VIEWS_CONTROLS_LABEL_H_ | 6 #define CHROME_VIEWS_CONTROLS_LABEL_H_ |
7 | 7 |
8 #include "chrome/common/gfx/chrome_font.h" | 8 #include "chrome/common/gfx/chrome_font.h" |
9 #include "chrome/views/view.h" | 9 #include "chrome/views/view.h" |
10 #include "googleurl/src/gurl.h" | 10 #include "googleurl/src/gurl.h" |
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
114 // to every label that originates from the Chrome UI. However, if the label | 114 // to every label that originates from the Chrome UI. However, if the label |
115 // originates from a web page, its alignment should not be flipped around for | 115 // originates from a web page, its alignment should not be flipped around for |
116 // RTL locales. For such labels, we need to set the RTL alignment mode to | 116 // RTL locales. For such labels, we need to set the RTL alignment mode to |
117 // AUTO_DETECT_ALIGNMENT so that subsequent SetHorizontalAlignment() calls | 117 // AUTO_DETECT_ALIGNMENT so that subsequent SetHorizontalAlignment() calls |
118 // will not flip the label's alignment around. | 118 // will not flip the label's alignment around. |
119 void SetRTLAlignmentMode(RTLAlignmentMode mode); | 119 void SetRTLAlignmentMode(RTLAlignmentMode mode); |
120 | 120 |
121 RTLAlignmentMode GetRTLAlignmentMode() const; | 121 RTLAlignmentMode GetRTLAlignmentMode() const; |
122 | 122 |
123 // Set whether the label text can wrap on multiple lines. | 123 // Set whether the label text can wrap on multiple lines. |
124 // Default is false | 124 // Default is false. |
125 void SetMultiLine(bool f); | 125 void SetMultiLine(bool f); |
126 | 126 |
| 127 // Set whether the label text can be split on words. |
| 128 // Default is false. This only works when is_multi_line is true. |
| 129 void SetAllowCharacterBreak(bool f); |
| 130 |
127 // Return whether the label text can wrap on multiple lines | 131 // Return whether the label text can wrap on multiple lines |
128 bool IsMultiLine(); | 132 bool IsMultiLine(); |
129 | 133 |
130 // Sets the tooltip text. Default behavior for a label (single-line) is to | 134 // Sets the tooltip text. Default behavior for a label (single-line) is to |
131 // show the full text if it is wider than its bounds. Calling this overrides | 135 // show the full text if it is wider than its bounds. Calling this overrides |
132 // the default behavior and lets you set a custom tooltip. To revert to | 136 // the default behavior and lets you set a custom tooltip. To revert to |
133 // default behavior, call this with an empty string. | 137 // default behavior, call this with an empty string. |
134 void SetTooltipText(const std::wstring& tooltip_text); | 138 void SetTooltipText(const std::wstring& tooltip_text); |
135 | 139 |
136 // Gets the tooltip text for labels that are wider than their bounds, except | 140 // Gets the tooltip text for labels that are wider than their bounds, except |
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
222 int ComputeMultiLineFlags(); | 226 int ComputeMultiLineFlags(); |
223 gfx::Size GetTextSize(); | 227 gfx::Size GetTextSize(); |
224 void Init(const std::wstring& text, const ChromeFont& font); | 228 void Init(const std::wstring& text, const ChromeFont& font); |
225 std::wstring text_; | 229 std::wstring text_; |
226 GURL url_; | 230 GURL url_; |
227 ChromeFont font_; | 231 ChromeFont font_; |
228 SkColor color_; | 232 SkColor color_; |
229 gfx::Size text_size_; | 233 gfx::Size text_size_; |
230 bool text_size_valid_; | 234 bool text_size_valid_; |
231 bool is_multi_line_; | 235 bool is_multi_line_; |
| 236 bool allow_character_break_; |
232 bool url_set_; | 237 bool url_set_; |
233 Alignment horiz_alignment_; | 238 Alignment horiz_alignment_; |
234 std::wstring tooltip_text_; | 239 std::wstring tooltip_text_; |
235 // Whether the mouse is over this label. | 240 // Whether the mouse is over this label. |
236 bool contains_mouse_; | 241 bool contains_mouse_; |
237 scoped_ptr<Background> mouse_over_background_; | 242 scoped_ptr<Background> mouse_over_background_; |
238 // Whether to collapse the label when it's not visible. | 243 // Whether to collapse the label when it's not visible. |
239 bool collapse_when_hidden_; | 244 bool collapse_when_hidden_; |
240 // The following member variable is used to control whether the alignment | 245 // The following member variable is used to control whether the alignment |
241 // needs to be flipped around for RTL locales. Please refer to the definition | 246 // needs to be flipped around for RTL locales. Please refer to the definition |
242 // of RTLAlignmentMode for more information. | 247 // of RTLAlignmentMode for more information. |
243 RTLAlignmentMode rtl_alignment_mode_; | 248 RTLAlignmentMode rtl_alignment_mode_; |
244 // When embedded in a larger control that is focusable, setting this flag | 249 // When embedded in a larger control that is focusable, setting this flag |
245 // allows this view to be painted as focused even when it is itself not. | 250 // allows this view to be painted as focused even when it is itself not. |
246 bool paint_as_focused_; | 251 bool paint_as_focused_; |
247 // When embedded in a larger control that is focusable, setting this flag | 252 // When embedded in a larger control that is focusable, setting this flag |
248 // allows this view to reserve space for a focus border that it otherwise | 253 // allows this view to reserve space for a focus border that it otherwise |
249 // might not have because it is not itself focusable. | 254 // might not have because it is not itself focusable. |
250 bool has_focus_border_; | 255 bool has_focus_border_; |
251 | 256 |
252 DISALLOW_COPY_AND_ASSIGN(Label); | 257 DISALLOW_COPY_AND_ASSIGN(Label); |
253 }; | 258 }; |
254 | 259 |
255 } // namespace views | 260 } // namespace views |
256 | 261 |
257 #endif // CHROME_VIEWS_CONTROLS_LABEL_H_ | 262 #endif // CHROME_VIEWS_CONTROLS_LABEL_H_ |
OLD | NEW |