You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
o3de/Code/Editor/Util/UIEnumerations.cpp

76 lines
2.6 KiB
C++

/*
* Copyright (c) Contributors to the Open 3D Engine Project.
* For complete copyright and license terms please see the LICENSE at the root of this distribution.
*
* SPDX-License-Identifier: Apache-2.0 OR MIT
*
*/
// Description : This file implements the container for the assotiaon of
// enumeration name to enumeration values
#include "EditorDefs.h"
#include "UIEnumerations.h"
//////////////////////////////////////////////////////////////////////////
CUIEnumerations& CUIEnumerations::GetUIEnumerationsInstance()
{
static CUIEnumerations oGeneralProxy;
return oGeneralProxy;
}
//////////////////////////////////////////////////////////////////////////
CUIEnumerations::TDValuesContainer& CUIEnumerations::GetStandardNameContainer()
{
static TDValuesContainer cValuesContainer;
static bool boInit(false);
if (!boInit)
{
boInit = true;
XmlNodeRef oRootNode;
XmlNodeRef oEnumaration;
XmlNodeRef oEnumerationItem;
int nNumberOfEnumarations(0);
int nCurrentEnumaration(0);
int nNumberOfEnumerationItems(0);
int nCurrentEnumarationItem(0);
oRootNode = GetISystem()->GetXmlUtils()->LoadXmlFromFile("Editor\\PropertyEnumerations.xml");
nNumberOfEnumarations = oRootNode ? oRootNode->getChildCount() : 0;
for (nCurrentEnumaration = 0; nCurrentEnumaration < nNumberOfEnumarations; ++nCurrentEnumaration)
{
TDValues cValues;
oEnumaration = oRootNode->getChild(nCurrentEnumaration);
nNumberOfEnumerationItems = oEnumaration->getChildCount();
for (nCurrentEnumarationItem = 0; nCurrentEnumarationItem < nNumberOfEnumerationItems; ++nCurrentEnumarationItem)
{
oEnumerationItem = oEnumaration->getChild(nCurrentEnumarationItem);
const char* szKey(nullptr);
const char* szValue(nullptr);
oEnumerationItem->getAttributeByIndex(0, &szKey, &szValue);
cValues.push_back(szValue);
}
const char* szKey(nullptr);
const char* szValue(nullptr);
oEnumaration->getAttributeByIndex(0, &szKey, &szValue);
cValuesContainer.insert(TDValuesContainer::value_type(szValue, cValues));
}
}
return cValuesContainer;
}
//////////////////////////////////////////////////////////////////////////