On 2017-06-14 02:18, Monte Goulding via use-livecode wrote:
I think this is one of those cases where the default behaviour was a bad idea. Or perhaps was implemented before groups were used for much other than backgrounds. Other objects we need to set to the formatted width/height so why are groups special cased. Anyway, I would keep it simple and use `Clips to rect` so at least it’s easy to relate to the dictionary entry/property name.
Notionally 'backgrounds' don't really need an extent - they should be card sized - the difference being that controls are shared amongst several cards.
Of course MetaCard generalized 'the background' to multiple backgrounds and then groups (which aren't backgrounds) - however, as this was done 'evolutionary', we've ended up with several properties for controlling them which interact not-all-that-well.
If you step back and look at the types of 'group' thing which actually get used, then there are probably only three main ones:
1) Card sized layers which are not shared amongst cards (foreground groups, if you like)
2) Card sized layers which are shared amongst cards (background groups, if you like)
3) Groups with an explicit rect which are not shared amongst cards (control groups, if you like)
(Variants of these where the content rect is distinct from the visible rect are also plausible - i.e. scrolling views).
Currently (1) and (2) are catered for because groups (by default) resize to the size of their controls; 'clipsToRect' caters for (3).
I'd perhaps suggest that 'Clips to rect' or similar is a suitable name for the property. Why? Because that is precisely what it does - all children are clipped to the rect of the group, rather than the group's rect being resized to accomodate them so they are not clipped.
Warmest Regards, Mark. -- Mark Waddingham ~ m...@livecode.com ~ http://www.livecode.com/ LiveCode: Everyone can create apps _______________________________________________ use-livecode mailing list firstname.lastname@example.org Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode