// RecogPage.cpp : implementation file // #include "stdafx.h" #include "ocrutil.h" #include "RecogPage.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CRecognizePage dialog CRecognizePage::CRecognizePage(CString csRDFFileName, L_HDOC hDoc, L_INT nPageCount, CWnd* pParent /*=NULL*/) : CDialog(CRecognizePage::IDD, pParent) { //{{AFX_DATA_INIT(CRecognizePage) m_bUsePageStatus = FALSE; m_nStartPage = 1; m_nEndPage = 1; m_bCorrectionMode = TRUE; m_bEnableSubSystem = TRUE; m_bUseDefaultSpellLang = TRUE; m_csDataFile = csRDFFileName; //}}AFX_DATA_INIT m_nPageCount= nPageCount; m_SpellLang = LANG_ID_ENGLISH; m_hDoc = hDoc; } void CRecognizePage::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CRecognizePage) DDX_Control(pDX, IDC_EDIT_RECOG_DATA_FILE, m_edtFileName); DDX_Control(pDX, IDC_LIST_SPELLLANG, m_LstSpellLang); DDX_Control(pDX, IDOK, m_btnOK); DDX_Control(pDX, IDC_EDIT_END_PAGE, m_edtEndPage); DDX_Control(pDX, IDC_EDIT_START_PAGE, m_edtStartPage); DDX_Check(pDX, IDC_CHK_GET_PAGE_STATUS, m_bUsePageStatus); DDX_Text(pDX, IDC_EDIT_START_PAGE, m_nStartPage); DDX_Text(pDX, IDC_EDIT_END_PAGE, m_nEndPage); DDX_Check(pDX, IDC_CHK_CORRECTIONMODE, m_bCorrectionMode); DDX_Check(pDX, IDC_CHK_SUBSYSTEM, m_bEnableSubSystem); DDX_Check(pDX, IDC_CHK_USE_DEFAULT_SPELLLANG, m_bUseDefaultSpellLang); DDX_Text(pDX, IDC_EDIT_RECOG_DATA_FILE, m_csDataFile); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CRecognizePage, CDialog) //{{AFX_MSG_MAP(CRecognizePage) ON_EN_CHANGE(IDC_EDIT_START_PAGE, OnChangeEditStartPage) ON_EN_CHANGE(IDC_EDIT_END_PAGE, OnChangeEditEndPage) ON_BN_CLICKED(IDC_CHK_USE_DEFAULT_SPELLLANG, OnChkUseDefaultSpellLang) ON_EN_CHANGE(IDC_EDIT_RECOG_DATA_FILE, OnChangeEditRecogDataFile) ON_BN_CLICKED(IDC_BTN_BROWSE_RECOG_DATA_FILE, OnBtnBrowseRecogDataFile) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CRecognizePage message handlers BOOL CRecognizePage::OnInitDialog() { CDialog::OnInitDialog(); CString csText; csText.Format(TEXT("%d"), m_nPageCount); m_edtStartPage.SetWindowText(TEXT("1")); m_edtEndPage.SetWindowText(csText); LANGIDS * pLangs = NULL; L_INT nLangsIds = 0; L_INT nRet = L_DocGetDefaultSpellLanguages(m_hDoc, &pLangs, &nLangsIds); if (nRet != SUCCESS) return FALSE; COCRUtilApp * pTheApp = (COCRUtilApp *)AfxGetApp(); CString csLangName; L_INT nDefultItem = 0; for (L_INT i=0; iGetLanguageName(pLangs[i]); m_LstSpellLang.AddString(csLangName); m_LstSpellLang.SetItemData(i, pLangs[i]); if (pLangs[i] == LANG_ID_ENGLISH) nDefultItem = i; } m_LstSpellLang.SetCurSel(nDefultItem); m_LstSpellLang.EnableWindow(!m_bUseDefaultSpellLang); L_DocFreeLanguages(m_hDoc, &pLangs); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } void CRecognizePage::OnChangeEditStartPage() { CheckOKButton(); } void CRecognizePage::OnChangeEditEndPage() { CheckOKButton(); } void CRecognizePage::CheckOKButton() { CString csStart, csEnd, csFile; L_INT nStartIndex, nEndIndex; L_BOOL bOK; m_edtStartPage.GetWindowText(csStart); m_edtEndPage.GetWindowText(csEnd); m_edtFileName.GetWindowText(csFile); nStartIndex = _ttoi(csStart); nEndIndex = _ttoi(csEnd); bOK = (!csStart.IsEmpty() && !csEnd.IsEmpty() && !csFile.IsEmpty()); if (bOK) { bOK = (nStartIndex <= m_nPageCount && nStartIndex >= 1); if (bOK) bOK = (nEndIndex <= m_nPageCount && nEndIndex >= 1); } m_btnOK.EnableWindow(bOK); } void CRecognizePage::OnChkUseDefaultSpellLang() { UpdateData(); m_LstSpellLang.EnableWindow(!m_bUseDefaultSpellLang); } void CRecognizePage::OnOK() { m_SpellLang = (LANGIDS)m_LstSpellLang.GetItemData(m_LstSpellLang.GetCurSel()); CDialog::OnOK(); } void CRecognizePage::OnChangeEditRecogDataFile() { CheckOKButton(); } void CRecognizePage::OnBtnBrowseRecogDataFile() { CFileDialog FileDlg(FALSE, TEXT("RDF"), NULL, OFN_HIDEREADONLY, TEXT("Recognition Data Files (*.RDF)|*.RDF|")); if (FileDlg.DoModal() == IDOK) m_edtFileName.SetWindowText(FileDlg.GetPathName()); }