Implemented scheme for making sure nested widgest overdraw parent widgets graphics
This commit is contained in:
parent
55c2041d4d
commit
cca18e82e8
@ -467,7 +467,8 @@ TypoCorrection typoCorrections[] =
|
|||||||
{"Kristoger","Kristofer"},
|
{"Kristoger","Kristofer"},
|
||||||
{"Blessing","Blissing"},
|
{"Blessing","Blissing"},
|
||||||
{"Dannahuer","Dannhauer"},
|
{"Dannahuer","Dannhauer"},
|
||||||
{"Chebeav", "Chebaev"}
|
{"Chebeav", "Chebaev"},
|
||||||
|
{"Messershmidt","Messerschmidt"}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -634,7 +635,9 @@ NameCorrection nameCorrections[] =
|
|||||||
{"Tyge", "",
|
{"Tyge", "",
|
||||||
"Tyge", "Løvset"},
|
"Tyge", "Løvset"},
|
||||||
{"Ricard", "Schmidt",
|
{"Ricard", "Schmidt",
|
||||||
"Richard", "Schmidt"}
|
"Richard", "Schmidt"},
|
||||||
|
{"Matthias", "Helsing",
|
||||||
|
"Mattias", "Helsing"}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -47,6 +47,7 @@ public:
|
|||||||
virtual osg::Node* createFrame(const osg::BoundingBox& extents, const FrameSettings* frameSettings);
|
virtual osg::Node* createFrame(const osg::BoundingBox& extents, const FrameSettings* frameSettings);
|
||||||
virtual osg::Node* createText(const osg::BoundingBox& extents, const AlignmentSettings* as, const TextSettings* textSettings, const std::string& text);
|
virtual osg::Node* createText(const osg::BoundingBox& extents, const AlignmentSettings* as, const TextSettings* textSettings, const std::string& text);
|
||||||
virtual osg::Node* createIcon(const osg::BoundingBox& extents, const std::string& filename);
|
virtual osg::Node* createIcon(const osg::BoundingBox& extents, const std::string& filename);
|
||||||
|
virtual void setupDialogStateSet(osg::StateSet* stateset);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual ~Style() {}
|
virtual ~Style() {}
|
||||||
|
@ -32,8 +32,6 @@ Dialog::Dialog(const osgUI::Dialog& dialog, const osg::CopyOp& copyop):
|
|||||||
|
|
||||||
bool Dialog::handleImplementation(osgGA::EventVisitor* ev, osgGA::Event* event)
|
bool Dialog::handleImplementation(osgGA::EventVisitor* ev, osgGA::Event* event)
|
||||||
{
|
{
|
||||||
OSG_NOTICE<<"Dialog::handleImplementation"<<std::endl;
|
|
||||||
|
|
||||||
osgGA::GUIEventAdapter* ea = event->asGUIEventAdapter();
|
osgGA::GUIEventAdapter* ea = event->asGUIEventAdapter();
|
||||||
if (!ea) return false;
|
if (!ea) return false;
|
||||||
|
|
||||||
@ -80,10 +78,6 @@ void Dialog::createGraphicsImplementation()
|
|||||||
float titleHeight = 1.0;
|
float titleHeight = 1.0;
|
||||||
osg::BoundingBox titleBarExents(_extents.xMin(), _extents.yMax(), _extents.zMin(), _extents.xMax(), _extents.yMax()+titleHeight, _extents.zMin());
|
osg::BoundingBox titleBarExents(_extents.xMin(), _extents.yMax(), _extents.zMin(), _extents.xMax(), _extents.yMax()+titleHeight, _extents.zMin());
|
||||||
|
|
||||||
osg::ref_ptr<Node> node = style->createText(titleBarExents, getAlignmentSettings(), getTextSettings(), _title);
|
|
||||||
_titleDrawable = dynamic_cast<osgText::Text*>(node.get());
|
|
||||||
_titleDrawable->setDataVariance(osg::Object::DYNAMIC);
|
|
||||||
_transform->addChild(_titleDrawable.get());
|
|
||||||
|
|
||||||
osg::Vec4 dialogBackgroundColor(0.8,0.8,0.8,1.0);
|
osg::Vec4 dialogBackgroundColor(0.8,0.8,0.8,1.0);
|
||||||
osg::Vec4 dialogTitleBackgroundColor(0.5,0.5,1.0,1.0);
|
osg::Vec4 dialogTitleBackgroundColor(0.5,0.5,1.0,1.0);
|
||||||
@ -91,5 +85,12 @@ void Dialog::createGraphicsImplementation()
|
|||||||
_transform->addChild( style->createPanel(_extents, dialogBackgroundColor) );
|
_transform->addChild( style->createPanel(_extents, dialogBackgroundColor) );
|
||||||
_transform->addChild( style->createPanel(titleBarExents, dialogTitleBackgroundColor) );
|
_transform->addChild( style->createPanel(titleBarExents, dialogTitleBackgroundColor) );
|
||||||
|
|
||||||
|
osg::ref_ptr<Node> node = style->createText(titleBarExents, getAlignmentSettings(), getTextSettings(), _title);
|
||||||
|
_titleDrawable = dynamic_cast<osgText::Text*>(node.get());
|
||||||
|
_titleDrawable->setDataVariance(osg::Object::DYNAMIC);
|
||||||
|
_transform->addChild(_titleDrawable.get());
|
||||||
|
|
||||||
|
style->setupDialogStateSet(getOrCreateStateSet());
|
||||||
|
|
||||||
setGraphicsSubgraph(_transform.get());
|
setGraphicsSubgraph(_transform.get());
|
||||||
}
|
}
|
||||||
|
@ -86,5 +86,7 @@ void Popup::createGraphicsImplementation()
|
|||||||
|
|
||||||
_transform->addChild( style->createPanel(_extents, dialogBackgroundColor) );
|
_transform->addChild( style->createPanel(_extents, dialogBackgroundColor) );
|
||||||
|
|
||||||
|
style->setupDialogStateSet(getOrCreateStateSet());
|
||||||
|
|
||||||
setGraphicsSubgraph(_transform.get());
|
setGraphicsSubgraph(_transform.get());
|
||||||
}
|
}
|
||||||
|
@ -76,11 +76,6 @@ void PushButton::createGraphicsImplementation()
|
|||||||
osg::ref_ptr<osg::Group> group = new osg::Group;
|
osg::ref_ptr<osg::Group> group = new osg::Group;
|
||||||
|
|
||||||
Style* style = (getStyle()!=0) ? getStyle() : Style::instance().get();
|
Style* style = (getStyle()!=0) ? getStyle() : Style::instance().get();
|
||||||
osg::ref_ptr<Node> node = style->createText(_extents, getAlignmentSettings(), getTextSettings(), _text);
|
|
||||||
_textDrawable = dynamic_cast<osgText::Text*>(node.get());
|
|
||||||
_textDrawable->setDataVariance(osg::Object::DYNAMIC);
|
|
||||||
|
|
||||||
group->addChild(_textDrawable.get());
|
|
||||||
|
|
||||||
_buttonSwitch = new osg::Switch;
|
_buttonSwitch = new osg::Switch;
|
||||||
|
|
||||||
@ -95,6 +90,13 @@ void PushButton::createGraphicsImplementation()
|
|||||||
|
|
||||||
group->addChild(_buttonSwitch.get());
|
group->addChild(_buttonSwitch.get());
|
||||||
|
|
||||||
|
// create label.
|
||||||
|
osg::ref_ptr<Node> node = style->createText(_extents, getAlignmentSettings(), getTextSettings(), _text);
|
||||||
|
_textDrawable = dynamic_cast<osgText::Text*>(node.get());
|
||||||
|
_textDrawable->setDataVariance(osg::Object::DYNAMIC);
|
||||||
|
|
||||||
|
group->addChild(_textDrawable.get());
|
||||||
|
|
||||||
setGraphicsSubgraph(group.get());
|
setGraphicsSubgraph(group.get());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -13,6 +13,7 @@
|
|||||||
|
|
||||||
#include <osgUI/Style>
|
#include <osgUI/Style>
|
||||||
#include <osg/Geode>
|
#include <osg/Geode>
|
||||||
|
#include <osg/Depth>
|
||||||
#include <osgText/Text>
|
#include <osgText/Text>
|
||||||
|
|
||||||
using namespace osgUI;
|
using namespace osgUI;
|
||||||
@ -89,3 +90,9 @@ osg::Node* Style::createIcon(const osg::BoundingBox& extents, const std::string&
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Style::setupDialogStateSet(osg::StateSet* stateset)
|
||||||
|
{
|
||||||
|
stateset->setRenderBinDetails(5, "TraversalOrderBin", osg::StateSet::OVERRIDE_RENDERBIN_DETAILS);
|
||||||
|
stateset->setAttributeAndModes( new osg::Depth(osg::Depth::LESS,0.0, 1.0,false), osg::StateAttribute::ON | osg::StateAttribute::OVERRIDE );
|
||||||
|
stateset->setMode( GL_LIGHTING, osg::StateAttribute::OFF );
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user