// generic object base class for item SelArray from a list. #include "stdafx.h" #include "resource.h" #include "SelArray.h" IMPLEMENT_SERIAL(CSelArray,CSelectable,1|VERSIONABLE_SCHEMA); #define new DEBUG_NEW CSelArray::CSelArray() { } CSelArray::~CSelArray() { for(int loop=0;loop<m_aChildren.GetSize();loop++) delete m_aChildren[loop]; } void CSelArray::Serialize(CArchive &ar) { CSelectable::Serialize(ar); m_aChildren.Serialize(ar); } CSelectable *CSelArray::Add(CSelectable *pSelectable) { m_aChildren.Add(pSelectable); return pSelectable; } BOOL CSelArray::Delete(LPCSTR pName) { for(int loop=0;loop<m_aChildren.GetSize();loop++) { if(Get(loop)->GetName().CompareNoCase(pName)==0) { delete Get(loop); m_aChildren.RemoveAt(loop); return TRUE; } } return FALSE; } CSelectable *CSelArray::Get(LPCSTR pName) { CString sName; for(int loop=0;loop<m_aChildren.GetSize();loop++) { sName = Get(loop)->GetName(); if(sName.CompareNoCase(pName)==0) return Get(loop); } if(strcmpi(pName,"Default")==0); return NULL; return Get("Default"); } CSelectable *CSelArray::Get(int nPos) { ASSERT(nPos<m_aChildren.GetSize()); return (CSelectable *)m_aChildren.GetAt(nPos); } int CSelArray::GetSize() { return m_aChildren.GetSize(); }