609 lines
18 KiB
C++
609 lines
18 KiB
C++
|
|
// EventEditView_CreateModifyParameter.cpp : <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
|
|||
|
|
//
|
|||
|
|
|
|||
|
|
#include "stdafx.h"
|
|||
|
|
#include "EtActionTool.h"
|
|||
|
|
#include "EventEditView_CreateModifyParameter.h"
|
|||
|
|
#include "resource.h"
|
|||
|
|
#include "UnionValueProperty.h"
|
|||
|
|
|
|||
|
|
|
|||
|
|
// CEventEditView_CreateModifyParameter
|
|||
|
|
|
|||
|
|
IMPLEMENT_DYNCREATE(CEventEditView_CreateModifyParameter, CFormView)
|
|||
|
|
|
|||
|
|
CEventEditView_CreateModifyParameter::CEventEditView_CreateModifyParameter()
|
|||
|
|
: CFormView(CEventEditView_CreateModifyParameter::IDD)
|
|||
|
|
, m_szParamName(_T(""))
|
|||
|
|
, m_szParamDesc(_T(""))
|
|||
|
|
, m_fValueMin(0)
|
|||
|
|
, m_fValueMax(0)
|
|||
|
|
, m_szValueData(_T(""))
|
|||
|
|
{
|
|||
|
|
m_bActivate = false;
|
|||
|
|
m_pmemDC = NULL;
|
|||
|
|
m_pdcBitmap = NULL;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
CEventEditView_CreateModifyParameter::~CEventEditView_CreateModifyParameter()
|
|||
|
|
{
|
|||
|
|
DeleteMemDC();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CEventEditView_CreateModifyParameter::DoDataExchange(CDataExchange* pDX)
|
|||
|
|
{
|
|||
|
|
CFormView::DoDataExchange(pDX);
|
|||
|
|
DDX_Control(pDX, IDC_COMBO1, m_ValueType);
|
|||
|
|
DDX_Text(pDX, IDC_EDIT1, m_szParamName);
|
|||
|
|
DDX_Text(pDX, IDC_EDIT5, m_szParamDesc);
|
|||
|
|
DDX_Text(pDX, IDC_EDIT2, m_fValueMin);
|
|||
|
|
DDX_Text(pDX, IDC_EDIT3, m_fValueMax);
|
|||
|
|
DDX_Text(pDX, IDC_EDIT4, m_szValueData);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
BEGIN_MESSAGE_MAP(CEventEditView_CreateModifyParameter, CFormView)
|
|||
|
|
ON_WM_PAINT()
|
|||
|
|
ON_WM_SIZE()
|
|||
|
|
ON_CBN_SELCHANGE(IDC_COMBO1, &CEventEditView_CreateModifyParameter::OnCbnSelchangeCombo1)
|
|||
|
|
ON_EN_CHANGE(IDC_EDIT1, &CEventEditView_CreateModifyParameter::OnEnChangeEdit1)
|
|||
|
|
END_MESSAGE_MAP()
|
|||
|
|
|
|||
|
|
|
|||
|
|
// CEventEditView_CreateModifyParameter <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
|
|||
|
|
|
|||
|
|
#ifdef _DEBUG
|
|||
|
|
void CEventEditView_CreateModifyParameter::AssertValid() const
|
|||
|
|
{
|
|||
|
|
CFormView::AssertValid();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
#ifndef _WIN32_WCE
|
|||
|
|
void CEventEditView_CreateModifyParameter::Dump(CDumpContext& dc) const
|
|||
|
|
{
|
|||
|
|
CFormView::Dump(dc);
|
|||
|
|
}
|
|||
|
|
#endif
|
|||
|
|
#endif //_DEBUG
|
|||
|
|
|
|||
|
|
|
|||
|
|
// CEventEditView_CreateModifyParameter <20><EFBFBD><DEBD><EFBFBD> ó<><C3B3><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
|
|||
|
|
|
|||
|
|
void CEventEditView_CreateModifyParameter::PreProcess()
|
|||
|
|
{
|
|||
|
|
m_szParamName = s_pCurrentPropertyVariable->GetDescription();
|
|||
|
|
if( s_pCurrentPropertyVariable->GetSubDescription() )
|
|||
|
|
m_szParamDesc = _GetSubStrByCount( 0, (char*)s_pCurrentPropertyVariable->GetSubDescription() );
|
|||
|
|
else m_szParamDesc.Empty();
|
|||
|
|
|
|||
|
|
int nCurSel = 0;
|
|||
|
|
switch( s_pCurrentPropertyVariable->GetType() ) {
|
|||
|
|
case CUnionValueProperty::Integer:
|
|||
|
|
nCurSel = 0;
|
|||
|
|
if( s_pCurrentPropertyVariable->GetSubDescription() ) {
|
|||
|
|
if( _GetSubStrByCount( 3, (char*)s_pCurrentPropertyVariable->GetSubDescription() ) ) {
|
|||
|
|
m_fValueMin = (float)( (int)atoi( _GetSubStrByCount( 1, (char*)s_pCurrentPropertyVariable->GetSubDescription() ) ) );
|
|||
|
|
m_fValueMax = (float)( (int)atoi( _GetSubStrByCount( 2, (char*)s_pCurrentPropertyVariable->GetSubDescription() ) ) );
|
|||
|
|
nCurSel = 1;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
break;
|
|||
|
|
case CUnionValueProperty::Float:
|
|||
|
|
nCurSel = 4;
|
|||
|
|
if( s_pCurrentPropertyVariable->GetSubDescription() ) {
|
|||
|
|
if( _GetSubStrByCount( 3, (char*)s_pCurrentPropertyVariable->GetSubDescription() ) ) {
|
|||
|
|
m_fValueMin = (float)atof( _GetSubStrByCount( 1, (char*)s_pCurrentPropertyVariable->GetSubDescription() ) );
|
|||
|
|
m_fValueMax = (float)atof( _GetSubStrByCount( 2, (char*)s_pCurrentPropertyVariable->GetSubDescription() ) );
|
|||
|
|
nCurSel = 5;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
break;
|
|||
|
|
case CUnionValueProperty::Color:
|
|||
|
|
nCurSel = 2;
|
|||
|
|
break;
|
|||
|
|
case CUnionValueProperty::Integer_Combo:
|
|||
|
|
if( s_pCurrentPropertyVariable->GetSubDescription() ) {
|
|||
|
|
m_szValueData.Empty();
|
|||
|
|
for( int i=0; ; i++ ) {
|
|||
|
|
const char *pStr = _GetSubStrByCount( 1+i, (char*)s_pCurrentPropertyVariable->GetSubDescription() );
|
|||
|
|
if( pStr == NULL ) break;
|
|||
|
|
else if( i > 0 ) m_szValueData += "|";
|
|||
|
|
|
|||
|
|
m_szValueData += pStr;
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
else m_szValueData.Empty();
|
|||
|
|
nCurSel = 3;
|
|||
|
|
break;
|
|||
|
|
case CUnionValueProperty::Vector3:
|
|||
|
|
nCurSel = 7;
|
|||
|
|
break;
|
|||
|
|
case CUnionValueProperty::Vector2:
|
|||
|
|
nCurSel = 6;
|
|||
|
|
break;
|
|||
|
|
case CUnionValueProperty::Vector4:
|
|||
|
|
nCurSel = 8;
|
|||
|
|
break;
|
|||
|
|
case CUnionValueProperty::Vector4Color:
|
|||
|
|
nCurSel = 9;
|
|||
|
|
break;
|
|||
|
|
case CUnionValueProperty::Boolean:
|
|||
|
|
nCurSel = 10;
|
|||
|
|
break;
|
|||
|
|
case CUnionValueProperty::String:
|
|||
|
|
nCurSel = 11;
|
|||
|
|
break;
|
|||
|
|
case CUnionValueProperty::String_FileOpen:
|
|||
|
|
if( s_pCurrentPropertyVariable->GetSubDescription() ) {
|
|||
|
|
m_szValueData.Empty();
|
|||
|
|
for( int i=0; ; i++ ) {
|
|||
|
|
const char *pStr = _GetSubStrByCount( 1+i, (char*)s_pCurrentPropertyVariable->GetSubDescription() );
|
|||
|
|
if( pStr == NULL ) break;
|
|||
|
|
else if( i > 0 ) m_szValueData += "|";
|
|||
|
|
|
|||
|
|
m_szValueData += pStr;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
else m_szValueData.Empty();
|
|||
|
|
nCurSel = 12;
|
|||
|
|
break;
|
|||
|
|
case CUnionValueProperty::Pointer:
|
|||
|
|
if( s_pCurrentPropertyVariable->GetSubDescription() ) {
|
|||
|
|
m_szValueData.Empty();
|
|||
|
|
for( int i=0; ; i++ ) {
|
|||
|
|
const char *pStr = _GetSubStrByCount( 1+i, (char*)s_pCurrentPropertyVariable->GetSubDescription() );
|
|||
|
|
if( pStr == NULL ) break;
|
|||
|
|
else if( i > 0 ) m_szValueData += "|";
|
|||
|
|
|
|||
|
|
m_szValueData += pStr;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
else m_szValueData.Empty();
|
|||
|
|
nCurSel = 13;
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
m_ValueType.SetCurSel( nCurSel );
|
|||
|
|
|
|||
|
|
EnableAdditionalControl( nCurSel );
|
|||
|
|
UpdateData( FALSE );
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
bool CEventEditView_CreateModifyParameter::PostProcess()
|
|||
|
|
{
|
|||
|
|
UpdateData();
|
|||
|
|
if( m_szParamName.IsEmpty() ) {
|
|||
|
|
MessageBox( "<EFBFBD≯<EFBFBD><EFBFBD><EFBFBD> <20>Է<EFBFBD><D4B7><EFBFBD> <20>ּ<EFBFBD><D6BC><EFBFBD>~", "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>", MB_OK );
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
if( m_szParamDesc.IsEmpty() ) {
|
|||
|
|
MessageBox( "<EFBFBD>ο<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Է<EFBFBD><D4B7><EFBFBD> <20>ּ<EFBFBD><D6BC><EFBFBD>", "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>", MB_OK );
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
bool bImpossibleChar = false;
|
|||
|
|
for( int i=0; i<m_szParamName.GetLength(); i++ ) {
|
|||
|
|
if( m_szParamName[i] < 'A' || m_szParamName[i] > 'z' ) {
|
|||
|
|
bImpossibleChar = true;
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
if( bImpossibleChar ) {
|
|||
|
|
MessageBox( "<EFBFBD≯<EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>Ұ<EFBFBD><D2B0><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ڰ<EFBFBD> <20>ֽ<EFBFBD><D6BD>ϴ<EFBFBD>.", "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>", MB_OK );
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
/*
|
|||
|
|
bImpossibleChar = false;
|
|||
|
|
for( int i=0; i<m_szParamDesc.GetLength(); i++ ) {
|
|||
|
|
if( m_szParamDesc[i] < 'A' || m_szParamDesc[i] > 'z' ) {
|
|||
|
|
bImpossibleChar = true;
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
if( bImpossibleChar ) {
|
|||
|
|
MessageBox( "<EFBFBD>ο<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20>Ұ<EFBFBD><D2B0><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ڰ<EFBFBD> <20>ֽ<EFBFBD><D6BD>ϴ<EFBFBD>.", "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>", MB_OK );
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
|
|||
|
|
if( s_pCurrentSignalItem->IsExistParameter( m_szParamName, s_szCurrentPropertyName ) == true ) {
|
|||
|
|
MessageBox( "<EFBFBD>ߺ<EFBFBD><EFBFBD>Ǵ<EFBFBD> <20≯<EFBFBD><CCB8><EFBFBD> <20>ֽ<EFBFBD><D6BD>ϴ<EFBFBD>.", "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>", MB_OK );
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
switch( m_ValueType.GetCurSel() ) {
|
|||
|
|
case 1:
|
|||
|
|
{
|
|||
|
|
bool bFlag = true;
|
|||
|
|
if( (int)m_fValueMin >= (int)m_fValueMax ) bFlag = false;
|
|||
|
|
if( (int)m_fValueMin < INT_MIN ) bFlag = false;
|
|||
|
|
if( (int)m_fValueMin > INT_MAX ) bFlag = false;
|
|||
|
|
if( bFlag == false ) {
|
|||
|
|
MessageBox( "<EFBFBD>ִ<EFBFBD> <20>ּҰ<D6BC><D2B0><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ּ<EFBFBD><D6BC><EFBFBD>.", "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>", MB_OK );
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
break;
|
|||
|
|
case 3:
|
|||
|
|
{
|
|||
|
|
bool bFlag = true;
|
|||
|
|
if( m_szValueData.IsEmpty() ) bFlag = false;
|
|||
|
|
|
|||
|
|
if( bFlag == true ) {
|
|||
|
|
int nCount = 0;
|
|||
|
|
const char *pPtr;
|
|||
|
|
for( int i=0; ; i++ ) {
|
|||
|
|
pPtr = _GetSubStrByCount( i, m_szValueData.GetBuffer() );
|
|||
|
|
if( pPtr == NULL ) break;
|
|||
|
|
nCount++;
|
|||
|
|
}
|
|||
|
|
if( nCount < 2 ) bFlag = false;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if( bFlag == false ) {
|
|||
|
|
MessageBox( "<EFBFBD><EFBFBD><EFBFBD>ڽ<EFBFBD> <20><>Ʈ<EFBFBD><C6AE><EFBFBD><EFBFBD> <20>Է<EFBFBD><D4B7><EFBFBD> <20>ּ<EFBFBD><D6BC><EFBFBD>", "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>", MB_OK );
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
break;
|
|||
|
|
case 5:
|
|||
|
|
{
|
|||
|
|
bool bFlag = true;
|
|||
|
|
if( m_fValueMin >= m_fValueMax ) bFlag = false;
|
|||
|
|
// if( m_fValueMin < FLT_MIN ) bFlag = false;
|
|||
|
|
// if( m_fValueMax > FLT_MAX ) bFlag = false;
|
|||
|
|
if( bFlag == false ) {
|
|||
|
|
MessageBox( "<EFBFBD>ִ<EFBFBD> <20>ּҰ<D6BC><D2B0><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ּ<EFBFBD><D6BC><EFBFBD>.", "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>", MB_OK );
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
switch( m_ValueType.GetCurSel() ) {
|
|||
|
|
case 0:
|
|||
|
|
s_pCurrentPropertyVariable->ChangeType( CUnionValueProperty::Integer );
|
|||
|
|
s_pCurrentPropertyVariable->SetSubDescription( m_szParamDesc.GetBuffer(), true );
|
|||
|
|
break;
|
|||
|
|
case 1:
|
|||
|
|
{
|
|||
|
|
s_pCurrentPropertyVariable->ChangeType( CUnionValueProperty::Integer );
|
|||
|
|
CString szStr;
|
|||
|
|
szStr.Format( "%s|%d|%d|1", m_szParamDesc, (int)m_fValueMin, (int)m_fValueMax );
|
|||
|
|
s_pCurrentPropertyVariable->SetSubDescription( szStr.GetBuffer(), true );
|
|||
|
|
}
|
|||
|
|
break;
|
|||
|
|
case 2:
|
|||
|
|
{
|
|||
|
|
s_pCurrentPropertyVariable->ChangeType( CUnionValueProperty::Color );
|
|||
|
|
s_pCurrentPropertyVariable->SetSubDescription( m_szParamDesc.GetBuffer(), true );
|
|||
|
|
}
|
|||
|
|
break;
|
|||
|
|
case 3:
|
|||
|
|
{
|
|||
|
|
s_pCurrentPropertyVariable->ChangeType( CUnionValueProperty::Integer_Combo );
|
|||
|
|
CString szStr;
|
|||
|
|
szStr.Format( "%s|%s", m_szParamDesc, m_szValueData );
|
|||
|
|
s_pCurrentPropertyVariable->SetSubDescription( szStr.GetBuffer(), true );
|
|||
|
|
}
|
|||
|
|
break;
|
|||
|
|
case 4:
|
|||
|
|
s_pCurrentPropertyVariable->ChangeType( CUnionValueProperty::Float );
|
|||
|
|
s_pCurrentPropertyVariable->SetSubDescription( m_szParamDesc.GetBuffer(), true );
|
|||
|
|
break;
|
|||
|
|
case 5:
|
|||
|
|
{
|
|||
|
|
s_pCurrentPropertyVariable->ChangeType( CUnionValueProperty::Float );
|
|||
|
|
CString szStr;
|
|||
|
|
szStr.Format( "%s|%.f|%.f|0.0001f", m_szParamDesc, m_fValueMin, m_fValueMax );
|
|||
|
|
s_pCurrentPropertyVariable->SetSubDescription( szStr.GetBuffer(), true );
|
|||
|
|
}
|
|||
|
|
break;
|
|||
|
|
case 6:
|
|||
|
|
s_pCurrentPropertyVariable->ChangeType( CUnionValueProperty::Vector2 );
|
|||
|
|
s_pCurrentPropertyVariable->SetSubDescription( m_szParamDesc.GetBuffer(), true );
|
|||
|
|
break;
|
|||
|
|
case 7:
|
|||
|
|
s_pCurrentPropertyVariable->ChangeType( CUnionValueProperty::Vector3 );
|
|||
|
|
s_pCurrentPropertyVariable->SetSubDescription( m_szParamDesc.GetBuffer(), true );
|
|||
|
|
break;
|
|||
|
|
case 8:
|
|||
|
|
s_pCurrentPropertyVariable->ChangeType( CUnionValueProperty::Vector4 );
|
|||
|
|
s_pCurrentPropertyVariable->SetSubDescription( m_szParamDesc.GetBuffer(), true );
|
|||
|
|
break;
|
|||
|
|
case 9:
|
|||
|
|
s_pCurrentPropertyVariable->ChangeType( CUnionValueProperty::Vector4Color );
|
|||
|
|
s_pCurrentPropertyVariable->SetSubDescription( m_szParamDesc.GetBuffer(), true );
|
|||
|
|
break;
|
|||
|
|
case 10:
|
|||
|
|
s_pCurrentPropertyVariable->ChangeType( CUnionValueProperty::Boolean );
|
|||
|
|
s_pCurrentPropertyVariable->SetSubDescription( m_szParamDesc.GetBuffer(), true );
|
|||
|
|
break;
|
|||
|
|
case 11:
|
|||
|
|
s_pCurrentPropertyVariable->ChangeType( CUnionValueProperty::String );
|
|||
|
|
s_pCurrentPropertyVariable->SetSubDescription( m_szParamDesc.GetBuffer(), true );
|
|||
|
|
break;
|
|||
|
|
case 12:
|
|||
|
|
{
|
|||
|
|
s_pCurrentPropertyVariable->ChangeType( CUnionValueProperty::String_FileOpen );
|
|||
|
|
CString szStr;
|
|||
|
|
szStr.Format( "%s|%s", m_szParamDesc, m_szValueData );
|
|||
|
|
s_pCurrentPropertyVariable->SetSubDescription( szStr.GetBuffer(), true );
|
|||
|
|
}
|
|||
|
|
break;
|
|||
|
|
case 13:
|
|||
|
|
{
|
|||
|
|
s_pCurrentPropertyVariable->ChangeType( CUnionValueProperty::Pointer );
|
|||
|
|
CString szStr;
|
|||
|
|
szStr.Format( "%s|%s", m_szParamDesc, m_szValueData );
|
|||
|
|
s_pCurrentPropertyVariable->SetSubDescription( szStr.GetBuffer(), true );
|
|||
|
|
}
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
s_pCurrentPropertyVariable->SetDescription( m_szParamName );
|
|||
|
|
|
|||
|
|
return true;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CEventEditView_CreateModifyParameter::OnInitialUpdate()
|
|||
|
|
{
|
|||
|
|
__super::OnInitialUpdate();
|
|||
|
|
|
|||
|
|
// TODO: <20><><EFBFBD> Ư<><C6AF>ȭ<EFBFBD><C8AD> <20>ڵ带 <20>߰<EFBFBD> <20><>/<2F>Ǵ<EFBFBD> <20>⺻ Ŭ<><C5AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ȣ<><C8A3><EFBFBD>մϴ<D5B4>.
|
|||
|
|
if( m_bActivate == true ) return;
|
|||
|
|
m_bActivate = true;
|
|||
|
|
|
|||
|
|
m_ValueType.AddString( "INT" );
|
|||
|
|
m_ValueType.AddString( "INT - min,max" );
|
|||
|
|
m_ValueType.AddString( "INT - color" );
|
|||
|
|
m_ValueType.AddString( "INT - combo" );
|
|||
|
|
m_ValueType.AddString( "FLOAT" );
|
|||
|
|
m_ValueType.AddString( "FLOAT - min,max" );
|
|||
|
|
m_ValueType.AddString( "VECTOR2" );
|
|||
|
|
m_ValueType.AddString( "VECTOR3" );
|
|||
|
|
m_ValueType.AddString( "VECTOR4" );
|
|||
|
|
m_ValueType.AddString( "VECTOR4 - color" );
|
|||
|
|
m_ValueType.AddString( "BOOL" );
|
|||
|
|
m_ValueType.AddString( "STRING" );
|
|||
|
|
m_ValueType.AddString( "STRING - FileFind" );
|
|||
|
|
m_ValueType.AddString( "Custom Define" );
|
|||
|
|
|
|||
|
|
m_ValueType.SetCurSel(0);
|
|||
|
|
|
|||
|
|
EnableAdditionalControl( -1 );
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CEventEditView_CreateModifyParameter::CreateMemDC()
|
|||
|
|
{
|
|||
|
|
if( m_pdcBitmap || m_pmemDC ) return;
|
|||
|
|
|
|||
|
|
m_pmemDC = new CDC;
|
|||
|
|
m_pdcBitmap = new CBitmap;
|
|||
|
|
|
|||
|
|
CRect rcRect = CRect( 0, 0, 210, 110 );
|
|||
|
|
|
|||
|
|
CDC *pDC = GetDC();
|
|||
|
|
m_pmemDC->CreateCompatibleDC( pDC );
|
|||
|
|
m_pdcBitmap->CreateCompatibleBitmap( pDC, rcRect.Width(), rcRect.Height() );
|
|||
|
|
ReleaseDC( pDC );
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CEventEditView_CreateModifyParameter::DeleteMemDC()
|
|||
|
|
{
|
|||
|
|
if( m_pdcBitmap ) {
|
|||
|
|
m_pdcBitmap->DeleteObject();
|
|||
|
|
SAFE_DELETE( m_pdcBitmap );
|
|||
|
|
}
|
|||
|
|
if( m_pmemDC ) {
|
|||
|
|
m_pmemDC->DeleteDC();
|
|||
|
|
SAFE_DELETE( m_pmemDC );
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
void CEventEditView_CreateModifyParameter::OnPaint()
|
|||
|
|
{
|
|||
|
|
CPaintDC dc(this); // device context for painting
|
|||
|
|
CreateMemDC();
|
|||
|
|
|
|||
|
|
CRect rcRect = CRect( 0, 0, 210, 110 );
|
|||
|
|
|
|||
|
|
CBitmap *pOldBitmap;
|
|||
|
|
pOldBitmap = m_pmemDC->SelectObject( m_pdcBitmap );
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD><EFBFBD>ü<EFBFBD>챸
|
|||
|
|
m_pmemDC->FillSolidRect( &rcRect, RGB(247, 243, 233) );
|
|||
|
|
|
|||
|
|
// ī<>װ<EFBFBD><D7B0><EFBFBD> <20><> ä<><C3A4><EFBFBD>ְ<EFBFBD>
|
|||
|
|
CRect rcCategory = CRect( 0, 0, 15, 110 );
|
|||
|
|
m_pmemDC->FillSolidRect( &rcCategory, RGB(182, 210, 189) );
|
|||
|
|
rcCategory = CRect( 0, 0, 210, 15 );
|
|||
|
|
m_pmemDC->FillSolidRect( &rcCategory, RGB(182, 210, 189) );
|
|||
|
|
|
|||
|
|
// ī<><C4AB><EFBFBD>ڸ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
rcCategory = CRect( 0, 15, 210, 30 );
|
|||
|
|
for( int i=0; i<7; i++ ) {
|
|||
|
|
m_pmemDC->Draw3dRect( &rcCategory, RGB(182, 210, 189), RGB(182, 210, 189) );
|
|||
|
|
rcCategory.top += 28;
|
|||
|
|
rcCategory.bottom += 28;
|
|||
|
|
}
|
|||
|
|
// ī<>װ<EFBFBD><D7B0><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
rcCategory = CRect( 100, 0, 210, 111 );
|
|||
|
|
m_pmemDC->Draw3dRect( &rcCategory, RGB(182, 210, 189), RGB(182, 210, 189) );
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ְ<EFBFBD>
|
|||
|
|
rcCategory = CRect( 209, 15, 210, 110 );
|
|||
|
|
m_pmemDC->Draw3dRect( &rcCategory, RGB(247, 243, 233), RGB(247, 243, 233) );
|
|||
|
|
|
|||
|
|
// <20>۾<EFBFBD><DBBE><EFBFBD><EFBFBD>ش<EFBFBD>.
|
|||
|
|
m_pmemDC->SetBkMode( TRANSPARENT );
|
|||
|
|
m_pmemDC->SelectStockObject( DEFAULT_GUI_FONT );
|
|||
|
|
|
|||
|
|
rcCategory = CRect( 15, 2, 210, 15 );
|
|||
|
|
m_pmemDC->SetTextColor( RGB(100,100,100) );
|
|||
|
|
m_pmemDC->DrawText( "Parameter", &rcCategory, DT_SINGLELINE | DT_LEFT | DT_VCENTER );
|
|||
|
|
|
|||
|
|
rcCategory = CRect( 20, 17, 100, 29 );
|
|||
|
|
m_pmemDC->SetTextColor( RGB(50,50,50) );
|
|||
|
|
m_pmemDC->DrawText( m_szParamName, &rcCategory, DT_SINGLELINE | DT_LEFT | DT_VCENTER );
|
|||
|
|
|
|||
|
|
rcCategory = CRect( 105, 17, 200, 29 );
|
|||
|
|
CString szValue;
|
|||
|
|
switch( m_ValueType.GetCurSel() ) {
|
|||
|
|
case 0: szValue = "0"; break;
|
|||
|
|
case 4: szValue = "0.000"; break;
|
|||
|
|
case 1:
|
|||
|
|
case 5:
|
|||
|
|
{
|
|||
|
|
CRect rcTemp = CRect( 150, 17, 210, 28 );
|
|||
|
|
m_pmemDC->Draw3dRect( &rcTemp, RGB(0, 0, 0), RGB(255,255,255) );
|
|||
|
|
rcTemp.DeflateRect( 1, 1, 1, 1 );
|
|||
|
|
m_pmemDC->FillSolidRect( &rcTemp, RGB( 255,255,255 ) );
|
|||
|
|
rcTemp.DeflateRect( 1, 1, 40, 1 );
|
|||
|
|
m_pmemDC->FillSolidRect( &rcTemp, RGB( 80, 80, 80 ) );
|
|||
|
|
if( m_ValueType.GetCurSel() == 1 ) szValue = "0";
|
|||
|
|
else szValue = "0.000";
|
|||
|
|
}
|
|||
|
|
break;
|
|||
|
|
case 2:
|
|||
|
|
case 9:
|
|||
|
|
{
|
|||
|
|
CRect rcTemp = CRect( 104, 17, 127, 28 );
|
|||
|
|
m_pmemDC->Draw3dRect( &rcTemp, RGB(0, 0, 0), RGB(0,0,0) );
|
|||
|
|
rcTemp.DeflateRect( 1, 1, 1, 1 );
|
|||
|
|
m_pmemDC->FillSolidRect( &rcTemp, RGB( 255,0,0 ) );
|
|||
|
|
rcCategory.left += 28;
|
|||
|
|
|
|||
|
|
if( m_ValueType.GetCurSel() == 2 ) szValue = "255; 0; 0";
|
|||
|
|
else szValue = "1.00; 0.00; 0.00; 1.00";
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
break;
|
|||
|
|
case 6: szValue = "0.50; 0.30"; break;
|
|||
|
|
case 7: szValue = "0.50; 0.30; 0.70"; break;
|
|||
|
|
case 8: szValue = "0.50; 0.30; 0.70; 0.90"; break;
|
|||
|
|
case 10: szValue = "True"; break;
|
|||
|
|
case 11: szValue = "Hello World!"; break;
|
|||
|
|
case 12:
|
|||
|
|
{
|
|||
|
|
CRect rcTemp = CRect( 196, 17, 210, 28 );
|
|||
|
|
m_pmemDC->Draw3dRect( &rcTemp, RGB(255,255,255), RGB(0,0,0) );
|
|||
|
|
rcTemp.DeflateRect( 1, 1, 1, 1 );
|
|||
|
|
m_pmemDC->FillSolidRect( &rcTemp, RGB( 180,180,180 ) );
|
|||
|
|
|
|||
|
|
m_pmemDC->SetTextColor( RGB(0,0,0) );
|
|||
|
|
rcTemp.DeflateRect( 1, 1, 1, 1 );
|
|||
|
|
m_pmemDC->DrawText( "...", &rcTemp, DT_SINGLELINE | DT_CENTER | DT_VCENTER );
|
|||
|
|
|
|||
|
|
szValue = "Eternity.skn";
|
|||
|
|
}
|
|||
|
|
break;
|
|||
|
|
case 3:
|
|||
|
|
{
|
|||
|
|
CRect rcTemp = CRect( 105, 29, 208, 100 );
|
|||
|
|
m_pmemDC->Draw3dRect( &rcTemp, RGB(0,0,0), RGB(255,255,255) );
|
|||
|
|
rcTemp.DeflateRect( 1, 1, 1, 1 );
|
|||
|
|
m_pmemDC->FillSolidRect( &rcTemp, RGB( 255,255,255) );
|
|||
|
|
|
|||
|
|
char *szTemp[] = { "Stand", "Run", "Walk", "Die", "Down" };
|
|||
|
|
rcTemp = CRect( 107, 30, 208, 41 );
|
|||
|
|
for( int i=0; i<5; i++ ) {
|
|||
|
|
m_pmemDC->SetTextColor( RGB(50,50,50) );
|
|||
|
|
m_pmemDC->DrawText( szTemp[i], &rcTemp, DT_SINGLELINE | DT_LEFT | DT_VCENTER );
|
|||
|
|
rcTemp.top += 13;
|
|||
|
|
rcTemp.bottom += 13;
|
|||
|
|
}
|
|||
|
|
szValue = "Attack";
|
|||
|
|
}
|
|||
|
|
break;
|
|||
|
|
case 13: szValue = "Custom Defeine"; break;
|
|||
|
|
}
|
|||
|
|
m_pmemDC->SetTextColor( RGB(50,50,50) );
|
|||
|
|
m_pmemDC->DrawText( szValue, &rcCategory, DT_SINGLELINE | DT_LEFT | DT_VCENTER );
|
|||
|
|
|
|||
|
|
|
|||
|
|
CRect rcStatic, rcWnd;
|
|||
|
|
CPoint cPoint;
|
|||
|
|
CWnd *pStatic = GetDlgItem( IDC_STATIC_PREVIEW );
|
|||
|
|
pStatic->GetWindowRect( &rcStatic );
|
|||
|
|
GetWindowRect( &rcWnd );
|
|||
|
|
cPoint.x = rcStatic.left - rcWnd.left;
|
|||
|
|
cPoint.y = rcStatic.top - rcWnd.top;
|
|||
|
|
cPoint += CPoint( 15, 25 );
|
|||
|
|
|
|||
|
|
|
|||
|
|
dc.BitBlt( cPoint.x, cPoint.y, rcRect.Width(), rcRect.Height(), m_pmemDC, 0, 0, SRCCOPY );
|
|||
|
|
|
|||
|
|
m_pmemDC->SelectObject(pOldBitmap);
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CEventEditView_CreateModifyParameter::OnSize(UINT nType, int cx, int cy)
|
|||
|
|
{
|
|||
|
|
__super::OnSize(nType, cx, cy);
|
|||
|
|
|
|||
|
|
DeleteMemDC();
|
|||
|
|
CreateMemDC();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CEventEditView_CreateModifyParameter::EnableAdditionalControl( int nCurSel )
|
|||
|
|
{
|
|||
|
|
std::vector<int> nVecEnableList;
|
|||
|
|
|
|||
|
|
if( nCurSel > -1 ) EnableAdditionalControl( -1 );
|
|||
|
|
switch( nCurSel ) {
|
|||
|
|
case -1:
|
|||
|
|
nVecEnableList.push_back( IDC_STATIC_ADDITIONAL );
|
|||
|
|
nVecEnableList.push_back( IDC_STATIC_MIN );
|
|||
|
|
nVecEnableList.push_back( IDC_STATIC_MAX );
|
|||
|
|
nVecEnableList.push_back( IDC_STATIC_DATA );
|
|||
|
|
nVecEnableList.push_back( IDC_EDIT2 );
|
|||
|
|
nVecEnableList.push_back( IDC_EDIT3 );
|
|||
|
|
nVecEnableList.push_back( IDC_EDIT4 );
|
|||
|
|
break;
|
|||
|
|
case 1:
|
|||
|
|
case 5:
|
|||
|
|
nVecEnableList.push_back( IDC_STATIC_ADDITIONAL );
|
|||
|
|
nVecEnableList.push_back( IDC_STATIC_MIN );
|
|||
|
|
nVecEnableList.push_back( IDC_STATIC_MAX );
|
|||
|
|
nVecEnableList.push_back( IDC_EDIT2 );
|
|||
|
|
nVecEnableList.push_back( IDC_EDIT3 );
|
|||
|
|
break;
|
|||
|
|
case 3:
|
|||
|
|
case 12:
|
|||
|
|
nVecEnableList.push_back( IDC_STATIC_ADDITIONAL );
|
|||
|
|
nVecEnableList.push_back( IDC_STATIC_DATA );
|
|||
|
|
nVecEnableList.push_back( IDC_EDIT4 );
|
|||
|
|
break;
|
|||
|
|
case 13:
|
|||
|
|
nVecEnableList.push_back( IDC_STATIC_ADDITIONAL );
|
|||
|
|
nVecEnableList.push_back( IDC_STATIC_DATA );
|
|||
|
|
nVecEnableList.push_back( IDC_EDIT4 );
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
for( DWORD i=0; i<nVecEnableList.size(); i++ ) {
|
|||
|
|
GetDlgItem( nVecEnableList[i] )->ShowWindow( ( nCurSel == -1 ) ? SW_HIDE : SW_SHOW );
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
void CEventEditView_CreateModifyParameter::OnCbnSelchangeCombo1()
|
|||
|
|
{
|
|||
|
|
// TODO: <20><><EFBFBD> <20><>Ʈ<EFBFBD><C6AE> <20>˸<EFBFBD> ó<><C3B3><EFBFBD><EFBFBD> <20>ڵ带 <20>߰<EFBFBD><DFB0>մϴ<D5B4>.
|
|||
|
|
EnableAdditionalControl( m_ValueType.GetCurSel() );
|
|||
|
|
UpdateData();
|
|||
|
|
Invalidate( FALSE );
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CEventEditView_CreateModifyParameter::OnEnChangeEdit1()
|
|||
|
|
{
|
|||
|
|
UpdateData();
|
|||
|
|
Invalidate( FALSE );
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
BOOL CEventEditView_CreateModifyParameter::PreTranslateMessage(MSG* pMsg)
|
|||
|
|
{
|
|||
|
|
// TODO: Add your specialized code here and/or call the base class
|
|||
|
|
return FALSE;
|
|||
|
|
|
|||
|
|
// return __super::PreTranslateMessage(pMsg);
|
|||
|
|
}
|