diff options
author | erg@google.com <erg@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-08-22 22:26:53 +0000 |
---|---|---|
committer | erg@google.com <erg@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-08-22 22:26:53 +0000 |
commit | 62cfbad7377b4db2497fec6e88821a36a1b767fe (patch) | |
tree | c7be44ea69ddb94285d7a779ade049411fb004e1 /ui/base/text | |
parent | 078ed5486f50579a03463961738f6d57759d10ce (diff) | |
download | chromium_src-62cfbad7377b4db2497fec6e88821a36a1b767fe.zip chromium_src-62cfbad7377b4db2497fec6e88821a36a1b767fe.tar.gz chromium_src-62cfbad7377b4db2497fec6e88821a36a1b767fe.tar.bz2 |
(shlib failure) Revert 97750 - content: Move render_widget_host_view_gtk to content/
This also moves some other files:
- OwnedWidgetGtk now goes in ui/base/gtk/
- TruncateString moved from l10n_util:: to ui::
- GtkIMContextWrapper has part of its code split into chrome/ (IDC using code goes in RenderViewContextMenu) and the rest go in content/ (gtk using code goes with GtkIMContextWrapper).
- gtk_key_bindings_handler[_unittest] now goes in content, as it's a utility class to RenderWidgetHostGtk.
BUG=93804
TEST=existing unit tests
Review URL: http://codereview.chromium.org/7669040
TBR=erg@google.com
Review URL: http://codereview.chromium.org/7708017
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@97756 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ui/base/text')
-rw-r--r-- | ui/base/text/text_elider.cc | 66 | ||||
-rw-r--r-- | ui/base/text/text_elider.h | 6 | ||||
-rw-r--r-- | ui/base/text/text_elider_unittest.cc | 27 |
3 files changed, 0 insertions, 99 deletions
diff --git a/ui/base/text/text_elider.cc b/ui/base/text/text_elider.cc index 8cbfb3c..1a4b79d 100644 --- a/ui/base/text/text_elider.cc +++ b/ui/base/text/text_elider.cc @@ -10,7 +10,6 @@ #include "base/i18n/break_iterator.h" #include "base/i18n/char_iterator.h" #include "base/i18n/rtl.h" -#include "base/scoped_ptr.h" #include "base/string_split.h" #include "base/string_util.h" #include "base/sys_string_conversions.h" @@ -20,8 +19,6 @@ #include "net/base/net_util.h" #include "net/base/registry_controlled_domain.h" #include "ui/gfx/font.h" -#include "unicode/rbbi.h" -#include "unicode/uloc.h" namespace ui { @@ -676,67 +673,4 @@ bool ElideRectangleString(const string16& input, size_t max_rows, return rect.Finalize(); } -string16 TruncateString(const string16& string, size_t length) { - if (string.size() <= length) - // String fits, return it. - return string; - - if (length == 0) { - // No room for the elide string, return an empty string. - return string16(); - } - size_t max = length - 1; - - // Added to the end of strings that are too big. - static const char16 kElideString[] = { 0x2026, 0 }; - - if (max == 0) { - // Just enough room for the elide string. - return kElideString; - } - - // Use a line iterator to find the first boundary. - UErrorCode status = U_ZERO_ERROR; - scoped_ptr<icu::RuleBasedBreakIterator> bi( - static_cast<icu::RuleBasedBreakIterator*>( - icu::RuleBasedBreakIterator::createLineInstance( - icu::Locale::getDefault(), status))); - if (U_FAILURE(status)) - return string.substr(0, max) + kElideString; - bi->setText(string.c_str()); - int32_t index = bi->preceding(static_cast<int32_t>(max)); - if (index == icu::BreakIterator::DONE) { - index = static_cast<int32_t>(max); - } else { - // Found a valid break (may be the beginning of the string). Now use - // a character iterator to find the previous non-whitespace character. - icu::StringCharacterIterator char_iterator(string.c_str()); - if (index == 0) { - // No valid line breaks. Start at the end again. This ensures we break - // on a valid character boundary. - index = static_cast<int32_t>(max); - } - char_iterator.setIndex(index); - while (char_iterator.hasPrevious()) { - char_iterator.previous(); - if (!(u_isspace(char_iterator.current()) || - u_charType(char_iterator.current()) == U_CONTROL_CHAR || - u_charType(char_iterator.current()) == U_NON_SPACING_MARK)) { - // Not a whitespace character. Advance the iterator so that we - // include the current character in the truncated string. - char_iterator.next(); - break; - } - } - if (char_iterator.hasPrevious()) { - // Found a valid break point. - index = char_iterator.getIndex(); - } else { - // String has leading whitespace, return the elide string. - return kElideString; - } - } - return string.substr(0, index) + kElideString; -} - } // namespace ui diff --git a/ui/base/text/text_elider.h b/ui/base/text/text_elider.h index eb4f7a4..fe2a141 100644 --- a/ui/base/text/text_elider.h +++ b/ui/base/text/text_elider.h @@ -119,12 +119,6 @@ UI_EXPORT bool ElideRectangleString(const string16& input, size_t max_rows, size_t max_cols, bool strict, string16* output); -// Truncates the string to length characters. This breaks the string at -// the first word break before length, adding the horizontal ellipsis -// character (unicode character 0x2026) to render ... -// The supplied string is returned if the string has length characters or -// less. -UI_EXPORT string16 TruncateString(const string16& string, size_t length); } // namespace ui diff --git a/ui/base/text/text_elider_unittest.cc b/ui/base/text/text_elider_unittest.cc index 60ab1f7..0ff70e4 100644 --- a/ui/base/text/text_elider_unittest.cc +++ b/ui/base/text/text_elider_unittest.cc @@ -547,31 +547,4 @@ TEST(TextEliderTest, ElideRectangleWide32) { EXPECT_EQ(out, output); } -TEST(TextEliderTest, TruncateString) { - string16 string = ASCIIToUTF16("foooooey bxxxar baz"); - - // Make sure it doesn't modify the string if length > string length. - EXPECT_EQ(string, ui::TruncateString(string, 100)); - - // Test no characters. - EXPECT_EQ(L"", UTF16ToWide(ui::TruncateString(string, 0))); - - // Test 1 character. - EXPECT_EQ(L"\x2026", UTF16ToWide(ui::TruncateString(string, 1))); - - // Test adds ... at right spot when there is enough room to break at a - // word boundary. - EXPECT_EQ(L"foooooey\x2026", UTF16ToWide(ui::TruncateString(string, 14))); - - // Test adds ... at right spot when there is not enough space in first word. - EXPECT_EQ(L"f\x2026", UTF16ToWide(ui::TruncateString(string, 2))); - - // Test adds ... at right spot when there is not enough room to break at a - // word boundary. - EXPECT_EQ(L"foooooey\x2026", UTF16ToWide(ui::TruncateString(string, 11))); - - // Test completely truncates string if break is on initial whitespace. - EXPECT_EQ(L"\x2026", UTF16ToWide(ui::TruncateString(ASCIIToUTF16(" "), 2))); -} - } // namespace ui |