@@ -59,11 +59,12 @@ class SimpleAxisLayout::Impl {
59
59
float m_gap = 0 .f;
60
60
std::optional<float > m_minRelativeScale = 0 .5f ;
61
61
std::optional<float > m_maxRelativeScale = 2 .f;
62
+ SimpleAxisLayout* m_layout = nullptr ;
62
63
63
64
std::unordered_map<CCNode*, float > m_originalScalesPerNode;
64
65
std::unordered_map<CCNode*, float > m_relativeScalesPerNode;
65
66
66
- Impl (Axis axis) : m_axis(axis) {
67
+ Impl (Axis axis, SimpleAxisLayout* parent ) : m_axis(axis), m_layout(parent ) {
67
68
switch (axis) {
68
69
case Axis::Column:
69
70
m_mainAxisDirection = AxisDirection::TopToBottom;
@@ -682,7 +683,7 @@ void SimpleAxisLayout::Impl::apply(cocos2d::CCNode* layout) {
682
683
std::vector<AxisGap*> gaps;
683
684
float totalGap = 0 .f ;
684
685
CCNode* lastChild = nullptr ;
685
- for (auto child : CCArrayExt<CCNode*>(layout-> getChildren ( ))) {
686
+ for (auto child : CCArrayExt<CCNode*>(m_layout-> getNodesToPosition (layout ))) {
686
687
if (auto spacer = typeinfo_cast<SpacerNode*>(child)) {
687
688
spacers.push_back (spacer);
688
689
positionChildren.push_back (spacer);
@@ -760,7 +761,7 @@ void SimpleAxisLayout::Impl::apply(cocos2d::CCNode* layout) {
760
761
this ->applyMainPositioning (layout, positionChildren, spacers, totalGap);
761
762
}
762
763
763
- SimpleAxisLayout::SimpleAxisLayout (Axis axis) : m_impl(std::make_unique<Impl>(axis)) {}
764
+ SimpleAxisLayout::SimpleAxisLayout (Axis axis) : m_impl(std::make_unique<Impl>(axis, this )) {}
764
765
765
766
SimpleAxisLayout::~SimpleAxisLayout () = default ;
766
767
0 commit comments