mirror of
https://github.com/AxioDL/metaforce.git
synced 2025-12-08 18:24:55 +00:00
Initial space selection menu
This commit is contained in:
@@ -6,6 +6,10 @@ namespace URDE
|
||||
{
|
||||
static LogVisor::LogModule Log("URDE::Space");
|
||||
|
||||
Space::Space(ViewManager& vm, Class cls, Space* parent)
|
||||
: m_spaceMenuNode(*this), m_spaceSelectBind(*this),
|
||||
m_vm(vm), m_class(cls), m_parent(parent) {}
|
||||
|
||||
Specter::View* Space::buildSpaceView(Specter::ViewResources& res)
|
||||
{
|
||||
if (usesToolbar())
|
||||
@@ -13,7 +17,12 @@ Specter::View* Space::buildSpaceView(Specter::ViewResources& res)
|
||||
m_spaceView.reset(new Specter::Space(res, m_vm.rootView(), *this, Specter::Toolbar::Position::Bottom));
|
||||
Specter::View* sview = buildContentView(res);
|
||||
m_spaceView->setContentView(sview);
|
||||
buildToolbarView(res, *m_spaceView->toolbar());
|
||||
Specter::Toolbar& tb = *m_spaceView->toolbar();
|
||||
const std::string* classStr = SpaceMenuNode::lookupClassString(m_class);
|
||||
m_spaceSelectButton.reset(new Specter::Button(res, tb, &m_spaceSelectBind,
|
||||
classStr?*classStr:"Unknown Class"));
|
||||
tb.push_back(m_spaceSelectButton.get());
|
||||
buildToolbarView(res, tb);
|
||||
return m_spaceView.get();
|
||||
}
|
||||
else
|
||||
@@ -25,6 +34,25 @@ Specter::View* Space::buildSpaceView(Specter::ViewResources& res)
|
||||
}
|
||||
}
|
||||
|
||||
std::vector<Space::SpaceMenuNode::SubNodeData> Space::SpaceMenuNode::s_subNodeDats =
|
||||
{
|
||||
{Class::ResourceBrowser, "resource_browser", "Resource Browser"}
|
||||
};
|
||||
std::string Space::SpaceMenuNode::s_text = "Space Types";
|
||||
|
||||
void Space::SpaceMenuNode::initializeStrings(ViewManager& vm)
|
||||
{
|
||||
s_text = vm.translateOr("space_types", s_text.c_str());
|
||||
for (SubNodeData& sn : s_subNodeDats)
|
||||
sn.m_text = vm.translateOr(sn.m_key, sn.m_text.c_str());
|
||||
}
|
||||
|
||||
std::unique_ptr<Specter::View> Space::SpaceSelectBind::buildMenu(const Specter::Button* button)
|
||||
{
|
||||
return std::unique_ptr<Specter::View>(new Specter::Menu(m_space.m_vm.rootView().viewRes(),
|
||||
*m_space.m_spaceView, &m_space.m_spaceMenuNode));
|
||||
}
|
||||
|
||||
Specter::View* RootSpace::buildSpaceView(Specter::ViewResources& res)
|
||||
{
|
||||
Specter::View* newRoot = buildContentView(res);
|
||||
|
||||
Reference in New Issue
Block a user