1/* -*-c++-*- OpenSceneGraph - Copyright (C) 1998-2014 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.
17#include <osgUI/Widget>
18#include <osgUI/Validator>
19#include <osgText/Text>
24class OSGUI_EXPORT LineEdit : public osgUI::Widget
28 LineEdit(const LineEdit& label, const osg::CopyOp& copyop=osg::CopyOp::SHALLOW_COPY);
29 META_Node(osgUI, LineEdit);
31 void setText(const std::string& text);
32 const std::string& getText() const { return _text; }
34 virtual bool handleImplementation(osgGA::EventVisitor* ev, osgGA::Event* event);
35 virtual void createGraphicsImplementation();
36 virtual void enterImplementation();
37 virtual void leaveImplementation();
39 void setValidator(Validator* validator) { _validator = validator; }
40 Validator* getValidator() { return _validator.get(); }
41 const Validator* getValidator() const { return _validator.get(); }
43 virtual void textChanged(const std::string& text);
44 virtual void textChangedImplementation(const std::string& text);
46 virtual void returnPressed() { if (!runCallbacks("returnPressed")) returnPressedImplementation(); }
47 virtual void returnPressedImplementation();
50 virtual ~LineEdit() {}
52 osg::ref_ptr<Validator> _validator;
56 // implementation detail
57 osg::ref_ptr<osg::Switch> _backgroundSwitch;
58 osg::ref_ptr<osgText::Text> _textDrawable;