// ParagraphOptions.cpp : implementation file // #include "stdafx.h" #include "msvc5ocr.h" #include "ParagraphOptions.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CParagraphOptions dialog CParagraphOptions::CParagraphOptions(ILEADRasterDocument* pLRasterDoc, CWnd* pParent /*=NULL*/) : CDialog(CParagraphOptions::IDD, pParent) { EnableAutomation(); //{{AFX_DATA_INIT(CParagraphOptions) // NOTE: the ClassWizard will add member initialization here m_nSpaceParagValue = 0; m_nParagIndentValue = 0; //}}AFX_DATA_INIT m_pLRasterDoc = pLRasterDoc; } void CParagraphOptions::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CParagraphOptions) // NOTE: the ClassWizard will add DDX and DDV calls here 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) // NOTE: the ClassWizard will add message map macros here 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, SELNONE); m_cmbAlignMode.SetItemData(1, SELAUTO); m_cmbAlignMode.SetItemData(2, SELPREDEFINED); m_cmbAlignMode.SetCurSel(2); 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, ALIGN_LEFT); m_cmbAlignValue.SetItemData(1, ALIGN_RIGHT); m_cmbAlignValue.SetItemData(2, ALIGN_CENTERED); m_cmbAlignValue.SetItemData(3, ALIGN_JUSTIFIED); m_cmbAlignValue.SetCurSel(0); m_cmbLineSpacingMode.AddString(_TEXT("None")); m_cmbLineSpacingMode.AddString(_TEXT("Auto")); m_cmbLineSpacingMode.AddString(_TEXT("Predefined")); m_cmbLineSpacingMode.SetItemData(0, SELNONE); m_cmbLineSpacingMode.SetItemData(1, SELAUTO); m_cmbLineSpacingMode.SetItemData(2, SELPREDEFINED); m_cmbLineSpacingMode.SetCurSel(2); 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_SPACE_HALF); m_cmbLineSpacingValue.SetItemData(1, LINE_SPACE_ONE); m_cmbLineSpacingValue.SetItemData(2, LINE_SPACE_ONEANDHALF); m_cmbLineSpacingValue.SetItemData(3, LINE_SPACE_DOUBLE); m_cmbLineSpacingValue.SetCurSel(1); m_cmbSpaceParagMode.AddString(_TEXT("None")); m_cmbSpaceParagMode.AddString(_TEXT("Auto")); m_cmbSpaceParagMode.AddString(_TEXT("Predefined")); m_cmbSpaceParagMode.SetItemData(0, SELNONE); m_cmbSpaceParagMode.SetItemData(1, SELAUTO); m_cmbSpaceParagMode.SetItemData(2, SELPREDEFINED); m_cmbSpaceParagMode.SetCurSel(2); m_cmbParagIndentMode.AddString(_TEXT("None")); m_cmbParagIndentMode.AddString(_TEXT("Auto")); m_cmbParagIndentMode.AddString(_TEXT("Predefined")); m_cmbParagIndentMode.SetItemData(0, SELNONE); m_cmbParagIndentMode.SetItemData(1, SELAUTO); m_cmbParagIndentMode.SetItemData(2, SELPREDEFINED); m_cmbParagIndentMode.SetCurSel(2); SetDlgItemInt(IDC_EDIT_SPACE_PARAGRAPH_VALUE, 0); SetDlgItemInt(IDC_EDIT_PARAGRAPH_INDENT_VALUE, 0); 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()) == SELPREDEFINED); } void CParagraphOptions::OnSelchangeCmbLineSpacingMode() { m_cmbLineSpacingValue.EnableWindow(m_cmbLineSpacingMode.GetItemData(m_cmbLineSpacingMode.GetCurSel()) == SELPREDEFINED); } void CParagraphOptions::OnSelchangeCmbParagraphIndentMode() { BOOL bEnable = (m_cmbParagIndentMode.GetItemData(m_cmbParagIndentMode.GetCurSel()) == SELPREDEFINED); CWnd * pIndentWnd = GetDlgItem(IDC_EDIT_PARAGRAPH_INDENT_VALUE); pIndentWnd->EnableWindow(bEnable); } void CParagraphOptions::OnSelchangeCmbSpaceParagraphMode() { BOOL bEnable = (m_cmbSpaceParagMode.GetItemData(m_cmbSpaceParagMode.GetCurSel()) == SELPREDEFINED); CWnd * pSpaceWnd = GetDlgItem(IDC_EDIT_SPACE_PARAGRAPH_VALUE); pSpaceWnd->EnableWindow(bEnable); } void CParagraphOptions::OnOK() { UpdateData(); m_pLRasterDoc->GetResultOptions()->GetParagraphOptions()->SpaceBeforeMode = (MODE_SELECTOR)m_cmbSpaceParagMode.GetItemData(m_cmbSpaceParagMode.GetCurSel()); m_pLRasterDoc->GetResultOptions()->GetParagraphOptions()->SpaceBefore = m_nSpaceParagValue; m_pLRasterDoc->GetResultOptions()->GetParagraphOptions()->ParagraphIndentMode = (MODE_SELECTOR)m_cmbParagIndentMode.GetItemData(m_cmbParagIndentMode.GetCurSel()); m_pLRasterDoc->GetResultOptions()->GetParagraphOptions()->FirstLineIndent = m_nParagIndentValue; m_pLRasterDoc->GetResultOptions()->GetParagraphOptions()->LineSpacingMode = (MODE_SELECTOR)m_cmbLineSpacingMode.GetItemData(m_cmbLineSpacingMode.GetCurSel()); m_pLRasterDoc->GetResultOptions()->GetParagraphOptions()->LineSpacing = (LINE_SPACING)m_cmbLineSpacingValue.GetItemData(m_cmbLineSpacingValue.GetCurSel()); m_pLRasterDoc->GetResultOptions()->GetParagraphOptions()->AlignmentMode = (MODE_SELECTOR)m_cmbAlignMode.GetItemData(m_cmbAlignMode.GetCurSel()); m_pLRasterDoc->GetResultOptions()->GetParagraphOptions()->Alignment = (ALIGNMENT_TYPE)m_cmbAlignValue.GetItemData(m_cmbAlignValue.GetCurSel()); CDialog::OnOK(); }