2
0
mirror of https://github.com/AxioDL/metaforce.git synced 2025-12-08 18:24:55 +00:00

Add space switching

This commit is contained in:
2016-07-08 18:23:34 -07:00
parent 8b1f70c5cd
commit 4f401acdca
5 changed files with 22 additions and 13 deletions

View File

@@ -238,4 +238,23 @@ RootSpace* Space::NewRootSpaceFromConfigStream(ViewManager& vm, ConfigReader& r)
return new RootSpace(vm, r);
}
void Space::SpaceMenuNode::SubNode::activated(const boo::SWindowCoord &coord)
{
std::unique_ptr<Space> newSpace;
switch(m_data.m_cls)
{
case Class::InformationCenter: newSpace.reset(new InformationCenter(m_space.m_parent->m_vm, m_space.m_parent)); break;
case Class::EffectEditor: newSpace.reset(new EffectEditor(m_space.m_parent->m_vm, m_space.m_parent)); break;
case Class::ResourceBrowser: newSpace.reset(new ResourceBrowser(m_space.m_parent->m_vm, m_space.m_parent)); break;
case Class::ModelViewer: newSpace.reset(new ModelViewer(m_space.m_parent->m_vm, m_space.m_parent)); break;
default: break;
}
if (newSpace)
{
Space* parent = m_space.m_parent;
m_space.m_parent->exchangeSpaceSplitJoin(&m_space, std::move(newSpace));
parent->m_vm.BuildSpaceViews();
}
}
}