metaforce/Runtime/GuiSys/CGuiGroup.cpp

68 lines
1.6 KiB
C++
Raw Normal View History

2016-03-11 00:23:16 +00:00
#include "CGuiGroup.hpp"
namespace urde
{
void CGuiGroup::LoadWidgetFnMap()
{
}
2016-03-16 03:37:51 +00:00
CGuiGroup::CGuiGroup(const CGuiWidgetParms& parms, int defaultWorker, bool b)
: CGuiCompoundWidget(parms), xbc_selectedWorker(defaultWorker), xc0_b(b)
2016-03-16 03:37:51 +00:00
{
}
void CGuiGroup::SelectWorkerWidget(int workerId, bool setActive, bool setVisible)
{
CGuiWidget* child = static_cast<CGuiWidget*>(GetChildObject());
while (child)
{
if (child->GetWorkerId() == workerId)
{
CGuiWidget* sel = GetSelectedWidget();
if (setActive)
{
sel->SetIsActive(false);
child->SetIsActive(true);
2016-03-16 03:37:51 +00:00
}
if (setVisible)
{
sel->SetVisibility(false, ETraversalMode::Single);
child->SetVisibility(true, ETraversalMode::Single);
}
break;
}
child = static_cast<CGuiWidget*>(child->GetNextSibling());
}
}
CGuiWidget* CGuiGroup::GetSelectedWidget()
{
return GetWorkerWidget(xbc_selectedWorker);
2016-03-16 03:37:51 +00:00
}
bool CGuiGroup::AddWorkerWidget(CGuiWidget* worker)
{
++xb8_workerCount;
2016-03-16 03:37:51 +00:00
return true;
}
void CGuiGroup::OnActiveChange()
2016-03-16 03:37:51 +00:00
{
CGuiWidget* sel = GetSelectedWidget();
if (sel)
sel->SetIsActive(true);
2016-03-16 03:37:51 +00:00
}
std::shared_ptr<CGuiWidget> CGuiGroup::Create(CGuiFrame* frame, CInputStream& in, CSimplePool* sp)
2016-03-16 03:37:51 +00:00
{
CGuiWidgetParms parms = ReadWidgetHeader(frame, in);
2016-03-16 03:37:51 +00:00
s16 defaultWorker = in.readInt16Big();
bool b = in.readBool();
std::shared_ptr<CGuiWidget> ret = std::make_shared<CGuiGroup>(parms, defaultWorker, b);
2016-03-16 03:37:51 +00:00
ret->ParseBaseInfo(frame, in, parms);
return ret;
}
2016-03-11 00:23:16 +00:00
}