Positioners


#1

Hello, I am using positioners and read inside the code that you have to basically trigger them yourself.

I was wondering what the correct approach is when I want a positioner to be updated everytime the size of the parent component changes.

Also how would  you trigger manual updates then, for example when a value affecting the layout changes?

Thanks. Dan


#2

Well, that's the duty of the positioner class itself - if you use the RelativePositioner for example, it will attach itself to the Component's parent and watch for changes.


#3

Jules the documentation for Component::Positioner and relative component stuff is a bit abstract ... 

The purpose of applyNewBounds() is a mystery.  Does it get called by anything, or is it there to be called by me ... 

And I'm sure you pointed me at the answer before, but the relative rectangle string syntax is referenced as being on this page:  https://www.juce.com/api/classRelativeCoordinate.html "The syntax for the coordinate strings is explained in the RelativeCoordinate class." and it ain't ;)

See: 

https://www.juce.com/api/classRelativeRectangle.html

Ah... it's actually here? 

https://www.juce.com/api/classComponent.html#afff8d34ac49e7303e60cd6cfcd68e8f6

Or is there another bit of the syntax explanation somewhere else, because: 

String RelativeCoordinate::toString ( ) const

Returns a string which represents this coordinate.

For details of the string syntax, see the constructor notes.

But there aren't any details in the constructor notes?

And it also references: The string will be parsed by ExpressionParser::parse(). which I think is supposed to be Expression::parse()

 


#4

Yes.. this does all need a bit more help adding to it. Will do when we get a chance!