www.pudn.com > doc2pdf-0_7_1.rar > Doc2pdfSetupDlg.cpp


// Doc2pdfSetupDlg.cpp : implementation file 
// 
 
#include "stdafx.h" 
#include "doc2pdf.h" 
#include "Doc2pdfSetupDlg.h" 
#include "doc2pdf_reg.h" 
#include "Doc2pdfMailboxDlg.h" 
#include "Doc2pdfDirectoryDlg.h" 
 
#ifdef _DEBUG 
#define new DEBUG_NEW 
#undef THIS_FILE 
static char THIS_FILE[] = __FILE__; 
#endif 
 
///////////////////////////////////////////////////////////////////////////// 
// CDoc2pdfSetupDlg dialog 
 
 
CDoc2pdfSetupDlg::CDoc2pdfSetupDlg(CWnd* pParent /*=NULL*/)								    
	: CDialog(CDoc2pdfSetupDlg::IDD, pParent) 
{ 
	//{{AFX_DATA_INIT(CDoc2pdfSetupDlg) 
		// NOTE: the ClassWizard will add member initialization here 
	//}}AFX_DATA_INIT	 
} 
 
 
void CDoc2pdfSetupDlg::DoDataExchange(CDataExchange* pDX) 
{ 
	CDialog::DoDataExchange(pDX); 
	//{{AFX_DATA_MAP(CDoc2pdfSetupDlg) 
	DDX_Control(pDX, IDC_MAILBOX_LIST, m_MailboxList); 
	DDX_Control(pDX, IDC_DIRECTORY_LIST, m_DirectoryList); 
	DDX_Control(pDX, IDC_GHOSTSCRIPT_EDIT, m_GhostscriptEdit); 
	DDX_Control(pDX, IDC_MAIL_POLLINTERVAL_EDIT, m_MailPollintervalEdit); 
	DDX_Control(pDX, IDC_DIR_POLLINTERVAL_EDIT, m_DirPollintervalEdit); 
	DDX_Control(pDX, IDC_LOGFILE_EDIT, m_LogfileEdit); 
	DDX_Control(pDX, ID_SPOOLDIR_EDIT, m_SpooldirEdit); 
	//}}AFX_DATA_MAP 
} 
 
void CDoc2pdfSetupDlg::FillMailboxList() 
{ 
	CStringList			ids; 
	POSITION			pos; 
	Doc2pdfRegistry		reg; 
	 
	m_MailboxList.ResetContent(); 
	 
	if(reg.GetAllMailboxIds(&ids)) 
	{ 
		pos = ids.GetHeadPosition(); 
		while(pos) 
		{ 
			m_MailboxList.AddString(ids.GetAt(pos)); 
			ids.GetNext(pos); 
		} 
	}	 
} 
 
void CDoc2pdfSetupDlg::FillDirectoryList() 
{ 
	CStringList			ids; 
	POSITION			pos; 
	Doc2pdfRegistry		reg; 
	 
	m_DirectoryList.ResetContent(); 
	 
	if(reg.GetAllDirectoryIds(&ids)) 
	{ 
		pos = ids.GetHeadPosition(); 
		while(pos) 
		{ 
			m_DirectoryList.AddString(ids.GetAt(pos)); 
			ids.GetNext(pos); 
		} 
	}	 
} 
 
BEGIN_MESSAGE_MAP(CDoc2pdfSetupDlg, CDialog) 
	//{{AFX_MSG_MAP(CDoc2pdfSetupDlg) 
	ON_BN_CLICKED(IDC_ADD_BUTTON, OnAddButton) 
	ON_BN_CLICKED(IDC_EDIT_BUTTON, OnEditButton) 
	ON_BN_CLICKED(IDC_REMOVE_BUTTON, OnRemoveButton) 
	ON_BN_CLICKED(IDC_DIRADD_BUTTON, OnDirAddButton) 
	ON_BN_CLICKED(IDC_DIREDIT_BUTTON, OnDireditButton) 
	ON_BN_CLICKED(IDC_DIRREMOVE_BUTTON, OnDirremoveButton) 
	//}}AFX_MSG_MAP 
END_MESSAGE_MAP() 
 
