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();
}
}