tagging release
[dasher.git] / Src / DasherCore / AlphabetManagerFactory.h
blob726b674f441d9eee3fa9da625d785f2eb3700a7f
1 #ifndef __alphabetmanagerfactory_h__
2 #define __alphabetmanagerfactory_h__
4 #include "AlphabetManager.h"
5 #include "NodeManagerFactory.h"
6 #include "LanguageModelling/LanguageModel.h"
8 class CNodeCreationManager;
10 namespace Dasher {
12 class CDasherInterfaceBase;
14 /// \ingroup Model
15 /// @{
16 class CAlphabetManagerFactory : public CNodeManagerFactory {
17 public:
18 class CTrainer {
19 public:
20 CTrainer(CLanguageModel *pLanguageModel);
22 void Train(const std::vector < symbol > &vSymbols);
24 ~CTrainer();
26 private:
27 CLanguageModel *m_pLanguageModel;
28 CLanguageModel::Context m_Context;
31 CAlphabetManagerFactory(CDasherInterfaceBase *pInterface, CEventHandler *pEventHandler, CSettingsStore *pSettingsStore, Dasher::CAlphIO *pAlphIO, CNodeCreationManager *pNCManager, bool bGameMode, const std::string &strGameModeText);
33 // CAlphabetManagerFactory( CDasherModel *pModel, CLanguageModel *pLanguageModel, bool bGameMode, const std::string &strGameModeText );
34 ~CAlphabetManagerFactory();
36 virtual CDasherNode *GetRoot(CDasherNode *pParent, int iLower, int iUpper, void *pUserData);
38 ///
39 /// Functions for backwards compatibility - hopefully these will
40 /// be eliminated to a great extent sometime in the future
41 ///
43 CLanguageModel *GetLanguageModel() {
44 return m_pLanguageModel;
47 CLanguageModel::Context GetLearnContext() {
48 return m_iLearnContext;
51 CAlphabet *GetAlphabet() {
52 return m_pAlphabet;
55 int GetConversionID() {
56 return m_iConversionID;
59 CTrainer *GetTrainer();
61 private:
62 CAlphabetManager *m_pAlphabetManager;
64 CLanguageModel *m_pLanguageModel; // pointer to the language model
65 CLanguageModel::Context m_iLearnContext; // Used to add data to model as it is entered
66 CAlphabet *m_pAlphabet; // pointer to the alphabet
68 int m_iConversionID;
70 /// @}
73 #endif