///////////////////////////////////////////////////////////////////////////// 
// CDoc2pdfSetupDlg message handlers 
 
void CDoc2pdfSetupDlg::OnOK()  
{ 
	Doc2pdfRegistry		reg; 
	CString				str; 
	CString				tmpstr; 
	CFile				file; 
	 
	m_MailPollintervalEdit.GetWindowText(str); 
	if(atoi(str) < 1) 
	{ 
		MessageBox("Mailbox Poll interval must be >= 1", "Input Error",MB_ICONINFORMATION); 
		return; 
	} 
	reg.SetMailboxPollInterval(atoi(str)); 
 
	m_DirPollintervalEdit.GetWindowText(str); 
	if(atoi(str) < 1) 
	{ 
		MessageBox("Directory Poll interval must be >= 1", "Input Error",MB_ICONINFORMATION); 
		return; 
	} 
	reg.SetDirectoryPollInterval(atoi(str)); 
 
	m_LogfileEdit.GetWindowText(str); 
	if(file.Open(str,CFile::modeCreate | CFile::modeNoTruncate | CFile::modeReadWrite) == 0) 
	{ 
		MessageBox("Could not open logfile","Input Error", MB_ICONINFORMATION); 
		return; 
	} 
	file.Close(); 
	reg.SetLogFilename(str); 
 
	m_SpooldirEdit.GetWindowText(str); 
	if(str.Right(1) != "\\") 
	{ 
		str += "\\"; 
	} 
	tmpstr = str + "doc2pdf.tst"; 
	if(file.Open(tmpstr,CFile::modeCreate | CFile::modeNoTruncate | CFile::modeReadWrite) == 0) 
	{ 
		MessageBox("Could not find spooldir","Input Error", MB_ICONINFORMATION); 
		return; 
	} 
	file.Close(); 
	reg.SetSpoolDir(str);	 
 
	m_GhostscriptEdit.GetWindowText(str); 
	if(str.Right(1) != "\\") 
	{ 
		str += "\\"; 
	} 
	tmpstr = str + "bin\\gswin32.exe"; 
	if(file.Open(tmpstr,CFile::modeRead) == 0) 
	{ 
		MessageBox("Could not open gswin32.exe","Input Error", MB_ICONINFORMATION); 
		return; 
	} 
	file.Close(); 
	reg.SetGhostscriptDir(str); 
 
	if(reg.GetAllMailboxIds(NULL) == 0 && reg.GetAllDirectoryIds(NULL) == 0) 
	{ 
		MessageBox("At least one mailbox or directory needs to be configured","Input Error", MB_ICONINFORMATION); 
		return; 
	} 
 
	CDialog::OnOK(); 
} 
 
BOOL CDoc2pdfSetupDlg::OnInitDialog()  
{ 
	Doc2pdfRegistry		reg; 
	Doc2pdfMailboxInfo	mboxinfo; 
	CString				str; 
	DWORD				num; 
	CHAR				path[MAX_PATH]; 
 
	CDialog::OnInitDialog(); 
 
	reg.GetLogFilename(str); 
	if(str.GetLength() == 0) 
	{ 
		GetTempPath(MAX_PATH,path); 
		str = path; 
		str += "doc2pdf.log";		 
	} 
	m_LogfileEdit.SetWindowText(str); 
 
	reg.GetSpoolDir(str); 
	if(str.GetLength() == 0) 
	{ 
		GetTempPath(MAX_PATH,path); 
		str = path; 
	} 
	m_SpooldirEdit.SetWindowText(str); 
	 
	reg.GetMailboxPollInterval(num); 
	if(num == 0) 
	{ 
		num = 10; 
	} 
	str.Format("%i",num); 
	m_MailPollintervalEdit.SetWindowText(str); 
 
	reg.GetDirectoryPollInterval(num); 
	if(num == 0) 
	{ 
		num = 10; 
	} 
	str.Format("%i",num); 
	m_DirPollintervalEdit.SetWindowText(str); 
 
	reg.GetGhostscriptDir(str); 
	if(str.GetLength() == 0) 
	{ 
		str = "c:\\gs\\gs7.03\\"; 
	} 
	m_GhostscriptEdit.SetWindowText(str); 
 
	CStringList ids; 
	POSITION    pos; 
	if(reg.GetAllMailboxIds(&ids)) 
	{ 
		pos = ids.GetHeadPosition(); 
		while(pos) 
		{ 
			m_MailboxList.AddString(ids.GetAt(pos)); 
			ids.GetNext(pos); 
		} 
	}	 
 
	CStringList dirids; 
	POSITION    dirpos; 
	if(reg.GetAllDirectoryIds(&dirids)) 
	{ 
		dirpos = dirids.GetHeadPosition(); 
		while(dirpos) 
		{ 
			m_DirectoryList.AddString(dirids.GetAt(dirpos)); 
			dirids.GetNext(dirpos); 
		} 
	}	 
 
	return TRUE;  // return TRUE unless you set the focus to a control 
	              // EXCEPTION: OCX Property Pages should return FALSE 
} 
 
