1/* -*-c++-*- OpenSceneGraph - Copyright (C) 1998-2008 Robert Osfield
3 * This library is open source and may be redistributed and/or modified under
4 * the terms of the OpenSceneGraph Public License (OSGPL) version 0.0 or
5 * (at your option) any later version. The full license is in LICENSE file
6 * included with this distribution, and on the openscenegraph.org website.
8 * This library is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * OpenSceneGraph Public License for more details.
14// Code by: Jeremy Moles (cubicool) 2007-2008
19#include <osgWidget/Window>
23//! The Box object is a Window subclass that can be configured to uniformly (or
24//! non-uniformly) position it's children either vertically or horizontally. It
25//! is the most basic Window implementation, though there is some difficulty when
26//! positioning children such that each child object ends up pixel-aligned.
27class OSGWIDGET_EXPORT Box: public Window
31 //! An enum corresponding to the type of Box alignment.
37 META_Object(osgWidget, Box);
39 //! The main constructor; takes the string name, the BoxType orientation, and a
40 //! boolean indicating whether or not all of the Box regions should be uniformly
42 Box (const std::string& = "", BoxType = HORIZONTAL, bool = false);
43 Box (const Box&, const osg::CopyOp&);
47 virtual void _resizeImplementation(point_type, point_type);
49 virtual Sizes _getWidthImplementation () const;
50 virtual Sizes _getHeightImplementation () const;
56 unsigned int _lastAdd;