On Fri, 2011-08-19 at 15:31 +0200, Daniel Cámpora wrote:
> Hi,
>
> I had the same problem and ended up overriding the _calculateSize method as
> you are doing.
>
> However, I don't think this is an error of the bounding box. What happens
> internally is that the text has a width and height according to the first
> text that we fit in, and it's only updated IF the text occupies more space,
> shall it be width or heigth.
>
> On the other hand, I think it's not a good approach to remove completely the
> if statement, because that would imply the size of the box is always going to
> be that one of the text's. Eg. suppose you want a bigger container with a
> background color specified by user's width and height.
>
> I went for two booleans, "_userWidth" and "_userHeight" which are set
> whenever the user wants to define a custom width or height (in the setters
> and adders). With this, the _calculateSize looks like this:
>
>
> Code:
> void EnhancedWidgetText::_calculateSize(const osgWidget::XYCoord& size){
> if(!_userWidth || getWidth() < size.x())
> inherited::setWidth(size.x());
>
> if(!_userHeight || getHeight() < size.y())
> inherited::setHeight(size.y());
> }
>
>
>
> If someone is interested I can provide the implementation.
>
> Btw, among other things, you'll find out the padding is not supported in
> canvas widgets. An addition could be added in this direction, maybe.
Honoring Widget sizing hints is the job of each Window (and could mean
different things). Canvas is truly free-form, so it doesn't even look at
any of that. :)
> Cheers,
>
> Daniel
>
> ------------------
> Read this topic online here:
> http://forum.openscenegraph.org/viewtopic.php?p=42132#42132
>
>
>
>
>
> _______________________________________________
> osg-users mailing list
> [email protected]
> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org