From 6b82d4099fab083aa5f50d26fc51689186101c8b Mon Sep 17 00:00:00 2001 From: Robert Osfield Date: Tue, 9 Sep 2014 16:12:59 +0000 Subject: [PATCH] Improved the handling of the dialog title text git-svn-id: http://svn.openscenegraph.org/osg/OpenSceneGraph/trunk@14442 16af8721-9629-0410-8352-f15c8da7e697 --- src/osgUI/Dialog.cpp | 14 ++------------ src/osgUI/TabWidget.cpp | 20 ++++++++++++++------ 2 files changed, 16 insertions(+), 18 deletions(-) diff --git a/src/osgUI/Dialog.cpp b/src/osgUI/Dialog.cpp index 0f184380f..e3dd23a4e 100644 --- a/src/osgUI/Dialog.cpp +++ b/src/osgUI/Dialog.cpp @@ -112,18 +112,8 @@ void Dialog::createGraphicsImplementation() titleLabel->setFrameSettings(getFrameSettings()); titleLabel->getOrCreateUserDataContainer()->addUserObject(new osgUI::DragCallback); -#if 1 - #if 0 - _group->addChild(closeButton.get()); - _group->addChild(titleLabel.get()); - #else - setGraphicsSubgraph(-3, closeButton.get()); - setGraphicsSubgraph(-2, titleLabel.get()); - #endif -#else - addChild(closeButton.get()); - addChild(titleLabel.get()); -#endif + _group->addChild(closeButton.get()); + _group->addChild(titleLabel.get()); style->setupDialogStateSet(getOrCreateWidgetStateSet(), 5); style->setupClipStateSet(dialogWithTitleExtents, getOrCreateWidgetStateSet()); diff --git a/src/osgUI/TabWidget.cpp b/src/osgUI/TabWidget.cpp index 196fae0ca..9789f5f74 100644 --- a/src/osgUI/TabWidget.cpp +++ b/src/osgUI/TabWidget.cpp @@ -95,7 +95,7 @@ void TabWidget::createGraphicsImplementation() float unselected = 0.92f; float selected = 0.97f; float titleHeight = 10.0f; - float characterWidth = titleHeight*0.5f; + float characterWidth = titleHeight*0.7f; float margin = titleHeight*0.1f; float xPos = _extents.xMin(); float yMin = _extents.yMax()-titleHeight; @@ -117,12 +117,20 @@ void TabWidget::createGraphicsImplementation() < text = style->createText(headerExtents, getAlignmentSettings(), getTextSettings(), tab->getText()); - osg::ref_ptr selected_panel = style->createPanel(headerExtents, osg::Vec4(unselected, unselected, unselected, 1.0f)); - osg::ref_ptr unselected_panel = style->createPanel(headerExtents, osg::Vec4(selected, selected, selected, 1.0f)); + osg::ref_ptr text = style->createText(headerExtents, getAlignmentSettings(), getTextSettings(), tab->getText()); + osg::ref_ptr unselected_panel = style->createPanel(headerExtents, osg::Vec4(unselected, unselected, unselected, 1.0f)); + osg::ref_ptr selected_panel = style->createPanel(headerExtents, osg::Vec4(selected, selected, selected, 1.0f)); - _selectedHeaderSwitch->addChild(selected_panel.get()); - _selectedHeaderSwitch->addChild(unselected_panel.get()); + osg::ref_ptr selected_group = new osg::Group; + selected_group->addChild(selected_panel.get()); + selected_group->addChild(text.get()); + + osg::ref_ptr unselected_group = new osg::Group; + unselected_group->addChild(unselected_panel.get()); + unselected_group->addChild(text.get()); + + _unselectedHeaderSwitch->addChild(unselected_group.get()); + _selectedHeaderSwitch->addChild(selected_group.get()); _tabWidgetSwitch->addChild(tab->getWidget()); xPos += width+margin;