163 { |
163 { |
164 //not implemented |
164 //not implemented |
165 return -1; |
165 return -1; |
166 } |
166 } |
167 |
167 |
|
168 static WordBreakIteratorSymbian *wordIterator = 0; |
|
169 static CharBreakIteratorSymbian *charIterator = 0; |
|
170 static LineBreakIteratorSymbian *lineIterator = 0; |
|
171 struct cleanupIterators { |
|
172 ~cleanupIterators() { |
|
173 delete wordIterator; |
|
174 wordIterator = NULL; |
|
175 delete charIterator; |
|
176 charIterator = NULL; |
|
177 delete lineIterator; |
|
178 lineIterator = NULL; |
|
179 } |
|
180 }; |
|
181 static cleanupIterators deleteBreakIterator; |
168 |
182 |
169 TextBreakIterator* wordBreakIterator(const UChar* string, int length) |
183 TextBreakIterator* wordBreakIterator(const UChar* string, int length) |
170 { |
184 { |
171 static WordBreakIteratorSymbian *iterator = 0; |
185 if (!wordIterator) |
172 if (!iterator) |
186 wordIterator = new WordBreakIteratorSymbian; |
173 iterator = new WordBreakIteratorSymbian; |
187 |
174 |
188 wordIterator->string = string; |
175 iterator->string = string; |
189 wordIterator->length = length; |
176 iterator->length = length; |
190 wordIterator->currentPos = 0; |
177 iterator->currentPos = 0; |
191 |
178 |
192 return wordIterator; |
179 return iterator; |
|
180 } |
193 } |
181 |
194 |
182 TextBreakIterator* characterBreakIterator(const UChar* string, int length) |
195 TextBreakIterator* characterBreakIterator(const UChar* string, int length) |
183 { |
196 { |
184 static CharBreakIteratorSymbian *iterator = 0; |
197 if (!charIterator) |
185 if (!iterator) |
198 charIterator = new CharBreakIteratorSymbian; |
186 iterator = new CharBreakIteratorSymbian; |
199 |
187 |
200 charIterator->string = string; |
188 iterator->string = string; |
201 charIterator->length = length; |
189 iterator->length = length; |
202 charIterator->currentPos = 0; |
190 iterator->currentPos = 0; |
203 |
191 |
204 return charIterator; |
192 return iterator; |
|
193 } |
205 } |
194 |
206 |
195 TextBreakIterator* lineBreakIterator(const UChar* string, int length) |
207 TextBreakIterator* lineBreakIterator(const UChar* string, int length) |
196 { |
208 { |
197 static LineBreakIteratorSymbian *iterator = 0; |
209 if (!lineIterator) |
198 if (!iterator) |
210 lineIterator = new LineBreakIteratorSymbian; |
199 iterator = new LineBreakIteratorSymbian; |
211 |
200 |
212 lineIterator->string = string; |
201 iterator->string = string; |
213 lineIterator->length = length; |
202 iterator->length = length; |
214 lineIterator->currentPos = 0; |
203 iterator->currentPos = 0; |
215 |
204 |
216 return lineIterator; |
205 return iterator; |
|
206 } |
217 } |
207 |
218 |
208 TextBreakIterator* sentenceBreakIterator(const UChar*, int) |
219 TextBreakIterator* sentenceBreakIterator(const UChar*, int) |
209 { |
220 { |
210 // not yet implemented |
221 // not yet implemented |