224 lines
6.5 KiB
C++
224 lines
6.5 KiB
C++
// Implementation for the definition of 'enum' type lists in the editor
|
|
//////////////////////////////////////////////////////////////////
|
|
#include "StdAfx.h"
|
|
|
|
#include "Others\CTL_EnLi.hpp"
|
|
|
|
#ifdef _DEBUG
|
|
#define new DEBUG_NEW
|
|
#undef THIS_FILE
|
|
static char THIS_FILE[] = __FILE__;
|
|
#endif
|
|
|
|
//************************************************************************
|
|
CTL_Editor_EnumElement::CTL_Editor_EnumElement(CString _csElementName,
|
|
long _lEnumValue,
|
|
CString _csAdditionalString,
|
|
void *_p_vAdditionnalPointer)
|
|
{
|
|
m_pri_csElementName = _csElementName;
|
|
m_pri_lEnumValue = _lEnumValue;
|
|
m_pri_csAdditionalString = _csAdditionalString;
|
|
m_pri_p_vAdditionnalPointer = _p_vAdditionnalPointer;
|
|
}
|
|
|
|
//************************************************************************
|
|
CTL_Editor_EnumElement::~CTL_Editor_EnumElement()
|
|
{
|
|
|
|
}
|
|
|
|
//Value
|
|
//************************************************************************
|
|
void CTL_Editor_EnumElement::m_pub_fn_vSetValue(long lNewValue)
|
|
{
|
|
m_pri_lEnumValue = lNewValue;
|
|
}
|
|
|
|
//************************************************************************
|
|
long CTL_Editor_EnumElement::m_pub_fn_lGetValue()
|
|
{
|
|
return m_pri_lEnumValue;
|
|
}
|
|
|
|
//Element Name
|
|
//************************************************************************
|
|
void CTL_Editor_EnumElement::m_pub_fn_vSetElementName(CString _csNewString)
|
|
{
|
|
m_pri_csElementName = _csNewString;
|
|
}
|
|
|
|
//************************************************************************
|
|
CString CTL_Editor_EnumElement::m_pub_fn_csGetElementName()
|
|
{
|
|
return m_pri_csElementName;
|
|
}
|
|
|
|
//Additional String
|
|
//************************************************************************
|
|
void CTL_Editor_EnumElement::m_pub_fn_vSetAdditionalString(CString _csNewString)
|
|
{
|
|
m_pri_csAdditionalString = _csNewString;
|
|
}
|
|
|
|
//************************************************************************
|
|
CString CTL_Editor_EnumElement::m_pub_fn_csGetAdditionalString()
|
|
{
|
|
return m_pri_csAdditionalString;
|
|
}
|
|
|
|
//Additionnal Pointer
|
|
//************************************************************************
|
|
void CTL_Editor_EnumElement::m_pub_fn_vSetAdditionnalPointer(void *_p_vAdditionnalPointer)
|
|
{
|
|
m_pri_p_vAdditionnalPointer = _p_vAdditionnalPointer;
|
|
}
|
|
|
|
//************************************************************************
|
|
void *CTL_Editor_EnumElement::m_pub_fn_pvGetAdditionnalPointer()
|
|
{
|
|
return m_pri_p_vAdditionnalPointer;
|
|
}
|
|
|
|
//************************************************************************
|
|
//************************************************************************
|
|
//************************************************************************
|
|
CTL_Editor_EnumDescriptor::CTL_Editor_EnumDescriptor(CString csEnumName,
|
|
unsigned char ucSize)
|
|
{
|
|
m_csEnumName = csEnumName;
|
|
|
|
m_ucEnumSize = ucSize;
|
|
}
|
|
|
|
//************************************************************************
|
|
CTL_Editor_EnumDescriptor::~CTL_Editor_EnumDescriptor()
|
|
{
|
|
m_fn_vEmptyList();
|
|
}
|
|
|
|
//************************************************************************
|
|
void CTL_Editor_EnumDescriptor::m_fn_vEmptyList()
|
|
{
|
|
POSITION pos = GetHeadPosition();
|
|
while ( pos != NULL )
|
|
delete GetNext(pos);
|
|
|
|
RemoveAll();
|
|
}
|
|
|
|
//************************************************************************
|
|
CTL_Editor_EnumElement *CTL_Editor_EnumDescriptor::m_fn_pclAddElement(CString _csElementName,
|
|
long _lEnumValue /*= LIST_ENUM_ERROR*/,
|
|
CString _csAdditionalString /*= ""*/,
|
|
void *_p_vAdditionnalPointer /*= NULL*/)
|
|
{
|
|
//Adds only if name is not found in list
|
|
if ( m_fn_pclGetElementFromString(_csElementName) == NULL )
|
|
{
|
|
CTL_Editor_EnumElement *pclNewElement = new CTL_Editor_EnumElement(_csElementName,
|
|
_lEnumValue,
|
|
_csAdditionalString,
|
|
_p_vAdditionnalPointer);
|
|
|
|
AddTail(pclNewElement);
|
|
|
|
return pclNewElement;
|
|
}
|
|
else
|
|
return NULL;
|
|
}
|
|
|
|
//************************************************************************
|
|
CString CTL_Editor_EnumDescriptor::m_fn_csGetStringFromEnumIndex(long lEnumIndex)
|
|
{
|
|
CTL_Editor_EnumElement *pclCurrentElement;
|
|
BOOL bFound = FALSE;
|
|
POSITION pos = GetHeadPosition();
|
|
while ( (pos != NULL) && !bFound )
|
|
{
|
|
pclCurrentElement = GetNext(pos);
|
|
bFound = ( pclCurrentElement->m_pub_fn_lGetValue() == lEnumIndex );
|
|
}
|
|
|
|
if ( bFound )
|
|
return (pclCurrentElement->m_pub_fn_csGetElementName());
|
|
else
|
|
return "*** E R R O R ***";
|
|
}
|
|
|
|
//************************************************************************
|
|
CTL_Editor_EnumElement *CTL_Editor_EnumDescriptor::m_fn_pclGetElementFromEnumIndex(long lEnumIndex)
|
|
{
|
|
CTL_Editor_EnumElement *pclCurrentElement;
|
|
BOOL bFound = FALSE;
|
|
POSITION pos = GetHeadPosition();
|
|
while ( (pos != NULL) && !bFound )
|
|
{
|
|
pclCurrentElement = GetNext(pos);
|
|
bFound = ( pclCurrentElement->m_pub_fn_lGetValue() == lEnumIndex );
|
|
}
|
|
|
|
if ( bFound )
|
|
return pclCurrentElement;
|
|
else
|
|
return NULL;
|
|
}
|
|
|
|
//************************************************************************
|
|
CTL_Editor_EnumElement *CTL_Editor_EnumDescriptor::m_fn_pclGetElementFromString(CString _csStringToFind)
|
|
{
|
|
CTL_Editor_EnumElement *pclCurrentElement;
|
|
BOOL bFound = FALSE;
|
|
POSITION pos = GetHeadPosition();
|
|
while ( (pos != NULL) && !bFound )
|
|
{
|
|
pclCurrentElement = GetNext(pos);
|
|
bFound = ( pclCurrentElement->m_pub_fn_csGetElementName().Compare(_csStringToFind) == 0 );
|
|
}
|
|
|
|
if ( bFound )
|
|
return pclCurrentElement;
|
|
else
|
|
return NULL;
|
|
}
|
|
|
|
//************************************************************************
|
|
unsigned char CTL_Editor_EnumDescriptor::m_fn_ucGetEnumSize()
|
|
{
|
|
return m_ucEnumSize;
|
|
}
|
|
|
|
//************************************************************************
|
|
//************************************************************************
|
|
//************************************************************************
|
|
CTL_Editor_EnumDescriptorList::CTL_Editor_EnumDescriptorList()
|
|
{
|
|
|
|
}
|
|
|
|
//************************************************************************
|
|
CTL_Editor_EnumDescriptorList::~CTL_Editor_EnumDescriptorList()
|
|
{
|
|
|
|
}
|
|
|
|
//************************************************************************
|
|
CTL_Editor_EnumDescriptor *CTL_Editor_EnumDescriptorList::m_fn_pclGetEnumDescriptorByName(CString csDescriptorName)
|
|
{
|
|
CTL_Editor_EnumDescriptor *pclCurrent;
|
|
BOOL bFound = FALSE;
|
|
POSITION pos = GetHeadPosition();
|
|
while ( (pos != NULL) && !bFound )
|
|
{
|
|
pclCurrent = GetNext(pos);
|
|
bFound = ( pclCurrent->m_csEnumName == csDescriptorName );
|
|
}
|
|
|
|
if ( bFound )
|
|
return pclCurrent;
|
|
else
|
|
return NULL;
|
|
}
|
|
|