Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(112)

Side by Side Diff: chrome/browser/spellcheck_worditerator.h

Issue 14408: Port the spell checker to posix. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 12 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome/browser/spellcheck_unittest.cc ('k') | chrome/browser/spellcheck_worditerator.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2008 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 #ifndef CHROME_BROWSER_SPELLCHECK_WORDITERATOR_H__ 5 #ifndef CHROME_BROWSER_SPELLCHECK_WORDITERATOR_H__
6 #define CHROME_BROWSER_SPELLCHECK_WORDITERATOR_H__ 6 #define CHROME_BROWSER_SPELLCHECK_WORDITERATOR_H__
7 7
8 #include <map> 8 #include <map>
9 #include <string> 9 #include <string>
10 10
11 #include "base/basictypes.h" 11 #include "base/basictypes.h"
12 #include "base/string16.h"
12 13
13 #include "unicode/uscript.h" 14 #include "unicode/uscript.h"
14 15
15 // A class which handles character attributes dependent on a spellchecker and 16 // A class which handles character attributes dependent on a spellchecker and
16 // its dictionary. 17 // its dictionary.
17 // This class is used by the SpellcheckWordIterator class to determine whether 18 // This class is used by the SpellcheckWordIterator class to determine whether
18 // or not a character is one used by the spellchecker and its dictinary. 19 // or not a character is one used by the spellchecker and its dictinary.
19 class SpellcheckCharAttribute { 20 class SpellcheckCharAttribute {
20 public: 21 public:
21 SpellcheckCharAttribute(); 22 SpellcheckCharAttribute();
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
86 public: 87 public:
87 SpellcheckWordIterator(); 88 SpellcheckWordIterator();
88 89
89 ~SpellcheckWordIterator(); 90 ~SpellcheckWordIterator();
90 91
91 // Initializes a word-iterator object. 92 // Initializes a word-iterator object.
92 // Parameters 93 // Parameters
93 // * attribute [in] (const SpellcheckCharAttribute*) 94 // * attribute [in] (const SpellcheckCharAttribute*)
94 // Represents a set of character attributes used for filtering out 95 // Represents a set of character attributes used for filtering out
95 // non-word characters. 96 // non-word characters.
96 // * word [in] (const wchar_t*) 97 // * word [in] (const char16*)
97 // Represents a string from which this object extracts words. 98 // Represents a string from which this object extracts words.
98 // (This string does not have to be NUL-terminated.) 99 // (This string does not have to be NUL-terminated.)
99 // * length [in] (size_t) 100 // * length [in] (size_t)
100 // Represents the length of the given string, in UTF-16 characters. 101 // Represents the length of the given string, in UTF-16 characters.
101 // This value should not include terminating NUL characters. 102 // This value should not include terminating NUL characters.
102 // * allow_contraction [in] (bool) 103 // * allow_contraction [in] (bool)
103 // Represents a flag to control whether or not this object should split a 104 // Represents a flag to control whether or not this object should split a
104 // possible contraction (e.g. "isn't", "in'n'out", etc.) 105 // possible contraction (e.g. "isn't", "in'n'out", etc.)
105 // Return values 106 // Return values
106 // * true 107 // * true
107 // This word-iterator object is initialized successfully. 108 // This word-iterator object is initialized successfully.
108 // * false 109 // * false
109 // An error occured while initializing this object. 110 // An error occured while initializing this object.
110 void Initialize(const SpellcheckCharAttribute* attribute, 111 void Initialize(const SpellcheckCharAttribute* attribute,
111 const wchar_t* word, 112 const char16* word,
112 size_t length, 113 size_t length,
113 bool allow_contraction); 114 bool allow_contraction);
114 115
115 // Retrieves a word (or a contraction). 116 // Retrieves a word (or a contraction).
116 // Parameters 117 // Parameters
117 // * word_string [out] (std::wstring*) 118 // * word_string [out] (string16*)
118 // Represents a word (or a contraction) to be checked its spelling. 119 // Represents a word (or a contraction) to be checked its spelling.
119 // This |word_string| has been already normalized to its canonical form 120 // This |word_string| has been already normalized to its canonical form
120 // (i.e. decomposed ligatures, replaced full-width latin characters to 121 // (i.e. decomposed ligatures, replaced full-width latin characters to
121 // its ASCII alternatives, etc.) so that a SpellChecker object can check 122 // its ASCII alternatives, etc.) so that a SpellChecker object can check
122 // its spelling without any additional operations. 123 // its spelling without any additional operations.
123 // On the other hand, a substring of the input string 124 // On the other hand, a substring of the input string
124 // std::wstring str(&word[word_start], word_length); 125 // string16 str(&word[word_start], word_length);
125 // represents the non-normalized version of this extracted word. 126 // represents the non-normalized version of this extracted word.
126 // * word_start [out] (int*) 127 // * word_start [out] (int*)
127 // Represents the offset of this word from the beginning of the input 128 // Represents the offset of this word from the beginning of the input
128 // string, in UTF-16 characters. 129 // string, in UTF-16 characters.
129 // * word_length [out] (int*) 130 // * word_length [out] (int*)
130 // Represents the length of an extracted word before normalization, in 131 // Represents the length of an extracted word before normalization, in
131 // UTF-16 characters. 132 // UTF-16 characters.
132 // When the input string contains ligatures, this value may not be equal 133 // When the input string contains ligatures, this value may not be equal
133 // to the length of the |word_string|. 134 // to the length of the |word_string|.
134 // Return values 135 // Return values
135 // * true 136 // * true
136 // Found a word (or a contraction) to be checked its spelling. 137 // Found a word (or a contraction) to be checked its spelling.
137 // * false 138 // * false
138 // Not found any more words or contractions to be checked their spellings. 139 // Not found any more words or contractions to be checked their spellings.
139 bool GetNextWord(std::wstring* word_string, 140 bool GetNextWord(string16* word_string,
140 int* word_start, 141 int* word_start,
141 int* word_length); 142 int* word_length);
142 143
143 private: 144 private:
144 // Retrieves a segment consisting of word characters (and contraction 145 // Retrieves a segment consisting of word characters (and contraction
145 // characters if the |allow_contraction| value is true). 146 // characters if the |allow_contraction| value is true).
146 void GetSegment(int* segment_start, 147 void GetSegment(int* segment_start,
147 int* segment_end); 148 int* segment_end);
148 149
149 // Discards non-word characters at the beginning and the end of the given 150 // Discards non-word characters at the beginning and the end of the given
150 // segment. 151 // segment.
151 void TrimSegment(int segment_start, 152 void TrimSegment(int segment_start,
152 int segment_end, 153 int segment_end,
153 int* word_start, 154 int* word_start,
154 int* word_length) const; 155 int* word_length) const;
155 156
156 // Normalizes the given segment of the |word_| variable and write its 157 // Normalizes the given segment of the |word_| variable and write its
157 // canonical form to the |output_string|. 158 // canonical form to the |output_string|.
158 bool Normalize(int input_start, 159 bool Normalize(int input_start,
159 int input_length, 160 int input_length,
160 std::wstring* output_string) const; 161 string16* output_string) const;
161 162
162 private: 163 private:
163 // The pointer to the input string from which we are extracting words. 164 // The pointer to the input string from which we are extracting words.
164 const wchar_t* word_; 165 const char16* word_;
165 166
166 // The length of the original string. 167 // The length of the original string.
167 int length_; 168 int length_;
168 169
169 // The current position in the original string. 170 // The current position in the original string.
170 int position_; 171 int position_;
171 172
172 // The flag to control whether or not this object should extract possible 173 // The flag to control whether or not this object should extract possible
173 // contractions. 174 // contractions.
174 bool allow_contraction_; 175 bool allow_contraction_;
175 176
176 // The character attributes used for filtering out non-word characters. 177 // The character attributes used for filtering out non-word characters.
177 const SpellcheckCharAttribute* attribute_; 178 const SpellcheckCharAttribute* attribute_;
178 179
179 DISALLOW_EVIL_CONSTRUCTORS(SpellcheckWordIterator); 180 DISALLOW_EVIL_CONSTRUCTORS(SpellcheckWordIterator);
180 }; 181 };
181 182
182 #endif // CHROME_BROWSER_SPELLCHECK_WORDITERATOR_H__ 183 #endif // CHROME_BROWSER_SPELLCHECK_WORDITERATOR_H__
183 184
OLDNEW
« no previous file with comments | « chrome/browser/spellcheck_unittest.cc ('k') | chrome/browser/spellcheck_worditerator.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698