223 lines
5.9 KiB
C++
223 lines
5.9 KiB
C++
// PMerge.cpp : implementation file
|
|
//
|
|
|
|
#include "stdafx.h"
|
|
#include "cb32.h"
|
|
#include "PMerge.h"
|
|
|
|
#ifdef _DEBUG
|
|
#define new DEBUG_NEW
|
|
#undef THIS_FILE
|
|
static char THIS_FILE[] = __FILE__;
|
|
#endif
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CPMerge dialog
|
|
|
|
|
|
CPMerge::CPMerge(CWnd* pParent /*=NULL*/)
|
|
: CDialog(CPMerge::IDD, pParent)
|
|
{
|
|
//{{AFX_DATA_INIT(CPMerge)
|
|
m_pmLaunch = FALSE;
|
|
//}}AFX_DATA_INIT
|
|
}
|
|
|
|
|
|
void CPMerge::DoDataExchange(CDataExchange* pDX)
|
|
{
|
|
CDialog::DoDataExchange(pDX);
|
|
//{{AFX_DATA_MAP(CPMerge)
|
|
DDX_Control(pDX, IDC_PMLAUNCH, m_cLaunch);
|
|
DDX_Control(pDX, IDC_PM_VIEW, m_pmcView);
|
|
DDX_Control(pDX, IDC_PM_FILE, m_pmcFile);
|
|
DDX_Control(pDX, IDC_PM_EDIT, m_pmcEdit);
|
|
DDX_Control(pDX, IDC_PMTEMPLATE, m_pmTemplate);
|
|
DDX_Check(pDX, IDC_PMLAUNCH, m_pmLaunch);
|
|
//}}AFX_DATA_MAP
|
|
}
|
|
|
|
|
|
BEGIN_MESSAGE_MAP(CPMerge, CDialog)
|
|
//{{AFX_MSG_MAP(CPMerge)
|
|
ON_CBN_SELCHANGE(IDC_PMTEMPLATE, OnSelchangePmtemplate)
|
|
ON_CBN_SELENDOK(IDC_PMTEMPLATE, OnSelendokPmtemplate)
|
|
ON_BN_CLICKED(IDC_PMBROW_EDIT, OnPmbrowEdit)
|
|
ON_BN_CLICKED(IDC_PMBROW_FILE, OnPmbrowFile)
|
|
ON_BN_CLICKED(IDC_PMBROW_VIEW, OnPmbrowView)
|
|
//}}AFX_MSG_MAP
|
|
END_MESSAGE_MAP()
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CPMerge message handlers
|
|
|
|
BOOL CPMerge::OnInitDialog()
|
|
{
|
|
CDialog::OnInitDialog();
|
|
|
|
CString strTpl = theApp.m_pszPathToExe + "TMPL\\*.TPL";
|
|
WIN32_FIND_DATA fileData;
|
|
HANDLE hFind = FindFirstFile(strTpl, &fileData);
|
|
if (hFind != INVALID_HANDLE_VALUE) {
|
|
CString szTemp = fileData.cFileName;
|
|
szTemp = szTemp.Left(szTemp.ReverseFind('.'));
|
|
CString myFile = theApp.m_pszPathToExe + "TMPL\\" + szTemp;
|
|
if (TestForTemplate(myFile))
|
|
m_pmTemplate.AddString(szTemp);
|
|
|
|
while (FindNextFile(hFind, &fileData)) {
|
|
szTemp = fileData.cFileName;
|
|
szTemp = szTemp.Left(szTemp.ReverseFind('.'));
|
|
myFile = theApp.m_pszPathToExe + "TMPL\\" + szTemp;
|
|
if (TestForTemplate(myFile))
|
|
m_pmTemplate.AddString(szTemp);
|
|
}
|
|
}
|
|
FindClose(hFind);
|
|
|
|
// change to search for last template
|
|
strTpl = theApp.GetProfileString(_T("Print"),_T("Template"),NULL);
|
|
if (!strTpl.IsEmpty())
|
|
m_pmTemplate.SetCurSel(m_pmTemplate.FindString(-1, strTpl));
|
|
else
|
|
m_pmTemplate.SetCurSel(0);
|
|
|
|
LoadTemplateData();
|
|
|
|
return TRUE;
|
|
}
|
|
|
|
void CPMerge::OnOK()
|
|
{
|
|
if (m_pmTemplate.GetCount() > 0) {
|
|
SaveTemplateData();
|
|
CString myTmpl;
|
|
m_pmTemplate.GetLBText(m_pmTemplate.GetCurSel(),myTmpl);
|
|
theApp.WriteProfileString(_T("Print"),_T("Template"),myTmpl);
|
|
}
|
|
|
|
CDialog::OnOK();
|
|
}
|
|
|
|
void CPMerge::LoadTemplateData()
|
|
{
|
|
if (m_pmTemplate.GetCount() > 0) {
|
|
CString myTmpl;
|
|
char chTmp[_MAX_PATH];
|
|
|
|
m_pmTemplate.GetLBText(m_pmTemplate.GetCurSel(),myTmpl);
|
|
|
|
GetPrivateProfileString("Template","Editor",NULL,chTmp,sizeof(chTmp),
|
|
theApp.m_pszPathToExe+"TMPL\\"+ myTmpl+".tpl");
|
|
m_pmcEdit.SetWindowText(chTmp);
|
|
|
|
GetPrivateProfileString("Template","Output",NULL,chTmp,sizeof(chTmp),
|
|
theApp.m_pszPathToExe+"TMPL\\"+ myTmpl+".tpl");
|
|
m_pmcFile.SetWindowText(chTmp);
|
|
|
|
GetPrivateProfileString("Template","Viewer",NULL,chTmp,sizeof(chTmp),
|
|
theApp.m_pszPathToExe+"TMPL\\"+ myTmpl+".tpl");
|
|
m_pmcView.SetWindowText(chTmp);
|
|
|
|
m_pmLaunch = GetPrivateProfileInt("Template","Launch",0,
|
|
theApp.m_pszPathToExe+"TMPL\\"+ myTmpl+".tpl");
|
|
m_cLaunch.SetCheck((m_pmLaunch)?1:0);
|
|
}
|
|
}
|
|
|
|
void CPMerge::SaveTemplateData()
|
|
{
|
|
if (m_pmTemplate.GetCount() > 0) {
|
|
CString myTmpl;
|
|
char chTmp[_MAX_PATH];
|
|
|
|
m_pmTemplate.GetLBText(m_pmTemplate.GetCurSel(),myTmpl);
|
|
UpdateData(TRUE);
|
|
|
|
m_pmcEdit.GetWindowText(chTmp, sizeof(chTmp));
|
|
WritePrivateProfileString("Template","Editor",chTmp,
|
|
theApp.m_pszPathToExe+"TMPL\\"+ myTmpl+".tpl");
|
|
|
|
m_pmcFile.GetWindowText(chTmp, sizeof(chTmp));
|
|
WritePrivateProfileString("Template","Output",chTmp,
|
|
theApp.m_pszPathToExe+"TMPL\\"+ myTmpl+".tpl");
|
|
|
|
m_pmcView.GetWindowText(chTmp, sizeof(chTmp));
|
|
WritePrivateProfileString("Template","Viewer",chTmp,
|
|
theApp.m_pszPathToExe+"TMPL\\"+ myTmpl+".tpl");
|
|
|
|
sprintf(chTmp,"%d",(m_pmLaunch)?'1':'0');
|
|
WritePrivateProfileString("Template","Launch",chTmp,
|
|
theApp.m_pszPathToExe+"TMPL\\"+ myTmpl+".tpl");
|
|
}
|
|
}
|
|
|
|
BOOL CPMerge::TestForTemplate(CString strTName)
|
|
{
|
|
CFileStatus fsTest;
|
|
CFile tFile;
|
|
if (tFile.GetStatus(strTName+".tpl", fsTest) &&
|
|
tFile.GetStatus(strTName+".hed", fsTest) &&
|
|
tFile.GetStatus(strTName+".bod", fsTest) &&
|
|
tFile.GetStatus(strTName+".fot", fsTest))
|
|
return TRUE;
|
|
else
|
|
return FALSE;
|
|
}
|
|
|
|
void CPMerge::OnSelchangePmtemplate()
|
|
{
|
|
SaveTemplateData();
|
|
}
|
|
|
|
void CPMerge::OnSelendokPmtemplate()
|
|
{
|
|
LoadTemplateData();
|
|
}
|
|
|
|
void CPMerge::OnPmbrowEdit()
|
|
{
|
|
CFileDialog FileDlg(TRUE, NULL, NULL,
|
|
OFN_HIDEREADONLY | OFN_FILEMUSTEXIST | OFN_PATHMUSTEXIST,
|
|
TEXT("All Files (*.*)|*.*||"),
|
|
AfxGetMainWnd());
|
|
|
|
CString strTemp;
|
|
strTemp.LoadString(IDS_OFN_EXE);
|
|
FileDlg.m_ofn.lpstrTitle = strTemp;
|
|
if (FileDlg.DoModal() == IDOK) {
|
|
CString fileName = FileDlg.GetPathName();
|
|
m_pmcEdit.SetWindowText(fileName);
|
|
}
|
|
}
|
|
|
|
void CPMerge::OnPmbrowFile()
|
|
{
|
|
CFileDialog FileDlg(FALSE, NULL, NULL, OFN_HIDEREADONLY |
|
|
OFN_OVERWRITEPROMPT | OFN_NOTESTFILECREATE,
|
|
TEXT("All Files (*.*)|*.*||"), AfxGetMainWnd());
|
|
|
|
CString strTemp;
|
|
strTemp.LoadString(IDS_OFN_OUT);
|
|
FileDlg.m_ofn.lpstrTitle = strTemp;
|
|
if (FileDlg.DoModal() == IDOK) {
|
|
CString fileName = FileDlg.GetPathName();
|
|
m_pmcFile.SetWindowText(fileName);
|
|
}
|
|
}
|
|
|
|
void CPMerge::OnPmbrowView()
|
|
{
|
|
CFileDialog FileDlg(TRUE, NULL, NULL,
|
|
OFN_HIDEREADONLY | OFN_FILEMUSTEXIST | OFN_PATHMUSTEXIST,
|
|
TEXT("All Files (*.*)|*.*||"),
|
|
AfxGetMainWnd());
|
|
|
|
CString strTemp;
|
|
strTemp.LoadString(IDS_OFN_EXE);
|
|
FileDlg.m_ofn.lpstrTitle = strTemp;
|
|
if (FileDlg.DoModal() == IDOK) {
|
|
CString fileName = FileDlg.GetPathName();
|
|
m_pmcView.SetWindowText(fileName);
|
|
}
|
|
}
|