Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(521)

Side by Side Diff: ui/views/controls/label.h

Issue 312233003: Add fade eliding for Views Labels; related cleanup. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Refine alignment check; minor additional cleanup. Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « ui/views/controls/button/label_button.cc ('k') | ui/views/controls/label.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 UI_VIEWS_CONTROLS_LABEL_H_ 5 #ifndef UI_VIEWS_CONTROLS_LABEL_H_
6 #define UI_VIEWS_CONTROLS_LABEL_H_ 6 #define UI_VIEWS_CONTROLS_LABEL_H_
7 7
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 24 matching lines...) Expand all
35 // UI's directionality as the label's directionality. 35 // UI's directionality as the label's directionality.
36 // 36 //
37 // If the text originates from a web page, its directionality is determined 37 // If the text originates from a web page, its directionality is determined
38 // based on its first character with strong directionality, disregarding what 38 // based on its first character with strong directionality, disregarding what
39 // directionality the Chrome UI is. 39 // directionality the Chrome UI is.
40 enum DirectionalityMode { 40 enum DirectionalityMode {
41 USE_UI_DIRECTIONALITY = 0, 41 USE_UI_DIRECTIONALITY = 0,
42 AUTO_DETECT_DIRECTIONALITY 42 AUTO_DETECT_DIRECTIONALITY
43 }; 43 };
44 44
45 enum ElideBehavior {
46 NO_ELIDE, // Do not elide the label text; truncate as needed.
47 ELIDE_AT_BEGINNING, // Add ellipsis at the start of the string as needed.
48 ELIDE_IN_MIDDLE, // Add ellipsis in the middle of the string as needed.
49 ELIDE_AT_END, // Add ellipsis at the end of the string as needed.
50 ELIDE_AS_EMAIL, // Elide while retaining username/domain chars
51 // as needed.
52 };
53
54 // Internal class name. 45 // Internal class name.
55 static const char kViewClassName[]; 46 static const char kViewClassName[];
56 47
57 // The padding for the focus border when rendering focused text. 48 // The padding for the focus border when rendering focused text.
58 static const int kFocusBorderPadding; 49 static const int kFocusBorderPadding;
59 50
60 Label(); 51 Label();
61 explicit Label(const base::string16& text); 52 explicit Label(const base::string16& text);
62 Label(const base::string16& text, const gfx::FontList& font_list); 53 Label(const base::string16& text, const gfx::FontList& font_list);
63 virtual ~Label(); 54 virtual ~Label();
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
143 bool is_obscured() const { return is_obscured_; } 134 bool is_obscured() const { return is_obscured_; }
144 void SetObscured(bool obscured); 135 void SetObscured(bool obscured);
145 136
146 // Get the text as displayed to the user, respecting the 'obscured' flag. 137 // Get the text as displayed to the user, respecting the 'obscured' flag.
147 const base::string16& layout_text() const { return layout_text_; } 138 const base::string16& layout_text() const { return layout_text_; }
148 139
149 // Sets whether the label text can be split on words. 140 // Sets whether the label text can be split on words.
150 // Default is false. This only works when is_multi_line is true. 141 // Default is false. This only works when is_multi_line is true.
151 void SetAllowCharacterBreak(bool allow_character_break); 142 void SetAllowCharacterBreak(bool allow_character_break);
152 143
153 // Sets whether the label text should be elided in the middle or end (if 144 // Sets the eliding or fading behavior, applied as necessary. The default is
154 // necessary). The default is to elide at the end. 145 // to elide at the end. Eliding is not well supported for multi-line labels.
155 // NOTE: Eliding in the middle is not supported for multi-line strings. 146 void SetElideBehavior(gfx::ElideBehavior elide_behavior);
156 void SetElideBehavior(ElideBehavior elide_behavior);
157 147
158 // Sets the tooltip text. Default behavior for a label (single-line) is to 148 // Sets the tooltip text. Default behavior for a label (single-line) is to
159 // show the full text if it is wider than its bounds. Calling this overrides 149 // show the full text if it is wider than its bounds. Calling this overrides
160 // the default behavior and lets you set a custom tooltip. To revert to 150 // the default behavior and lets you set a custom tooltip. To revert to
161 // default behavior, call this with an empty string. 151 // default behavior, call this with an empty string.
162 void SetTooltipText(const base::string16& tooltip_text); 152 void SetTooltipText(const base::string16& tooltip_text);
163 153
164 // Resizes the label so its width is set to the width of the longest line and 154 // Resizes the label so its width is set to the width of the longest line and
165 // its height deduced accordingly. 155 // its height deduced accordingly.
166 // This is only intended for multi-line labels and is useful when the label's 156 // This is only intended for multi-line labels and is useful when the label's
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
270 bool disabled_color_set_; 260 bool disabled_color_set_;
271 bool background_color_set_; 261 bool background_color_set_;
272 262
273 bool auto_color_readability_; 263 bool auto_color_readability_;
274 mutable gfx::Size text_size_; 264 mutable gfx::Size text_size_;
275 mutable bool text_size_valid_; 265 mutable bool text_size_valid_;
276 int line_height_; 266 int line_height_;
277 bool is_multi_line_; 267 bool is_multi_line_;
278 bool is_obscured_; 268 bool is_obscured_;
279 bool allow_character_break_; 269 bool allow_character_break_;
280 ElideBehavior elide_behavior_; 270 gfx::ElideBehavior elide_behavior_;
281 gfx::HorizontalAlignment horizontal_alignment_; 271 gfx::HorizontalAlignment horizontal_alignment_;
282 base::string16 tooltip_text_; 272 base::string16 tooltip_text_;
283 // Whether to collapse the label when it's not visible. 273 // Whether to collapse the label when it's not visible.
284 bool collapse_when_hidden_; 274 bool collapse_when_hidden_;
285 // The following member variable is used to control whether the 275 // The following member variable is used to control whether the
286 // directionality is auto-detected based on first strong directionality 276 // directionality is auto-detected based on first strong directionality
287 // character or is determined by chrome UI's locale. 277 // character or is determined by chrome UI's locale.
288 DirectionalityMode directionality_mode_; 278 DirectionalityMode directionality_mode_;
289 279
290 // Colors for shadow. 280 // Colors for shadow.
(...skipping 15 matching lines...) Expand all
306 // The cached heights to avoid recalculation in GetHeightForWidth(). 296 // The cached heights to avoid recalculation in GetHeightForWidth().
307 mutable std::vector<gfx::Size> cached_heights_; 297 mutable std::vector<gfx::Size> cached_heights_;
308 mutable int cached_heights_cursor_; 298 mutable int cached_heights_cursor_;
309 299
310 DISALLOW_COPY_AND_ASSIGN(Label); 300 DISALLOW_COPY_AND_ASSIGN(Label);
311 }; 301 };
312 302
313 } // namespace views 303 } // namespace views
314 304
315 #endif // UI_VIEWS_CONTROLS_LABEL_H_ 305 #endif // UI_VIEWS_CONTROLS_LABEL_H_
OLDNEW
« no previous file with comments | « ui/views/controls/button/label_button.cc ('k') | ui/views/controls/label.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698