// SettingPatchInfo.cpp : ±¸Çö ÆÄÀÏÀÔ´Ï´Ù. // #include "stdafx.h" #include "PatchMaker.h" #include "SettingPatchInfo.h" #include "SingleInputDlg.h" #include "UtilityFunc.h" #include "PMSetting.h" // CSettingPatchInfo ´ëÈ­ »óÀÚÀÔ´Ï´Ù. IMPLEMENT_DYNAMIC(CSettingPatchInfo, CDialog) CSettingPatchInfo::CSettingPatchInfo(CWnd* pParent /*=NULL*/) : CDialog(CSettingPatchInfo::IDD, pParent) , m_dwPatchVersion(100) , m_bSelectedNewFile(false) , m_szSetupFileName(_T("")) , m_szSetupName(_T("")) { } CSettingPatchInfo::~CSettingPatchInfo() { } void CSettingPatchInfo::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); DDX_Control(pDX, IDC_CB_SEL_OPTION, m_cbSettingOptFile); DDX_Text(pDX, IDC_ED_PATCHVER, m_dwPatchVersion); DDV_MinMaxUInt(pDX, m_dwPatchVersion, 100, 10000); } BEGIN_MESSAGE_MAP(CSettingPatchInfo, CDialog) ON_CBN_SELCHANGE(IDC_CB_SEL_OPTION, OnCbnSelchangeCbSelOption) END_MESSAGE_MAP() // CSettingPatchInfo ¸Þ½ÃÁö 󸮱âÀÔ´Ï´Ù. // ¹öÀü¸í, ¼±ÅÃÇÑ ¼Â¾÷ ÆÄÀÏ À̸§ µîÀÌ À¯È¿ÇѰ¡ ¿©ºÎ ¸®ÅÏ bool CSettingPatchInfo::CheckPatchInfo() { return true; } BOOL CSettingPatchInfo::OnInitDialog() { CDialog::OnInitDialog(); // TODO: ¿©±â¿¡ Ãß°¡ ÃʱâÈ­ ÀÛ¾÷À» Ãß°¡ÇÕ´Ï´Ù. m_cbSettingOptFile.InsertString(0, _T("< new >")); m_cbSettingOptFile.SetCurSel(0); CString szFilePathName; PMUtil::GetCurrentFolderName(szFilePathName); szFilePathName.AppendFormat(_T("*%s"), GetExtension()); // ½ÇÇà ÆÄÀÏ À§Ä¡¿¡¼­, ¼³Á¤ ÆÄÀÏÀ» °Ë»öÇØ¼­ È­¸é¿¡ »Ñ·ÁÁØ´Ù. CFileFind fileFind; BOOL bWorking = fileFind.FindFile(szFilePathName); for (int nIndex = 1; bWorking; ++nIndex) { bWorking = fileFind.FindNextFile(); m_cbSettingOptFile.InsertString(nIndex, fileFind.GetFileTitle()); } fileFind.Close(); return TRUE; // return TRUE unless you set the focus to a control // ¿¹¿Ü: OCX ¼Ó¼º ÆäÀÌÁö´Â FALSE¸¦ ¹ÝÈ¯ÇØ¾ß ÇÕ´Ï´Ù. } void CSettingPatchInfo::OnOK() { // TODO: ¿©±â¿¡ Ư¼öÈ­µÈ Äڵ带 Ãß°¡ ¹×/¶Ç´Â ±âº» Ŭ·¡½º¸¦ È£ÃâÇÕ´Ï´Ù. // ¼¼ÆÃµÈ µ¥ÀÌÅ͸¦ Àоî¿É´Ï´Ù. UpdateData(TRUE); int nSel = m_cbSettingOptFile.GetCurSel(); m_szSetupFileName.SetString(""); m_bSelectedNewFile = false; if (0 == nSel) { // ÆÄÀÏ À̸§ÀÌ, °¡´ÉÇÑ ÆÄÀÏ À̸§ÀÎÁö È®ÀÎÇÑ´Ù. CSingleInputDlg singleInput( _T("»õ ÆÐÄ¡ ¼³Á¤ ÆÄÀÏ À̸§À» ÀÔ·ÂÇϼ¼¿ä"), _T("ÆÐÄ¡ ¼³Á¤ ÆÄÀÏ À̸§ : ")); CFile file; TCHAR szTempPath[MAX_PATH]; GetTempPath(MAX_PATH - 1, szTempPath); szTempPath[MAX_PATH - 1] = 0; CString szFullPathName; while(!m_bSelectedNewFile) { if (IDOK == singleInput.DoModal()) { szFullPathName.Format("%s%s%s", szTempPath, singleInput.GetSingleInput(), GetExtension()); if (file.Open(szFullPathName, CFile::modeCreate)) { m_szSetupFileName.SetString(singleInput.GetSingleInput()); m_bSelectedNewFile = true; file.Close(); DeleteFile(szFullPathName); } else { AfxMessageBox(_T("»ý¼ºÇÒ ¼ö ¾ø´Â ÆÄÀÏ À̸§ÀÔ´Ï´Ù.\n´Ù½Ã ÀÔ·ÂÇØ ÁֽʽÿÀ"), MB_OK | MB_ICONEXCLAMATION); } } else { m_szSetupFileName.SetString(""); m_bSelectedNewFile = true; } } } else { m_cbSettingOptFile.GetLBText(nSel, m_szSetupFileName); } if (0 < m_szSetupFileName.GetLength()) { // ÆÄÀÏ À̸§ ÀúÀå m_szSetupName.SetString(m_szSetupFileName.GetString()); m_szSetupFileName.Append(GetExtension()); // ¹öÀü Á¤º¸ ÀúÀå CString szKey; CString szValue; szKey.SetString(m_szSetupName); szKey.Replace(_T("="), _T("_")); szValue.Format(_T("%u"), m_dwPatchVersion); CPMSetting& pmSetting = CPMDefaultSetting::GetInstance(); pmSetting.SetSettingData(szKey, szValue); pmSetting.SaveSetting(); CDialog::OnOK(); } } void CSettingPatchInfo::OnCbnSelchangeCbSelOption() { // TODO: ¿©±â¿¡ ÄÁÆ®·Ñ ¾Ë¸² 󸮱â Äڵ带 Ãß°¡ÇÕ´Ï´Ù. CString szKey; CString szValue; int nCurSel = m_cbSettingOptFile.GetCurSel(); if (CB_ERR != nCurSel) { m_cbSettingOptFile.GetLBText(nCurSel, szKey); szKey.Replace(_T("="), _T("_")); if (CPMDefaultSetting::GetInstance().GetSettingData(szKey, szValue)) { m_dwPatchVersion = atol(szValue); UpdateData(FALSE); } } }