| OLD | NEW |
| 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 // This file implements utility functions for eliding and formatting UI text. | 5 // This file implements utility functions for eliding and formatting UI text. |
| 6 // | 6 // |
| 7 // Note that several of the functions declared in text_elider.h are implemented | 7 // Note that several of the functions declared in text_elider.h are implemented |
| 8 // in this file using helper classes in an unnamed namespace. | 8 // in this file using helper classes in an unnamed namespace. |
| 9 | 9 |
| 10 #include "ui/base/text/text_elider.h" | 10 #include "ui/base/text/text_elider.h" |
| (...skipping 889 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 900 if (lines_->back().empty() && !last_line_ended_in_lf_) | 900 if (lines_->back().empty() && !last_line_ended_in_lf_) |
| 901 lines_->pop_back(); | 901 lines_->pop_back(); |
| 902 } | 902 } |
| 903 if (last_line_ended_in_lf_) | 903 if (last_line_ended_in_lf_) |
| 904 lines_->push_back(string16()); | 904 lines_->push_back(string16()); |
| 905 return full_; | 905 return full_; |
| 906 } | 906 } |
| 907 | 907 |
| 908 void RectangleText::AddLine(const string16& line) { | 908 void RectangleText::AddLine(const string16& line) { |
| 909 const int line_width = font_.GetStringWidth(line); | 909 const int line_width = font_.GetStringWidth(line); |
| 910 if (line_width < available_pixel_width_) { | 910 if (line_width <= available_pixel_width_) { |
| 911 AddToCurrentLineWithWidth(line, line_width); | 911 AddToCurrentLineWithWidth(line, line_width); |
| 912 } else { | 912 } else { |
| 913 // Iterate over positions that are valid to break the line at. In general, | 913 // Iterate over positions that are valid to break the line at. In general, |
| 914 // these are word boundaries but after any punctuation following the word. | 914 // these are word boundaries but after any punctuation following the word. |
| 915 base::i18n::BreakIterator words(line, | 915 base::i18n::BreakIterator words(line, |
| 916 base::i18n::BreakIterator::BREAK_LINE); | 916 base::i18n::BreakIterator::BREAK_LINE); |
| 917 if (words.Init()) { | 917 if (words.Init()) { |
| 918 while (words.Advance()) { | 918 while (words.Advance()) { |
| 919 const bool truncate = !current_line_.empty(); | 919 const bool truncate = !current_line_.empty(); |
| 920 const string16& word = words.GetString(); | 920 const string16& word = words.GetString(); |
| (...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1114 index = char_iterator.getIndex(); | 1114 index = char_iterator.getIndex(); |
| 1115 } else { | 1115 } else { |
| 1116 // String has leading whitespace, return the elide string. | 1116 // String has leading whitespace, return the elide string. |
| 1117 return kElideString; | 1117 return kElideString; |
| 1118 } | 1118 } |
| 1119 } | 1119 } |
| 1120 return string.substr(0, index) + kElideString; | 1120 return string.substr(0, index) + kElideString; |
| 1121 } | 1121 } |
| 1122 | 1122 |
| 1123 } // namespace ui | 1123 } // namespace ui |
| OLD | NEW |