2008-07-26 04:04:41 +08:00
|
|
|
/* -*-c++-*- OpenSceneGraph - Copyright (C) 1998-2008 Robert Osfield
|
|
|
|
*
|
|
|
|
* This library is open source and may be redistributed and/or modified under
|
|
|
|
* the terms of the OpenSceneGraph Public License (OSGPL) version 0.0 or
|
|
|
|
* (at your option) any later version. The full license is in LICENSE file
|
|
|
|
* included with this distribution, and on the openscenegraph.org website.
|
|
|
|
*
|
|
|
|
* This library is distributed in the hope that it will be useful,
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
* OpenSceneGraph Public License for more details.
|
|
|
|
*/
|
|
|
|
|
2008-07-16 01:21:25 +08:00
|
|
|
// -*-c++-*- osgWidget - Code by: Jeremy Moles (cubicool) 2007-2008
|
|
|
|
// $Id: Label 59 2008-05-15 20:55:31Z cubicool $
|
|
|
|
|
|
|
|
#ifndef OSGWIDGET_LABEL
|
|
|
|
#define OSGWIDGET_LABEL
|
|
|
|
|
|
|
|
#include <osgText/Text>
|
|
|
|
#include <osgWidget/Widget>
|
|
|
|
#include <osgWidget/Window>
|
|
|
|
|
|
|
|
namespace osgWidget {
|
|
|
|
|
2008-07-26 03:57:17 +08:00
|
|
|
class OSGWIDGET_EXPORT Label: public Widget
|
|
|
|
{
|
|
|
|
public:
|
2008-07-16 01:21:25 +08:00
|
|
|
|
2008-07-26 03:57:17 +08:00
|
|
|
META_Object (osgWidget, Label);
|
|
|
|
META_UIObject (Label);
|
2008-07-16 01:21:25 +08:00
|
|
|
|
2008-07-26 03:57:17 +08:00
|
|
|
Label (const std::string& = "", const std::string& = "");
|
|
|
|
Label (const Label&, const osg::CopyOp&);
|
2008-07-16 01:21:25 +08:00
|
|
|
|
2008-07-26 03:57:17 +08:00
|
|
|
virtual void parented (Window*);
|
|
|
|
virtual void unparented (Window*);
|
|
|
|
virtual void managed (WindowManager*);
|
|
|
|
virtual void positioned ();
|
2008-07-16 01:21:25 +08:00
|
|
|
|
2008-07-26 03:57:17 +08:00
|
|
|
void update ();
|
|
|
|
void setLabel (const std::string&);
|
|
|
|
void setFont (const std::string&);
|
|
|
|
void setFontSize (unsigned int);
|
|
|
|
void setFontColor (const Color&);
|
|
|
|
void setShadow (point_type);
|
2008-07-16 01:21:25 +08:00
|
|
|
|
2008-07-26 03:57:17 +08:00
|
|
|
XYCoord getTextSize() const;
|
2008-07-16 01:21:25 +08:00
|
|
|
|
2008-07-26 03:57:17 +08:00
|
|
|
std::string getLabel() const { return _text->getText().createUTF8EncodedString(); }
|
2008-07-16 01:21:25 +08:00
|
|
|
|
2008-07-26 03:57:17 +08:00
|
|
|
void setFontColor(point_type r, point_type g, point_type b, point_type a) { setFontColor(Color(r, g, b, a)); }
|
2008-07-16 01:21:25 +08:00
|
|
|
|
2008-07-26 03:57:17 +08:00
|
|
|
// For now you only get a const pointer, because we have a highly specific
|
|
|
|
// interface with the osgText library.
|
|
|
|
const osgText::Text* getText() const { return _text.get(); }
|
2008-07-16 01:21:25 +08:00
|
|
|
|
2008-07-26 03:57:17 +08:00
|
|
|
protected:
|
|
|
|
|
|
|
|
osg::ref_ptr<osgText::Text> _text;
|
|
|
|
unsigned int _textIndex;
|
|
|
|
|
|
|
|
virtual void _calculateSize(const XYCoord&);
|
2008-07-16 01:21:25 +08:00
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif
|