171 lines
4.6 KiB
C++
171 lines
4.6 KiB
C++
|
|
// EventEdit_SelectControl.cpp : implementation file
|
|||
|
|
//
|
|||
|
|
|
|||
|
|
#include "stdafx.h"
|
|||
|
|
#include "EtWorldPainter.h"
|
|||
|
|
#include "EventEdit_SelectControl.h"
|
|||
|
|
#include "EventSignalManager.h"
|
|||
|
|
#include "UnionValueProperty.h"
|
|||
|
|
|
|||
|
|
|
|||
|
|
// CEventEdit_SelectControl
|
|||
|
|
|
|||
|
|
IMPLEMENT_DYNCREATE(CEventEdit_SelectControl, CFormView)
|
|||
|
|
|
|||
|
|
CEventEdit_SelectControl::CEventEdit_SelectControl()
|
|||
|
|
: CFormView(CEventEdit_SelectControl::IDD)
|
|||
|
|
{
|
|||
|
|
m_bActivate = false;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
CEventEdit_SelectControl::~CEventEdit_SelectControl()
|
|||
|
|
{
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CEventEdit_SelectControl::DoDataExchange(CDataExchange* pDX)
|
|||
|
|
{
|
|||
|
|
CFormView::DoDataExchange(pDX);
|
|||
|
|
DDX_Control(pDX, IDC_LIST1, m_ListCtrl);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
BEGIN_MESSAGE_MAP(CEventEdit_SelectControl, CFormView)
|
|||
|
|
END_MESSAGE_MAP()
|
|||
|
|
|
|||
|
|
|
|||
|
|
// CEventEdit_SelectControl diagnostics
|
|||
|
|
|
|||
|
|
#ifdef _DEBUG
|
|||
|
|
void CEventEdit_SelectControl::AssertValid() const
|
|||
|
|
{
|
|||
|
|
CFormView::AssertValid();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
#ifndef _WIN32_WCE
|
|||
|
|
void CEventEdit_SelectControl::Dump(CDumpContext& dc) const
|
|||
|
|
{
|
|||
|
|
CFormView::Dump(dc);
|
|||
|
|
}
|
|||
|
|
#endif
|
|||
|
|
#endif //_DEBUG
|
|||
|
|
|
|||
|
|
|
|||
|
|
// CEventEdit_SelectControl message handlers
|
|||
|
|
|
|||
|
|
void CEventEdit_SelectControl::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.AddColumn( "Name", 255 );
|
|||
|
|
m_ListCtrl.AddColumn( "Color", 50, LVCFMT_CENTER );
|
|||
|
|
m_ListCtrl.AddColumn( "Parameter Count", 100, LVCFMT_RIGHT );
|
|||
|
|
|
|||
|
|
m_ListCtrl.SetExtendedStyle( LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT|LVS_EX_FLATSB );
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
bool SignalCompareProc( CEventSignalItem *pItem1, CEventSignalItem *pItem2 )
|
|||
|
|
{
|
|||
|
|
return ( strcmp( pItem1->GetName(), pItem2->GetName() ) > 0 ) ? false : true;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void CEventEdit_SelectControl::PreProcess()
|
|||
|
|
{
|
|||
|
|
m_ListCtrl.DeleteAllItems();
|
|||
|
|
|
|||
|
|
std::vector<CEventSignalItem *> pVecList;
|
|||
|
|
for( DWORD i=0; i<CEventSignalManager::GetInstance().GetSignalItemCount(); i++ ) {
|
|||
|
|
pVecList.push_back( CEventSignalManager::GetInstance().GetSignalItem(i) );
|
|||
|
|
}
|
|||
|
|
std::sort( pVecList.begin(), pVecList.end(), SignalCompareProc );
|
|||
|
|
|
|||
|
|
CString szStr;
|
|||
|
|
for( DWORD i=0; i<pVecList.size(); i++ ) {
|
|||
|
|
CEventSignalItem *pItem = pVecList[i];
|
|||
|
|
m_ListCtrl.InsertItem( i, pItem->GetName() );
|
|||
|
|
|
|||
|
|
szStr.Format( "%d|%d|%d|%d", pItem->GetBackgroundColor(), pItem->GetBackgroundSideColor(), pItem->GetSelectColor(), pItem->GetSelectSideColor() );
|
|||
|
|
m_ListCtrl.SetItemText( i, 1, szStr );
|
|||
|
|
|
|||
|
|
szStr.Format( "%d", pItem->GetParameterCount() );
|
|||
|
|
m_ListCtrl.SetItemText( i, 2, szStr );
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
bool CEventEdit_SelectControl::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;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD>ؼ<EFBFBD> <20>־<EFBFBD><D6BE>ش<EFBFBD>.
|
|||
|
|
switch( s_nStartType ) {
|
|||
|
|
case 1: // Modify
|
|||
|
|
{
|
|||
|
|
// <20><><EFBFBD>Ұ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ؼ<EFBFBD> <20>־<EFBFBD><D6BE>ش<EFBFBD>.
|
|||
|
|
CEventSignalItem *pItem = CEventSignalManager::GetInstance().GetSignalItemFromName( szVecSelectItemList[0] );
|
|||
|
|
if( pItem == NULL ) assert(0);
|
|||
|
|
s_szCurrentSignalName = pItem->GetName();
|
|||
|
|
|
|||
|
|
s_pCurrentSignalItem->SetName( pItem->GetName() );
|
|||
|
|
s_pCurrentSignalItem->SetBackgroundColor( pItem->GetBackgroundColor() );
|
|||
|
|
s_pCurrentSignalItem->SetBackgroundSideColor( pItem->GetBackgroundSideColor() );
|
|||
|
|
s_pCurrentSignalItem->SetSelectColor( pItem->GetSelectColor() );
|
|||
|
|
s_pCurrentSignalItem->SetSelectSideColor( pItem->GetSelectSideColor() );
|
|||
|
|
}
|
|||
|
|
break;
|
|||
|
|
case 2: // Delete
|
|||
|
|
{
|
|||
|
|
CEventSignalItem *pItem = CEventSignalManager::GetInstance().GetSignalItemFromName( szVecSelectItemList[0] );
|
|||
|
|
if( pItem == NULL ) assert(0);
|
|||
|
|
|
|||
|
|
s_szCurrentSignalName = pItem->GetName();
|
|||
|
|
}
|
|||
|
|
break;
|
|||
|
|
case 3: // Create Parameter
|
|||
|
|
case 4: // Modify Parameter
|
|||
|
|
{
|
|||
|
|
CEventSignalItem *pItem = CEventSignalManager::GetInstance().GetSignalItemFromName( szVecSelectItemList[0] );
|
|||
|
|
s_pCurrentSignalItem = pItem;
|
|||
|
|
|
|||
|
|
s_pCurrentPropertyVariable = new CUnionValueProperty( CUnionValueProperty::Unknown);
|
|||
|
|
}
|
|||
|
|
break;
|
|||
|
|
case 5: // Delete Parameter
|
|||
|
|
{
|
|||
|
|
CEventSignalItem *pItem = CEventSignalManager::GetInstance().GetSignalItemFromName( szVecSelectItemList[0] );
|
|||
|
|
s_pCurrentSignalItem = pItem;
|
|||
|
|
}
|
|||
|
|
break;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return true;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
CEventEditWizardCommon::VIEW_TYPE CEventEdit_SelectControl::GetNextView()
|
|||
|
|
{
|
|||
|
|
switch( s_nStartType ) {
|
|||
|
|
case 1: // Modify Signal
|
|||
|
|
return CREATE_SIGNAL;
|
|||
|
|
case 2: // Delete Signal
|
|||
|
|
return FINISH;
|
|||
|
|
case 3: // Create Parameter
|
|||
|
|
return CREATE_PARAMETER;
|
|||
|
|
case 4: // Modify Parameter
|
|||
|
|
case 5: // Delete Parameter
|
|||
|
|
return SELECT_PARAMETER;
|
|||
|
|
default:
|
|||
|
|
assert(0);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
return UNKNOWN_TYPE;
|
|||
|
|
}
|