OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 "views/controls/label.h" | 5 #include "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 257 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
268 const gfx::Rect& text_bounds, | 268 const gfx::Rect& text_bounds, |
269 int flags) { | 269 int flags) { |
270 canvas->DrawStringInt(text, font_, | 270 canvas->DrawStringInt(text, font_, |
271 IsEnabled() ? actual_enabled_color_ : actual_disabled_color_, | 271 IsEnabled() ? actual_enabled_color_ : actual_disabled_color_, |
272 text_bounds.x(), text_bounds.y(), text_bounds.width(), | 272 text_bounds.x(), text_bounds.y(), text_bounds.width(), |
273 text_bounds.height(), flags); | 273 text_bounds.height(), flags); |
274 | 274 |
275 if (HasFocus() || paint_as_focused_) { | 275 if (HasFocus() || paint_as_focused_) { |
276 gfx::Rect focus_bounds = text_bounds; | 276 gfx::Rect focus_bounds = text_bounds; |
277 focus_bounds.Inset(-kFocusBorderPadding, -kFocusBorderPadding); | 277 focus_bounds.Inset(-kFocusBorderPadding, -kFocusBorderPadding); |
278 canvas->DrawFocusRect(focus_bounds.x(), focus_bounds.y(), | 278 canvas->DrawFocusRect(focus_bounds); |
279 focus_bounds.width(), focus_bounds.height()); | |
280 } | 279 } |
281 } | 280 } |
282 | 281 |
283 gfx::Size Label::GetTextSize() const { | 282 gfx::Size Label::GetTextSize() const { |
284 if (!text_size_valid_) { | 283 if (!text_size_valid_) { |
285 // For single-line strings, we supply the largest possible width, because | 284 // For single-line strings, we supply the largest possible width, because |
286 // while adding NO_ELLIPSIS to the flags works on Windows for forcing | 285 // while adding NO_ELLIPSIS to the flags works on Windows for forcing |
287 // SizeStringInt() to calculate the desired width, it doesn't seem to work | 286 // SizeStringInt() to calculate the desired width, it doesn't seem to work |
288 // on Linux. | 287 // on Linux. |
289 int w = is_multi_line_ ? | 288 int w = is_multi_line_ ? |
(...skipping 205 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
495 // it is right aligned. Otherwise, its directionality is forced to be LTR. | 494 // it is right aligned. Otherwise, its directionality is forced to be LTR. |
496 if (rtl_alignment_mode_ == AUTO_DETECT_ALIGNMENT) { | 495 if (rtl_alignment_mode_ == AUTO_DETECT_ALIGNMENT) { |
497 if (horiz_alignment_ == ALIGN_RIGHT) | 496 if (horiz_alignment_ == ALIGN_RIGHT) |
498 *flags |= gfx::Canvas::FORCE_RTL_DIRECTIONALITY; | 497 *flags |= gfx::Canvas::FORCE_RTL_DIRECTIONALITY; |
499 else | 498 else |
500 *flags |= gfx::Canvas::FORCE_LTR_DIRECTIONALITY; | 499 *flags |= gfx::Canvas::FORCE_LTR_DIRECTIONALITY; |
501 } | 500 } |
502 } | 501 } |
503 | 502 |
504 } // namespace views | 503 } // namespace views |
OLD | NEW |