Browse Source

GUI refactor done - most of stuff works

Marko Pintera 11 years ago
parent
commit
d90564156f

+ 2 - 0
BansheeEditor/Source/BsDockManager.cpp

@@ -229,6 +229,8 @@ namespace BansheeEditor
 			mSlider->_setWidgetDepth(widgetParent->getDepth());
 		}
 
+		mSlider->_changeParentWidget(widgetParent);
+
 		mSlider->onDragged.connect(std::bind(&DockManager::DockContainer::sliderDragged, this, _1));
 
 		setArea(mArea.x, mArea.y, mArea.width, mArea.height);

+ 0 - 2
BansheeEngine/Source/BsGUIButtonBase.cpp

@@ -108,8 +108,6 @@ namespace BansheeEngine
 		const HSpriteTexture& activeTex = getActiveTexture();
 		if(SpriteTexture::checkIsLoaded(activeTex))
 		{
-			mImageDesc.width = activeTex->getTexture()->getWidth();
-			mImageDesc.height = activeTex->getTexture()->getHeight();
 			mImageDesc.texture = activeTex.getInternalPtr();
 		}
 

+ 2 - 0
BansheeEngine/Source/BsGUIDropDownBox.cpp

@@ -111,11 +111,13 @@ namespace BansheeEngine
 		mHitBox->setFocus(true);
 		mHitBox->_setWidgetDepth(0);
 		mHitBox->_setAreaDepth(0);
+		mHitBox->_changeParentWidget(this);
 
 		mCaptureHitBox = GUIDropDownHitBox::create(true);
 		mCaptureHitBox->setBounds(RectI(0, 0, target->getWidth(), target->getHeight()));
 		mCaptureHitBox->_setWidgetDepth(0);
 		mCaptureHitBox->_setAreaDepth(200);
+		mCaptureHitBox->_changeParentWidget(this);
 
 		RectI availableBounds(target->getX(), target->getY(), target->getWidth(), target->getHeight());
 		mRootMenu = cm_new<DropDownSubMenu>(this, placement, availableBounds, dropDownData, type, 0);

+ 5 - 1
BansheeEngine/Source/BsGUIElement.cpp

@@ -123,6 +123,7 @@ namespace BansheeEngine
 
 	void GUIElement::_changeParentWidget(GUIWidget* widget)
 	{
+		bool doRefreshStyle = false;
 		if(mParentWidget != widget)
 		{
 			if(mParentWidget != nullptr)
@@ -131,10 +132,13 @@ namespace BansheeEngine
 			if(widget != nullptr)
 				widget->registerElement(this);
 
-			_refreshStyle();
+			doRefreshStyle = true;
 		}
 
 		GUIElementBase::_changeParentWidget(widget);
+
+		if(doRefreshStyle)
+			_refreshStyle();
 	}
 
 	const RectOffset& GUIElement::_getPadding() const

+ 0 - 2
BansheeEngine/Source/BsGUIInputBox.cpp

@@ -141,8 +141,6 @@ namespace BansheeEngine
 		const HSpriteTexture& activeTex = getActiveTexture();
 		if(SpriteTexture::checkIsLoaded(activeTex))
 		{
-			mImageDesc.width = activeTex->getTexture()->getWidth();
-			mImageDesc.height = activeTex->getTexture()->getHeight();
 			mImageDesc.texture = activeTex.getInternalPtr();
 		}