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

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

Issue 117983002: Prefix string16 with base:: in ui/. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: merge Created 7 years 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/label.h ('k') | ui/views/controls/label_unittest.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 #include "ui/views/controls/label.h" 5 #include "ui/views/controls/label.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <cmath> 8 #include <cmath>
9 #include <limits> 9 #include <limits>
10 #include <vector> 10 #include <vector>
(...skipping 26 matching lines...) Expand all
37 } 37 }
38 38
39 } // namespace 39 } // namespace
40 40
41 namespace views { 41 namespace views {
42 42
43 // static 43 // static
44 const char Label::kViewClassName[] = "Label"; 44 const char Label::kViewClassName[] = "Label";
45 45
46 Label::Label() { 46 Label::Label() {
47 Init(string16(), GetDefaultFontList()); 47 Init(base::string16(), GetDefaultFontList());
48 } 48 }
49 49
50 Label::Label(const string16& text) { 50 Label::Label(const base::string16& text) {
51 Init(text, GetDefaultFontList()); 51 Init(text, GetDefaultFontList());
52 } 52 }
53 53
54 Label::Label(const string16& text, const gfx::FontList& font_list) { 54 Label::Label(const base::string16& text, const gfx::FontList& font_list) {
55 Init(text, font_list); 55 Init(text, font_list);
56 } 56 }
57 57
58 Label::Label(const string16& text, const gfx::Font& font) { 58 Label::Label(const base::string16& text, const gfx::Font& font) {
59 Init(text, gfx::FontList(font)); 59 Init(text, gfx::FontList(font));
60 } 60 }
61 61
62 Label::~Label() { 62 Label::~Label() {
63 } 63 }
64 64
65 void Label::SetFontList(const gfx::FontList& font_list) { 65 void Label::SetFontList(const gfx::FontList& font_list) {
66 font_list_ = font_list; 66 font_list_ = font_list;
67 ResetCachedSize(); 67 ResetCachedSize();
68 PreferredSizeChanged(); 68 PreferredSizeChanged();
69 SchedulePaint(); 69 SchedulePaint();
70 } 70 }
71 71
72 const gfx::Font& Label::font() const { 72 const gfx::Font& Label::font() const {
73 return font_list_.GetPrimaryFont(); 73 return font_list_.GetPrimaryFont();
74 } 74 }
75 75
76 void Label::SetFont(const gfx::Font& font) { 76 void Label::SetFont(const gfx::Font& font) {
77 SetFontList(gfx::FontList(font)); 77 SetFontList(gfx::FontList(font));
78 } 78 }
79 79
80 void Label::SetText(const string16& text) { 80 void Label::SetText(const base::string16& text) {
81 if (text == text_) 81 if (text == text_)
82 return; 82 return;
83 text_ = text; 83 text_ = text;
84 ResetCachedSize(); 84 ResetCachedSize();
85 PreferredSizeChanged(); 85 PreferredSizeChanged();
86 SchedulePaint(); 86 SchedulePaint();
87 } 87 }
88 88
89 void Label::SetAutoColorReadabilityEnabled(bool enabled) { 89 void Label::SetAutoColorReadabilityEnabled(bool enabled) {
90 auto_color_readability_ = enabled; 90 auto_color_readability_ = enabled;
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
169 void Label::SetElideBehavior(ElideBehavior elide_behavior) { 169 void Label::SetElideBehavior(ElideBehavior elide_behavior) {
170 DCHECK(elide_behavior != ELIDE_IN_MIDDLE || !is_multi_line_); 170 DCHECK(elide_behavior != ELIDE_IN_MIDDLE || !is_multi_line_);
171 if (elide_behavior != elide_behavior_) { 171 if (elide_behavior != elide_behavior_) {
172 elide_behavior_ = elide_behavior; 172 elide_behavior_ = elide_behavior;
173 ResetCachedSize(); 173 ResetCachedSize();
174 PreferredSizeChanged(); 174 PreferredSizeChanged();
175 SchedulePaint(); 175 SchedulePaint();
176 } 176 }
177 } 177 }
178 178
179 void Label::SetTooltipText(const string16& tooltip_text) { 179 void Label::SetTooltipText(const base::string16& tooltip_text) {
180 tooltip_text_ = tooltip_text; 180 tooltip_text_ = tooltip_text;
181 } 181 }
182 182
183 void Label::SizeToFit(int max_width) { 183 void Label::SizeToFit(int max_width) {
184 DCHECK(is_multi_line_); 184 DCHECK(is_multi_line_);
185 185
186 std::vector<string16> lines; 186 std::vector<base::string16> lines;
187 base::SplitString(text_, '\n', &lines); 187 base::SplitString(text_, '\n', &lines);
188 188
189 int label_width = 0; 189 int label_width = 0;
190 for (std::vector<string16>::const_iterator iter = lines.begin(); 190 for (std::vector<base::string16>::const_iterator iter = lines.begin();
191 iter != lines.end(); ++iter) { 191 iter != lines.end(); ++iter) {
192 label_width = std::max(label_width, gfx::GetStringWidth(*iter, font_list_)); 192 label_width = std::max(label_width, gfx::GetStringWidth(*iter, font_list_));
193 } 193 }
194 194
195 label_width += GetInsets().width(); 195 label_width += GetInsets().width();
196 196
197 if (max_width > 0) 197 if (max_width > 0)
198 label_width = std::min(label_width, max_width); 198 label_width = std::min(label_width, max_width);
199 199
200 SetBounds(x(), y(), label_width, 0); 200 SetBounds(x(), y(), label_width, 0);
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
275 if (tooltip_text_.empty() && !ShouldShowDefaultTooltip()) 275 if (tooltip_text_.empty() && !ShouldShowDefaultTooltip())
276 return NULL; 276 return NULL;
277 277
278 return this; 278 return this;
279 } 279 }
280 280
281 bool Label::HitTestRect(const gfx::Rect& rect) const { 281 bool Label::HitTestRect(const gfx::Rect& rect) const {
282 return false; 282 return false;
283 } 283 }
284 284
285 bool Label::GetTooltipText(const gfx::Point& p, string16* tooltip) const { 285 bool Label::GetTooltipText(const gfx::Point& p, base::string16* tooltip) const {
286 DCHECK(tooltip); 286 DCHECK(tooltip);
287 287
288 // If a tooltip has been explicitly set, use it. 288 // If a tooltip has been explicitly set, use it.
289 if (!tooltip_text_.empty()) { 289 if (!tooltip_text_.empty()) {
290 tooltip->assign(tooltip_text_); 290 tooltip->assign(tooltip_text_);
291 return true; 291 return true;
292 } 292 }
293 293
294 // Show the full text if the text does not fit. 294 // Show the full text if the text does not fit.
295 if (ShouldShowDefaultTooltip()) { 295 if (ShouldShowDefaultTooltip()) {
296 *tooltip = text_; 296 *tooltip = text_;
297 return true; 297 return true;
298 } 298 }
299 299
300 return false; 300 return false;
301 } 301 }
302 302
303 void Label::GetAccessibleState(ui::AccessibleViewState* state) { 303 void Label::GetAccessibleState(ui::AccessibleViewState* state) {
304 state->role = ui::AccessibilityTypes::ROLE_STATICTEXT; 304 state->role = ui::AccessibilityTypes::ROLE_STATICTEXT;
305 state->state = ui::AccessibilityTypes::STATE_READONLY; 305 state->state = ui::AccessibilityTypes::STATE_READONLY;
306 state->name = text_; 306 state->name = text_;
307 } 307 }
308 308
309 void Label::PaintText(gfx::Canvas* canvas, 309 void Label::PaintText(gfx::Canvas* canvas,
310 const string16& text, 310 const base::string16& text,
311 const gfx::Rect& text_bounds, 311 const gfx::Rect& text_bounds,
312 int flags) { 312 int flags) {
313 gfx::ShadowValues shadows; 313 gfx::ShadowValues shadows;
314 if (has_shadow_) 314 if (has_shadow_)
315 shadows.push_back(gfx::ShadowValue(shadow_offset_, 0, 315 shadows.push_back(gfx::ShadowValue(shadow_offset_, 0,
316 enabled() ? enabled_shadow_color_ : disabled_shadow_color_)); 316 enabled() ? enabled_shadow_color_ : disabled_shadow_color_));
317 canvas->DrawStringRectWithShadows(text, font_list_, 317 canvas->DrawStringRectWithShadows(text, font_list_,
318 enabled() ? actual_enabled_color_ : actual_disabled_color_, 318 enabled() ? actual_enabled_color_ : actual_disabled_color_,
319 text_bounds, line_height_, flags, shadows); 319 text_bounds, line_height_, flags, shadows);
320 320
(...skipping 30 matching lines...) Expand all
351 text_size_valid_ &= !is_multi_line_; 351 text_size_valid_ &= !is_multi_line_;
352 } 352 }
353 353
354 void Label::OnPaint(gfx::Canvas* canvas) { 354 void Label::OnPaint(gfx::Canvas* canvas) {
355 OnPaintBackground(canvas); 355 OnPaintBackground(canvas);
356 // We skip painting the focus border because it is being handled seperately by 356 // We skip painting the focus border because it is being handled seperately by
357 // some subclasses of Label. We do not want View's focus border painting to 357 // some subclasses of Label. We do not want View's focus border painting to
358 // interfere with that. 358 // interfere with that.
359 OnPaintBorder(canvas); 359 OnPaintBorder(canvas);
360 360
361 string16 paint_text; 361 base::string16 paint_text;
362 gfx::Rect text_bounds; 362 gfx::Rect text_bounds;
363 int flags = 0; 363 int flags = 0;
364 CalculateDrawStringParams(&paint_text, &text_bounds, &flags); 364 CalculateDrawStringParams(&paint_text, &text_bounds, &flags);
365 PaintText(canvas, paint_text, text_bounds, flags); 365 PaintText(canvas, paint_text, text_bounds, flags);
366 } 366 }
367 367
368 void Label::OnNativeThemeChanged(const ui::NativeTheme* theme) { 368 void Label::OnNativeThemeChanged(const ui::NativeTheme* theme) {
369 UpdateColorsFromTheme(theme); 369 UpdateColorsFromTheme(theme);
370 } 370 }
371 371
372 void Label::Init(const string16& text, const gfx::FontList& font_list) { 372 void Label::Init(const base::string16& text, const gfx::FontList& font_list) {
373 font_list_ = font_list; 373 font_list_ = font_list;
374 enabled_color_set_ = disabled_color_set_ = background_color_set_ = false; 374 enabled_color_set_ = disabled_color_set_ = background_color_set_ = false;
375 auto_color_readability_ = true; 375 auto_color_readability_ = true;
376 UpdateColorsFromTheme(ui::NativeTheme::instance()); 376 UpdateColorsFromTheme(ui::NativeTheme::instance());
377 horizontal_alignment_ = gfx::ALIGN_CENTER; 377 horizontal_alignment_ = gfx::ALIGN_CENTER;
378 line_height_ = 0; 378 line_height_ = 0;
379 is_multi_line_ = false; 379 is_multi_line_ = false;
380 allow_character_break_ = false; 380 allow_character_break_ = false;
381 elide_behavior_ = ELIDE_AT_END; 381 elide_behavior_ = ELIDE_AT_END;
382 collapse_when_hidden_ = false; 382 collapse_when_hidden_ = false;
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
478 478
479 return flags; 479 return flags;
480 } 480 }
481 481
482 gfx::Rect Label::GetAvailableRect() const { 482 gfx::Rect Label::GetAvailableRect() const {
483 gfx::Rect bounds(size()); 483 gfx::Rect bounds(size());
484 bounds.Inset(GetInsets()); 484 bounds.Inset(GetInsets());
485 return bounds; 485 return bounds;
486 } 486 }
487 487
488 void Label::CalculateDrawStringParams(string16* paint_text, 488 void Label::CalculateDrawStringParams(base::string16* paint_text,
489 gfx::Rect* text_bounds, 489 gfx::Rect* text_bounds,
490 int* flags) const { 490 int* flags) const {
491 DCHECK(paint_text && text_bounds && flags); 491 DCHECK(paint_text && text_bounds && flags);
492 492
493 // TODO(msw): Use ElideRectangleText to support eliding multi-line text. Once 493 // TODO(msw): Use ElideRectangleText to support eliding multi-line text. Once
494 // this is done, we can set NO_ELLIPSIS unconditionally at the bottom. 494 // this is done, we can set NO_ELLIPSIS unconditionally at the bottom.
495 if (is_multi_line_ || (elide_behavior_ == NO_ELIDE)) { 495 if (is_multi_line_ || (elide_behavior_ == NO_ELIDE)) {
496 *paint_text = text_; 496 *paint_text = text_;
497 } else if (elide_behavior_ == ELIDE_IN_MIDDLE) { 497 } else if (elide_behavior_ == ELIDE_IN_MIDDLE) {
498 *paint_text = gfx::ElideText(text_, font_list_, GetAvailableRect().width(), 498 *paint_text = gfx::ElideText(text_, font_list_, GetAvailableRect().width(),
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
534 for (int i = 0; i < kCachedSizeLimit; ++i) 534 for (int i = 0; i < kCachedSizeLimit; ++i)
535 cached_heights_[i] = gfx::Size(); 535 cached_heights_[i] = gfx::Size();
536 } 536 }
537 537
538 bool Label::ShouldShowDefaultTooltip() const { 538 bool Label::ShouldShowDefaultTooltip() const {
539 return !is_multi_line_ && 539 return !is_multi_line_ &&
540 gfx::GetStringWidth(text_, font_list_) > GetAvailableRect().width(); 540 gfx::GetStringWidth(text_, font_list_) > GetAvailableRect().width();
541 } 541 }
542 542
543 } // namespace views 543 } // namespace views
OLDNEW
« no previous file with comments | « ui/views/controls/label.h ('k') | ui/views/controls/label_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698