ns/main/source/mod/AvHUIFactory.cpp

49 lines
1.3 KiB
C++
Raw Normal View History

#include "mod/AvHUIFactory.h"
#include "mod/AvHTeamHierarchy.h"
#include "mod/AvHActionButtons.h"
#include "mod/AvHScrollPanel.h"
#include "mod/AvHLogoutComponent.h"
#include "mod/AvHTechImpulsePanel.h"
// Knows how to build custom mod-specific components
UIComponent* AvHUIFactory::BuildComponent(const TRDescription& inTextRep, CSchemeManager* inSchemeManager)
{
UIComponent* theNewComponent = NULL;
// If base class can't create it, maybe it's a custom component
theNewComponent = UIFactory::BuildComponent(inTextRep, inSchemeManager);
if(!theNewComponent)
{
string theCompType = inTextRep.GetType();
if(theCompType == "TeamHierarchy")
{
theNewComponent = new AvHUITeamHierarchy();
}
else if(theCompType == "ActionButtons")
{
theNewComponent = new AvHUIActionButtons();
}
else if(theCompType == "ScrollPanel")
{
theNewComponent = new AvHUIScrollPanel();
}
else if(theCompType == "LogoutComponent")
{
theNewComponent = new AvHUILogoutComponent();
}
else if(theCompType == "TechImpulsePanel")
{
theNewComponent = new AvHUITechImpulsePanel();
}
// Initialize it
if(theNewComponent)
{
theNewComponent->AllocateAndSetProperties(inTextRep, inSchemeManager);
}
}
return theNewComponent;
}