TabWidget
Go to the documentation of this file.
/* -*-c++-*- OpenSceneGraph - Copyright (C) 1998-2014 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.
*/
#ifndef OSGUI_TABWIDGET
#define OSGUI_TABWIDGET
#include <osgUI/Popup>
#include <osg/Switch>
#include <osgText/Text>
namespace osgUI
{
class OSGUI_EXPORT Tab : public osg::Object
{
public:
Tab() {}
Tab(const std::string& str) : _text(str) {}
Tab(const Tab& item, const osg::CopyOp& copyop=osg::CopyOp::SHALLOW_COPY) : osg::Object(item,copyop), _text(item._text) {}
META_Object(osgUI, Tab);
void setText(const std::string& text) { _text = text; }
std::string& getText() { return _text; }
const std::string& getText() const { return _text; }
void setWidget(osgUI::Widget* widget) { _widget = widget; }
osgUI::Widget* getWidget() { return _widget.get(); }
const osgUI::Widget* getWidget() const { return _widget.get(); }
protected:
virtual ~Tab() {}
std::string _text;
osg::ref_ptr<osgUI::Widget> _widget;
};
class OSGUI_EXPORT TabWidget : public osgUI::Widget
{
public:
TabWidget();
TabWidget(const TabWidget& combobox, const osg::CopyOp& copyop=osg::CopyOp::SHALLOW_COPY);
META_Node(osgUI, TabWidget);
void addTab(Tab* item) { _tabs.push_back(item); dirty(); }
void setTab(unsigned int i, Tab* item) { _tabs[i] = item; dirty(); }
Tab* getTab(unsigned int i) { return _tabs[i].get(); }
const Tab* getTab(unsigned int i) const { return _tabs[i].get(); }
void clear() { _tabs.clear(); dirty(); }
void removeTab(unsigned int i) { _tabs.erase(_tabs.begin()+i); dirty(); }
unsigned int getNumTabs() { return static_cast<unsigned int>(_tabs.size()); }
typedef std::vector< osg::ref_ptr<Tab> > Tabs;
void setTabs(const Tabs& items) { _tabs = items; }
Tabs& getTabs() { return _tabs; }
const Tabs& getTabs() const { return _tabs; }
void setCurrentIndex(unsigned int i);
unsigned int getCurrentIndex() const { return _currentIndex; }
virtual void currrentIndexChanged(unsigned int i);
virtual void currentIndexChangedImplementation(unsigned int i);
virtual bool handleImplementation(osgGA::EventVisitor* ev, osgGA::Event* event);
virtual void createGraphicsImplementation();
virtual void enterImplementation();
virtual void leaveImplementation();
protected:
virtual ~TabWidget() {}
void _activateWidgets();
osg::Node* _createTabFrame(const osg::BoundingBox& extents, osgUI::FrameSettings* fs, const osg::Vec4& color);
osg::Node* _createTabHeader(const osg::BoundingBox& extents, osgUI::FrameSettings* fs, const osg::Vec4& color);
Tabs _tabs;
unsigned int _currentIndex;
osg::ref_ptr<osg::Switch> _inactiveHeaderSwitch;
osg::ref_ptr<osg::Switch> _activeHeaderSwitch;
osg::ref_ptr<osg::Switch> _tabWidgetSwitch;
};
}
#endif
Popup
Switch
Text
osgGA::EventVisitor
Definition EventVisitor:42
osgGA::Event
Definition Event:27
osgUI::FrameSettings
Definition FrameSettings:25
osgUI::TabWidget::createGraphicsImplementation
virtual void createGraphicsImplementation()
osgUI::TabWidget::Tabs
std::vector< osg::ref_ptr< Tab > > Tabs
Definition TabWidget:67
osgUI::TabWidget::~TabWidget
virtual ~TabWidget()
Definition TabWidget:86
osgUI::TabWidget::_currentIndex
unsigned int _currentIndex
Definition TabWidget:94
osgUI::TabWidget::clear
void clear()
Definition TabWidget:63
osgUI::TabWidget::getTabs
Tabs & getTabs()
Definition TabWidget:70
osgUI::TabWidget::_inactiveHeaderSwitch
osg::ref_ptr< osg::Switch > _inactiveHeaderSwitch
Definition TabWidget:96
osgUI::TabWidget::enterImplementation
virtual void enterImplementation()
osgUI::TabWidget::currrentIndexChanged
virtual void currrentIndexChanged(unsigned int i)
osgUI::TabWidget::META_Node
META_Node(osgUI, TabWidget)
osgUI::TabWidget::getTabs
const Tabs & getTabs() const
Definition TabWidget:71
osgUI::TabWidget::_activateWidgets
void _activateWidgets()
osgUI::TabWidget::removeTab
void removeTab(unsigned int i)
Definition TabWidget:64
osgUI::TabWidget::_tabWidgetSwitch
osg::ref_ptr< osg::Switch > _tabWidgetSwitch
Definition TabWidget:98
osgUI::TabWidget::_tabs
Tabs _tabs
Definition TabWidget:93
osgUI::TabWidget::handleImplementation
virtual bool handleImplementation(osgGA::EventVisitor *ev, osgGA::Event *event)
osgUI::TabWidget::currentIndexChangedImplementation
virtual void currentIndexChangedImplementation(unsigned int i)
osgUI::TabWidget::setTab
void setTab(unsigned int i, Tab *item)
Definition TabWidget:59
osgUI::TabWidget::getCurrentIndex
unsigned int getCurrentIndex() const
Definition TabWidget:74
osgUI::TabWidget::TabWidget
TabWidget()
osgUI::TabWidget::_createTabHeader
osg::Node * _createTabHeader(const osg::BoundingBox &extents, osgUI::FrameSettings *fs, const osg::Vec4 &color)
osgUI::TabWidget::getTab
Tab * getTab(unsigned int i)
Definition TabWidget:60
osgUI::TabWidget::addTab
void addTab(Tab *item)
Definition TabWidget:57
osgUI::TabWidget::getTab
const Tab * getTab(unsigned int i) const
Definition TabWidget:61
osgUI::TabWidget::setTabs
void setTabs(const Tabs &items)
Definition TabWidget:69
osgUI::TabWidget::_createTabFrame
osg::Node * _createTabFrame(const osg::BoundingBox &extents, osgUI::FrameSettings *fs, const osg::Vec4 &color)
osgUI::TabWidget::_activeHeaderSwitch
osg::ref_ptr< osg::Switch > _activeHeaderSwitch
Definition TabWidget:97
osgUI::TabWidget::leaveImplementation
virtual void leaveImplementation()
osgUI::TabWidget::TabWidget
TabWidget(const TabWidget &combobox, const osg::CopyOp &copyop=osg::CopyOp::SHALLOW_COPY)
osgUI::TabWidget::setCurrentIndex
void setCurrentIndex(unsigned int i)
osgUI::TabWidget::getNumTabs
unsigned int getNumTabs()
Definition TabWidget:65
osgUI::Tab
Definition TabWidget:25
osgUI::Tab::_text
std::string _text
Definition TabWidget:46
osgUI::Tab::~Tab
virtual ~Tab()
Definition TabWidget:44
osgUI::Tab::setText
void setText(const std::string &text)
Definition TabWidget:35
osgUI::Tab::getWidget
const osgUI::Widget * getWidget() const
Definition TabWidget:41
osgUI::Tab::getWidget
osgUI::Widget * getWidget()
Definition TabWidget:40
osgUI::Tab::Tab
Tab(const std::string &str)
Definition TabWidget:29
osgUI::Tab::_widget
osg::ref_ptr< osgUI::Widget > _widget
Definition TabWidget:47
osgUI::Tab::getText
std::string & getText()
Definition TabWidget:36
osgUI::Tab::setWidget
void setWidget(osgUI::Widget *widget)
Definition TabWidget:39
osgUI::Tab::Tab
Tab()
Definition TabWidget:28
osgUI::Tab::getText
const std::string & getText() const
Definition TabWidget:37
osgUI::Tab::Tab
Tab(const Tab &item, const osg::CopyOp &copyop=osg::CopyOp::SHALLOW_COPY)
Definition TabWidget:31
osgUI::Tab::META_Object
META_Object(osgUI, Tab)
osgUI::Widget
Definition osgUI/Widget:29
osgUI::Widget::dirty
virtual void dirty()
osg::CopyOp
Definition CopyOp:41
osg::CopyOp::SHALLOW_COPY
@ SHALLOW_COPY
Definition CopyOp:47
osg::Node
Definition Node:72
osg::Object
Definition Object:61
osg::Object::Object
Object()
Definition Object:69
osg::ref_ptr
Definition ref_ptr:32
osgUI
Definition AlignmentSettings:23
osg
Definition AlphaFunc:19
osg::BoundingBox
BoundingBoxd BoundingBox
Definition BoundingBox:257
osg::Vec4
Vec4f Vec4
Definition Vec4:21
OSGUI_EXPORT
#define OSGUI_EXPORT
Definition osgUI/Export:40