// PDFCompSetDlg.cpp : implementation file // #include "stdafx.h" #include "PDFCompDemo.h" #include "PDFCompDemoDoc.h" #include "PDFCompSetDlg.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif #define PDFSETTINGS_AUTO TEXT("Auto Select") #define PDFSETTINGS_NOISY TEXT("Noisy Image") #define PDFSETTINGS_SCANNED TEXT("Scanned Image") #define PDFSETTINGS_PRINTED TEXT("Printed Image") #define PDFSETTINGS_COMPUTERGEN TEXT("Computer Generated Image") #define PDFSETTINGS_PHOTOS TEXT("Photo") #define PDFSETTINGS_USERDDEFINED TEXT("User Defined") #define PDFSETTINGS_MAX 6 #define PDFSIMGQUALITY_AUTO TEXT("Auto Select") #define PDFSIMGQUALITY_POOR TEXT("Poor Quality") #define PDFSIMGQUALITY_AVG TEXT("Average Quality") #define PDFSIMGQUALITY_GOOD TEXT("Good Quality") #define PDFSIMGQUALITY_EXCELLENT TEXT("Excellent Quality") #define PDFSIMGQUALITY_USERDDEFINED TEXT("User Defined") #define PDFSIMGQUALITY_MAX 5 ///////////////////////////////////////////////////////////////////////////// // CPDFCompSetDlg dialog extern CPDFCompDemoApp theApp; CPDFCompSetDlg::CPDFCompSetDlg(CWnd* pParent /*=NULL*/) : CDialog(CPDFCompSetDlg::IDD, pParent) { //{{AFX_DATA_INIT(CPDFCompSetDlg) m_nBKThreshold = 0; m_nCleanSize = 0; m_nCLRThreshold = 0; m_nCombThreshold = 0; m_nSegQuality = 1; m_nPageOrder = 0; m_bNOMRC = FALSE; //}}AFX_DATA_INIT m_bAdded = FALSE; m_nPDFComboSel=0; m_nImgQComboSel=0; m_nDocCount=0; } void CPDFCompSetDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CPDFCompSetDlg) DDX_Control(pDX, IDADD, m_AddButton); DDX_Control(pDX, IDC_CHECK_NOMRC, m_NOMRC); DDX_Control(pDX, IDC_EDIT_PAGEORDER, m_PageOrder); DDX_Control(pDX, IDC_EDIT_SEGQUALITY, m_SegQuality); DDX_Control(pDX, IDC_EDIT_COMBTHRESHOLD, m_CombThreshold); DDX_Control(pDX, IDC_EDIT_CLRTHRESHOLD, m_CLRThreshold); DDX_Control(pDX, IDC_EDIT_CLEANSZ, m_CleanSize); DDX_Control(pDX, IDC_EDIT_BKGDTHRESHOLD, m_BKThreshold); DDX_Control(pDX, IDC_COMBO_OPIMGQUALITY, m_PDFImgQuality); DDX_Control(pDX, IDC_COMBO_PDFPROF, m_PDFProfCombo); DDX_Text(pDX, IDC_EDIT_BKGDTHRESHOLD, m_nBKThreshold); DDV_MinMaxInt(pDX, m_nBKThreshold, 0, 100); DDX_Text(pDX, IDC_EDIT_CLEANSZ, m_nCleanSize); DDV_MinMaxInt(pDX, m_nCleanSize, 0, 10); DDX_Text(pDX, IDC_EDIT_CLRTHRESHOLD, m_nCLRThreshold); DDV_MinMaxInt(pDX, m_nCLRThreshold, 0, 100); DDX_Text(pDX, IDC_EDIT_COMBTHRESHOLD, m_nCombThreshold); DDV_MinMaxInt(pDX, m_nCombThreshold, 0, 300); DDX_Text(pDX, IDC_EDIT_SEGQUALITY, m_nSegQuality); DDV_MinMaxInt(pDX, m_nSegQuality, 0, 100); DDX_Text(pDX, IDC_EDIT_PAGEORDER, m_nPageOrder); DDV_MinMaxInt(pDX, m_nPageOrder, 0, m_nDocCount); DDX_Check(pDX, IDC_CHECK_NOMRC, m_bNOMRC); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CPDFCompSetDlg, CDialog) //{{AFX_MSG_MAP(CPDFCompSetDlg) ON_BN_CLICKED(IDADD, OnAdd) ON_CBN_SELCHANGE(IDC_COMBO_PDFPROF, OnSelchangeComboPdfprof) ON_CBN_SELCHANGE(IDC_COMBO_OPIMGQUALITY, OnSelchangeComboOpimgquality) ON_BN_CLICKED(IDC_CHECK_NOMRC, OnCheckNomrc) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CPDFCompSetDlg message handlers BOOL CPDFCompSetDlg::OnInitDialog() { CDialog::OnInitDialog(); // TODO: Add extra initialization here m_PDFProfCombo.AddString(PDFSETTINGS_AUTO); m_PDFProfCombo.AddString(PDFSETTINGS_NOISY); m_PDFProfCombo.AddString(PDFSETTINGS_SCANNED); m_PDFProfCombo.AddString(PDFSETTINGS_PRINTED); m_PDFProfCombo.AddString(PDFSETTINGS_COMPUTERGEN); m_PDFProfCombo.AddString(PDFSETTINGS_PHOTOS); m_PDFProfCombo.AddString(PDFSETTINGS_USERDDEFINED); m_PDFImgQuality.AddString(PDFSIMGQUALITY_AUTO); m_PDFImgQuality.AddString(PDFSIMGQUALITY_POOR); m_PDFImgQuality.AddString(PDFSIMGQUALITY_AVG); m_PDFImgQuality.AddString(PDFSIMGQUALITY_GOOD); m_PDFImgQuality.AddString(PDFSIMGQUALITY_EXCELLENT); m_PDFImgQuality.AddString(PDFSIMGQUALITY_USERDDEFINED); m_PDFProfCombo.SetCurSel(m_nPDFComboSel); m_PDFImgQuality.SetCurSel(m_nImgQComboSel); m_nDocCount = theApp.CountAllOpenedDoccuments()-1; if(m_bAdded) m_AddButton.SetWindowText(TEXT("Update")); CheckPdfPrf(); CheckOpImgQualityPrf(); CheckPdfMrc(); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } BOOL CPDFCompSetDlg::OnCommand(WPARAM wParam, LPARAM lParam) { // TODO: Add your specialized code here and/or call the base class return CDialog::OnCommand(wParam, lParam); } void CPDFCompSetDlg::OnAdd() { // TODO: Add your control notification handler code here CMDIFrameWnd *pFrame = (CMDIFrameWnd*)AfxGetApp()->m_pMainWnd; CMDIChildWnd *pChild = (CMDIChildWnd *) pFrame->GetActiveFrame(); CPDFCompDemoDoc * pDocument; BOOL bRepeated = FALSE; INT nSwappedPgNo=-1; if(!UpdateData(TRUE)) return; m_nPDFComboSel = m_PDFProfCombo.GetCurSel(); m_nImgQComboSel = m_PDFImgQuality.GetCurSel(); m_bAdded = TRUE; if(BST_CHECKED == m_NOMRC.GetCheck()) { m_bNOMRC = TRUE; } else { m_bNOMRC = FALSE; } if ((pDocument=(CPDFCompDemoDoc *)pChild->GetActiveDocument()) != NULL) { if(pDocument->m_PDFCompSettings.bAdded) { nSwappedPgNo = pDocument->m_PDFCompSettings.nPageNumber; } pChild = (CMDIChildWnd*) pChild->GetWindow(GW_HWNDNEXT); while (pChild) { if ((pDocument=(CPDFCompDemoDoc *)pChild->GetActiveDocument()) != NULL) { if( pDocument->m_PDFCompSettings.bAdded && (m_nPageOrder == pDocument->m_PDFCompSettings.nPageNumber)) { MessageBox(TEXT("Page numbers for other pages were modified since this number already exists"), TEXT("PDFComp Demo"), MB_ICONEXCLAMATION); bRepeated = TRUE; } } pChild = (CMDIChildWnd*) pChild->GetWindow(GW_HWNDNEXT); } } if(bRepeated) theApp.SetPageOrder(m_nPageOrder, bRepeated, FALSE, nSwappedPgNo); CDialog::OnOK(); } void CPDFCompSetDlg::OnSelchangeComboPdfprof() { // TODO: Add your control notification handler code here CheckPdfPrf(); } void CPDFCompSetDlg::OnSelchangeComboOpimgquality() { // TODO: Add your control notification handler code here CheckOpImgQualityPrf(); } void CPDFCompSetDlg::CheckPdfPrf() { if(PDFSETTINGS_MAX == m_PDFProfCombo.GetCurSel()) { m_CombThreshold.EnableWindow(TRUE); m_CleanSize.EnableWindow(TRUE); m_BKThreshold.EnableWindow(TRUE); } else { m_CombThreshold.EnableWindow(FALSE); m_CleanSize.EnableWindow(FALSE); m_BKThreshold.EnableWindow(FALSE);; } SetProfileValue(); } void CPDFCompSetDlg::CheckOpImgQualityPrf() { if(PDFSIMGQUALITY_MAX == m_PDFImgQuality.GetCurSel()) { m_SegQuality.EnableWindow(TRUE); m_CLRThreshold.EnableWindow(TRUE); } else { m_SegQuality.EnableWindow(FALSE); m_CLRThreshold.EnableWindow(FALSE); } SetProfileValue(); } void CPDFCompSetDlg::OnCheckNomrc() { // TODO: Add your control notification handler code here CheckPdfMrc(); m_PDFProfCombo.SetCurSel(0); m_PDFImgQuality.SetCurSel(0); SetProfileValue(); } void CPDFCompSetDlg::SetProfileValue() { enum { PDFSRCIMGPROF_AUTO=0, PDFSRCIMGPROF_NOISY, PDFSRCIMGPROF_SCANNED, PDFSRCIMGPROF_PRINTED, PDFSRCIMGPROF_COMPUTERGEN, PDFSRCIMGPROF_PHOTOS, PDFSRCIMGPROF_USERDDEFINED }; enum { PDFOPIMGQ_AUTO=0, PDFOPIMGQ_POOR, PDFOPIMGQ_AVG, PDFOPIMGQ_GOOD, PDFOPIMGQ_EXCELLENT }; switch(m_PDFProfCombo.GetCurSel()) { case PDFSRCIMGPROF_AUTO: m_CombThreshold.SetWindowText(TEXT("100")); m_BKThreshold.SetWindowText(TEXT("15")); m_CleanSize.SetWindowText(TEXT("7")); break; case PDFSRCIMGPROF_NOISY: m_CombThreshold.SetWindowText(TEXT("125")); m_BKThreshold.SetWindowText(TEXT("25")); m_CleanSize.SetWindowText(TEXT("10")); break; case PDFSRCIMGPROF_SCANNED: m_CombThreshold.SetWindowText(TEXT("125")); m_BKThreshold.SetWindowText(TEXT("15")); m_CleanSize.SetWindowText(TEXT("8")); break; case PDFSRCIMGPROF_PRINTED: m_CombThreshold.SetWindowText(TEXT("100")); m_BKThreshold.SetWindowText(TEXT("10")); m_CleanSize.SetWindowText(TEXT("7")); break; case PDFSRCIMGPROF_COMPUTERGEN: m_CombThreshold.SetWindowText(TEXT("75")); m_BKThreshold.SetWindowText(TEXT("10")); m_CleanSize.SetWindowText(TEXT("3")); break; case PDFSRCIMGPROF_PHOTOS: m_CombThreshold.SetWindowText(TEXT("75")); m_BKThreshold.SetWindowText(TEXT("0")); m_CleanSize.SetWindowText(TEXT("3")); break; } switch(m_PDFImgQuality.GetCurSel()) { case PDFOPIMGQ_AUTO: m_SegQuality.SetWindowText(TEXT("50")); m_CLRThreshold.SetWindowText(TEXT("25")); break; case PDFOPIMGQ_POOR: m_SegQuality.SetWindowText(TEXT("0")); m_CLRThreshold.SetWindowText(TEXT("30")); break; case PDFOPIMGQ_AVG: m_SegQuality.SetWindowText(TEXT("50")); m_CLRThreshold.SetWindowText(TEXT("25")); break; case PDFOPIMGQ_GOOD: m_SegQuality.SetWindowText(TEXT("75")); m_CLRThreshold.SetWindowText(TEXT("25")); break; case PDFOPIMGQ_EXCELLENT: m_SegQuality.SetWindowText(TEXT("100")); m_CLRThreshold.SetWindowText(TEXT("25")); break; } } void CPDFCompSetDlg::CheckPdfMrc() { if(BST_CHECKED == m_NOMRC.GetCheck()) { m_PDFProfCombo.EnableWindow(FALSE); m_PDFImgQuality.EnableWindow(FALSE); m_SegQuality.EnableWindow(FALSE); m_CombThreshold.EnableWindow(FALSE); m_CLRThreshold.EnableWindow(FALSE); m_CleanSize.EnableWindow(FALSE); m_BKThreshold.EnableWindow(FALSE); m_bNOMRC = TRUE; } else { m_PDFProfCombo.EnableWindow(TRUE); OnSelchangeComboPdfprof(); m_PDFImgQuality.EnableWindow(TRUE); OnSelchangeComboOpimgquality(); m_bNOMRC = FALSE; } } void CPDFCompSetDlg::OnCancel() { // TODO: Add extra cleanup here CDialog::OnCancel(); }