DragonNest/Client/EtActionTool/EventEditView_SelectParameter.cpp

181 lines
4.6 KiB
C++
Raw Normal View History

2024-12-19 09:48:26 +08:00
// EventEditView_SelectParameter.cpp : <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
//
#include "stdafx.h"
#include "EtActionTool.h"
#include "EventEditView_SelectParameter.h"
#include "UnionValueProperty.h"
// CEventEditView_SelectParameter
IMPLEMENT_DYNCREATE(CEventEditView_SelectParameter, CFormView)
CEventEditView_SelectParameter::CEventEditView_SelectParameter()
: CFormView(CEventEditView_SelectParameter::IDD)
{
m_bActivate = false;
}
CEventEditView_SelectParameter::~CEventEditView_SelectParameter()
{
}
void CEventEditView_SelectParameter::DoDataExchange(CDataExchange* pDX)
{
CFormView::DoDataExchange(pDX);
DDX_Control(pDX, IDC_LIST1, m_ListCtrl);
}
BEGIN_MESSAGE_MAP(CEventEditView_SelectParameter, CFormView)
END_MESSAGE_MAP()
// CEventEditView_SelectParameter <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
#ifdef _DEBUG
void CEventEditView_SelectParameter::AssertValid() const
{
CFormView::AssertValid();
}
#ifndef _WIN32_WCE
void CEventEditView_SelectParameter::Dump(CDumpContext& dc) const
{
CFormView::Dump(dc);
}
#endif
#endif //_DEBUG
// CEventEditView_SelectParameter <20>޽<EFBFBD><DEBD><EFBFBD> ó<><C3B3><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
CWizardCommon::VIEW_TYPE CEventEditView_SelectParameter::GetNextView()
{
switch( s_nStartType ) {
case 4: return CREATE_PARAMETER;
case 5: return FINISH;
default:
assert(0);
}
return UNKNOWN_TYPE;
}
bool ParameterCompareProc( CUnionValueProperty *pVariable1, CUnionValueProperty *pVariable2 )
{
return ( strcmp( pVariable1->GetDescription(), pVariable2->GetDescription() ) > 0 ) ? false : true;
}
void CEventEditView_SelectParameter::PreProcess()
{
m_ListCtrl.DeleteAllItems();
std::vector<CUnionValueProperty *> pVecList;
for( DWORD i=0; i<s_pCurrentSignalItem->GetParameterCount(); i++ ) {
pVecList.push_back( s_pCurrentSignalItem->GetParameter(i) );
}
std::sort( pVecList.begin(), pVecList.end(), ParameterCompareProc );
CString szStr;
for( DWORD i=0; i<pVecList.size(); i++ ) {
CUnionValueProperty *pItem = pVecList[i];
m_ListCtrl.InsertItem( i, pItem->GetDescription() );
m_ListCtrl.SetItemText( i, 1, szStr );
switch( pItem->GetType() ) {
case CUnionValueProperty::Integer:
szStr = "INT";
if( _GetSubStrByCount( 3, (char*)pItem->GetSubDescription() ) ) szStr += " - min, max";
break;
case CUnionValueProperty::Float:
szStr = "FLOAT";
if( _GetSubStrByCount( 3, (char*)pItem->GetSubDescription() ) ) szStr += " - min, max";
break;
case CUnionValueProperty::Color:
szStr = "INT - Color";
break;
case CUnionValueProperty::Integer_Combo:
szStr = "INT - Combo";
break;
case CUnionValueProperty::Vector3:
szStr = "VECTOR3";
break;
case CUnionValueProperty::Vector2:
szStr = "VECTOR2";
break;
case CUnionValueProperty::Vector4:
szStr = "VECTOR4";
break;
case CUnionValueProperty::Vector4Color:
szStr = "VECTOR4 - Color";
break;
case CUnionValueProperty::Boolean:
szStr = "BOOL";
break;
case CUnionValueProperty::String:
szStr = "STRING";
break;
case CUnionValueProperty::String_FileOpen:
szStr = "STRING - FileName";
break;
case CUnionValueProperty::Pointer:
szStr = "PTR - Use Custom";
break;
}
m_ListCtrl.SetItemText( i, 1, szStr );
m_ListCtrl.SetItemText( i, 2, _GetSubStrByCount( 0, (char*)pItem->GetSubDescription() ) );
}
}
bool CEventEditView_SelectParameter::PostProcess()
{
POSITION p = m_ListCtrl.GetFirstSelectedItemPosition();
std::vector<CString> szVecSelectItemList;
while(p) {
int nIndex = m_ListCtrl.GetNextSelectedItem(p);
szVecSelectItemList.push_back( m_ListCtrl.GetItemText( nIndex, 0 ) );
}
if( szVecSelectItemList.size() == 0 ) {
MessageBox( "<EFBFBD><EFBFBD>ĥ<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>~", "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>", MB_OK );
return false;
}
switch( s_nStartType ) {
case 4:
{
CUnionValueProperty *pVariable = s_pCurrentSignalItem->GetParameterFromName( szVecSelectItemList[0] );
s_szCurrentPropertyName = pVariable->GetDescription();
*s_pCurrentPropertyVariable = *pVariable;
}
break;
case 5:
{
CUnionValueProperty *pVariable = s_pCurrentSignalItem->GetParameterFromName( szVecSelectItemList[0] );
s_szCurrentPropertyName = pVariable->GetDescription();
}
break;
}
return true;
}
void CEventEditView_SelectParameter::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_ListCtrl.m_nColorColumnIndex = -1;
m_ListCtrl.AddColumn( "Name", 150 );
m_ListCtrl.AddColumn( "Type", 100, LVCFMT_CENTER );
m_ListCtrl.AddColumn( "Description", 220, LVCFMT_LEFT );
m_ListCtrl.SetExtendedStyle( LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT|LVS_EX_FLATSB );
}