OLD | NEW |
1 /* | 1 /* |
2 * (C) 1999 Lars Knoll (knoll@kde.org) | 2 * (C) 1999 Lars Knoll (knoll@kde.org) |
3 * (C) 2000 Dirk Mueller (mueller@kde.org) | 3 * (C) 2000 Dirk Mueller (mueller@kde.org) |
4 * Copyright (C) 2004, 2005, 2006, 2007 Apple Inc. All rights reserved. | 4 * Copyright (C) 2004, 2005, 2006, 2007 Apple Inc. All rights reserved. |
5 * Copyright (C) 2006 Andrew Wellington (proton@wiretapped.net) | 5 * Copyright (C) 2006 Andrew Wellington (proton@wiretapped.net) |
6 * Copyright (C) 2006 Graham Dennis (graham.dennis@gmail.com) | 6 * Copyright (C) 2006 Graham Dennis (graham.dennis@gmail.com) |
7 * | 7 * |
8 * This library is free software; you can redistribute it and/or | 8 * This library is free software; you can redistribute it and/or |
9 * modify it under the terms of the GNU Library General Public | 9 * modify it under the terms of the GNU Library General Public |
10 * License as published by the Free Software Foundation; either | 10 * License as published by the Free Software Foundation; either |
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
113 } | 113 } |
114 | 114 |
115 TextBreakIterator* boundary = wordBreakIterator(stringWithPrevious.character
s(), length + 1); | 115 TextBreakIterator* boundary = wordBreakIterator(stringWithPrevious.character
s(), length + 1); |
116 if (!boundary) | 116 if (!boundary) |
117 return; | 117 return; |
118 | 118 |
119 StringBuilder result; | 119 StringBuilder result; |
120 result.reserveCapacity(length); | 120 result.reserveCapacity(length); |
121 | 121 |
122 int32_t endOfWord; | 122 int32_t endOfWord; |
123 int32_t startOfWord = textBreakFirst(boundary); | 123 int32_t startOfWord = boundary->first(); |
124 for (endOfWord = textBreakNext(boundary); endOfWord != TextBreakDone; startO
fWord = endOfWord, endOfWord = textBreakNext(boundary)) { | 124 for (endOfWord = boundary->next(); endOfWord != TextBreakDone; startOfWord =
endOfWord, endOfWord = boundary->next()) { |
125 if (startOfWord) // Ignore first char of previous string | 125 if (startOfWord) // Ignore first char of previous string |
126 result.append(input[startOfWord - 1] == noBreakSpace ? noBreakSpace
: toTitleCase(stringWithPrevious[startOfWord])); | 126 result.append(input[startOfWord - 1] == noBreakSpace ? noBreakSpace
: toTitleCase(stringWithPrevious[startOfWord])); |
127 for (int i = startOfWord + 1; i < endOfWord; i++) | 127 for (int i = startOfWord + 1; i < endOfWord; i++) |
128 result.append(input[i - 1]); | 128 result.append(input[i - 1]); |
129 } | 129 } |
130 | 130 |
131 *string = result.toString(); | 131 *string = result.toString(); |
132 } | 132 } |
133 | 133 |
134 RenderText::RenderText(Node* node, PassRefPtr<StringImpl> str) | 134 RenderText::RenderText(Node* node, PassRefPtr<StringImpl> str) |
(...skipping 1522 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1657 int RenderText::previousOffset(int current) const | 1657 int RenderText::previousOffset(int current) const |
1658 { | 1658 { |
1659 if (isAllASCII() || m_text.is8Bit()) | 1659 if (isAllASCII() || m_text.is8Bit()) |
1660 return current - 1; | 1660 return current - 1; |
1661 | 1661 |
1662 StringImpl* textImpl = m_text.impl(); | 1662 StringImpl* textImpl = m_text.impl(); |
1663 TextBreakIterator* iterator = cursorMovementIterator(textImpl->characters16(
), textImpl->length()); | 1663 TextBreakIterator* iterator = cursorMovementIterator(textImpl->characters16(
), textImpl->length()); |
1664 if (!iterator) | 1664 if (!iterator) |
1665 return current - 1; | 1665 return current - 1; |
1666 | 1666 |
1667 long result = textBreakPreceding(iterator, current); | 1667 long result = iterator->preceding(current); |
1668 if (result == TextBreakDone) | 1668 if (result == TextBreakDone) |
1669 result = current - 1; | 1669 result = current - 1; |
1670 | 1670 |
1671 | 1671 |
1672 return result; | 1672 return result; |
1673 } | 1673 } |
1674 | 1674 |
1675 #if OS(MACOSX) | 1675 #if OS(MACOSX) |
1676 | 1676 |
1677 #define HANGUL_CHOSEONG_START (0x1100) | 1677 #define HANGUL_CHOSEONG_START (0x1100) |
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1813 int RenderText::nextOffset(int current) const | 1813 int RenderText::nextOffset(int current) const |
1814 { | 1814 { |
1815 if (isAllASCII() || m_text.is8Bit()) | 1815 if (isAllASCII() || m_text.is8Bit()) |
1816 return current + 1; | 1816 return current + 1; |
1817 | 1817 |
1818 StringImpl* textImpl = m_text.impl(); | 1818 StringImpl* textImpl = m_text.impl(); |
1819 TextBreakIterator* iterator = cursorMovementIterator(textImpl->characters16(
), textImpl->length()); | 1819 TextBreakIterator* iterator = cursorMovementIterator(textImpl->characters16(
), textImpl->length()); |
1820 if (!iterator) | 1820 if (!iterator) |
1821 return current + 1; | 1821 return current + 1; |
1822 | 1822 |
1823 long result = textBreakFollowing(iterator, current); | 1823 long result = iterator->following(current); |
1824 if (result == TextBreakDone) | 1824 if (result == TextBreakDone) |
1825 result = current + 1; | 1825 result = current + 1; |
1826 | 1826 |
1827 return result; | 1827 return result; |
1828 } | 1828 } |
1829 | 1829 |
1830 bool RenderText::computeCanUseSimpleFontCodePath() const | 1830 bool RenderText::computeCanUseSimpleFontCodePath() const |
1831 { | 1831 { |
1832 if (isAllASCII() || m_text.is8Bit()) | 1832 if (isAllASCII() || m_text.is8Bit()) |
1833 return true; | 1833 return true; |
(...skipping 24 matching lines...) Expand all Loading... |
1858 | 1858 |
1859 SecureTextTimer* secureTextTimer = gSecureTextTimers->get(this); | 1859 SecureTextTimer* secureTextTimer = gSecureTextTimers->get(this); |
1860 if (!secureTextTimer) { | 1860 if (!secureTextTimer) { |
1861 secureTextTimer = new SecureTextTimer(this); | 1861 secureTextTimer = new SecureTextTimer(this); |
1862 gSecureTextTimers->add(this, secureTextTimer); | 1862 gSecureTextTimers->add(this, secureTextTimer); |
1863 } | 1863 } |
1864 secureTextTimer->restartWithNewText(lastTypedCharacterOffset); | 1864 secureTextTimer->restartWithNewText(lastTypedCharacterOffset); |
1865 } | 1865 } |
1866 | 1866 |
1867 } // namespace WebCore | 1867 } // namespace WebCore |
OLD | NEW |