// CharacterOptions.cpp : implementation file // #include "stdafx.h" #include "msvc5ocr.h" #include "CharacterOptions.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CCharacterOptions dialog CCharacterOptions::CCharacterOptions(ILEADRasterDocument* pLRasterDoc, CWnd* pParent /*=NULL*/) : CDialog(CCharacterOptions::IDD, pParent) { //{{AFX_DATA_INIT(CCharacterOptions) m_bBold = FALSE; m_bItalic = FALSE; m_bUnderLine = FALSE; m_nFontSize = 0; //}}AFX_DATA_INIT m_pLRasterDoc = pLRasterDoc; } void CCharacterOptions::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CCharacterOptions) DDX_Control(pDX, IDC_CMB_FONT_NAME, m_cmbFontName); DDX_Control(pDX, IDC_CMB_FONT_MODE, m_cmbFontMode); DDX_Check(pDX, IDC_CHK_FONT_BOLD, m_bBold); DDX_Check(pDX, IDC_CHK_FONT_ITALIC, m_bItalic); DDX_Check(pDX, IDC_CHK_FONT_UNDERLINE, m_bUnderLine); DDX_Text(pDX, IDC_EDIT_FONT_SIZE, m_nFontSize); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CCharacterOptions, CDialog) //{{AFX_MSG_MAP(CCharacterOptions) // NOTE: the ClassWizard will add message map macros here ON_CBN_SELCHANGE(IDC_CMB_FONT_MODE, OnSelchangeCmbFontMode) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CCharacterOptions message handlers BOOL CCharacterOptions::OnInitDialog() { CDialog::OnInitDialog(); m_cmbFontMode.AddString(_TEXT("None")); m_cmbFontMode.AddString(_TEXT("Auto")); m_cmbFontMode.AddString(_TEXT("Predefined")); m_cmbFontMode.SetItemData(0, SELNONE); m_cmbFontMode.SetItemData(1, SELAUTO); m_cmbFontMode.SetItemData(2, SELPREDEFINED); m_cmbFontMode.SetCurSel(2); m_cmbFontName.AddString(_TEXT("Serif - Times New Roman")); m_cmbFontName.AddString(_TEXT("SansSerif font - Arial")); m_cmbFontName.AddString(_TEXT("Serif font - Courier New")); m_cmbFontName.AddString(_TEXT("SansSerif font - Courier New")); m_cmbFontName.AddString(_TEXT("Pre-defined - Times New Roman")); m_cmbFontName.SetItemData(0, FONTPROPORTSERIF); m_cmbFontName.SetItemData(1, FONTPROPORTSANSSERIF); m_cmbFontName.SetItemData(2, FONTMONOSERIF); m_cmbFontName.SetItemData(3, FONTMONOSANSSERIF); m_cmbFontName.SetItemData(4, FONTPREDEFFONT); m_cmbFontName.SetCurSel(4); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } void CCharacterOptions::OnSelchangeCmbFontMode() { BOOL bEnable = (m_cmbFontMode.GetItemData(m_cmbFontMode.GetCurSel()) == SELPREDEFINED); CWnd * pItemWnd = NULL; pItemWnd = GetDlgItem(IDC_CHK_FONT_BOLD); pItemWnd->EnableWindow(bEnable); pItemWnd = GetDlgItem(IDC_CHK_FONT_ITALIC); pItemWnd->EnableWindow(bEnable); pItemWnd = GetDlgItem(IDC_CHK_FONT_UNDERLINE); pItemWnd->EnableWindow(bEnable); pItemWnd = GetDlgItem(IDC_EDIT_FONT_SIZE); pItemWnd->EnableWindow(bEnable); m_cmbFontName.EnableWindow(bEnable); } void CCharacterOptions::OnOK() { UpdateData(); MODE_SELECTOR OutSel = (MODE_SELECTOR)m_cmbFontMode.GetItemData(m_cmbFontMode.GetCurSel()); m_pLRasterDoc->GetResultOptions()->GetCharacterOptions()->SelOutputFont = (MODE_SELECTOR)OutSel; m_pLRasterDoc->GetResultOptions()->GetCharacterOptions()->Bold = m_bBold; m_pLRasterDoc->GetResultOptions()->GetCharacterOptions()->Italic = m_bItalic; m_pLRasterDoc->GetResultOptions()->GetCharacterOptions()->Underline = m_bUnderLine; m_pLRasterDoc->GetResultOptions()->GetCharacterOptions()->Size = m_nFontSize; int nFontSel = m_cmbFontName.GetCurSel(); if (OutSel == SELPREDEFINED) m_pLRasterDoc->GetResultOptions()->GetCharacterOptions()->FontNames[4] = (FONT_DEFINE)m_cmbFontName.GetItemData(nFontSel); CDialog::OnOK(); }