Introduction
Raster's comment on size hint for box and table evas objects (july 28, 2011)
Details
1. all children should never be smaller than min size. they should overflow if box too small for all children (in each dimension).
2. children should never be bigger than max size (unless max size is less than 0 or less than min size) - in each dimension
3. align if >= 0 && <= 1.0, specified where in the ALLOCATED space to that child the child goes. 0.5 == middle, 0.0 = left/top, 1.0 == bottom/right. if < 0.0 then FILL allocated space with child (but limit to min and max sizes above, so the allocated space never is less than min or more than max size - with max size if < min size (or < 0) being unlimited).
4. if all children combined have a min size bigger than parent - overflow
5. if all children combined have a max size less than parent, then align total content inside using eg box_align settings (same as general align above for content as a whole).
6. allocated space for child is limited to min and max sizes, with weight determining how much of the "extra space" the parent has available will be given to that child based on the sum of all weights of children (in that dimension) and the weight of that child.
ie size = min_size + (available_space * weight / total_weight)
- of course if size > max, then there is more available space for other siblings and divide accordingly (as that child didnt use its entire allocation based on weight due to max size limiting).
7. if parent implements padding, then the child min and max size stay as is, but ADD the padding size around the child min and max size for calculating space used by child and given to child, BUT child is kept at its min and/or max size offset inside the space the parent allocates/assigns to it accounting for padding
8. aspect... ugh. this really maxes life tricky as now width is dependant on height and height is dependant on width... what i'd say here is that object at MOST can be in each dimension the size of its assigned size based on the above but then may shrink in one dimension or the other to use LESS space than is assigned to maintain aspect hint correctness,.
9. if homogenous is set on a parent we should try and still fill the box dimensions exactly and TRY make all items the same size. this may mean, if # of items dont divide evenly into size, making some items 1 pixel bigger (or smaller) to account for rounding issues.
just looking at evas box... its mucho broken and doesnt follow even basic logic in situations like yours below.