// DocOpts.cpp : implementation file // #include "stdafx.h" #include "ocrutil.h" #include "DocOpts.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CDocOptions dialog CDocOptions::CDocOptions(pDOCUMENTOPTIONS pDocOpts, CWnd* pParent /*=NULL*/) : CDialog(CDocOptions::IDD, pParent) { //{{AFX_DATA_INIT(CDocOptions) m_bEnablePageBreak = FALSE; m_bEnableTextBox = FALSE; m_nMarginHeight = 0; m_nMarginLeft = 0; m_nMarginTop = 0; m_nMarginWidth = 0; //}}AFX_DATA_INIT m_pDocOpts = pDocOpts; } void CDocOptions::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CDocOptions) DDX_Control(pDX, IDOK, m_btnOK); DDX_Control(pDX, IDC_CMB_TABLE_METHOD, m_cmbTableMethod); DDX_Control(pDX, IDC_CMB_COLOR_RESULT, m_cmbColorRes); DDX_Control(pDX, IDC_CMB_PAPER_ORIENT, m_cmbPaperOrient); DDX_Control(pDX, IDC_CMB_PAPER_TYPE, m_cmbPaperType); DDX_Control(pDX, IDC_CMB_PAPER_SIZE, m_cmbPaperSize); DDX_Control(pDX, IDC_CMB_LANGUAGE_RESULT, m_cmbLangRes); DDX_Control(pDX, IDC_CMB_LANGUAGE_MODE, m_cmbLangMode); DDX_Control(pDX, IDC_CMB_MARGIN_MODE, m_cmbMarginMode); DDX_Check(pDX, IDC_CHK_ENABLE_PAGE_BREAK, m_bEnablePageBreak); DDX_Check(pDX, IDC_CHK_ENABLE_TXT_BOX, m_bEnableTextBox); DDX_Text(pDX, IDC_EDIT_MARGIN_HEIGHT, m_nMarginHeight); DDX_Text(pDX, IDC_EDIT_MARGIN_LEFT, m_nMarginLeft); DDX_Text(pDX, IDC_EDIT_MARGIN_TOP, m_nMarginTop); DDX_Text(pDX, IDC_EDIT_MARGIN_WIDTH, m_nMarginWidth); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CDocOptions, CDialog) //{{AFX_MSG_MAP(CDocOptions) ON_EN_CHANGE(IDC_EDIT_MARGIN_LEFT, OnChangeEditMarginLeft) ON_EN_CHANGE(IDC_EDIT_MARGIN_TOP, OnChangeEditMarginTop) ON_EN_CHANGE(IDC_EDIT_MARGIN_WIDTH, OnChangeEditMarginWidth) ON_EN_CHANGE(IDC_EDIT_MARGIN_HEIGHT, OnChangeEditMarginHeight) ON_CBN_SELCHANGE(IDC_CMB_LANGUAGE_MODE, OnSelchangeCmbLanguageMode) ON_CBN_SELCHANGE(IDC_CMB_MARGIN_MODE, OnSelchangeCmbMarginMode) ON_CBN_SELCHANGE(IDC_CMB_PAPER_SIZE, OnSelchangeCmbPaperSize) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CDocOptions message handlers BOOL CDocOptions::OnInitDialog() { CDialog::OnInitDialog(); m_cmbPaperSize.AddString(TEXT("None")); m_cmbPaperSize.AddString(TEXT("Auto")); m_cmbPaperSize.AddString(TEXT("Predefined")); m_cmbPaperSize.SetItemData(0, SEL_NONE); m_cmbPaperSize.SetItemData(1, SEL_AUTO); m_cmbPaperSize.SetItemData(2, SEL_PREDEFINED); m_cmbPaperSize.SetCurSel(m_pDocOpts->PaperSize); m_cmbPaperType.AddString(TEXT("A4")); m_cmbPaperType.AddString(TEXT("A0")); m_cmbPaperType.AddString(TEXT("A1")); m_cmbPaperType.AddString(TEXT("A2")); m_cmbPaperType.AddString(TEXT("A3")); m_cmbPaperType.AddString(TEXT("A5")); m_cmbPaperType.AddString(TEXT("A6")); m_cmbPaperType.AddString(TEXT("A7")); m_cmbPaperType.AddString(TEXT("B0")); m_cmbPaperType.AddString(TEXT("B1")); m_cmbPaperType.AddString(TEXT("B2")); m_cmbPaperType.AddString(TEXT("B3")); m_cmbPaperType.AddString(TEXT("B4")); m_cmbPaperType.AddString(TEXT("B5")); m_cmbPaperType.AddString(TEXT("B6")); m_cmbPaperType.AddString(TEXT("B7")); m_cmbPaperType.AddString(TEXT("Letter")); m_cmbPaperType.AddString(TEXT("Legal")); m_cmbPaperType.AddString(TEXT("Executive")); m_cmbPaperType.AddString(TEXT("From_image max")); m_cmbPaperType.SetItemData(0, PAPER_TYPE_A4); m_cmbPaperType.SetItemData(1, PAPER_TYPE_A0); m_cmbPaperType.SetItemData(2, PAPER_TYPE_A1); m_cmbPaperType.SetItemData(3, PAPER_TYPE_A2); m_cmbPaperType.SetItemData(4, PAPER_TYPE_A3); m_cmbPaperType.SetItemData(5, PAPER_TYPE_A5); m_cmbPaperType.SetItemData(6, PAPER_TYPE_A6); m_cmbPaperType.SetItemData(7, PAPER_TYPE_A7); m_cmbPaperType.SetItemData(8, PAPER_TYPE_B0); m_cmbPaperType.SetItemData(9, PAPER_TYPE_B1); m_cmbPaperType.SetItemData(10, PAPER_TYPE_B2); m_cmbPaperType.SetItemData(11, PAPER_TYPE_B3); m_cmbPaperType.SetItemData(12, PAPER_TYPE_B4); m_cmbPaperType.SetItemData(13, PAPER_TYPE_B5); m_cmbPaperType.SetItemData(14, PAPER_TYPE_B6); m_cmbPaperType.SetItemData(15, PAPER_TYPE_B7); m_cmbPaperType.SetItemData(16, PAPER_TYPE_LETTER); m_cmbPaperType.SetItemData(17, PAPER_TYPE_LEGAL); m_cmbPaperType.SetItemData(18, PAPER_TYPE_EXECUTIVE); m_cmbPaperType.SetItemData(19, PAPER_TYPE_FROMIMAGEMAX); m_cmbPaperType.SetCurSel(m_pDocOpts->PaperType); m_cmbPaperOrient.AddString(TEXT("Portrait")); m_cmbPaperOrient.AddString(TEXT("Landscape")); m_cmbPaperOrient.SetItemData(0, ORIENT_PORTRAIT); m_cmbPaperOrient.SetItemData(1, ORIENT_LANDSCAPE); m_cmbPaperOrient.SetCurSel(m_pDocOpts->PaperOrientation); m_cmbLangMode.AddString(TEXT("None")); m_cmbLangMode.AddString(TEXT("Auto")); m_cmbLangMode.AddString(TEXT("Predefined")); m_cmbLangMode.SetItemData(0, SEL_NONE); m_cmbLangMode.SetItemData(1, SEL_AUTO); m_cmbLangMode.SetItemData(2, SEL_PREDEFINED); m_cmbLangMode.SetCurSel(m_pDocOpts->Language); m_cmbLangRes.AddString(TEXT("No Language")); m_cmbLangRes.AddString(TEXT("Albanian")); m_cmbLangRes.AddString(TEXT("French")); m_cmbLangRes.AddString(TEXT("French Belgian")); m_cmbLangRes.AddString(TEXT("Norwegian Nynorsk")); m_cmbLangRes.AddString(TEXT("Polish")); m_cmbLangRes.AddString(TEXT("Bahasa")); m_cmbLangRes.AddString(TEXT("Catalan")); m_cmbLangRes.AddString(TEXT("Croato Serbian Latin")); m_cmbLangRes.AddString(TEXT("Czech")); m_cmbLangRes.AddString(TEXT("Danish")); m_cmbLangRes.AddString(TEXT("Dutch")); m_cmbLangRes.AddString(TEXT("Dutch Belgian")); m_cmbLangRes.AddString(TEXT("English Australian")); m_cmbLangRes.AddString(TEXT("English UK")); m_cmbLangRes.AddString(TEXT("English US")); m_cmbLangRes.AddString(TEXT("Finnish")); m_cmbLangRes.AddString(TEXT("French Canadian")); m_cmbLangRes.AddString(TEXT("French Swiss")); m_cmbLangRes.AddString(TEXT("German")); m_cmbLangRes.AddString(TEXT("German Swiss")); m_cmbLangRes.AddString(TEXT("Greek")); m_cmbLangRes.AddString(TEXT("Hungarian")); m_cmbLangRes.AddString(TEXT("Icelandic")); m_cmbLangRes.AddString(TEXT("Italian")); m_cmbLangRes.AddString(TEXT("Italian Swiss")); m_cmbLangRes.AddString(TEXT("Norwegian")); m_cmbLangRes.AddString(TEXT("Portuguese Brazilian")); m_cmbLangRes.AddString(TEXT("Portuguese")); m_cmbLangRes.AddString(TEXT("Rhaeto Romanic")); m_cmbLangRes.AddString(TEXT("Romanian")); m_cmbLangRes.AddString(TEXT("Slovak")); m_cmbLangRes.AddString(TEXT("Spanish Castilian")); m_cmbLangRes.AddString(TEXT("Spanish Mexican")); m_cmbLangRes.AddString(TEXT("Swedish")); m_cmbLangRes.AddString(TEXT("Turkish")); m_cmbLangRes.AddString(TEXT("Serbo Croatian Cyrillic")); m_cmbLangRes.AddString(TEXT("Bulgarian")); m_cmbLangRes.AddString(TEXT("Russian")); m_cmbLangRes.SetItemData(0, LANG_OUT_NO_LANGUAGE); m_cmbLangRes.SetItemData(1, LANG_OUT_ALBANIAN); m_cmbLangRes.SetItemData(2, LANG_OUT_FRENCH); m_cmbLangRes.SetItemData(3, LANG_OUT_FRENCH_BELGIAN); m_cmbLangRes.SetItemData(4, LANG_OUT_NORWEGIAN_NYNORSK); m_cmbLangRes.SetItemData(5, LANG_OUT_POLISH); m_cmbLangRes.SetItemData(6, LANG_OUT_BAHASA); m_cmbLangRes.SetItemData(7, LANG_OUT_CATALAN); m_cmbLangRes.SetItemData(8, LANG_OUT_CROATO_SERBIAN_LATIN); m_cmbLangRes.SetItemData(9, LANG_OUT_CZECH); m_cmbLangRes.SetItemData(10, LANG_OUT_DANISH); m_cmbLangRes.SetItemData(11, LANG_OUT_DUTCH); m_cmbLangRes.SetItemData(12, LANG_OUT_DUTCH_BELGIAN); m_cmbLangRes.SetItemData(13, LANG_OUT_ENGLISH_AUSTRALIAN); m_cmbLangRes.SetItemData(14, LANG_OUT_ENGLISH_UK); m_cmbLangRes.SetItemData(15, LANG_OUT_ENGLISH_US); m_cmbLangRes.SetItemData(16, LANG_OUT_FINNISH); m_cmbLangRes.SetItemData(17, LANG_OUT_FRENCH_CANADIAN); m_cmbLangRes.SetItemData(18, LANG_OUT_FRENCH_SWISS); m_cmbLangRes.SetItemData(19, LANG_OUT_GERMAN); m_cmbLangRes.SetItemData(20, LANG_OUT_GERMAN_SWISS); m_cmbLangRes.SetItemData(21, LANG_OUT_GREEK); m_cmbLangRes.SetItemData(22, LANG_OUT_HUNGARIAN); m_cmbLangRes.SetItemData(23, LANG_OUT_ICELANDIC); m_cmbLangRes.SetItemData(24, LANG_OUT_ITALIAN); m_cmbLangRes.SetItemData(25, LANG_OUT_ITALIAN_SWISS); m_cmbLangRes.SetItemData(26, LANG_OUT_NORWEGIAN); m_cmbLangRes.SetItemData(27, LANG_OUT_PORTUGUESE_BRAZILIAN); m_cmbLangRes.SetItemData(28, LANG_OUT_PORTUGUESE); m_cmbLangRes.SetItemData(29, LANG_OUT_RHAETO_ROMANIC); m_cmbLangRes.SetItemData(30, LANG_OUT_ROMANIAN); m_cmbLangRes.SetItemData(31, LANG_OUT_SLOVAK); m_cmbLangRes.SetItemData(32, LANG_OUT_SPANISH_CASTILIAN); m_cmbLangRes.SetItemData(33, LANG_OUT_SPANISH_MEXICAN); m_cmbLangRes.SetItemData(34, LANG_OUT_SWEDISH); m_cmbLangRes.SetItemData(35, LANG_OUT_TURKISH); m_cmbLangRes.SetItemData(36, LANG_OUT_SERBO_CROATIAN_CYRILLIC); m_cmbLangRes.SetItemData(37, LANG_OUT_BULGARIAN); m_cmbLangRes.SetItemData(38, LANG_OUT_RUSSIAN); m_cmbLangRes.SetCurSel(m_pDocOpts->ResLang); m_cmbColorRes.AddString(TEXT("NONEGR")); m_cmbColorRes.AddString(TEXT("BW")); m_cmbColorRes.AddString(TEXT("Gray")); m_cmbColorRes.AddString(TEXT("True Color")); m_cmbColorRes.AddString(TEXT("Original")); m_cmbColorRes.SetItemData(0, COLOR_NONEGR); m_cmbColorRes.SetItemData(1, COLOR_BW); m_cmbColorRes.SetItemData(2, COLOR_GRAY); m_cmbColorRes.SetItemData(3, COLOR_TRUECOLOR); m_cmbColorRes.SetItemData(4, COLOR_ORIGINAL); m_cmbColorRes.SetCurSel(m_pDocOpts->Color); m_cmbMarginMode.AddString(TEXT("None")); m_cmbMarginMode.AddString(TEXT("Auto")); m_cmbMarginMode.AddString(TEXT("Predefined")); m_cmbMarginMode.SetItemData(0, SEL_NONE); m_cmbMarginMode.SetItemData(1, SEL_AUTO); m_cmbMarginMode.SetItemData(2, SEL_PREDEFINED); m_cmbMarginMode.SetCurSel(m_pDocOpts->Margins); m_cmbTableMethod.AddString(TEXT("Use Tabs")); m_cmbTableMethod.AddString(TEXT("Use Cells")); m_cmbTableMethod.SetItemData(0, TABLE_METHOD_USETABS); m_cmbTableMethod.SetItemData(1, TABLE_METHOD_USECELLS); m_cmbTableMethod.SetCurSel(m_pDocOpts->TableMethod); SetDlgItemInt(IDC_EDIT_MARGIN_LEFT, m_pDocOpts->rcMargin.left); SetDlgItemInt(IDC_EDIT_MARGIN_TOP, m_pDocOpts->rcMargin.top); SetDlgItemInt(IDC_EDIT_MARGIN_WIDTH, m_pDocOpts->rcMargin.right - m_pDocOpts->rcMargin.left); SetDlgItemInt(IDC_EDIT_MARGIN_HEIGHT, m_pDocOpts->rcMargin.bottom - m_pDocOpts->rcMargin.top); CheckDlgButton(IDC_CHK_ENABLE_TXT_BOX, m_pDocOpts->bEnableTextInBoxes); CheckDlgButton(IDC_CHK_ENABLE_PAGE_BREAK, m_pDocOpts->bEnablePageBreaks); OnSelchangeCmbLanguageMode(); OnSelchangeCmbMarginMode(); OnSelchangeCmbPaperSize(); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } void CDocOptions::OnChangeEditMarginLeft() { CheckOKButton(); } void CDocOptions::OnChangeEditMarginTop() { CheckOKButton(); } void CDocOptions::OnChangeEditMarginWidth() { CheckOKButton(); } void CDocOptions::OnChangeEditMarginHeight() { CheckOKButton(); } void CDocOptions::CheckOKButton() { CString csMarginLeft, csMarginTop, csMarginWidth, csMarginHeight; GetDlgItemText(IDC_EDIT_MARGIN_LEFT, csMarginLeft); GetDlgItemText(IDC_EDIT_MARGIN_TOP, csMarginTop); GetDlgItemText(IDC_EDIT_MARGIN_WIDTH, csMarginWidth); GetDlgItemText(IDC_EDIT_MARGIN_HEIGHT, csMarginHeight); m_btnOK.EnableWindow(!csMarginLeft.IsEmpty() && !csMarginTop.IsEmpty() && !csMarginWidth.IsEmpty() && !csMarginHeight.IsEmpty()); } void CDocOptions::OnSelchangeCmbLanguageMode() { SELECTOR LangMode = (SELECTOR)m_cmbLangMode.GetItemData(m_cmbLangMode.GetCurSel()); m_cmbLangRes.EnableWindow(LangMode == SEL_PREDEFINED); } void CDocOptions::OnSelchangeCmbMarginMode() { L_BOOL bEnable = (m_cmbMarginMode.GetItemData(m_cmbMarginMode.GetCurSel()) == SEL_PREDEFINED); CWnd * pMarginWnd = GetDlgItem(IDC_EDIT_MARGIN_LEFT); pMarginWnd->EnableWindow(bEnable); pMarginWnd = GetDlgItem(IDC_EDIT_MARGIN_TOP); pMarginWnd->EnableWindow(bEnable); pMarginWnd = GetDlgItem(IDC_EDIT_MARGIN_WIDTH); pMarginWnd->EnableWindow(bEnable); pMarginWnd = GetDlgItem(IDC_EDIT_MARGIN_HEIGHT); pMarginWnd->EnableWindow(bEnable); if (bEnable) CheckOKButton(); else m_btnOK.EnableWindow(TRUE); } void CDocOptions::OnSelchangeCmbPaperSize() { SELECTOR PaperMode = (SELECTOR)m_cmbPaperSize.GetItemData(m_cmbPaperSize.GetCurSel()); m_cmbPaperType.EnableWindow(PaperMode == SEL_PREDEFINED); m_cmbPaperOrient.EnableWindow(PaperMode == SEL_PREDEFINED); } void CDocOptions::OnOK() { UpdateData(); m_pDocOpts->PaperSize = (SELECTOR)m_cmbPaperSize.GetItemData(m_cmbPaperSize.GetCurSel()); m_pDocOpts->PaperType = (PAPERTYPE)m_cmbPaperType.GetItemData(m_cmbPaperType.GetCurSel()); m_pDocOpts->PaperOrientation = (PAPERORIENTATION)m_cmbPaperOrient.GetItemData(m_cmbPaperOrient.GetCurSel()); m_pDocOpts->Language = (SELECTOR)m_cmbLangMode.GetItemData(m_cmbLangMode.GetCurSel()); m_pDocOpts->ResLang = (LANGUAGE_RESULT)m_cmbLangRes.GetItemData(m_cmbLangRes.GetCurSel()); m_pDocOpts->Color = (COLOR_RESULT)m_cmbColorRes.GetItemData(m_cmbColorRes.GetCurSel()); m_pDocOpts->bEnableTextInBoxes = m_bEnableTextBox; m_pDocOpts->bEnablePageBreaks = m_bEnablePageBreak; m_pDocOpts->TableMethod = (TABLEMETHOD)m_cmbTableMethod.GetItemData(m_cmbTableMethod.GetCurSel()); m_pDocOpts->Margins = (SELECTOR)m_cmbMarginMode.GetItemData(m_cmbMarginMode.GetCurSel()); m_pDocOpts->rcMargin.left = m_nMarginLeft; m_pDocOpts->rcMargin.top = m_nMarginTop; m_pDocOpts->rcMargin.right = m_nMarginWidth + m_nMarginLeft; m_pDocOpts->rcMargin.bottom = m_nMarginHeight + m_nMarginTop; CDialog::OnOK(); }