forked from jrywu/DIME
-
Notifications
You must be signed in to change notification settings - Fork 0
/
TableDictionaryEngine.h
57 lines (47 loc) · 2.12 KB
/
TableDictionaryEngine.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
//
//
// Derived from Microsoft Sample IME by Jeremy '13,7,17
//
//
#ifndef TABLEDICTIONARYENGLINE_H
#define TABLEDICTIONARYENGLINE_H
#pragma once
#include "File.h"
#include "BaseStructure.h"
class CDIME;
class CTableDictionaryEngine
{
public:
CTableDictionaryEngine(LCID locale, _In_ CFile *pDictionaryFile, _In_ DICTIONARY_TYPE dictionaryType);
virtual ~CTableDictionaryEngine(){}
// Collect word from phrase string.
// param
// [in] psrgKeyCode - Specified key code pointer
// [out] pasrgWordString - Specified returns pointer of word as CStringRange.
// returns
// none.
VOID CollectWord(_In_ CStringRange *pKeyCode, _Inout_ CDIMEArray<CStringRange> *pWordStrings);
VOID CollectWord(_In_ CStringRange *pKeyCode, _Inout_ CDIMEArray<CCandidateListItem> *pItemList);
VOID CollectWordForWildcard(_In_ CStringRange *psrgKeyCode, _Inout_ CDIMEArray<CCandidateListItem> *pItemList, _In_opt_ CTableDictionaryEngine* wordFreqTableDictionaryEngine = nullptr);
VOID CollectWordFromConvertedString(_In_ CStringRange *pString, _Inout_ CDIMEArray<CCandidateListItem> *pItemList);
VOID CollectWordFromConvertedStringForWildcard(_In_ CStringRange *pString, _Inout_ CDIMEArray<CCandidateListItem> *pItemList);
VOID ParseConfig(IME_MODE imeMode);
VOID SetSearchSection(SEARCH_SECTION searchSection) { _searchSection =searchSection;}
VOID SortListItemByFindKeyCode(_Inout_ CDIMEArray<CCandidateListItem> *pItemList);
VOID SortListItemByWordFrequency(_Inout_ CDIMEArray<CCandidateListItem> *pItemList);
_T_RadicalMap* GetRadicalMap() { return _pRadicalMap;};
DICTIONARY_TYPE GetDictionaryType() { return _dictionaryType;};
private:
CFile* _pDictionaryFile;
LCID _locale;
WCHAR _keywordDelimiter;
CDIME *_pTextService;
SEARCH_SECTION _searchSection;
DICTIONARY_TYPE _dictionaryType;
BOOL _sortedCIN;
_T_RadicalMap* _pRadicalMap;
_T_RadicalIndexMap* _pRadicalIndexMap;
VOID MergeSortByFindKeyCode(_Inout_ CDIMEArray<CCandidateListItem> *pItemList, int leftRange, int rightRange);
VOID MergeSortByWordFrequency(_Inout_ CDIMEArray<CCandidateListItem> *pItemList, int leftRange, int rightRange);
};
#endif