Lifetime and use of FlexBox and FlexItem

Don’t even bother with FlexBox items as members.

Just use 'em in your resized() call as local stack variables.

you are correct in thinking that if you want some columns and rows among your different component layouts, you gotta nest your flexBoxes:

FlexBox fb;
            fb.flexDirection = FlexBox::Direction::column;

            FlexBox upperComponents;
            upperComponents.flexDirection = FlexBox::Direction::row;

            FlexBox leftSide;
            leftSide.flexDirection = FlexBox::Direction::column;

            leftSide.items.add( FlexItem(titleBarModule).withFlex(0.15) ); //0.15
            leftSide.items.add( FlexItem(manuscriptModule).withFlex(1.0) ); //1.0

            FlexBox rightSide;
            rightSide.flexDirection = FlexBox::Direction::column;

            rightSide.items.add( FlexItem(chordNameModule).withFlex(0.5) ); //0.5
            rightSide.items.add( FlexItem(fretboardModule).withFlex(1.0) ); //1.0

            upperComponents.items.add( FlexItem(leftSide).withFlex(0.5));  //0.5
            upperComponents.items.add( FlexItem(rightSide).withFlex(1.0) ); //1.0

            fb.items.add( FlexItem(upperComponents).withFlex(1.0) ); //1.0
            fb.items.add( FlexItem(pianoRollModule).withFlex(0.35) ); //0.35

            fb.performLayout(getLocalBounds());
            break;

looks like this:

3 Likes