void CDoc2pdfSetupDlg::OnAddButton()  
{ 
	Doc2pdfRegistry		reg; 
	CDoc2pdfMailboxDlg	mboxdlg; 
	Doc2pdfMailboxInfo	mboxinfo; 
	CString				id; 
	 
	id.Empty(); 
	mboxdlg.DoModal(id); 
	FillMailboxList();			 
} 
 
void CDoc2pdfSetupDlg::OnEditButton()  
{ 
	Doc2pdfRegistry		reg; 
	CDoc2pdfMailboxDlg	mboxdlg; 
	Doc2pdfMailboxInfo	mboxinfo; 
	int					index; 
	CString				id; 
	 
	index = m_MailboxList.GetCurSel(); 
	if(index >= 0) 
	{ 
		m_MailboxList.GetText(index,id);		 
		mboxdlg.DoModal(id); 
		FillMailboxList(); 
	} 
} 
 
void CDoc2pdfSetupDlg::OnRemoveButton()  
{ 
	Doc2pdfRegistry		reg; 
	CDoc2pdfMailboxDlg	mboxdlg; 
	Doc2pdfMailboxInfo	mboxinfo; 
	int					index; 
	CString				id; 
 
	index = m_MailboxList.GetCurSel(); 
	if(index >= 0) 
	{ 
		m_MailboxList.GetText(index,id); 
		reg.RemoveMailboxInfo(id); 
		FillMailboxList(); 
	}	 
} 
 
/* 
void CDoc2pdfSetupDlg::OnChangeDirPollIntervalEdit()  
{ 
	// TODO: If this is a RICHEDIT control, the control will not 
	// send this notification unless you override the CDialog::OnInitDialog() 
	// function and call CRichEditCtrl().SetEventMask() 
	// with the ENM_CHANGE flag ORed into the mask. 
	 
	// TODO: Add your control notification handler code here 
	 
}*/ 
 
void CDoc2pdfSetupDlg::OnDirAddButton()  
{ 
	Doc2pdfRegistry		reg; 
	CDoc2pdfDirectoryDlg	dirdlg; 
	Doc2pdfDirectoryInfo	dirinfo; 
	CString				id; 
	 
	id.Empty(); 
	dirdlg.DoModal(id); 
	FillDirectoryList();	 
} 
 
void CDoc2pdfSetupDlg::OnDireditButton()  
{ 
	Doc2pdfRegistry		reg; 
	CDoc2pdfDirectoryDlg	dirdlg; 
	Doc2pdfDirectoryInfo	dirinfo; 
	int					index; 
	CString				id; 
	 
	index = m_DirectoryList.GetCurSel(); 
	if(index >= 0) 
	{ 
		m_DirectoryList.GetText(index,id);		 
		dirdlg.DoModal(id); 
		FillDirectoryList(); 
	} 
} 
 
void CDoc2pdfSetupDlg::OnDirremoveButton()  
{ 
	Doc2pdfRegistry		reg; 
	CDoc2pdfDirectoryDlg	dirdlg; 
	Doc2pdfDirectoryInfo	dirinfo; 
	int					index; 
	CString				id; 
 
	index = m_DirectoryList.GetCurSel(); 
	if(index >= 0) 
	{ 
		m_DirectoryList.GetText(index,id); 
		reg.RemoveDirectoryInfo(id); 
		FillDirectoryList(); 
	}	 
}