Skip to content

Commit 5c86cd5

Browse files
author
Stan Miasnikov
committed
Windows libs/sample code updated
1 parent c9cbc80 commit 5c86cd5

File tree

37 files changed

+161
-29
lines changed

37 files changed

+161
-29
lines changed

WindowsSDK/Dictionaries/Dutch.dct

-856 Bytes
Binary file not shown.
-276 Bytes
Binary file not shown.
3.71 KB
Binary file not shown.

WindowsSDK/Dictionaries/French.dct

-5.92 KB
Binary file not shown.
4.29 KB
Binary file not shown.

WindowsSDK/Dictionaries/MedicalUS.dct

100755100644
File mode changed.
10 Bytes
Binary file not shown.

WindowsSDK/WinRT_CPPLayer/WinRT_CPPLayer/CPPLayer.cpp

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ static INK_DATA_PTR inkData = NULL;
6969
static RECOGNIZER_PTR _recognizerSearch = NULL;
7070
static TCHAR * _searchWord = NULL;
7171

72+
static RECOGNIZER_PTR _num_recognizer = NULL;
7273

7374
#define MIN(a,b) (((a) < (b)) ? (a) : (b))
7475

@@ -153,6 +154,67 @@ extern "C" __declspec(dllexport) const TCHAR* getUserWords()
153154
return AllocString(pParam.c_str());
154155
}
155156

157+
extern "C" __declspec(dllexport) int initNumericRecognizer()
158+
{
159+
if (_num_recognizer != NULL)
160+
{
161+
HWR_FreeRecognizer(_num_recognizer, NULL, NULL, NULL);
162+
_num_recognizer = NULL;
163+
}
164+
int flags = FLAG_SEPLET | FLAG_SINGLEWORDONLY;
165+
_num_recognizer = HWR_InitRecognizer(NULL, NULL, NULL, NULL, LANGUAGE_ENGLISH, &flags);
166+
if (_num_recognizer == NULL)
167+
{
168+
return -1;
169+
}
170+
171+
flags = FLAG_SEPLET | FLAG_ONLYDICT | FLAG_SINGLEWORDONLY;
172+
const TCHAR * characters = L"0123456789";
173+
if (HWR_NewUserDict(_num_recognizer))
174+
{
175+
UCHR pszWord[2];
176+
pszWord[1] = 0;
177+
const TCHAR * numbers = characters;
178+
while (*numbers)
179+
{
180+
pszWord[0] = *numbers++;
181+
HWR_AddUserWordToDict(_num_recognizer, pszWord, FALSE);
182+
}
183+
flags |= FLAG_USERDICT;
184+
}
185+
HWR_SetDefaultShapes(_num_recognizer);
186+
HWR_SetCustomCharset(_num_recognizer, (UCHR *)characters, NULL);
187+
HWR_SetRecognitionMode(_num_recognizer, RECMODE_CUSTOM);
188+
// can also use this instead of 2 lines above: HWR_SetRecognitionMode(_num_recognizer, RECMODE_NUM);
189+
HWR_SetRecognitionFlags(_num_recognizer, flags);
190+
return flags;
191+
}
192+
193+
extern "C" __declspec(dllexport) TCHAR * recognizeNumber(INK_DATA_PTR inkData, int baseline, int size)
194+
{
195+
if (_num_recognizer != NULL)
196+
{
197+
if (!HWR_RecognizeSymbol(_num_recognizer, inkData, baseline, size))
198+
return NULL;
199+
int altCount = HWR_GetResultAlternativeCount(_num_recognizer, 0);
200+
if (altCount > 0)
201+
{
202+
TCHAR * result = new TCHAR[altCount * 2 + 1];
203+
int k = 0;
204+
for (int alt = 0; alt < altCount; alt++)
205+
{
206+
UCHR* number = (UCHR*)HWR_GetResultWord(_num_recognizer, 0, alt);
207+
result[k++] = number[0];
208+
result[k++] = ',';
209+
}
210+
result[k] = 0;
211+
TCHAR * ret = AllocString((TCHAR*)result);
212+
delete[] result;
213+
return ret;
214+
}
215+
}
216+
return NULL;
217+
}
156218
/// <summary>
157219
/// Initialize dictionary. This should be called before recognizing any strokes.
158220
/// </summary>

WindowsSDK/WinRT_CPPLayer/WinRT_CPPLayer/LanguageManager.cpp

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,10 @@ WPLanguage CLanguageManager::getLanguageWPID(int languageID )
106106
case LANGUAGE_DANISH :
107107
language = WPLanguageDanish;
108108
break;
109+
110+
case LANGUAGE_INDONESIAN :
111+
language = WPLanguageIndonesian;
112+
break;
109113

110114
default :
111115
break;
@@ -174,6 +178,11 @@ const char* CLanguageManager::mainDictionaryName()
174178
case WPLanguageEnglishUK :
175179
theLanguage = "EnglishUK.dct";
176180
break;
181+
182+
case WPLanguageIndonesian :
183+
theLanguage = "Indonesian.dct";
184+
break;
185+
177186
default :
178187
break;
179188
}
@@ -229,6 +238,11 @@ int CLanguageManager::getLanguageID()
229238
case WPLanguageDanish :
230239
language = LANGUAGE_DANISH;
231240
break;
241+
242+
case WPLanguageIndonesian:
243+
language = LANGUAGE_INDONESIAN;
244+
break;
245+
232246
default :
233247
break;
234248
}
@@ -343,6 +357,15 @@ const char * CLanguageManager::userFileNameOfType( int type )
343357
name = "WritePad_UserDAN.dct";
344358
break;
345359

360+
case WPLanguageIndonesian:
361+
if (type == USERDATA_AUTOCORRECTOR)
362+
name = "WritePad_CorrIND.cwl";
363+
else if (type == USERDATA_LEARNER)
364+
name = "WritePad_StatIND.lrn";
365+
else
366+
name = "WritePad_UserIND.dct";
367+
break;
368+
346369
case WPLanguageMedicalUK :
347370
case WPLanguageEnglishUK :
348371
if ( type == USERDATA_AUTOCORRECTOR )

WindowsSDK/WinRT_CPPLayer/WinRT_CPPLayer/LanguageManager.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ typedef enum
5757
WPLanguageFinnish,
5858
WPLanguageMedicalUS,
5959
WPLanguageMedicalUK,
60+
WPLanguageIndonesian
6061
} WPLanguage;
6162

6263
#define USERDATA_DICTIONARY 0x0004

0 commit comments

Comments
 (0)