162 lines
4.4 KiB
C++
162 lines
4.4 KiB
C++
// EventEditView_Finish.cpp : 구현 파일입니다.
|
|
//
|
|
|
|
#include "stdafx.h"
|
|
#include "EtActionTool.h"
|
|
#include "EventEditView_Finish.h"
|
|
#include "SignalManager.h"
|
|
#include "GlobalValue.h"
|
|
#include "UnionValueProperty.h"
|
|
|
|
|
|
// CEventEditView_Finish
|
|
|
|
IMPLEMENT_DYNCREATE(CEventEditView_Finish, CFormView)
|
|
|
|
CEventEditView_Finish::CEventEditView_Finish()
|
|
: CFormView(CEventEditView_Finish::IDD)
|
|
, m_bCheckExport(FALSE)
|
|
, m_szExportFileName("")
|
|
{
|
|
|
|
}
|
|
|
|
CEventEditView_Finish::~CEventEditView_Finish()
|
|
{
|
|
}
|
|
|
|
void CEventEditView_Finish::DoDataExchange(CDataExchange* pDX)
|
|
{
|
|
CFormView::DoDataExchange(pDX);
|
|
DDX_Check(pDX, IDC_CHECK1, m_bCheckExport);
|
|
DDX_Text(pDX, IDC_EDIT1, m_szExportFileName);
|
|
}
|
|
|
|
BEGIN_MESSAGE_MAP(CEventEditView_Finish, CFormView)
|
|
ON_BN_CLICKED(IDC_CHECK1, &CEventEditView_Finish::OnBnClickedCheck1)
|
|
ON_BN_CLICKED(IDC_BUTTON1, &CEventEditView_Finish::OnBnClickedButton1)
|
|
END_MESSAGE_MAP()
|
|
|
|
|
|
// CEventEditView_Finish 진단입니다.
|
|
|
|
#ifdef _DEBUG
|
|
void CEventEditView_Finish::AssertValid() const
|
|
{
|
|
CFormView::AssertValid();
|
|
}
|
|
|
|
#ifndef _WIN32_WCE
|
|
void CEventEditView_Finish::Dump(CDumpContext& dc) const
|
|
{
|
|
CFormView::Dump(dc);
|
|
}
|
|
#endif
|
|
#endif //_DEBUG
|
|
|
|
|
|
// CEventEditView_Finish 메시지 처리기입니다.
|
|
|
|
void CEventEditView_Finish::OnBnClickedCheck1()
|
|
{
|
|
// TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다.
|
|
UpdateData();
|
|
GetDlgItem( IDC_EDIT1 )->EnableWindow( m_bCheckExport );
|
|
GetDlgItem( IDC_BUTTON1 )->EnableWindow( m_bCheckExport );
|
|
|
|
}
|
|
|
|
void CEventEditView_Finish::PreProcess()
|
|
{
|
|
char szStr[2048] = { 0, };
|
|
GetRegistryString( HKEY_CURRENT_USER, REG_SUBKEY, "LastExportFullName", szStr, 2048 );
|
|
DWORD dwValue;
|
|
GetRegistryNumber( HKEY_CURRENT_USER, REG_SUBKEY, "ExportHeader", dwValue );
|
|
m_szExportFileName = szStr;
|
|
m_bCheckExport = ( dwValue == TRUE );
|
|
|
|
GetDlgItem( IDC_EDIT1 )->EnableWindow( m_bCheckExport );
|
|
GetDlgItem( IDC_BUTTON1 )->EnableWindow( m_bCheckExport );
|
|
|
|
UpdateData( FALSE );
|
|
}
|
|
|
|
bool CEventEditView_Finish::PostProcess()
|
|
{
|
|
UpdateData();
|
|
if( m_bCheckExport == TRUE ) {
|
|
if( m_szExportFileName.IsEmpty() ) {
|
|
MessageBox( "익스포트 할 파일을 지정해주세요", "에러", MB_OK );
|
|
return false;
|
|
}
|
|
FILE *fp;
|
|
fopen_s( &fp, m_szExportFileName, "wt" );
|
|
if( fp == NULL ) {
|
|
MessageBox( "파일을 쓸 수 없습니다.", "에러", MB_OK );
|
|
return false;
|
|
}
|
|
fclose(fp);
|
|
}
|
|
|
|
switch( s_nStartType ) {
|
|
case 0:
|
|
CSignalManager::GetInstance().AddSignalItem( s_pCurrentSignalItem );
|
|
s_pCurrentSignalItem = NULL;
|
|
break;
|
|
case 1:
|
|
{
|
|
CSignalItem *pItem = CSignalManager::GetInstance().GetSignalItemFromName( s_szCurrentSignalName );
|
|
|
|
pItem->SetName( s_pCurrentSignalItem->GetName() );
|
|
pItem->SetInitialsColor( s_pCurrentSignalItem->GetInitialsColor() );
|
|
pItem->SetBackgroundColor( s_pCurrentSignalItem->GetBackgroundColor() );
|
|
pItem->SetHasLength( s_pCurrentSignalItem->IsHasLength() );
|
|
|
|
SAFE_DELETE( s_pCurrentSignalItem );
|
|
}
|
|
break;
|
|
case 2:
|
|
CSignalManager::GetInstance().RemoveSignalItem( s_szCurrentSignalName );
|
|
break;
|
|
case 3:
|
|
if( s_pCurrentSignalItem->AddParameter( s_pCurrentPropertyVariable, true ) == false ) {
|
|
SAFE_DELETE( s_pCurrentPropertyVariable );
|
|
MessageBox( "더이상 파라메터 추가를 할 수 없어요!!\n리빌드와 제저장이 필요해요!!", "에러", MB_OK );
|
|
}
|
|
s_pCurrentSignalItem = NULL;
|
|
s_pCurrentPropertyVariable = NULL;
|
|
break;
|
|
case 4:
|
|
{
|
|
CUnionValueProperty *pVariable = s_pCurrentSignalItem->GetParameterFromName( s_szCurrentPropertyName );
|
|
*pVariable = *s_pCurrentPropertyVariable;
|
|
|
|
s_pCurrentSignalItem = NULL;
|
|
SAFE_DELETE( s_pCurrentPropertyVariable );
|
|
}
|
|
break;
|
|
case 5:
|
|
s_pCurrentSignalItem->RemoveParameter( s_szCurrentPropertyName );
|
|
break;
|
|
}
|
|
|
|
if( m_bCheckExport == TRUE ) {
|
|
CSignalManager::GetInstance().ExportHeader( m_szExportFileName );
|
|
SetRegistryString( HKEY_CURRENT_USER, REG_SUBKEY, "LastExportFullName", m_szExportFileName.GetBuffer() );
|
|
}
|
|
SetRegistryNumber( HKEY_CURRENT_USER, REG_SUBKEY, "ExportHeader", (DWORD)m_bCheckExport );
|
|
return true;
|
|
}
|
|
|
|
void CEventEditView_Finish::OnBnClickedButton1()
|
|
{
|
|
// TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다.
|
|
TCHAR szFilter[] = _T( "C/C++ Header File (*.h)|*.h|All Files (*.*)|*.*||" );
|
|
CFileDialog dlg( FALSE, _T("h"), _T("*.h"), OFN_HIDEREADONLY|OFN_PATHMUSTEXIST|OFN_ENABLESIZING , szFilter, this );
|
|
|
|
dlg.m_ofn.lpstrTitle = "Export Eternity ActionTool Signal Refrence Header File";
|
|
if( dlg.DoModal() == IDOK ) {
|
|
m_szExportFileName = dlg.GetPathName();
|
|
UpdateData( FALSE );
|
|
}
|
|
}
|