// 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: ¿©±â¿¡ Ư¼öÈ­µÈ Äڵ带 Ãß°¡ ¹×/¶Ç´Â ±âº» Ŭ·¡½º¸¦ È£ÃâÇÕ´Ï´Ù. 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 pVecList; for( DWORD i=0; iGetName() ); 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 szVecSelectItemList; while(p) { int nIndex = m_ListCtrl.GetNextSelectedItem(p); szVecSelectItemList.push_back( m_ListCtrl.GetItemText( nIndex, 0 ) ); } if( szVecSelectItemList.size() == 0 ) { MessageBox( "°íÄ¥²¨ ¼±ÅÃÇØÁà~", "¿¡·¯", MB_OK ); return false; } // º¹»çÇØ¼­ ³Ö¾îÁØ´Ù. switch( s_nStartType ) { case 1: // Modify { // Ãë¼Ò°¡ ÀÖÀ» ¼ö ÀÖÀ¸¹Ç·Î º¹»çÇØ¼­ ³Ö¾îÁØ´Ù. 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; }