| 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 "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 467 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 478 // Hebrew or Arabic characters are displayed correctly. | 478 // Hebrew or Arabic characters are displayed correctly. |
| 479 // | 479 // |
| 480 // Note that we don't check the View's UI layout setting in order to | 480 // Note that we don't check the View's UI layout setting in order to |
| 481 // determine whether or not to insert the special Unicode formatting | 481 // determine whether or not to insert the special Unicode formatting |
| 482 // characters. We use the locale settings because an URL is always treated | 482 // characters. We use the locale settings because an URL is always treated |
| 483 // as an LTR string, even if its containing view does not use an RTL UI | 483 // as an LTR string, even if its containing view does not use an RTL UI |
| 484 // layout. | 484 // layout. |
| 485 *paint_text = base::i18n::GetDisplayStringInLTRDirectionality( | 485 *paint_text = base::i18n::GetDisplayStringInLTRDirectionality( |
| 486 *paint_text); | 486 *paint_text); |
| 487 } else if (elide_in_middle_) { | 487 } else if (elide_in_middle_) { |
| 488 *paint_text = ui::ElideText(text_, | 488 *paint_text = ui::ElideText(text_, font_, GetAvailableRect().width(), |
| 489 font_, GetAvailableRect().width(), true); | 489 ui::ELIDE_IN_MIDDLE); |
| 490 } else { | 490 } else { |
| 491 *paint_text = text_; | 491 *paint_text = text_; |
| 492 } | 492 } |
| 493 | 493 |
| 494 *text_bounds = GetTextBounds(); | 494 *text_bounds = GetTextBounds(); |
| 495 *flags = ComputeMultiLineFlags(); | 495 *flags = ComputeMultiLineFlags(); |
| 496 // If rtl_alignment_mode_ is AUTO_DETECT_ALIGNMENT (such as for text from | 496 // If rtl_alignment_mode_ is AUTO_DETECT_ALIGNMENT (such as for text from |
| 497 // webpage, not from chrome's UI), its directionality is forced to be RTL if | 497 // webpage, not from chrome's UI), its directionality is forced to be RTL if |
| 498 // it is right aligned. Otherwise, its directionality is forced to be LTR. | 498 // it is right aligned. Otherwise, its directionality is forced to be LTR. |
| 499 if (rtl_alignment_mode_ == AUTO_DETECT_ALIGNMENT) { | 499 if (rtl_alignment_mode_ == AUTO_DETECT_ALIGNMENT) { |
| 500 if (horiz_alignment_ == ALIGN_RIGHT) | 500 if (horiz_alignment_ == ALIGN_RIGHT) |
| 501 *flags |= gfx::Canvas::FORCE_RTL_DIRECTIONALITY; | 501 *flags |= gfx::Canvas::FORCE_RTL_DIRECTIONALITY; |
| 502 else | 502 else |
| 503 *flags |= gfx::Canvas::FORCE_LTR_DIRECTIONALITY; | 503 *flags |= gfx::Canvas::FORCE_LTR_DIRECTIONALITY; |
| 504 } | 504 } |
| 505 } | 505 } |
| 506 | 506 |
| 507 } // namespace views | 507 } // namespace views |
| OLD | NEW |