This repository has been archived on 2024-03-20. You can view files and clone it, but you cannot make any changes to it's state, such as pushing and creating new issues, pull requests or comments.
ContactBook/PMerge.cpp
2024-03-20 09:28:18 -05:00

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