// ParaOpts.cpp : implementation file // #include "stdafx.h" #include "ocrutil.h" #include "ParaOpts.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CParagraphOptions dialog CParagraphOptions::CParagraphOptions(pPARAGRAPHOPTIONS pParagOpts, CWnd* pParent /*=NULL*/) : CDialog(CParagraphOptions::IDD, pParent) { //{{AFX_DATA_INIT(CParagraphOptions) m_nSpaceParagValue = 0; m_nParagIndentValue = 0; //}}AFX_DATA_INIT m_pParagOpts = pParagOpts; } void CParagraphOptions::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CParagraphOptions) DDX_Control(pDX, IDOK, m_btnOK); DDX_Control(pDX, IDC_CMB_SPACE_PARAGRAPH_MODE, m_cmbSpaceParagMode); DDX_Control(pDX, IDC_CMB_PARAGRAPH_INDENT_MODE, m_cmbParagIndentMode); DDX_Control(pDX, IDC_CMB_LINE_SPACING_VALUE, m_cmbLineSpacingValue); DDX_Control(pDX, IDC_CMB_LINE_SPACING_MODE, m_cmbLineSpacingMode); DDX_Control(pDX, IDC_CMB_ALIGNMENT_VALUE, m_cmbAlignValue); DDX_Control(pDX, IDC_CMB_ALIGNMENT_MODE, m_cmbAlignMode); DDX_Text(pDX, IDC_EDIT_SPACE_PARAGRAPH_VALUE, m_nSpaceParagValue); DDX_Text(pDX, IDC_EDIT_PARAGRAPH_INDENT_VALUE, m_nParagIndentValue); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CParagraphOptions, CDialog) //{{AFX_MSG_MAP(CParagraphOptions) ON_CBN_SELCHANGE(IDC_CMB_ALIGNMENT_MODE, OnSelchangeCmbAlignmentMode) ON_CBN_SELCHANGE(IDC_CMB_LINE_SPACING_MODE, OnSelchangeCmbLineSpacingMode) ON_CBN_SELCHANGE(IDC_CMB_PARAGRAPH_INDENT_MODE, OnSelchangeCmbParagraphIndentMode) ON_CBN_SELCHANGE(IDC_CMB_SPACE_PARAGRAPH_MODE, OnSelchangeCmbSpaceParagraphMode) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CParagraphOptions message handlers BOOL CParagraphOptions::OnInitDialog() { CDialog::OnInitDialog(); m_cmbAlignMode.AddString(TEXT("None")); m_cmbAlignMode.AddString(TEXT("Auto")); m_cmbAlignMode.AddString(TEXT("Predefined")); m_cmbAlignMode.SetItemData(0, SEL_NONE); m_cmbAlignMode.SetItemData(1, SEL_AUTO); m_cmbAlignMode.SetItemData(2, SEL_PREDEFINED); m_cmbAlignMode.SetCurSel(m_pParagOpts->SelAlignment); m_cmbAlignValue.AddString(TEXT("Left Alignment")); m_cmbAlignValue.AddString(TEXT("Right Alignment")); m_cmbAlignValue.AddString(TEXT("Centered")); m_cmbAlignValue.AddString(TEXT("Justified")); m_cmbAlignValue.SetItemData(0, ALIGNMENT_LEFTALIGNMENT); m_cmbAlignValue.SetItemData(1, ALIGNMENT_RIGHTALIGNMENT); m_cmbAlignValue.SetItemData(2, ALIGNMENT_CENTERED); m_cmbAlignValue.SetItemData(3, ALIGNMENT_JUSTIFIED); m_cmbAlignValue.SetCurSel(m_pParagOpts->Alignment); m_cmbLineSpacingMode.AddString(TEXT("None")); m_cmbLineSpacingMode.AddString(TEXT("Auto")); m_cmbLineSpacingMode.AddString(TEXT("Predefined")); m_cmbLineSpacingMode.SetItemData(0, SEL_NONE); m_cmbLineSpacingMode.SetItemData(1, SEL_AUTO); m_cmbLineSpacingMode.SetItemData(2, SEL_PREDEFINED); m_cmbLineSpacingMode.SetCurSel(m_pParagOpts->SelLineSpacing); m_cmbLineSpacingValue.AddString(TEXT("Half")); m_cmbLineSpacingValue.AddString(TEXT("One")); m_cmbLineSpacingValue.AddString(TEXT("One/Half")); m_cmbLineSpacingValue.AddString(TEXT("Double")); m_cmbLineSpacingValue.SetItemData(0, LINE_HALF); m_cmbLineSpacingValue.SetItemData(1, LINT_ONE); m_cmbLineSpacingValue.SetItemData(2, LINE_ONEANDHALF); m_cmbLineSpacingValue.SetItemData(3, LINE_DOUBLE); m_cmbLineSpacingValue.SetCurSel(m_pParagOpts->LineSpacing); m_cmbSpaceParagMode.AddString(TEXT("None")); m_cmbSpaceParagMode.AddString(TEXT("Auto")); m_cmbSpaceParagMode.AddString(TEXT("Predefined")); m_cmbSpaceParagMode.SetItemData(0, SEL_NONE); m_cmbSpaceParagMode.SetItemData(1, SEL_AUTO); m_cmbSpaceParagMode.SetItemData(2, SEL_PREDEFINED); m_cmbSpaceParagMode.SetCurSel(m_pParagOpts->SelSpaceBefore); m_cmbParagIndentMode.AddString(TEXT("None")); m_cmbParagIndentMode.AddString(TEXT("Auto")); m_cmbParagIndentMode.AddString(TEXT("Predefined")); m_cmbParagIndentMode.SetItemData(0, SEL_NONE); m_cmbParagIndentMode.SetItemData(1, SEL_AUTO); m_cmbParagIndentMode.SetItemData(2, SEL_PREDEFINED); m_cmbParagIndentMode.SetCurSel(m_pParagOpts->SelParaIndent); SetDlgItemInt(IDC_EDIT_SPACE_PARAGRAPH_VALUE, m_pParagOpts->nSpaceBefore); SetDlgItemInt(IDC_EDIT_PARAGRAPH_INDENT_VALUE, m_pParagOpts->nFirstLineIndent); OnSelchangeCmbAlignmentMode(); OnSelchangeCmbLineSpacingMode(); OnSelchangeCmbParagraphIndentMode(); OnSelchangeCmbSpaceParagraphMode(); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } void CParagraphOptions::OnSelchangeCmbAlignmentMode() { m_cmbAlignValue.EnableWindow(m_cmbAlignMode.GetItemData(m_cmbAlignMode.GetCurSel()) == SEL_PREDEFINED); } void CParagraphOptions::OnSelchangeCmbLineSpacingMode() { m_cmbLineSpacingValue.EnableWindow(m_cmbLineSpacingMode.GetItemData(m_cmbLineSpacingMode.GetCurSel()) == SEL_PREDEFINED); } void CParagraphOptions::OnSelchangeCmbParagraphIndentMode() { L_BOOL bEnable = (m_cmbParagIndentMode.GetItemData(m_cmbParagIndentMode.GetCurSel()) == SEL_PREDEFINED); CWnd * pIndentWnd = GetDlgItem(IDC_EDIT_PARAGRAPH_INDENT_VALUE); pIndentWnd->EnableWindow(bEnable); } void CParagraphOptions::OnSelchangeCmbSpaceParagraphMode() { L_BOOL bEnable = (m_cmbSpaceParagMode.GetItemData(m_cmbSpaceParagMode.GetCurSel()) == SEL_PREDEFINED); CWnd * pSpaceWnd = GetDlgItem(IDC_EDIT_SPACE_PARAGRAPH_VALUE); pSpaceWnd->EnableWindow(bEnable); } void CParagraphOptions::OnOK() { UpdateData(); m_pParagOpts->SelSpaceBefore = (SELECTOR)m_cmbSpaceParagMode.GetItemData(m_cmbSpaceParagMode.GetCurSel()); m_pParagOpts->nSpaceBefore = m_nSpaceParagValue; m_pParagOpts->SelParaIndent = (SELECTOR)m_cmbParagIndentMode.GetItemData(m_cmbParagIndentMode.GetCurSel()); m_pParagOpts->nFirstLineIndent = m_nParagIndentValue; m_pParagOpts->SelLineSpacing = (SELECTOR)m_cmbLineSpacingMode.GetItemData(m_cmbLineSpacingMode.GetCurSel()); m_pParagOpts->LineSpacing = (LINESPACING)m_cmbLineSpacingValue.GetItemData(m_cmbLineSpacingValue.GetCurSel()); m_pParagOpts->SelAlignment = (SELECTOR)m_cmbAlignMode.GetItemData(m_cmbAlignMode.GetCurSel()); m_pParagOpts->Alignment = (ALIGNMENT)m_cmbAlignValue.GetItemData(m_cmbAlignValue.GetCurSel()); CDialog::OnOK(); }