mirror of
https://github.com/AxioDL/metaforce.git
synced 2025-12-08 18:24:55 +00:00
Merge branch 'master' into urde-tags
This commit is contained in:
@@ -6,36 +6,36 @@
|
||||
#include "InformationCenter.hpp"
|
||||
#include "icons/icons.hpp"
|
||||
|
||||
namespace URDE
|
||||
namespace urde
|
||||
{
|
||||
static LogVisor::LogModule Log("URDE::Space");
|
||||
static logvisor::Module 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)
|
||||
specter::View* Space::buildSpaceView(specter::ViewResources& res)
|
||||
{
|
||||
if (usesToolbar())
|
||||
{
|
||||
m_spaceView.reset(new Specter::Space(res, *m_parent->basisView(), *this, Specter::Toolbar::Position::Bottom, toolbarUnits()));
|
||||
Specter::View* sview = buildContentView(res);
|
||||
m_spaceView.reset(new specter::Space(res, *m_parent->basisView(), *this, specter::Toolbar::Position::Bottom, toolbarUnits()));
|
||||
specter::View* sview = buildContentView(res);
|
||||
m_spaceView->setContentView(sview);
|
||||
Specter::Toolbar& tb = *m_spaceView->toolbar();
|
||||
specter::Toolbar& tb = *m_spaceView->toolbar();
|
||||
const std::string* classStr = SpaceMenuNode::LookupClassString(m_class);
|
||||
Specter::Icon* classIcon = SpaceMenuNode::LookupClassIcon(m_class);
|
||||
const Zeus::CColor* classColor = SpaceMenuNode::LookupClassColor(m_class);
|
||||
m_spaceSelectButton.reset(new Specter::Button(res, tb, &m_spaceSelectBind, "", classIcon,
|
||||
Specter::Button::Style::Block,
|
||||
classColor?*classColor:Zeus::CColor::skWhite));
|
||||
specter::Icon* classIcon = SpaceMenuNode::LookupClassIcon(m_class);
|
||||
const zeus::CColor* classColor = SpaceMenuNode::LookupClassColor(m_class);
|
||||
m_spaceSelectButton.reset(new specter::Button(res, tb, &m_spaceSelectBind, "", classIcon,
|
||||
specter::Button::Style::Block,
|
||||
classColor?*classColor:zeus::CColor::skWhite));
|
||||
tb.push_back(m_spaceSelectButton.get(), 0);
|
||||
buildToolbarView(res, tb);
|
||||
return m_spaceView.get();
|
||||
}
|
||||
else
|
||||
{
|
||||
m_spaceView.reset(new Specter::Space(res, *m_parent->basisView(), *this, Specter::Toolbar::Position::None, 0));
|
||||
Specter::View* sview = buildContentView(res);
|
||||
m_spaceView.reset(new specter::Space(res, *m_parent->basisView(), *this, specter::Toolbar::Position::None, 0));
|
||||
specter::View* sview = buildContentView(res);
|
||||
m_spaceView->setContentView(sview);
|
||||
return m_spaceView.get();
|
||||
}
|
||||
@@ -57,25 +57,25 @@ void Space::SpaceMenuNode::InitializeStrings(ViewManager& vm)
|
||||
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)
|
||||
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(),
|
||||
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* RootSpace::buildSpaceView(specter::ViewResources& res)
|
||||
{
|
||||
Specter::View* newRoot = buildContentView(res);
|
||||
specter::View* newRoot = buildContentView(res);
|
||||
m_vm.RootSpaceViewBuilt(newRoot);
|
||||
return newRoot;
|
||||
}
|
||||
|
||||
Specter::View* RootSpace::basisView() {return &m_vm.rootView();}
|
||||
specter::View* RootSpace::basisView() {return &m_vm.rootView();}
|
||||
|
||||
Specter::View* SplitSpace::buildContentView(Specter::ViewResources& res)
|
||||
specter::View* SplitSpace::buildContentView(specter::ViewResources& res)
|
||||
{
|
||||
int clearance = res.pixelFactor() * SPECTER_TOOLBAR_GAUGE;
|
||||
m_splitView.reset(new Specter::SplitView(res, *m_parent->basisView(), this, m_state.axis,
|
||||
m_splitView.reset(new specter::SplitView(res, *m_parent->basisView(), this, m_state.axis,
|
||||
m_state.split, clearance, clearance));
|
||||
if (m_slots[0])
|
||||
m_splitView->setContentView(0, m_slots[0]->buildSpaceView(res));
|
||||
@@ -87,19 +87,19 @@ Specter::View* SplitSpace::buildContentView(Specter::ViewResources& res)
|
||||
void SplitSpace::setChildSlot(unsigned slot, std::unique_ptr<Space>&& space)
|
||||
{
|
||||
if (slot > 1)
|
||||
Log.report(LogVisor::FatalError, "invalid slot %u for SplitView", slot);
|
||||
Log.report(logvisor::Fatal, "invalid slot %u for SplitView", slot);
|
||||
m_slots[slot] = std::move(space);
|
||||
m_slots[slot]->m_parent = this;
|
||||
}
|
||||
|
||||
void SplitSpace::joinViews(Specter::SplitView* thisSplit, int thisSlot, Specter::SplitView* otherSplit, int otherSlot)
|
||||
void SplitSpace::joinViews(specter::SplitView* thisSplit, int thisSlot, specter::SplitView* otherSplit, int otherSlot)
|
||||
{
|
||||
if (thisSplit == otherSplit)
|
||||
{
|
||||
SplitSpace* thisSS = dynamic_cast<SplitSpace*>(m_slots[thisSlot].get());
|
||||
if (thisSS)
|
||||
{
|
||||
int ax = thisSS->m_state.axis == Specter::SplitView::Axis::Horizontal ? 1 : 0;
|
||||
int ax = thisSS->m_state.axis == specter::SplitView::Axis::Horizontal ? 1 : 0;
|
||||
const boo::SWindowRect& thisRect = m_splitView->subRect();
|
||||
const boo::SWindowRect& subRect = thisSS->m_splitView->subRect();
|
||||
int splitPx = subRect.location[ax] + subRect.size[ax] * thisSS->m_state.split -
|
||||
@@ -116,7 +116,7 @@ void SplitSpace::joinViews(Specter::SplitView* thisSplit, int thisSlot, Specter:
|
||||
SplitSpace* otherSS = dynamic_cast<SplitSpace*>(m_slots[i].get());
|
||||
if (otherSS && otherSS->m_splitView.get() == otherSplit)
|
||||
{
|
||||
int ax = m_state.axis == Specter::SplitView::Axis::Horizontal ? 1 : 0;
|
||||
int ax = m_state.axis == specter::SplitView::Axis::Horizontal ? 1 : 0;
|
||||
const boo::SWindowRect& thisRect = m_splitView->subRect();
|
||||
const boo::SWindowRect& subRect = otherSS->m_splitView->subRect();
|
||||
int splitPx = subRect.location[ax] + subRect.size[ax] * otherSS->m_state.split -
|
||||
@@ -130,13 +130,13 @@ void SplitSpace::joinViews(Specter::SplitView* thisSplit, int thisSlot, Specter:
|
||||
}
|
||||
}
|
||||
|
||||
Specter::ISplitSpaceController* Space::spaceSplit(Specter::SplitView::Axis axis, int thisSlot)
|
||||
specter::ISplitSpaceController* Space::spaceSplit(specter::SplitView::Axis axis, int thisSlot)
|
||||
{
|
||||
if (m_parent)
|
||||
{
|
||||
/* Reject split operations with insufficient clearance */
|
||||
int clearance = m_vm.m_viewResources.pixelFactor() * SPECTER_TOOLBAR_GAUGE;
|
||||
if (axis == Specter::SplitView::Axis::Horizontal)
|
||||
if (axis == specter::SplitView::Axis::Horizontal)
|
||||
{
|
||||
if (m_spaceView->subRect().size[1] <= clearance)
|
||||
return nullptr;
|
||||
@@ -166,7 +166,7 @@ std::unique_ptr<Space> RootSpace::exchangeSpaceSplitJoin(Space* removeSpace, std
|
||||
m_spaceTree->m_parent = this;
|
||||
}
|
||||
else
|
||||
Log.report(LogVisor::FatalError, "RootSpace::exchangeSpaceSplitJoin() failure");
|
||||
Log.report(logvisor::Fatal, "RootSpace::exchangeSpaceSplitJoin() failure");
|
||||
|
||||
return ret;
|
||||
}
|
||||
@@ -186,7 +186,7 @@ std::unique_ptr<Space> SplitSpace::exchangeSpaceSplitJoin(Space* removeSpace, st
|
||||
m_slots[1]->m_parent = this;
|
||||
}
|
||||
else
|
||||
Log.report(LogVisor::FatalError, "SplitSpace::exchangeSpaceSplitJoin() failure");
|
||||
Log.report(logvisor::Fatal, "SplitSpace::exchangeSpaceSplitJoin() failure");
|
||||
|
||||
return ret;
|
||||
}
|
||||
@@ -212,13 +212,13 @@ static Space* BuildNewSpace(ViewManager& vm, Space::Class cls, Space* parent, Re
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
void Space::saveState(Athena::io::IStreamWriter& w) const
|
||||
void Space::saveState(athena::io::IStreamWriter& w) const
|
||||
{
|
||||
w.writeUint32Big(atUint32(m_class));
|
||||
spaceState().write(w);
|
||||
}
|
||||
|
||||
void Space::saveState(Athena::io::YAMLDocWriter& w) const
|
||||
void Space::saveState(athena::io::YAMLDocWriter& w) const
|
||||
{
|
||||
w.writeUint32("class", atUint32(m_class));
|
||||
spaceState().write(w);
|
||||
|
||||
Reference in New Issue
Block a user