Sfoglia il codice sorgente

Separated editor and engine GUI styles
Added DockSlider button style

Marko Pintera 12 anni fa
parent
commit
c6395d1656

+ 3 - 26
BansheeEngine/Include/BsEngineGUI.h

@@ -6,7 +6,6 @@
 
 
 namespace BansheeEngine
 namespace BansheeEngine
 {
 {
-	// TODO - This class is very Editor related, so move it there?
 	class BS_EXPORT EngineGUI : public CamelotFramework::Module<EngineGUI>
 	class BS_EXPORT EngineGUI : public CamelotFramework::Module<EngineGUI>
 	{
 	{
 	public:
 	public:
@@ -17,28 +16,11 @@ namespace BansheeEngine
 	private:
 	private:
 		GUISkin mSkin;
 		GUISkin mSkin;
 
 
+		static const CM::String DefaultFolder;
+
 		static const CM::String DefaultFontPath;
 		static const CM::String DefaultFontPath;
 		static const CM::UINT32 DefaultFontSize;
 		static const CM::UINT32 DefaultFontSize;
 
 
-		static const CM::String WindowBackgroundTexture;
-
-		static const CM::String WindowFrameNormal;
-		static const CM::String WindowFrameFocused;
-
-		static const CM::String WindowTitleBarBg;
-
-		static const CM::String WindowCloseButtonNormal;
-		static const CM::String WindowCloseButtonHover;
-
-		static const CM::String WindowMinButtonNormal;
-		static const CM::String WindowMinButtonHover;
-
-		static const CM::String WindowMaxButtonNormal;
-		static const CM::String WindowMaxButtonHover;
-
-		static const CM::String TabbedBarBtnNormal;
-		static const CM::String TabbedBarBtnActive;
-
 		static const CM::String ButtonNormalTex;
 		static const CM::String ButtonNormalTex;
 		static const CM::String ButtonHoverTex;
 		static const CM::String ButtonHoverTex;
 
 
@@ -93,11 +75,6 @@ namespace BansheeEngine
 		static const CM::String DropDownBoxBtnUpArrowTex;
 		static const CM::String DropDownBoxBtnUpArrowTex;
 		static const CM::String DropDownBoxBtnDownArrowTex;
 		static const CM::String DropDownBoxBtnDownArrowTex;
 
 
-		static const CM::String MenuBarBgTex;
-
-		static const CM::String MenuBarBtnNormalTex;
-		static const CM::String MenuBarBtnHoverTex;
-
-		static const CM::String MenuBarBansheeLogoTex;
+		static HSpriteTexture getTexture(const CM::String& name);
 	};
 	};
 }
 }

+ 85 - 315
BansheeEngine/Source/BsEngineGUI.cpp

@@ -17,88 +17,64 @@ using namespace CamelotFramework;
 
 
 namespace BansheeEngine
 namespace BansheeEngine
 {
 {
-	const String EngineGUI::DefaultFontPath = "C:\\arial.ttf";
+	const String EngineGUI::DefaultFontPath = "arial.ttf";
 	const UINT32 EngineGUI::DefaultFontSize = 10;
 	const UINT32 EngineGUI::DefaultFontSize = 10;
 
 
-	const String EngineGUI::WindowBackgroundTexture = "..\\..\\..\\..\\Data\\Editor\\Skin\\WindowBgTile.psd";
+	const String EngineGUI::DefaultFolder = "..\\..\\..\\..\\Data\\Engine\\Skin\\";
 
 
-	const String EngineGUI::ButtonNormalTex = "..\\..\\..\\..\\Data\\Editor\\Skin\\ButtonNormal.psd";
-	const String EngineGUI::ButtonHoverTex = "..\\..\\..\\..\\Data\\Editor\\Skin\\ButtonHover.psd";
+	const String EngineGUI::ButtonNormalTex = "ButtonNormal.psd";
+	const String EngineGUI::ButtonHoverTex = "ButtonHover.psd";
 
 
-	const String EngineGUI::WindowFrameNormal = "..\\..\\..\\..\\Data\\Editor\\Skin\\WindowFrameNormal.psd";
-	const String EngineGUI::WindowFrameFocused = "..\\..\\..\\..\\Data\\Editor\\Skin\\WindowFrameFocused.psd";
+	const String EngineGUI::InputBoxNormalTex = "InputBoxNormal.psd";
+	const String EngineGUI::InputBoxHoverTex = "InputBoxHover.psd";
+	const String EngineGUI::InputBoxFocusedTex = "InputBoxFocused.psd";
 
 
-	const String EngineGUI::WindowTitleBarBg = "..\\..\\..\\..\\Data\\Editor\\Skin\\WindowTitleBarBg.psd";
+	const String EngineGUI::ScrollBarUpNormalTex = "ScrollBarUpNormal.psd";
+	const String EngineGUI::ScrollBarUpHoverTex = "ScrollBarUpHover.psd";
+	const String EngineGUI::ScrollBarUpActiveTex = "ScrollBarUpActive.psd";
 
 
-	const String EngineGUI::WindowCloseButtonNormal = "..\\..\\..\\..\\Data\\Editor\\Skin\\WindowCloseBtnNormal.psd";
-	const String EngineGUI::WindowCloseButtonHover = "..\\..\\..\\..\\Data\\Editor\\Skin\\WindowCloseBtnHover.psd";
+	const String EngineGUI::ScrollBarDownNormalTex = "ScrollBarDownNormal.psd";
+	const String EngineGUI::ScrollBarDownHoverTex = "ScrollBarDownHover.psd";
+	const String EngineGUI::ScrollBarDownActiveTex = "ScrollBarDownActive.psd";
 
 
-	const String EngineGUI::WindowMinButtonNormal = "..\\..\\..\\..\\Data\\Editor\\Skin\\WindowMaxBtnNormal.psd";
-	const String EngineGUI::WindowMinButtonHover = "..\\..\\..\\..\\Data\\Editor\\Skin\\WindowMaxBtnHover.psd";
+	const String EngineGUI::ScrollBarLeftNormalTex = "ScrollBarLeftNormal.psd";
+	const String EngineGUI::ScrollBarLeftHoverTex = "ScrollBarLeftHover.psd";
+	const String EngineGUI::ScrollBarLeftActiveTex = "ScrollBarLeftActive.psd";
 
 
-	const String EngineGUI::WindowMaxButtonNormal = "..\\..\\..\\..\\Data\\Editor\\Skin\\WindowMinBtnNormal.psd";
-	const String EngineGUI::WindowMaxButtonHover = "..\\..\\..\\..\\Data\\Editor\\Skin\\WindowMinBtnHover.psd";
+	const String EngineGUI::ScrollBarRightNormalTex = "ScrollBarRightNormal.psd";
+	const String EngineGUI::ScrollBarRightHoverTex = "ScrollBarRightHover.psd";
+	const String EngineGUI::ScrollBarRightActiveTex = "ScrollBarRightActive.psd";
 
 
-	const String EngineGUI::TabbedBarBtnNormal = "..\\..\\..\\..\\Data\\Editor\\Skin\\TabbedButtonNormal.psd";
-	const String EngineGUI::TabbedBarBtnActive = "..\\..\\..\\..\\Data\\Editor\\Skin\\TabbedButtonActive.psd";
+	const String EngineGUI::ScrollBarHandleHorzNormalTex = "ScrollBarHorzHandleNormal.psd";
+	const String EngineGUI::ScrollBarHandleHorzHoverTex = "ScrollBarHorzHandleHover.psd";
+	const String EngineGUI::ScrollBarHandleHorzActiveTex = "ScrollBarHorzHandleActive.psd";
 
 
-	const String EngineGUI::InputBoxNormalTex = "..\\..\\..\\..\\Data\\Editor\\Skin\\InputBoxNormal.psd";
-	const String EngineGUI::InputBoxHoverTex = "..\\..\\..\\..\\Data\\Editor\\Skin\\InputBoxHover.psd";
-	const String EngineGUI::InputBoxFocusedTex = "..\\..\\..\\..\\Data\\Editor\\Skin\\InputBoxFocused.psd";
+	const String EngineGUI::ScrollBarHandleVertNormalTex = "ScrollBarVertHandleNormal.psd";
+	const String EngineGUI::ScrollBarHandleVertHoverTex = "ScrollBarVertHandleHover.psd";
+	const String EngineGUI::ScrollBarHandleVertActiveTex = "ScrollBarVertHandleActive.psd";
 
 
-	const String EngineGUI::ScrollBarUpNormalTex = "..\\..\\..\\..\\Data\\Editor\\Skin\\ScrollBarUpNormal.psd";
-	const String EngineGUI::ScrollBarUpHoverTex = "..\\..\\..\\..\\Data\\Editor\\Skin\\ScrollBarUpHover.psd";
-	const String EngineGUI::ScrollBarUpActiveTex = "..\\..\\..\\..\\Data\\Editor\\Skin\\ScrollBarUpActive.psd";
+	const String EngineGUI::DropDownBtnNormalTex = "DropDownNormal.psd";
+	const String EngineGUI::DropDownBtnHoverTex = "DropDownHover.psd";
 
 
-	const String EngineGUI::ScrollBarDownNormalTex = "..\\..\\..\\..\\Data\\Editor\\Skin\\ScrollBarDownNormal.psd";
-	const String EngineGUI::ScrollBarDownHoverTex = "..\\..\\..\\..\\Data\\Editor\\Skin\\ScrollBarDownHover.psd";
-	const String EngineGUI::ScrollBarDownActiveTex = "..\\..\\..\\..\\Data\\Editor\\Skin\\ScrollBarDownActive.psd";
+	const String EngineGUI::DropDownBoxBgTex = "DropDownBoxBg.psd";
+	const String EngineGUI::DropDownBoxEntryNormalTex = "DropDownButtonNormal.psd";
+	const String EngineGUI::DropDownBoxEntryHoverTex = "DropDownButtonHover.psd";
 
 
-	const String EngineGUI::ScrollBarLeftNormalTex = "..\\..\\..\\..\\Data\\Editor\\Skin\\ScrollBarLeftNormal.psd";
-	const String EngineGUI::ScrollBarLeftHoverTex = "..\\..\\..\\..\\Data\\Editor\\Skin\\ScrollBarLeftHover.psd";
-	const String EngineGUI::ScrollBarLeftActiveTex = "..\\..\\..\\..\\Data\\Editor\\Skin\\ScrollBarLeftActive.psd";
+	const String EngineGUI::DropDownBoxBtnUpNormalTex = "DropDownBoxBtnUpNormal.psd";
+	const String EngineGUI::DropDownBoxBtnUpHoverTex = "DropDownBoxBtnUpHover.psd";
 
 
-	const String EngineGUI::ScrollBarRightNormalTex = "..\\..\\..\\..\\Data\\Editor\\Skin\\ScrollBarRightNormal.psd";
-	const String EngineGUI::ScrollBarRightHoverTex = "..\\..\\..\\..\\Data\\Editor\\Skin\\ScrollBarRightHover.psd";
-	const String EngineGUI::ScrollBarRightActiveTex = "..\\..\\..\\..\\Data\\Editor\\Skin\\ScrollBarRightActive.psd";
+	const String EngineGUI::DropDownBoxBtnDownNormalTex = "DropDownBoxBtnDownNormal.psd";
+	const String EngineGUI::DropDownBoxBtnDownHoverTex = "DropDownBoxBtnDownHover.psd";
 
 
-	const String EngineGUI::ScrollBarHandleHorzNormalTex = "..\\..\\..\\..\\Data\\Editor\\Skin\\ScrollBarHorzHandleNormal.psd";
-	const String EngineGUI::ScrollBarHandleHorzHoverTex = "..\\..\\..\\..\\Data\\Editor\\Skin\\ScrollBarHorzHandleHover.psd";
-	const String EngineGUI::ScrollBarHandleHorzActiveTex = "..\\..\\..\\..\\Data\\Editor\\Skin\\ScrollBarHorzHandleActive.psd";
+	const String EngineGUI::DropDownBoxEntryExpNormalTex = "DropDownExpNormal.psd";
+	const String EngineGUI::DropDownBoxEntryExpHoverTex = "DropDownExpHover.psd";
 
 
-	const String EngineGUI::ScrollBarHandleVertNormalTex = "..\\..\\..\\..\\Data\\Editor\\Skin\\ScrollBarVertHandleNormal.psd";
-	const String EngineGUI::ScrollBarHandleVertHoverTex = "..\\..\\..\\..\\Data\\Editor\\Skin\\ScrollBarVertHandleHover.psd";
-	const String EngineGUI::ScrollBarHandleVertActiveTex = "..\\..\\..\\..\\Data\\Editor\\Skin\\ScrollBarVertHandleActive.psd";
+	const String EngineGUI::DropDownSeparatorTex = "DropDownSeparator.psd";
 
 
-	const String EngineGUI::DropDownBtnNormalTex = "..\\..\\..\\..\\Data\\Editor\\Skin\\DropDownNormal.psd";
-	const String EngineGUI::DropDownBtnHoverTex = "..\\..\\..\\..\\Data\\Editor\\Skin\\DropDownHover.psd";
+	const String EngineGUI::DropDownBoxBtnUpArrowTex = "DropDownBoxBtnUpArrow.psd";
+	const String EngineGUI::DropDownBoxBtnDownArrowTex = "DropDownBoxBtnDownArrow.psd";
 
 
-	const String EngineGUI::DropDownBoxBgTex = "..\\..\\..\\..\\Data\\Editor\\Skin\\DropDownBoxBg.psd";
-	const String EngineGUI::DropDownBoxEntryNormalTex = "..\\..\\..\\..\\Data\\Editor\\Skin\\DropDownButtonNormal.psd";
-	const String EngineGUI::DropDownBoxEntryHoverTex = "..\\..\\..\\..\\Data\\Editor\\Skin\\DropDownButtonHover.psd";
-
-	const String EngineGUI::DropDownBoxBtnUpNormalTex = "..\\..\\..\\..\\Data\\Editor\\Skin\\DropDownBoxBtnUpNormal.psd";
-	const String EngineGUI::DropDownBoxBtnUpHoverTex = "..\\..\\..\\..\\Data\\Editor\\Skin\\DropDownBoxBtnUpHover.psd";
-
-	const String EngineGUI::DropDownBoxBtnDownNormalTex = "..\\..\\..\\..\\Data\\Editor\\Skin\\DropDownBoxBtnDownNormal.psd";
-	const String EngineGUI::DropDownBoxBtnDownHoverTex = "..\\..\\..\\..\\Data\\Editor\\Skin\\DropDownBoxBtnDownHover.psd";
-
-	const String EngineGUI::DropDownBoxEntryExpNormalTex = "..\\..\\..\\..\\Data\\Editor\\Skin\\DropDownExpNormal.psd";
-	const String EngineGUI::DropDownBoxEntryExpHoverTex = "..\\..\\..\\..\\Data\\Editor\\Skin\\DropDownExpHover.psd";
-
-	const String EngineGUI::DropDownSeparatorTex = "..\\..\\..\\..\\Data\\Editor\\Skin\\DropDownSeparator.psd";
-
-	const String EngineGUI::DropDownBoxBtnUpArrowTex = "..\\..\\..\\..\\Data\\Editor\\Skin\\DropDownBoxBtnUpArrow.psd";
-	const String EngineGUI::DropDownBoxBtnDownArrowTex = "..\\..\\..\\..\\Data\\Editor\\Skin\\DropDownBoxBtnDownArrow.psd";
-
-	const String EngineGUI::ScrollBarBgTex = "..\\..\\..\\..\\Data\\Editor\\Skin\\ScrollBarBg.psd";
-
-	const String EngineGUI::MenuBarBgTex = "..\\..\\..\\..\\Data\\Editor\\Skin\\MenuBarBg.psd";
-
-	const String EngineGUI::MenuBarBtnNormalTex = "..\\..\\..\\..\\Data\\Editor\\Skin\\MenuBarButtonNormal.psd";
-	const String EngineGUI::MenuBarBtnHoverTex = "..\\..\\..\\..\\Data\\Editor\\Skin\\MenuBarButtonHover.psd";
-
-	const String EngineGUI::MenuBarBansheeLogoTex = "..\\..\\..\\..\\Data\\Editor\\Skin\\MenuBarBansheeLogo.psd";
+	const String EngineGUI::ScrollBarBgTex = "ScrollBarBg.psd";
 
 
 	EngineGUI::EngineGUI()
 	EngineGUI::EngineGUI()
 	{
 	{
@@ -109,7 +85,8 @@ namespace BansheeEngine
 		HFont font;
 		HFont font;
 
 
 		{
 		{
-			ImportOptionsPtr fontImportOptions = Importer::instance().createImportOptions(DefaultFontPath);
+			String fontPath = DefaultFolder + DefaultFontPath;
+			ImportOptionsPtr fontImportOptions = Importer::instance().createImportOptions(fontPath);
 			if(rtti_is_of_type<FontImportOptions>(fontImportOptions))
 			if(rtti_is_of_type<FontImportOptions>(fontImportOptions))
 			{
 			{
 				FontImportOptions* importOptions = static_cast<FontImportOptions*>(fontImportOptions.get());
 				FontImportOptions* importOptions = static_cast<FontImportOptions*>(fontImportOptions.get());
@@ -120,7 +97,7 @@ namespace BansheeEngine
 				importOptions->setAntialiasing(false);
 				importOptions->setAntialiasing(false);
 			}
 			}
 
 
-			font = Importer::instance().import(DefaultFontPath, fontImportOptions);
+			font = Importer::instance().import(fontPath, fontImportOptions);
 		}
 		}
 
 
 		GUIElementStyle labelStyle;
 		GUIElementStyle labelStyle;
@@ -133,27 +110,13 @@ namespace BansheeEngine
 
 
 		mSkin.setStyle(GUILabel::getGUITypeName(), labelStyle);
 		mSkin.setStyle(GUILabel::getGUITypeName(), labelStyle);
 
 
-		// Window frame
-		HTexture windowFrameNormalTex = static_resource_cast<Texture>(Importer::instance().import(FileSystem::getCurrentPath() + "\\" + WindowFrameNormal));
-		HTexture windowFrameFocusedTex = static_resource_cast<Texture>(Importer::instance().import(FileSystem::getCurrentPath() + "\\" + WindowFrameFocused));
-
-		GUIElementStyle windowFrameStyle;
-		windowFrameStyle.normal.texture = SpriteTexture::create(windowFrameNormalTex);
-		windowFrameStyle.focused.texture = SpriteTexture::create(windowFrameFocusedTex);
-		windowFrameStyle.border.left = 1;
-		windowFrameStyle.border.right = 1;
-		windowFrameStyle.border.top = 1;
-		windowFrameStyle.border.bottom = 1;
-
-		mSkin.setStyle("WindowFrame", windowFrameStyle);
-
 		// Button
 		// Button
 		HTexture buttonNormalTex = static_resource_cast<Texture>(Importer::instance().import(FileSystem::getCurrentPath() + "\\" + ButtonNormalTex));
 		HTexture buttonNormalTex = static_resource_cast<Texture>(Importer::instance().import(FileSystem::getCurrentPath() + "\\" + ButtonNormalTex));
 		HTexture buttonHoverTex = static_resource_cast<Texture>(Importer::instance().import(FileSystem::getCurrentPath() + "\\" + ButtonHoverTex));
 		HTexture buttonHoverTex = static_resource_cast<Texture>(Importer::instance().import(FileSystem::getCurrentPath() + "\\" + ButtonHoverTex));
 
 
 		GUIElementStyle buttonStyle;
 		GUIElementStyle buttonStyle;
-		buttonStyle.normal.texture = SpriteTexture::create(buttonNormalTex);
-		buttonStyle.hover.texture = SpriteTexture::create(buttonHoverTex);
+		buttonStyle.normal.texture = getTexture(ButtonNormalTex);
+		buttonStyle.hover.texture = getTexture(ButtonHoverTex);
 		buttonStyle.active.texture = buttonStyle.hover.texture;
 		buttonStyle.active.texture = buttonStyle.hover.texture;
 		buttonStyle.border.left = 5;
 		buttonStyle.border.left = 5;
 		buttonStyle.border.right = 5;
 		buttonStyle.border.right = 5;
@@ -175,109 +138,11 @@ namespace BansheeEngine
 
 
 		mSkin.setStyle(GUIButton::getGUITypeName(), buttonStyle);
 		mSkin.setStyle(GUIButton::getGUITypeName(), buttonStyle);
 
 
-		// Window background texture
-		HTexture windowBgTexture = static_resource_cast<Texture>(Importer::instance().import(FileSystem::getCurrentPath() + "\\" + WindowBackgroundTexture));
-
-		GUIElementStyle windowBgStyle;
-		windowBgStyle.normal.texture = SpriteTexture::create(windowBgTexture);
-
-		mSkin.setStyle("WindowBackground", windowBgStyle);
-
-		// Window title bar background
-		HTexture windowTitleBarBg = static_resource_cast<Texture>(Importer::instance().import(FileSystem::getCurrentPath() + "\\" + WindowTitleBarBg));
-
-		GUIElementStyle titleBarBgStyle;
-		titleBarBgStyle.normal.texture = SpriteTexture::create(windowTitleBarBg);
-		titleBarBgStyle.fixedHeight = true;
-		titleBarBgStyle.height = 13;
-
-		mSkin.setStyle("TitleBarBackground", titleBarBgStyle);
-
-		// Tabbed title bar tab button
-		HTexture tabbedBarBtnNormal = static_resource_cast<Texture>(Importer::instance().import(FileSystem::getCurrentPath() + "\\" + TabbedBarBtnNormal));
-		HTexture tabbedBarBtnActive = static_resource_cast<Texture>(Importer::instance().import(FileSystem::getCurrentPath() + "\\" + TabbedBarBtnActive));
-
-		GUIElementStyle tabbedBarButton;
-		tabbedBarButton.normal.texture = SpriteTexture::create(tabbedBarBtnNormal);
-		tabbedBarButton.hover.texture = SpriteTexture::create(tabbedBarBtnActive);
-		tabbedBarButton.active.texture = tabbedBarButton.hover.texture;
-		tabbedBarButton.normalOn.texture = tabbedBarButton.hover.texture;
-		tabbedBarButton.hoverOn.texture = tabbedBarButton.hover.texture;
-		tabbedBarButton.activeOn.texture = tabbedBarButton.hover.texture;
-		tabbedBarButton.fixedHeight = true;
-		tabbedBarButton.height = 13;
-		tabbedBarButton.minWidth = 10;
-		tabbedBarButton.maxWidth = 110;
-		tabbedBarButton.font = font;
-		tabbedBarButton.fontSize = DefaultFontSize;
-		tabbedBarButton.textHorzAlign = THA_Center;
-		tabbedBarButton.textVertAlign = TVA_Center;
-
-		mSkin.setStyle("TabbedBarBtn", tabbedBarButton);
-
-		// Tabbed title bar drag/drop button
-		GUIElementStyle tabbedBarDropButton;
-		tabbedBarDropButton.fixedHeight = true;
-		tabbedBarDropButton.fixedWidth = true;
-		tabbedBarDropButton.height = 13;
-		tabbedBarDropButton.width = 6;
-
-		mSkin.setStyle("TabbedBarDropArea", tabbedBarDropButton);
-
-		// Window minimize button
-		HTexture winMinBtnNormal = static_resource_cast<Texture>(Importer::instance().import(FileSystem::getCurrentPath() + "\\" + WindowMinButtonNormal));
-		HTexture winMinBtnHover = static_resource_cast<Texture>(Importer::instance().import(FileSystem::getCurrentPath() + "\\" + WindowMinButtonHover));
-
-		GUIElementStyle winMinButtonStyle;
-		winMinButtonStyle.normal.texture = SpriteTexture::create(winMinBtnNormal);
-		winMinButtonStyle.hover.texture = SpriteTexture::create(winMinBtnHover);
-		winMinButtonStyle.active.texture = winMinButtonStyle.hover.texture;
-		winMinButtonStyle.fixedHeight = true;
-		winMinButtonStyle.fixedWidth = true;
-		winMinButtonStyle.height = 7;
-		winMinButtonStyle.width = 8;
-
-		mSkin.setStyle("WinMinimizeBtn", winMinButtonStyle);
-
-		// Window maximize button
-		HTexture winMaxBtnNormal = static_resource_cast<Texture>(Importer::instance().import(FileSystem::getCurrentPath() + "\\" + WindowMaxButtonNormal));
-		HTexture winMaxBtnHover = static_resource_cast<Texture>(Importer::instance().import(FileSystem::getCurrentPath() + "\\" + WindowMaxButtonHover));
-
-		GUIElementStyle winMaxButtonStyle;
-		winMaxButtonStyle.normal.texture = SpriteTexture::create(winMaxBtnNormal);
-		winMaxButtonStyle.hover.texture = SpriteTexture::create(winMaxBtnHover);
-		winMaxButtonStyle.active.texture = winMaxButtonStyle.hover.texture;
-		winMaxButtonStyle.fixedHeight = true;
-		winMaxButtonStyle.fixedWidth = true;
-		winMaxButtonStyle.height = 8;
-		winMaxButtonStyle.width = 8;
-
-		mSkin.setStyle("WinMaximizeBtn", winMaxButtonStyle);
-
-		// Window close button
-		HTexture winCloseBtnNormal = static_resource_cast<Texture>(Importer::instance().import(FileSystem::getCurrentPath() + "\\" + WindowCloseButtonNormal));
-		HTexture winCloseBtnHover = static_resource_cast<Texture>(Importer::instance().import(FileSystem::getCurrentPath() + "\\" + WindowCloseButtonHover));
-
-		GUIElementStyle winCloseButtonStyle;
-		winCloseButtonStyle.normal.texture = SpriteTexture::create(winCloseBtnNormal);
-		winCloseButtonStyle.hover.texture = SpriteTexture::create(winCloseBtnHover);
-		winCloseButtonStyle.active.texture = winCloseButtonStyle.hover.texture;
-		winCloseButtonStyle.fixedHeight = true;
-		winCloseButtonStyle.fixedWidth = true;
-		winCloseButtonStyle.height = 7;
-		winCloseButtonStyle.width = 8;
-
-		mSkin.setStyle("WinCloseBtn", winCloseButtonStyle);
-
 		// Input box
 		// Input box
-		HTexture inputBoxNormalTex = static_resource_cast<Texture>(Importer::instance().import(FileSystem::getCurrentPath() + "\\" + InputBoxNormalTex));
-		HTexture inputBoxHoverTex = static_resource_cast<Texture>(Importer::instance().import(FileSystem::getCurrentPath() + "\\" + InputBoxHoverTex));
-		HTexture inputBoxFocusedTex = static_resource_cast<Texture>(Importer::instance().import(FileSystem::getCurrentPath() + "\\" + InputBoxFocusedTex));
-
 		GUIElementStyle inputBoxStyle;
 		GUIElementStyle inputBoxStyle;
-		inputBoxStyle.normal.texture = SpriteTexture::create(inputBoxNormalTex);
-		inputBoxStyle.hover.texture = SpriteTexture::create(inputBoxHoverTex);
-		inputBoxStyle.focused.texture = SpriteTexture::create(inputBoxFocusedTex);
+		inputBoxStyle.normal.texture = getTexture(InputBoxNormalTex);
+		inputBoxStyle.hover.texture = getTexture(InputBoxHoverTex);
+		inputBoxStyle.focused.texture = getTexture(InputBoxFocusedTex);
 		inputBoxStyle.active.texture = inputBoxStyle.normal.texture;
 		inputBoxStyle.active.texture = inputBoxStyle.normal.texture;
 		inputBoxStyle.border.left = 5;
 		inputBoxStyle.border.left = 5;
 		inputBoxStyle.border.right = 5;
 		inputBoxStyle.border.right = 5;
@@ -304,14 +169,10 @@ namespace BansheeEngine
 		/************************************************************************/
 		/************************************************************************/
 
 
 		// Up button
 		// Up button
-		HTexture scrollUpBtnNormal = static_resource_cast<Texture>(Importer::instance().import(FileSystem::getCurrentPath() + "\\" + ScrollBarUpNormalTex));
-		HTexture scrollUpBtnHover = static_resource_cast<Texture>(Importer::instance().import(FileSystem::getCurrentPath() + "\\" + ScrollBarUpHoverTex));
-		HTexture scrollUpBtnActive = static_resource_cast<Texture>(Importer::instance().import(FileSystem::getCurrentPath() + "\\" + ScrollBarUpActiveTex));
-
 		GUIElementStyle scrollUpBtnStyle;
 		GUIElementStyle scrollUpBtnStyle;
-		scrollUpBtnStyle.normal.texture = SpriteTexture::create(scrollUpBtnNormal);
-		scrollUpBtnStyle.hover.texture = SpriteTexture::create(scrollUpBtnHover);
-		scrollUpBtnStyle.active.texture = SpriteTexture::create(scrollUpBtnActive);
+		scrollUpBtnStyle.normal.texture = getTexture(ScrollBarUpNormalTex);
+		scrollUpBtnStyle.hover.texture = getTexture(ScrollBarUpHoverTex);
+		scrollUpBtnStyle.active.texture = getTexture(ScrollBarUpActiveTex);
 		scrollUpBtnStyle.fixedHeight = true;
 		scrollUpBtnStyle.fixedHeight = true;
 		scrollUpBtnStyle.fixedWidth = true;
 		scrollUpBtnStyle.fixedWidth = true;
 		scrollUpBtnStyle.height = 4;
 		scrollUpBtnStyle.height = 4;
@@ -320,14 +181,10 @@ namespace BansheeEngine
 		mSkin.setStyle("ScrollUpBtn", scrollUpBtnStyle);
 		mSkin.setStyle("ScrollUpBtn", scrollUpBtnStyle);
 
 
 		// Down button
 		// Down button
-		HTexture scrollDownBtnNormal = static_resource_cast<Texture>(Importer::instance().import(FileSystem::getCurrentPath() + "\\" + ScrollBarDownNormalTex));
-		HTexture scrollDownBtnHover = static_resource_cast<Texture>(Importer::instance().import(FileSystem::getCurrentPath() + "\\" + ScrollBarDownHoverTex));
-		HTexture scrollDownBtnActive = static_resource_cast<Texture>(Importer::instance().import(FileSystem::getCurrentPath() + "\\" + ScrollBarDownActiveTex));
-
 		GUIElementStyle scrollDownBtnStyle;
 		GUIElementStyle scrollDownBtnStyle;
-		scrollDownBtnStyle.normal.texture = SpriteTexture::create(scrollDownBtnNormal);
-		scrollDownBtnStyle.hover.texture = SpriteTexture::create(scrollDownBtnHover);
-		scrollDownBtnStyle.active.texture = SpriteTexture::create(scrollDownBtnActive);
+		scrollDownBtnStyle.normal.texture = getTexture(ScrollBarDownNormalTex);
+		scrollDownBtnStyle.hover.texture = getTexture(ScrollBarDownHoverTex);
+		scrollDownBtnStyle.active.texture = getTexture(ScrollBarDownActiveTex);
 		scrollDownBtnStyle.fixedHeight = true;
 		scrollDownBtnStyle.fixedHeight = true;
 		scrollDownBtnStyle.fixedWidth = true;
 		scrollDownBtnStyle.fixedWidth = true;
 		scrollDownBtnStyle.height = 4;
 		scrollDownBtnStyle.height = 4;
@@ -336,14 +193,10 @@ namespace BansheeEngine
 		mSkin.setStyle("ScrollDownBtn", scrollDownBtnStyle);
 		mSkin.setStyle("ScrollDownBtn", scrollDownBtnStyle);
 
 
 		// Left button
 		// Left button
-		HTexture scrollLeftBtnNormal = static_resource_cast<Texture>(Importer::instance().import(FileSystem::getCurrentPath() + "\\" + ScrollBarLeftNormalTex));
-		HTexture scrollLeftBtnHover = static_resource_cast<Texture>(Importer::instance().import(FileSystem::getCurrentPath() + "\\" + ScrollBarLeftHoverTex));
-		HTexture scrollLeftBtnActive = static_resource_cast<Texture>(Importer::instance().import(FileSystem::getCurrentPath() + "\\" + ScrollBarLeftActiveTex));
-
 		GUIElementStyle scrollLeftBtnStyle;
 		GUIElementStyle scrollLeftBtnStyle;
-		scrollLeftBtnStyle.normal.texture = SpriteTexture::create(scrollLeftBtnNormal);
-		scrollLeftBtnStyle.hover.texture = SpriteTexture::create(scrollLeftBtnHover);
-		scrollLeftBtnStyle.active.texture = SpriteTexture::create(scrollLeftBtnActive);
+		scrollLeftBtnStyle.normal.texture = getTexture(ScrollBarLeftNormalTex);
+		scrollLeftBtnStyle.hover.texture = getTexture(ScrollBarLeftHoverTex);
+		scrollLeftBtnStyle.active.texture = getTexture(ScrollBarLeftActiveTex);
 		scrollLeftBtnStyle.fixedHeight = true;
 		scrollLeftBtnStyle.fixedHeight = true;
 		scrollLeftBtnStyle.fixedWidth = true;
 		scrollLeftBtnStyle.fixedWidth = true;
 		scrollLeftBtnStyle.height = 8;
 		scrollLeftBtnStyle.height = 8;
@@ -352,14 +205,10 @@ namespace BansheeEngine
 		mSkin.setStyle("ScrollLeftBtn", scrollLeftBtnStyle);
 		mSkin.setStyle("ScrollLeftBtn", scrollLeftBtnStyle);
 
 
 		// Right button
 		// Right button
-		HTexture scrollRightBtnNormal = static_resource_cast<Texture>(Importer::instance().import(FileSystem::getCurrentPath() + "\\" + ScrollBarRightNormalTex));
-		HTexture scrollRightBtnHover = static_resource_cast<Texture>(Importer::instance().import(FileSystem::getCurrentPath() + "\\" + ScrollBarRightHoverTex));
-		HTexture scrollRightBtnActive = static_resource_cast<Texture>(Importer::instance().import(FileSystem::getCurrentPath() + "\\" + ScrollBarRightActiveTex));
-
 		GUIElementStyle scrollRightBtnStyle;
 		GUIElementStyle scrollRightBtnStyle;
-		scrollRightBtnStyle.normal.texture = SpriteTexture::create(scrollRightBtnNormal);
-		scrollRightBtnStyle.hover.texture = SpriteTexture::create(scrollRightBtnHover);
-		scrollRightBtnStyle.active.texture = SpriteTexture::create(scrollRightBtnActive);
+		scrollRightBtnStyle.normal.texture = getTexture(ScrollBarRightNormalTex);
+		scrollRightBtnStyle.hover.texture = getTexture(ScrollBarRightHoverTex);
+		scrollRightBtnStyle.active.texture = getTexture(ScrollBarRightActiveTex);
 		scrollRightBtnStyle.fixedHeight = true;
 		scrollRightBtnStyle.fixedHeight = true;
 		scrollRightBtnStyle.fixedWidth = true;
 		scrollRightBtnStyle.fixedWidth = true;
 		scrollRightBtnStyle.height = 8;
 		scrollRightBtnStyle.height = 8;
@@ -368,14 +217,10 @@ namespace BansheeEngine
 		mSkin.setStyle("ScrollRightBtn", scrollRightBtnStyle);
 		mSkin.setStyle("ScrollRightBtn", scrollRightBtnStyle);
 
 
 		// Horizontal handle
 		// Horizontal handle
-		HTexture scrollBarHorzBtnNormal = static_resource_cast<Texture>(Importer::instance().import(FileSystem::getCurrentPath() + "\\" + ScrollBarHandleHorzNormalTex));
-		HTexture scrollBarHorzBtnHover = static_resource_cast<Texture>(Importer::instance().import(FileSystem::getCurrentPath() + "\\" + ScrollBarHandleHorzHoverTex));
-		HTexture scrollBarHorzBtnActive = static_resource_cast<Texture>(Importer::instance().import(FileSystem::getCurrentPath() + "\\" + ScrollBarHandleHorzActiveTex));
-
 		GUIElementStyle scrollBarHorzBtnStyle;
 		GUIElementStyle scrollBarHorzBtnStyle;
-		scrollBarHorzBtnStyle.normal.texture = SpriteTexture::create(scrollBarHorzBtnNormal);
-		scrollBarHorzBtnStyle.hover.texture = SpriteTexture::create(scrollBarHorzBtnHover);
-		scrollBarHorzBtnStyle.active.texture = SpriteTexture::create(scrollBarHorzBtnActive);
+		scrollBarHorzBtnStyle.normal.texture = getTexture(ScrollBarHandleHorzNormalTex);
+		scrollBarHorzBtnStyle.hover.texture = getTexture(ScrollBarHandleHorzHoverTex);
+		scrollBarHorzBtnStyle.active.texture = getTexture(ScrollBarHandleHorzActiveTex);
 		scrollBarHorzBtnStyle.fixedHeight = true;
 		scrollBarHorzBtnStyle.fixedHeight = true;
 		scrollBarHorzBtnStyle.fixedWidth = true;
 		scrollBarHorzBtnStyle.fixedWidth = true;
 		scrollBarHorzBtnStyle.height = 6;
 		scrollBarHorzBtnStyle.height = 6;
@@ -384,14 +229,10 @@ namespace BansheeEngine
 		mSkin.setStyle("ScrollBarHorzBtn", scrollBarHorzBtnStyle);
 		mSkin.setStyle("ScrollBarHorzBtn", scrollBarHorzBtnStyle);
 
 
 		// Vertical handle
 		// Vertical handle
-		HTexture scrollBarVertBtnNormal = static_resource_cast<Texture>(Importer::instance().import(FileSystem::getCurrentPath() + "\\" + ScrollBarHandleVertNormalTex));
-		HTexture scrollBarVertBtnHover = static_resource_cast<Texture>(Importer::instance().import(FileSystem::getCurrentPath() + "\\" + ScrollBarHandleVertHoverTex));
-		HTexture scrollBarVertBtnActive = static_resource_cast<Texture>(Importer::instance().import(FileSystem::getCurrentPath() + "\\" + ScrollBarHandleVertActiveTex));
-
 		GUIElementStyle scrollBarVertBtnStyle;
 		GUIElementStyle scrollBarVertBtnStyle;
-		scrollBarVertBtnStyle.normal.texture = SpriteTexture::create(scrollBarVertBtnNormal);
-		scrollBarVertBtnStyle.hover.texture = SpriteTexture::create(scrollBarVertBtnHover);
-		scrollBarVertBtnStyle.active.texture = SpriteTexture::create(scrollBarVertBtnActive);
+		scrollBarVertBtnStyle.normal.texture = getTexture(ScrollBarHandleVertNormalTex);
+		scrollBarVertBtnStyle.hover.texture = getTexture(ScrollBarHandleVertHoverTex);
+		scrollBarVertBtnStyle.active.texture = getTexture(ScrollBarHandleVertActiveTex);
 		scrollBarVertBtnStyle.fixedHeight = true;
 		scrollBarVertBtnStyle.fixedHeight = true;
 		scrollBarVertBtnStyle.fixedWidth = true;
 		scrollBarVertBtnStyle.fixedWidth = true;
 		scrollBarVertBtnStyle.height = 4;
 		scrollBarVertBtnStyle.height = 4;
@@ -399,8 +240,7 @@ namespace BansheeEngine
 
 
 		mSkin.setStyle("ScrollBarVertBtn", scrollBarVertBtnStyle);
 		mSkin.setStyle("ScrollBarVertBtn", scrollBarVertBtnStyle);
 
 
-		HTexture scrollBarBg = static_resource_cast<Texture>(Importer::instance().import(FileSystem::getCurrentPath() + "\\" + ScrollBarBgTex));
-		HSpriteTexture scrollBarBgPtr = SpriteTexture::create(scrollBarBg);
+		HSpriteTexture scrollBarBgPtr = getTexture(ScrollBarBgTex);
 
 
 		// Vertical scroll bar
 		// Vertical scroll bar
 		GUIElementStyle vertScrollBarStyle;
 		GUIElementStyle vertScrollBarStyle;
@@ -431,12 +271,9 @@ namespace BansheeEngine
 		/************************************************************************/
 		/************************************************************************/
 
 
 		// ListBox button
 		// ListBox button
-		HTexture dropDownListNormal = static_resource_cast<Texture>(Importer::instance().import(FileSystem::getCurrentPath() + "\\" + DropDownBtnNormalTex));
-		HTexture dropDownListHover = static_resource_cast<Texture>(Importer::instance().import(FileSystem::getCurrentPath() + "\\" + DropDownBtnHoverTex));
-
 		GUIElementStyle dropDownListStyle;
 		GUIElementStyle dropDownListStyle;
-		dropDownListStyle.normal.texture = SpriteTexture::create(dropDownListNormal);
-		dropDownListStyle.hover.texture = SpriteTexture::create(dropDownListHover);
+		dropDownListStyle.normal.texture = getTexture(DropDownBtnNormalTex);
+		dropDownListStyle.hover.texture = getTexture(DropDownBtnHoverTex);
 		dropDownListStyle.active.texture = dropDownListStyle.hover.texture;
 		dropDownListStyle.active.texture = dropDownListStyle.hover.texture;
 		dropDownListStyle.normalOn.texture = dropDownListStyle.hover.texture;
 		dropDownListStyle.normalOn.texture = dropDownListStyle.hover.texture;
 		dropDownListStyle.hoverOn.texture = dropDownListStyle.hover.texture;
 		dropDownListStyle.hoverOn.texture = dropDownListStyle.hover.texture;
@@ -464,7 +301,7 @@ namespace BansheeEngine
 		HTexture dropDownBtnScrollUpArrow = static_resource_cast<Texture>(Importer::instance().import(FileSystem::getCurrentPath() + "\\" + DropDownBoxBtnUpArrowTex));
 		HTexture dropDownBtnScrollUpArrow = static_resource_cast<Texture>(Importer::instance().import(FileSystem::getCurrentPath() + "\\" + DropDownBoxBtnUpArrowTex));
 
 
 		GUIElementStyle dropDownScrollUpBtnArrowStyle;
 		GUIElementStyle dropDownScrollUpBtnArrowStyle;
-		dropDownScrollUpBtnArrowStyle.normal.texture = SpriteTexture::create(dropDownBtnScrollUpArrow);
+		dropDownScrollUpBtnArrowStyle.normal.texture = getTexture(DropDownBoxBtnUpArrowTex);
 		dropDownScrollUpBtnArrowStyle.hover.texture = dropDownScrollUpBtnArrowStyle.normal.texture;
 		dropDownScrollUpBtnArrowStyle.hover.texture = dropDownScrollUpBtnArrowStyle.normal.texture;
 		dropDownScrollUpBtnArrowStyle.active.texture = dropDownScrollUpBtnArrowStyle.hover.texture;
 		dropDownScrollUpBtnArrowStyle.active.texture = dropDownScrollUpBtnArrowStyle.hover.texture;
 		dropDownScrollUpBtnArrowStyle.fixedHeight = true;
 		dropDownScrollUpBtnArrowStyle.fixedHeight = true;
@@ -481,12 +318,9 @@ namespace BansheeEngine
 		mSkin.setStyle("ContextMenuScrollUpBtnArrow", dropDownScrollUpBtnArrowStyle);
 		mSkin.setStyle("ContextMenuScrollUpBtnArrow", dropDownScrollUpBtnArrowStyle);
 
 
 		// DropDown scroll up button
 		// DropDown scroll up button
-		HTexture dropDownBtnScrollUpNormal = static_resource_cast<Texture>(Importer::instance().import(FileSystem::getCurrentPath() + "\\" + DropDownBoxBtnUpNormalTex));
-		HTexture dropDownBtnScrollUpHover = static_resource_cast<Texture>(Importer::instance().import(FileSystem::getCurrentPath() + "\\" + DropDownBoxBtnUpHoverTex));
-
 		GUIElementStyle dropDownScrollUpBtnStyle;
 		GUIElementStyle dropDownScrollUpBtnStyle;
-		dropDownScrollUpBtnStyle.normal.texture = SpriteTexture::create(dropDownBtnScrollUpNormal);
-		dropDownScrollUpBtnStyle.hover.texture = SpriteTexture::create(dropDownBtnScrollUpHover);
+		dropDownScrollUpBtnStyle.normal.texture = getTexture(DropDownBoxBtnUpNormalTex);
+		dropDownScrollUpBtnStyle.hover.texture = getTexture(DropDownBoxBtnUpHoverTex);
 		dropDownScrollUpBtnStyle.active.texture = dropDownScrollUpBtnStyle.hover.texture;
 		dropDownScrollUpBtnStyle.active.texture = dropDownScrollUpBtnStyle.hover.texture;
 		dropDownScrollUpBtnStyle.fixedHeight = true;
 		dropDownScrollUpBtnStyle.fixedHeight = true;
 		dropDownScrollUpBtnStyle.fixedWidth = false;
 		dropDownScrollUpBtnStyle.fixedWidth = false;
@@ -502,10 +336,8 @@ namespace BansheeEngine
 		mSkin.setStyle("ContextMenuScrollUpBtn", dropDownScrollUpBtnStyle);
 		mSkin.setStyle("ContextMenuScrollUpBtn", dropDownScrollUpBtnStyle);
 
 
 		// DropDown scroll down button arrow
 		// DropDown scroll down button arrow
-		HTexture dropDownBtnScrollDownArrow = static_resource_cast<Texture>(Importer::instance().import(FileSystem::getCurrentPath() + "\\" + DropDownBoxBtnDownArrowTex));
-
 		GUIElementStyle dropDownScrollDownBtnArrowStyle;
 		GUIElementStyle dropDownScrollDownBtnArrowStyle;
-		dropDownScrollDownBtnArrowStyle.normal.texture = SpriteTexture::create(dropDownBtnScrollDownArrow);
+		dropDownScrollDownBtnArrowStyle.normal.texture = getTexture(DropDownBoxBtnDownArrowTex);
 		dropDownScrollDownBtnArrowStyle.hover.texture = dropDownScrollDownBtnArrowStyle.normal.texture;
 		dropDownScrollDownBtnArrowStyle.hover.texture = dropDownScrollDownBtnArrowStyle.normal.texture;
 		dropDownScrollDownBtnArrowStyle.active.texture = dropDownScrollDownBtnArrowStyle.hover.texture;
 		dropDownScrollDownBtnArrowStyle.active.texture = dropDownScrollDownBtnArrowStyle.hover.texture;
 		dropDownScrollDownBtnArrowStyle.fixedHeight = true;
 		dropDownScrollDownBtnArrowStyle.fixedHeight = true;
@@ -522,12 +354,9 @@ namespace BansheeEngine
 		mSkin.setStyle("ContextMenuScrollDownBtnArrow", dropDownScrollDownBtnArrowStyle);
 		mSkin.setStyle("ContextMenuScrollDownBtnArrow", dropDownScrollDownBtnArrowStyle);
 
 
 		// DropDown scroll down button
 		// DropDown scroll down button
-		HTexture dropDownBtnScrollDownNormal = static_resource_cast<Texture>(Importer::instance().import(FileSystem::getCurrentPath() + "\\" + DropDownBoxBtnDownNormalTex));
-		HTexture dropDownBtnScrollDownHover = static_resource_cast<Texture>(Importer::instance().import(FileSystem::getCurrentPath() + "\\" + DropDownBoxBtnDownHoverTex));
-
 		GUIElementStyle dropDownScrollDownBtnStyle;
 		GUIElementStyle dropDownScrollDownBtnStyle;
-		dropDownScrollDownBtnStyle.normal.texture = SpriteTexture::create(dropDownBtnScrollDownNormal);
-		dropDownScrollDownBtnStyle.hover.texture = SpriteTexture::create(dropDownBtnScrollDownHover);
+		dropDownScrollDownBtnStyle.normal.texture = getTexture(DropDownBoxBtnDownNormalTex);
+		dropDownScrollDownBtnStyle.hover.texture = getTexture(DropDownBoxBtnDownHoverTex);
 		dropDownScrollDownBtnStyle.active.texture = dropDownScrollDownBtnStyle.hover.texture;
 		dropDownScrollDownBtnStyle.active.texture = dropDownScrollDownBtnStyle.hover.texture;
 		dropDownScrollDownBtnStyle.fixedHeight = true;
 		dropDownScrollDownBtnStyle.fixedHeight = true;
 		dropDownScrollDownBtnStyle.fixedWidth = false;
 		dropDownScrollDownBtnStyle.fixedWidth = false;
@@ -543,12 +372,9 @@ namespace BansheeEngine
 		mSkin.setStyle("ContextMenuScrollDownBtn", dropDownScrollDownBtnStyle);
 		mSkin.setStyle("ContextMenuScrollDownBtn", dropDownScrollDownBtnStyle);
 
 
 		// DropDown entry button
 		// DropDown entry button
-		HTexture dropDownEntryBtnNormal = static_resource_cast<Texture>(Importer::instance().import(FileSystem::getCurrentPath() + "\\" + DropDownBoxEntryNormalTex));
-		HTexture dropDownEntryBtnHover = static_resource_cast<Texture>(Importer::instance().import(FileSystem::getCurrentPath() + "\\" + DropDownBoxEntryHoverTex));
-
 		GUIElementStyle dropDownEntryBtnStyle;
 		GUIElementStyle dropDownEntryBtnStyle;
-		dropDownEntryBtnStyle.normal.texture = SpriteTexture::create(dropDownEntryBtnNormal);
-		dropDownEntryBtnStyle.hover.texture = SpriteTexture::create(dropDownEntryBtnHover);
+		dropDownEntryBtnStyle.normal.texture = getTexture(DropDownBoxEntryNormalTex);
+		dropDownEntryBtnStyle.hover.texture = getTexture(DropDownBoxEntryHoverTex);
 		dropDownEntryBtnStyle.active.texture = dropDownEntryBtnStyle.hover.texture;
 		dropDownEntryBtnStyle.active.texture = dropDownEntryBtnStyle.hover.texture;
 		dropDownEntryBtnStyle.fixedHeight = true;
 		dropDownEntryBtnStyle.fixedHeight = true;
 		dropDownEntryBtnStyle.fixedWidth = false;
 		dropDownEntryBtnStyle.fixedWidth = false;
@@ -568,12 +394,9 @@ namespace BansheeEngine
 		mSkin.setStyle("ContextMenuEntryBtn", dropDownEntryBtnStyle);
 		mSkin.setStyle("ContextMenuEntryBtn", dropDownEntryBtnStyle);
 
 
 		// DropDown entry button with expand
 		// DropDown entry button with expand
-		HTexture dropDownExpEntryBtnNormal = static_resource_cast<Texture>(Importer::instance().import(FileSystem::getCurrentPath() + "\\" + DropDownBoxEntryExpNormalTex));
-		HTexture dropDownExpEntryBtnHover = static_resource_cast<Texture>(Importer::instance().import(FileSystem::getCurrentPath() + "\\" + DropDownBoxEntryExpHoverTex));
-
 		GUIElementStyle dropDownEntryExpBtnStyle;
 		GUIElementStyle dropDownEntryExpBtnStyle;
-		dropDownEntryExpBtnStyle.normal.texture = SpriteTexture::create(dropDownExpEntryBtnNormal);
-		dropDownEntryExpBtnStyle.hover.texture = SpriteTexture::create(dropDownExpEntryBtnHover);
+		dropDownEntryExpBtnStyle.normal.texture = getTexture(DropDownBoxEntryExpNormalTex);
+		dropDownEntryExpBtnStyle.hover.texture = getTexture(DropDownBoxEntryExpHoverTex);
 		dropDownEntryExpBtnStyle.active.texture = dropDownEntryExpBtnStyle.hover.texture;
 		dropDownEntryExpBtnStyle.active.texture = dropDownEntryExpBtnStyle.hover.texture;
 		dropDownEntryExpBtnStyle.fixedHeight = true;
 		dropDownEntryExpBtnStyle.fixedHeight = true;
 		dropDownEntryExpBtnStyle.fixedWidth = false;
 		dropDownEntryExpBtnStyle.fixedWidth = false;
@@ -593,10 +416,8 @@ namespace BansheeEngine
 		mSkin.setStyle("ContextMenuEntryExpBtn", dropDownEntryExpBtnStyle);
 		mSkin.setStyle("ContextMenuEntryExpBtn", dropDownEntryExpBtnStyle);
 
 
 		// DropDown box frame
 		// DropDown box frame
-		HTexture dropDownBoxBgTex = static_resource_cast<Texture>(Importer::instance().import(FileSystem::getCurrentPath() + "\\" + DropDownBoxBgTex));
-
 		GUIElementStyle dropDownBoxStyle;
 		GUIElementStyle dropDownBoxStyle;
-		dropDownBoxStyle.normal.texture = SpriteTexture::create(dropDownBoxBgTex);
+		dropDownBoxStyle.normal.texture = getTexture(DropDownBoxBgTex);
 		dropDownBoxStyle.hover.texture = dropDownEntryBtnStyle.normal.texture;
 		dropDownBoxStyle.hover.texture = dropDownEntryBtnStyle.normal.texture;
 		dropDownBoxStyle.active.texture = dropDownEntryBtnStyle.hover.texture;
 		dropDownBoxStyle.active.texture = dropDownEntryBtnStyle.hover.texture;
 		dropDownBoxStyle.fixedHeight = false;
 		dropDownBoxStyle.fixedHeight = false;
@@ -615,10 +436,8 @@ namespace BansheeEngine
 		mSkin.setStyle("ContextMenuFrame", dropDownBoxStyle);
 		mSkin.setStyle("ContextMenuFrame", dropDownBoxStyle);
 
 
 		// Drop down separator
 		// Drop down separator
-		HTexture dropDownSeparatorTex = static_resource_cast<Texture>(Importer::instance().import(FileSystem::getCurrentPath() + "\\" + DropDownSeparatorTex));
-
 		GUIElementStyle dropDownSeparatorStyle;
 		GUIElementStyle dropDownSeparatorStyle;
-		dropDownSeparatorStyle.normal.texture = SpriteTexture::create(dropDownSeparatorTex);
+		dropDownSeparatorStyle.normal.texture = getTexture(DropDownSeparatorTex);
 		dropDownSeparatorStyle.fixedHeight = true;
 		dropDownSeparatorStyle.fixedHeight = true;
 		dropDownSeparatorStyle.fixedWidth = false;
 		dropDownSeparatorStyle.fixedWidth = false;
 		dropDownSeparatorStyle.height = 3;
 		dropDownSeparatorStyle.height = 3;
@@ -631,59 +450,10 @@ namespace BansheeEngine
 		mSkin.setStyle("ListBoxSeparator", dropDownSeparatorStyle);
 		mSkin.setStyle("ListBoxSeparator", dropDownSeparatorStyle);
 		mSkin.setStyle("MenuBarSeparator", dropDownSeparatorStyle);
 		mSkin.setStyle("MenuBarSeparator", dropDownSeparatorStyle);
 		mSkin.setStyle("ContextMenuSeparator", dropDownSeparatorStyle);
 		mSkin.setStyle("ContextMenuSeparator", dropDownSeparatorStyle);
+	}
 
 
-		/************************************************************************/
-		/* 								MENU BAR	                     		*/
-		/************************************************************************/
-
-		// MenuBar background
-		HTexture menuBarBgTex = static_resource_cast<Texture>(Importer::instance().import(FileSystem::getCurrentPath() + "\\" + MenuBarBgTex));
-
-		GUIElementStyle menuBarBgStyle;
-		menuBarBgStyle.normal.texture = SpriteTexture::create(menuBarBgTex);
-		menuBarBgStyle.fixedHeight = false;
-		menuBarBgStyle.fixedWidth = false;
-		menuBarBgStyle.height = 4;
-		menuBarBgStyle.width = 4;
-
-		mSkin.setStyle("MenuBarBg", menuBarBgStyle);
-
-		// MenuBar Banshee logo
-		HTexture menuBarBansheeLogoTex = static_resource_cast<Texture>(Importer::instance().import(FileSystem::getCurrentPath() + "\\" + MenuBarBansheeLogoTex));
-
-		GUIElementStyle menuBarBansheeLogoStyle;
-		menuBarBansheeLogoStyle.normal.texture = SpriteTexture::create(menuBarBansheeLogoTex);
-		menuBarBansheeLogoStyle.fixedHeight = true;
-		menuBarBansheeLogoStyle.fixedWidth = true;
-		menuBarBansheeLogoStyle.height = 7;
-		menuBarBansheeLogoStyle.width = 51;
-
-		mSkin.setStyle("MenuBarBansheeLogo", menuBarBansheeLogoStyle);
-
-		// MenuBar button
-		HTexture menuBarBtnNormal = static_resource_cast<Texture>(Importer::instance().import(FileSystem::getCurrentPath() + "\\" + MenuBarBtnNormalTex));
-		HTexture menuBarBtnHover = static_resource_cast<Texture>(Importer::instance().import(FileSystem::getCurrentPath() + "\\" + MenuBarBtnHoverTex));
-
-		GUIElementStyle menuBarBtnStyle;
-		menuBarBtnStyle.normal.texture = SpriteTexture::create(menuBarBtnNormal);
-		menuBarBtnStyle.hover.texture = SpriteTexture::create(menuBarBtnHover);
-		menuBarBtnStyle.active.texture = menuBarBtnStyle.hover.texture;
-		menuBarBtnStyle.normalOn.texture = menuBarBtnStyle.hover.texture;
-		menuBarBtnStyle.hoverOn.texture = menuBarBtnStyle.hover.texture;
-		menuBarBtnStyle.activeOn.texture = menuBarBtnStyle.hover.texture;
-		menuBarBtnStyle.fixedHeight = true;
-		menuBarBtnStyle.fixedWidth = false;
-		menuBarBtnStyle.height = 15;
-		menuBarBtnStyle.width = 4;
-		menuBarBtnStyle.margins.left = 2;
-		menuBarBtnStyle.margins.right = 2;
-		menuBarBtnStyle.margins.top = 2;
-		menuBarBtnStyle.margins.bottom = 2;
-		menuBarBtnStyle.font = font;
-		menuBarBtnStyle.fontSize = DefaultFontSize;
-		menuBarBtnStyle.textHorzAlign = THA_Left;
-		menuBarBtnStyle.textVertAlign = TVA_Top;
-
-		mSkin.setStyle("MenuBarBtn", menuBarBtnStyle);
+	HSpriteTexture EngineGUI::getTexture(const CM::String& name)
+	{
+		return SpriteTexture::create(static_resource_cast<Texture>(Importer::instance().import(FileSystem::getCurrentPath() + "\\" + DefaultFolder + name)));
 	}
 	}
 }
 }

+ 2 - 1
BansheeEngine/Source/BsGUIButtonBase.cpp

@@ -24,7 +24,8 @@ namespace BansheeEngine
 			mContentImageSprite = cm_new<ImageSprite, PoolAlloc>();
 			mContentImageSprite = cm_new<ImageSprite, PoolAlloc>();
 
 
 		mActiveTexture = mStyle->normal.texture;
 		mActiveTexture = mStyle->normal.texture;
-		if(mActiveTexture != nullptr && mActiveTexture.isLoaded())
+		if(mActiveTexture != nullptr && mActiveTexture.isLoaded() &&
+			mActiveTexture->getTexture() != nullptr && mActiveTexture->getTexture().isLoaded())
 		{
 		{
 			mImageDesc.width = mActiveTexture->getTexture()->getWidth();
 			mImageDesc.width = mActiveTexture->getTexture()->getWidth();
 			mImageDesc.height = mActiveTexture->getTexture()->getHeight();
 			mImageDesc.height = mActiveTexture->getTexture()->getHeight();

+ 2 - 1
BansheeEngine/Source/BsGUIInputBox.cpp

@@ -38,7 +38,8 @@ namespace BansheeEngine
 
 
 		mActiveTexture = mStyle->normal.texture;
 		mActiveTexture = mStyle->normal.texture;
 
 
-		if(mActiveTexture != nullptr && mActiveTexture.isLoaded())
+		if(mActiveTexture != nullptr && mActiveTexture.isLoaded() &&
+			mActiveTexture->getTexture() != nullptr && mActiveTexture->getTexture().isLoaded())
 		{
 		{
 			mImageDesc.width = mActiveTexture->getTexture()->getWidth();
 			mImageDesc.width = mActiveTexture->getTexture()->getWidth();
 			mImageDesc.height = mActiveTexture->getTexture()->getHeight();
 			mImageDesc.height = mActiveTexture->getTexture()->getHeight();

+ 2 - 0
CamelotClient/CamelotClient.vcxproj

@@ -257,6 +257,7 @@
   <ItemGroup>
   <ItemGroup>
     <ClInclude Include="Include\BsDockManager.h" />
     <ClInclude Include="Include\BsDockManager.h" />
     <ClInclude Include="Include\BsEditorApplication.h" />
     <ClInclude Include="Include\BsEditorApplication.h" />
+    <ClInclude Include="Include\BsEditorGUI.h" />
     <ClInclude Include="Include\BsEditorPrerequisites.h" />
     <ClInclude Include="Include\BsEditorPrerequisites.h" />
     <ClInclude Include="Include\BsEditorWidget.h" />
     <ClInclude Include="Include\BsEditorWidget.h" />
     <ClInclude Include="Include\BsEditorWidgetContainer.h" />
     <ClInclude Include="Include\BsEditorWidgetContainer.h" />
@@ -281,6 +282,7 @@
   <ItemGroup>
   <ItemGroup>
     <ClCompile Include="CamelotClient.cpp" />
     <ClCompile Include="CamelotClient.cpp" />
     <ClCompile Include="Source\BsDockManager.cpp" />
     <ClCompile Include="Source\BsDockManager.cpp" />
+    <ClCompile Include="Source\BsEditorGUI.cpp" />
     <ClCompile Include="Source\BsEditorWidget.cpp" />
     <ClCompile Include="Source\BsEditorWidget.cpp" />
     <ClCompile Include="Source\BsEditorWidgetContainer.cpp" />
     <ClCompile Include="Source\BsEditorWidgetContainer.cpp" />
     <ClCompile Include="Source\BsEditorWindow.cpp" />
     <ClCompile Include="Source\BsEditorWindow.cpp" />

+ 6 - 0
CamelotClient/CamelotClient.vcxproj.filters

@@ -90,6 +90,9 @@
     <ClInclude Include="Include\BsGUIDockSlider.h">
     <ClInclude Include="Include\BsGUIDockSlider.h">
       <Filter>Header Files\Editor</Filter>
       <Filter>Header Files\Editor</Filter>
     </ClInclude>
     </ClInclude>
+    <ClInclude Include="Include\BsEditorGUI.h">
+      <Filter>Header Files\Editor</Filter>
+    </ClInclude>
   </ItemGroup>
   </ItemGroup>
   <ItemGroup>
   <ItemGroup>
     <ClCompile Include="stdafx.cpp">
     <ClCompile Include="stdafx.cpp">
@@ -155,5 +158,8 @@
     <ClCompile Include="Source\BsGUIDockSlider.cpp">
     <ClCompile Include="Source\BsGUIDockSlider.cpp">
       <Filter>Source Files\Editor</Filter>
       <Filter>Source Files\Editor</Filter>
     </ClCompile>
     </ClCompile>
+    <ClCompile Include="Source\BsEditorGUI.cpp">
+      <Filter>Source Files\Editor</Filter>
+    </ClCompile>
   </ItemGroup>
   </ItemGroup>
 </Project>
 </Project>

+ 108 - 0
CamelotClient/Include/BsEditorGUI.h

@@ -0,0 +1,108 @@
+#pragma once
+
+#include "BsEditorPrerequisites.h"
+#include "BsGUISkin.h"
+#include "CmModule.h"
+
+namespace BansheeEditor
+{
+	class EditorGUI : public CamelotFramework::Module<EditorGUI>
+	{
+	public:
+		EditorGUI();
+
+		const BS::GUISkin& getSkin() const { return mSkin; }
+
+	private:
+		BS::GUISkin mSkin;
+
+		static const CM::String DefaultFolder;
+
+		static const CM::String DefaultFontPath;
+		static const CM::UINT32 DefaultFontSize;
+
+		static const CM::String WindowBackgroundTexture;
+
+		static const CM::String WindowFrameNormal;
+		static const CM::String WindowFrameFocused;
+
+		static const CM::String WindowTitleBarBg;
+
+		static const CM::String WindowCloseButtonNormal;
+		static const CM::String WindowCloseButtonHover;
+
+		static const CM::String WindowMinButtonNormal;
+		static const CM::String WindowMinButtonHover;
+
+		static const CM::String WindowMaxButtonNormal;
+		static const CM::String WindowMaxButtonHover;
+
+		static const CM::String TabbedBarBtnNormal;
+		static const CM::String TabbedBarBtnActive;
+
+		static const CM::String ButtonNormalTex;
+		static const CM::String ButtonHoverTex;
+
+		static const CM::String InputBoxNormalTex;
+		static const CM::String InputBoxHoverTex;
+		static const CM::String InputBoxFocusedTex;
+
+		static const CM::String ScrollBarUpNormalTex;
+		static const CM::String ScrollBarUpHoverTex;
+		static const CM::String ScrollBarUpActiveTex;
+
+		static const CM::String ScrollBarDownNormalTex;
+		static const CM::String ScrollBarDownHoverTex;
+		static const CM::String ScrollBarDownActiveTex;
+
+		static const CM::String ScrollBarLeftNormalTex;
+		static const CM::String ScrollBarLeftHoverTex;
+		static const CM::String ScrollBarLeftActiveTex;
+
+		static const CM::String ScrollBarRightNormalTex;
+		static const CM::String ScrollBarRightHoverTex;
+		static const CM::String ScrollBarRightActiveTex;
+
+		static const CM::String ScrollBarHandleHorzNormalTex;
+		static const CM::String ScrollBarHandleHorzHoverTex;
+		static const CM::String ScrollBarHandleHorzActiveTex;
+
+		static const CM::String ScrollBarHandleVertNormalTex;
+		static const CM::String ScrollBarHandleVertHoverTex;
+		static const CM::String ScrollBarHandleVertActiveTex;
+
+		static const CM::String ScrollBarBgTex;
+
+		static const CM::String DropDownBtnNormalTex;
+		static const CM::String DropDownBtnHoverTex;
+
+		static const CM::String DropDownBoxBgTex;
+		static const CM::String DropDownBoxEntryNormalTex;
+		static const CM::String DropDownBoxEntryHoverTex;
+
+		static const CM::String DropDownBoxBtnUpNormalTex;
+		static const CM::String DropDownBoxBtnUpHoverTex;
+
+		static const CM::String DropDownBoxBtnDownNormalTex;
+		static const CM::String DropDownBoxBtnDownHoverTex;
+
+		static const CM::String DropDownBoxEntryExpNormalTex;
+		static const CM::String DropDownBoxEntryExpHoverTex;
+
+		static const CM::String DropDownSeparatorTex;
+
+		static const CM::String DropDownBoxBtnUpArrowTex;
+		static const CM::String DropDownBoxBtnDownArrowTex;
+
+		static const CM::String MenuBarBgTex;
+
+		static const CM::String MenuBarBtnNormalTex;
+		static const CM::String MenuBarBtnHoverTex;
+
+		static const CM::String MenuBarBansheeLogoTex;
+
+		static const CM::String DockSliderNormalTex;
+
+		static BS::HSpriteTexture getTexture(const CM::String& name);
+	};
+}

+ 2 - 2
CamelotClient/Source/BsDockManager.cpp

@@ -215,7 +215,7 @@ namespace BansheeEditor
 
 
 		if(horizontal)
 		if(horizontal)
 		{
 		{
-			mSlider = GUIDockSlider::create(*widgetParent, true, EngineGUI::instance().getSkin().getStyle(GUIButton::getGUITypeName()));
+			mSlider = GUIDockSlider::create(*widgetParent, true, widgetParent->getSkin().getStyle("DockSliderBtn"));
 			mSlider->_setWidgetDepth(widgetParent->getDepth());
 			mSlider->_setWidgetDepth(widgetParent->getDepth());
 
 
 			UINT32 remainingSize = (UINT32)std::max(0, (INT32)mArea.height - (INT32)SLIDER_SIZE);
 			UINT32 remainingSize = (UINT32)std::max(0, (INT32)mArea.height - (INT32)SLIDER_SIZE);
@@ -223,7 +223,7 @@ namespace BansheeEditor
 		}
 		}
 		else
 		else
 		{
 		{
-			mSlider = GUIDockSlider::create(*widgetParent, false, EngineGUI::instance().getSkin().getStyle(GUIButton::getGUITypeName()));
+			mSlider = GUIDockSlider::create(*widgetParent, false, widgetParent->getSkin().getStyle("DockSliderBtn"));
 			mSlider->_setWidgetDepth(widgetParent->getDepth());
 			mSlider->_setWidgetDepth(widgetParent->getDepth());
 
 
 			UINT32 remainingSize = (UINT32)std::max(0, (INT32)mArea.width - (INT32)SLIDER_SIZE);
 			UINT32 remainingSize = (UINT32)std::max(0, (INT32)mArea.width - (INT32)SLIDER_SIZE);

+ 3 - 0
CamelotClient/Source/BsEditorApplication.cpp

@@ -4,6 +4,7 @@
 #include "BsApplication.h"
 #include "BsApplication.h"
 #include "CmApplication.h"
 #include "CmApplication.h"
 #include "CmRenderWindow.h"
 #include "CmRenderWindow.h"
+#include "BsEditorGUI.h"
 
 
 // DEBUG ONLY
 // DEBUG ONLY
 #include "DbgEditorWidget1.h"
 #include "DbgEditorWidget1.h"
@@ -37,6 +38,7 @@ namespace BansheeEditor
 
 
 		const String& renderSystemLibraryName = getLibraryNameForRenderSystem(renderSystemPlugin);
 		const String& renderSystemLibraryName = getLibraryNameForRenderSystem(renderSystemPlugin);
 		gBansheeApp().startUp(renderWindowDesc, renderSystemLibraryName, "BansheeForwardRenderer", "D:\\CamelotResourceMetas"); // TODO - Make renderer and resource cache dir customizable
 		gBansheeApp().startUp(renderWindowDesc, renderSystemLibraryName, "BansheeForwardRenderer", "D:\\CamelotResourceMetas"); // TODO - Make renderer and resource cache dir customizable
+		EditorGUI::startUp(cm_new<EditorGUI>());
 		gApplication().loadPlugin("SBansheeEditor"); // Managed part of the editor
 		gApplication().loadPlugin("SBansheeEditor"); // Managed part of the editor
 
 
 		/************************************************************************/
 		/************************************************************************/
@@ -260,6 +262,7 @@ namespace BansheeEditor
 		/* 							END DEBUG CODE                      		*/
 		/* 							END DEBUG CODE                      		*/
 		/************************************************************************/
 		/************************************************************************/
 
 
+		EditorGUI::shutDown();
 		gBansheeApp().shutDown();
 		gBansheeApp().shutDown();
 
 
 	}
 	}

+ 640 - 0
CamelotClient/Source/BsEditorGUI.cpp

@@ -0,0 +1,640 @@
+#include "BsEditorGUI.h"
+#include "BsGUIElementStyle.h"
+
+#include "BsGUILabel.h"
+#include "BsGUIButton.h"
+#include "BsGUIInputBox.h"
+#include "BsTextSprite.h"
+#include "BsSpriteTexture.h"
+
+#include "CmFont.h"
+#include "CmFontImportOptions.h"
+#include "CmImporter.h"
+#include "CmRTTIType.h"
+#include "CmFileSystem.h"
+
+using namespace CamelotFramework;
+using namespace BansheeEngine;
+
+namespace BansheeEditor
+{
+	const String EditorGUI::DefaultFontPath = "arial.ttf";
+	const UINT32 EditorGUI::DefaultFontSize = 10;
+
+	const String EditorGUI::DefaultFolder = "..\\..\\..\\..\\Data\\Editor\\Skin\\";
+
+	const String EditorGUI::WindowBackgroundTexture = "WindowBgTile.psd";
+
+	const String EditorGUI::ButtonNormalTex = "ButtonNormal.psd";
+	const String EditorGUI::ButtonHoverTex = "ButtonHover.psd";
+
+	const String EditorGUI::WindowFrameNormal = "WindowFrameNormal.psd";
+	const String EditorGUI::WindowFrameFocused = "WindowFrameFocused.psd";
+
+	const String EditorGUI::WindowTitleBarBg = "WindowTitleBarBg.psd";
+
+	const String EditorGUI::WindowCloseButtonNormal = "WindowCloseBtnNormal.psd";
+	const String EditorGUI::WindowCloseButtonHover = "WindowCloseBtnHover.psd";
+
+	const String EditorGUI::WindowMinButtonNormal = "WindowMaxBtnNormal.psd";
+	const String EditorGUI::WindowMinButtonHover = "WindowMaxBtnHover.psd";
+
+	const String EditorGUI::WindowMaxButtonNormal = "WindowMinBtnNormal.psd";
+	const String EditorGUI::WindowMaxButtonHover = "WindowMinBtnHover.psd";
+
+	const String EditorGUI::TabbedBarBtnNormal = "TabbedButtonNormal.psd";
+	const String EditorGUI::TabbedBarBtnActive = "TabbedButtonActive.psd";
+
+	const String EditorGUI::InputBoxNormalTex = "InputBoxNormal.psd";
+	const String EditorGUI::InputBoxHoverTex = "InputBoxHover.psd";
+	const String EditorGUI::InputBoxFocusedTex = "InputBoxFocused.psd";
+
+	const String EditorGUI::ScrollBarUpNormalTex = "ScrollBarUpNormal.psd";
+	const String EditorGUI::ScrollBarUpHoverTex = "ScrollBarUpHover.psd";
+	const String EditorGUI::ScrollBarUpActiveTex = "ScrollBarUpActive.psd";
+
+	const String EditorGUI::ScrollBarDownNormalTex = "ScrollBarDownNormal.psd";
+	const String EditorGUI::ScrollBarDownHoverTex = "ScrollBarDownHover.psd";
+	const String EditorGUI::ScrollBarDownActiveTex = "ScrollBarDownActive.psd";
+
+	const String EditorGUI::ScrollBarLeftNormalTex = "ScrollBarLeftNormal.psd";
+	const String EditorGUI::ScrollBarLeftHoverTex = "ScrollBarLeftHover.psd";
+	const String EditorGUI::ScrollBarLeftActiveTex = "ScrollBarLeftActive.psd";
+
+	const String EditorGUI::ScrollBarRightNormalTex = "ScrollBarRightNormal.psd";
+	const String EditorGUI::ScrollBarRightHoverTex = "ScrollBarRightHover.psd";
+	const String EditorGUI::ScrollBarRightActiveTex = "ScrollBarRightActive.psd";
+
+	const String EditorGUI::ScrollBarHandleHorzNormalTex = "ScrollBarHorzHandleNormal.psd";
+	const String EditorGUI::ScrollBarHandleHorzHoverTex = "ScrollBarHorzHandleHover.psd";
+	const String EditorGUI::ScrollBarHandleHorzActiveTex = "ScrollBarHorzHandleActive.psd";
+
+	const String EditorGUI::ScrollBarHandleVertNormalTex = "ScrollBarVertHandleNormal.psd";
+	const String EditorGUI::ScrollBarHandleVertHoverTex = "ScrollBarVertHandleHover.psd";
+	const String EditorGUI::ScrollBarHandleVertActiveTex = "ScrollBarVertHandleActive.psd";
+
+	const String EditorGUI::DropDownBtnNormalTex = "DropDownNormal.psd";
+	const String EditorGUI::DropDownBtnHoverTex = "DropDownHover.psd";
+
+	const String EditorGUI::DropDownBoxBgTex = "DropDownBoxBg.psd";
+	const String EditorGUI::DropDownBoxEntryNormalTex = "DropDownButtonNormal.psd";
+	const String EditorGUI::DropDownBoxEntryHoverTex = "DropDownButtonHover.psd";
+
+	const String EditorGUI::DropDownBoxBtnUpNormalTex = "DropDownBoxBtnUpNormal.psd";
+	const String EditorGUI::DropDownBoxBtnUpHoverTex = "DropDownBoxBtnUpHover.psd";
+
+	const String EditorGUI::DropDownBoxBtnDownNormalTex = "DropDownBoxBtnDownNormal.psd";
+	const String EditorGUI::DropDownBoxBtnDownHoverTex = "DropDownBoxBtnDownHover.psd";
+
+	const String EditorGUI::DropDownBoxEntryExpNormalTex = "DropDownExpNormal.psd";
+	const String EditorGUI::DropDownBoxEntryExpHoverTex = "DropDownExpHover.psd";
+
+	const String EditorGUI::DropDownSeparatorTex = "DropDownSeparator.psd";
+
+	const String EditorGUI::DropDownBoxBtnUpArrowTex = "DropDownBoxBtnUpArrow.psd";
+	const String EditorGUI::DropDownBoxBtnDownArrowTex = "DropDownBoxBtnDownArrow.psd";
+
+	const String EditorGUI::ScrollBarBgTex = "ScrollBarBg.psd";
+
+	const String EditorGUI::MenuBarBgTex = "MenuBarBg.psd";
+
+	const String EditorGUI::MenuBarBtnNormalTex = "MenuBarButtonNormal.psd";
+	const String EditorGUI::MenuBarBtnHoverTex = "MenuBarButtonHover.psd";
+
+	const String EditorGUI::MenuBarBansheeLogoTex = "MenuBarBansheeLogo.psd";
+
+	const String EditorGUI::DockSliderNormalTex = "DockSliderBtn.psd";
+
+	EditorGUI::EditorGUI()
+	{
+		// TODO - Normally I want to load this from some file
+
+		// Label
+		// TODO - Instead of importing font every time, try to save a resource and then just load it?
+		HFont font;
+
+		{
+			String fontPath = DefaultFolder + DefaultFontPath;
+			ImportOptionsPtr fontImportOptions = Importer::instance().createImportOptions(fontPath);
+			if(rtti_is_of_type<FontImportOptions>(fontImportOptions))
+			{
+				FontImportOptions* importOptions = static_cast<FontImportOptions*>(fontImportOptions.get());
+
+				Vector<CamelotFramework::UINT32>::type fontSizes;
+				fontSizes.push_back(DefaultFontSize);
+				importOptions->setFontSizes(fontSizes);
+				importOptions->setAntialiasing(false);
+			}
+
+			font = Importer::instance().import(fontPath, fontImportOptions);
+		}
+
+		GUIElementStyle labelStyle;
+		labelStyle.font = font;
+		labelStyle.fontSize = DefaultFontSize;
+		labelStyle.fixedWidth = false;
+		labelStyle.fixedHeight = true;
+		labelStyle.height = 16;
+		labelStyle.minWidth = 10;
+
+		mSkin.setStyle(GUILabel::getGUITypeName(), labelStyle);
+
+		// Window frame
+		HTexture windowFrameNormalTex = static_resource_cast<Texture>(Importer::instance().import(FileSystem::getCurrentPath() + "\\" + WindowFrameNormal));
+		HTexture windowFrameFocusedTex = static_resource_cast<Texture>(Importer::instance().import(FileSystem::getCurrentPath() + "\\" + WindowFrameFocused));
+
+		GUIElementStyle windowFrameStyle;
+		windowFrameStyle.normal.texture = getTexture(WindowFrameNormal);
+		windowFrameStyle.focused.texture = getTexture(WindowFrameFocused);
+		windowFrameStyle.border.left = 1;
+		windowFrameStyle.border.right = 1;
+		windowFrameStyle.border.top = 1;
+		windowFrameStyle.border.bottom = 1;
+
+		mSkin.setStyle("WindowFrame", windowFrameStyle);
+
+		// Button
+		HTexture buttonNormalTex = static_resource_cast<Texture>(Importer::instance().import(FileSystem::getCurrentPath() + "\\" + ButtonNormalTex));
+		HTexture buttonHoverTex = static_resource_cast<Texture>(Importer::instance().import(FileSystem::getCurrentPath() + "\\" + ButtonHoverTex));
+
+		GUIElementStyle buttonStyle;
+		buttonStyle.normal.texture = getTexture(ButtonNormalTex);
+		buttonStyle.hover.texture = getTexture(ButtonHoverTex);
+		buttonStyle.active.texture = buttonStyle.hover.texture;
+		buttonStyle.border.left = 5;
+		buttonStyle.border.right = 5;
+		buttonStyle.border.top = 5;
+		buttonStyle.border.bottom = 5;
+		buttonStyle.margins.left = 4;
+		buttonStyle.margins.right = 4;
+		buttonStyle.margins.top = 4;
+		buttonStyle.margins.bottom = 4;
+		buttonStyle.contentOffset.left = 2;
+		buttonStyle.contentOffset.right = 2;
+		buttonStyle.fixedHeight = true;
+		buttonStyle.height = 21;
+		buttonStyle.minWidth = 50;
+		buttonStyle.font = font;
+		buttonStyle.fontSize = DefaultFontSize;
+		buttonStyle.textHorzAlign = THA_Center;
+		buttonStyle.textVertAlign = TVA_Center;
+
+		mSkin.setStyle(GUIButton::getGUITypeName(), buttonStyle);
+
+		// Window background texture
+		GUIElementStyle windowBgStyle;
+		windowBgStyle.normal.texture = getTexture(WindowBackgroundTexture);
+
+		mSkin.setStyle("WindowBackground", windowBgStyle);
+
+		// Window title bar background
+		GUIElementStyle titleBarBgStyle;
+		titleBarBgStyle.normal.texture = getTexture(WindowTitleBarBg);
+		titleBarBgStyle.fixedHeight = true;
+		titleBarBgStyle.height = 13;
+
+		mSkin.setStyle("TitleBarBackground", titleBarBgStyle);
+
+		// Tabbed title bar tab button
+		GUIElementStyle tabbedBarButton;
+		tabbedBarButton.normal.texture = getTexture(TabbedBarBtnNormal);
+		tabbedBarButton.hover.texture = getTexture(TabbedBarBtnActive);
+		tabbedBarButton.active.texture = tabbedBarButton.hover.texture;
+		tabbedBarButton.normalOn.texture = tabbedBarButton.hover.texture;
+		tabbedBarButton.hoverOn.texture = tabbedBarButton.hover.texture;
+		tabbedBarButton.activeOn.texture = tabbedBarButton.hover.texture;
+		tabbedBarButton.fixedHeight = true;
+		tabbedBarButton.height = 13;
+		tabbedBarButton.minWidth = 10;
+		tabbedBarButton.maxWidth = 110;
+		tabbedBarButton.font = font;
+		tabbedBarButton.fontSize = DefaultFontSize;
+		tabbedBarButton.textHorzAlign = THA_Center;
+		tabbedBarButton.textVertAlign = TVA_Center;
+
+		mSkin.setStyle("TabbedBarBtn", tabbedBarButton);
+
+		// Tabbed title bar drag/drop button
+		GUIElementStyle tabbedBarDropButton;
+		tabbedBarDropButton.fixedHeight = true;
+		tabbedBarDropButton.fixedWidth = true;
+		tabbedBarDropButton.height = 13;
+		tabbedBarDropButton.width = 6;
+
+		mSkin.setStyle("TabbedBarDropArea", tabbedBarDropButton);
+
+		// Window minimize button
+		GUIElementStyle winMinButtonStyle;
+		winMinButtonStyle.normal.texture = getTexture(WindowMinButtonNormal);
+		winMinButtonStyle.hover.texture = getTexture(WindowMinButtonHover);
+		winMinButtonStyle.active.texture = winMinButtonStyle.hover.texture;
+		winMinButtonStyle.fixedHeight = true;
+		winMinButtonStyle.fixedWidth = true;
+		winMinButtonStyle.height = 7;
+		winMinButtonStyle.width = 8;
+
+		mSkin.setStyle("WinMinimizeBtn", winMinButtonStyle);
+
+		// Window maximize button
+		GUIElementStyle winMaxButtonStyle;
+		winMaxButtonStyle.normal.texture = getTexture(WindowMaxButtonNormal);
+		winMaxButtonStyle.hover.texture = getTexture(WindowMaxButtonHover);
+		winMaxButtonStyle.active.texture = winMaxButtonStyle.hover.texture;
+		winMaxButtonStyle.fixedHeight = true;
+		winMaxButtonStyle.fixedWidth = true;
+		winMaxButtonStyle.height = 8;
+		winMaxButtonStyle.width = 8;
+
+		mSkin.setStyle("WinMaximizeBtn", winMaxButtonStyle);
+
+		// Window close button
+		GUIElementStyle winCloseButtonStyle;
+		winCloseButtonStyle.normal.texture = getTexture(WindowCloseButtonNormal);
+		winCloseButtonStyle.hover.texture = getTexture(WindowCloseButtonHover);
+		winCloseButtonStyle.active.texture = winCloseButtonStyle.hover.texture;
+		winCloseButtonStyle.fixedHeight = true;
+		winCloseButtonStyle.fixedWidth = true;
+		winCloseButtonStyle.height = 7;
+		winCloseButtonStyle.width = 8;
+
+		mSkin.setStyle("WinCloseBtn", winCloseButtonStyle);
+
+		// Input box
+		GUIElementStyle inputBoxStyle;
+		inputBoxStyle.normal.texture = getTexture(InputBoxNormalTex);
+		inputBoxStyle.hover.texture = getTexture(InputBoxHoverTex);
+		inputBoxStyle.focused.texture = getTexture(InputBoxFocusedTex);
+		inputBoxStyle.active.texture = inputBoxStyle.normal.texture;
+		inputBoxStyle.border.left = 5;
+		inputBoxStyle.border.right = 5;
+		inputBoxStyle.border.top = 5;
+		inputBoxStyle.border.bottom = 5;
+		inputBoxStyle.margins.left = 4;
+		inputBoxStyle.margins.right = 4;
+		inputBoxStyle.margins.top = 4;
+		inputBoxStyle.margins.bottom = 4;
+		inputBoxStyle.contentOffset.left = 2;
+		inputBoxStyle.contentOffset.right = 2;
+		inputBoxStyle.fixedHeight = true;
+		inputBoxStyle.height = 21;
+		inputBoxStyle.minWidth = 10;
+		inputBoxStyle.font = font;
+		inputBoxStyle.fontSize = DefaultFontSize;
+		inputBoxStyle.textHorzAlign = THA_Left;
+		inputBoxStyle.textVertAlign = TVA_Top;
+
+		mSkin.setStyle(GUIInputBox::getGUITypeName(), inputBoxStyle);
+
+		/************************************************************************/
+		/* 								SCROLL BAR                      		*/
+		/************************************************************************/
+
+		// Up button
+		GUIElementStyle scrollUpBtnStyle;
+		scrollUpBtnStyle.normal.texture = getTexture(ScrollBarUpNormalTex);
+		scrollUpBtnStyle.hover.texture = getTexture(ScrollBarUpHoverTex);
+		scrollUpBtnStyle.active.texture = getTexture(ScrollBarUpActiveTex);
+		scrollUpBtnStyle.fixedHeight = true;
+		scrollUpBtnStyle.fixedWidth = true;
+		scrollUpBtnStyle.height = 4;
+		scrollUpBtnStyle.width = 8;
+
+		mSkin.setStyle("ScrollUpBtn", scrollUpBtnStyle);
+
+		// Down button
+		GUIElementStyle scrollDownBtnStyle;
+		scrollDownBtnStyle.normal.texture = getTexture(ScrollBarDownNormalTex);
+		scrollDownBtnStyle.hover.texture = getTexture(ScrollBarDownHoverTex);
+		scrollDownBtnStyle.active.texture = getTexture(ScrollBarDownActiveTex);
+		scrollDownBtnStyle.fixedHeight = true;
+		scrollDownBtnStyle.fixedWidth = true;
+		scrollDownBtnStyle.height = 4;
+		scrollDownBtnStyle.width = 8;
+
+		mSkin.setStyle("ScrollDownBtn", scrollDownBtnStyle);
+
+		// Left button
+		GUIElementStyle scrollLeftBtnStyle;
+		scrollLeftBtnStyle.normal.texture = getTexture(ScrollBarLeftNormalTex);
+		scrollLeftBtnStyle.hover.texture = getTexture(ScrollBarLeftHoverTex);
+		scrollLeftBtnStyle.active.texture = getTexture(ScrollBarLeftActiveTex);
+		scrollLeftBtnStyle.fixedHeight = true;
+		scrollLeftBtnStyle.fixedWidth = true;
+		scrollLeftBtnStyle.height = 8;
+		scrollLeftBtnStyle.width = 4;
+
+		mSkin.setStyle("ScrollLeftBtn", scrollLeftBtnStyle);
+
+		// Right button
+		GUIElementStyle scrollRightBtnStyle;
+		scrollRightBtnStyle.normal.texture = getTexture(ScrollBarRightNormalTex);
+		scrollRightBtnStyle.hover.texture = getTexture(ScrollBarRightHoverTex);
+		scrollRightBtnStyle.active.texture = getTexture(ScrollBarRightActiveTex);
+		scrollRightBtnStyle.fixedHeight = true;
+		scrollRightBtnStyle.fixedWidth = true;
+		scrollRightBtnStyle.height = 8;
+		scrollRightBtnStyle.width = 4;
+
+		mSkin.setStyle("ScrollRightBtn", scrollRightBtnStyle);
+
+		// Horizontal handle
+		GUIElementStyle scrollBarHorzBtnStyle;
+		scrollBarHorzBtnStyle.normal.texture = getTexture(ScrollBarHandleHorzNormalTex);
+		scrollBarHorzBtnStyle.hover.texture = getTexture(ScrollBarHandleHorzHoverTex);
+		scrollBarHorzBtnStyle.active.texture = getTexture(ScrollBarHandleHorzActiveTex);
+		scrollBarHorzBtnStyle.fixedHeight = true;
+		scrollBarHorzBtnStyle.fixedWidth = true;
+		scrollBarHorzBtnStyle.height = 6;
+		scrollBarHorzBtnStyle.width = 4;
+
+		mSkin.setStyle("ScrollBarHorzBtn", scrollBarHorzBtnStyle);
+
+		// Vertical handle
+		GUIElementStyle scrollBarVertBtnStyle;
+		scrollBarVertBtnStyle.normal.texture = getTexture(ScrollBarHandleVertNormalTex);
+		scrollBarVertBtnStyle.hover.texture = getTexture(ScrollBarHandleVertHoverTex);
+		scrollBarVertBtnStyle.active.texture = getTexture(ScrollBarHandleVertActiveTex);
+		scrollBarVertBtnStyle.fixedHeight = true;
+		scrollBarVertBtnStyle.fixedWidth = true;
+		scrollBarVertBtnStyle.height = 4;
+		scrollBarVertBtnStyle.width = 6;
+
+		mSkin.setStyle("ScrollBarVertBtn", scrollBarVertBtnStyle);
+
+		HSpriteTexture scrollBarBgPtr = getTexture(ScrollBarBgTex);
+
+		// Vertical scroll bar
+		GUIElementStyle vertScrollBarStyle;
+		vertScrollBarStyle.normal.texture = scrollBarBgPtr;
+		vertScrollBarStyle.hover.texture = scrollBarBgPtr;
+		vertScrollBarStyle.active.texture = scrollBarBgPtr;
+		vertScrollBarStyle.fixedHeight = false;
+		vertScrollBarStyle.fixedWidth = true;
+		vertScrollBarStyle.minHeight = 16;
+		vertScrollBarStyle.width = 8;
+
+		mSkin.setStyle("ScrollBarVert", vertScrollBarStyle);
+
+		// Horizontal scroll bar
+		GUIElementStyle horzScrollBarStyle;
+		horzScrollBarStyle.normal.texture = scrollBarBgPtr;
+		horzScrollBarStyle.hover.texture = scrollBarBgPtr;
+		horzScrollBarStyle.active.texture = scrollBarBgPtr;
+		horzScrollBarStyle.fixedHeight = true;
+		horzScrollBarStyle.fixedWidth = false;
+		horzScrollBarStyle.minWidth = 16;
+		horzScrollBarStyle.height = 8;
+
+		mSkin.setStyle("ScrollBarHorz", horzScrollBarStyle);
+
+		/************************************************************************/
+		/* 								DROP DOWN BOX                      		*/
+		/************************************************************************/
+
+		// ListBox button
+		GUIElementStyle dropDownListStyle;
+		dropDownListStyle.normal.texture = getTexture(DropDownBtnNormalTex);
+		dropDownListStyle.hover.texture = getTexture(DropDownBtnHoverTex);
+		dropDownListStyle.active.texture = dropDownListStyle.hover.texture;
+		dropDownListStyle.normalOn.texture = dropDownListStyle.hover.texture;
+		dropDownListStyle.hoverOn.texture = dropDownListStyle.hover.texture;
+		dropDownListStyle.activeOn.texture = dropDownListStyle.hover.texture;
+		dropDownListStyle.fixedHeight = true;
+		dropDownListStyle.fixedWidth = false;
+		dropDownListStyle.height = 13;
+		dropDownListStyle.width = 30;
+		dropDownListStyle.contentOffset.left = 3;
+		dropDownListStyle.contentOffset.right = 11;
+		dropDownListStyle.contentOffset.top = 1;
+		dropDownListStyle.contentOffset.bottom = 1;
+		dropDownListStyle.border.left = 1;
+		dropDownListStyle.border.right = 10;
+		dropDownListStyle.border.top = 1;
+		dropDownListStyle.border.bottom = 1;
+		dropDownListStyle.font = font;
+		dropDownListStyle.fontSize = DefaultFontSize;
+		dropDownListStyle.textHorzAlign = THA_Left;
+		dropDownListStyle.textVertAlign = TVA_Top;
+
+		mSkin.setStyle("ListBox", dropDownListStyle);
+
+		// DropDown scroll up button arrow
+		HTexture dropDownBtnScrollUpArrow = static_resource_cast<Texture>(Importer::instance().import(FileSystem::getCurrentPath() + "\\" + DropDownBoxBtnUpArrowTex));
+
+		GUIElementStyle dropDownScrollUpBtnArrowStyle;
+		dropDownScrollUpBtnArrowStyle.normal.texture = getTexture(DropDownBoxBtnUpArrowTex);
+		dropDownScrollUpBtnArrowStyle.hover.texture = dropDownScrollUpBtnArrowStyle.normal.texture;
+		dropDownScrollUpBtnArrowStyle.active.texture = dropDownScrollUpBtnArrowStyle.hover.texture;
+		dropDownScrollUpBtnArrowStyle.fixedHeight = true;
+		dropDownScrollUpBtnArrowStyle.fixedWidth = false;
+		dropDownScrollUpBtnArrowStyle.height = 7;
+		dropDownScrollUpBtnArrowStyle.width = 30;
+		dropDownScrollUpBtnArrowStyle.border.left = 1;
+		dropDownScrollUpBtnArrowStyle.border.right = 1;
+		dropDownScrollUpBtnArrowStyle.border.top = 1;
+		dropDownScrollUpBtnArrowStyle.border.bottom = 1;
+
+		mSkin.setStyle("ListBoxScrollUpBtnArrow", dropDownScrollUpBtnArrowStyle);
+		mSkin.setStyle("MenuBarScrollUpBtnArrow", dropDownScrollUpBtnArrowStyle);
+		mSkin.setStyle("ContextMenuScrollUpBtnArrow", dropDownScrollUpBtnArrowStyle);
+
+		// DropDown scroll up button
+		GUIElementStyle dropDownScrollUpBtnStyle;
+		dropDownScrollUpBtnStyle.normal.texture = getTexture(DropDownBoxBtnUpNormalTex);
+		dropDownScrollUpBtnStyle.hover.texture = getTexture(DropDownBoxBtnUpHoverTex);
+		dropDownScrollUpBtnStyle.active.texture = dropDownScrollUpBtnStyle.hover.texture;
+		dropDownScrollUpBtnStyle.fixedHeight = true;
+		dropDownScrollUpBtnStyle.fixedWidth = false;
+		dropDownScrollUpBtnStyle.height = 7;
+		dropDownScrollUpBtnStyle.width = 30;
+		dropDownScrollUpBtnStyle.border.left = 1;
+		dropDownScrollUpBtnStyle.border.right = 1;
+		dropDownScrollUpBtnStyle.border.top = 1;
+		dropDownScrollUpBtnStyle.border.bottom = 1;
+
+		mSkin.setStyle("ListBoxScrollUpBtn", dropDownScrollUpBtnStyle);
+		mSkin.setStyle("MenuBarScrollUpBtn", dropDownScrollUpBtnStyle);
+		mSkin.setStyle("ContextMenuScrollUpBtn", dropDownScrollUpBtnStyle);
+
+		// DropDown scroll down button arrow
+		GUIElementStyle dropDownScrollDownBtnArrowStyle;
+		dropDownScrollDownBtnArrowStyle.normal.texture = getTexture(DropDownBoxBtnDownArrowTex);
+		dropDownScrollDownBtnArrowStyle.hover.texture = dropDownScrollDownBtnArrowStyle.normal.texture;
+		dropDownScrollDownBtnArrowStyle.active.texture = dropDownScrollDownBtnArrowStyle.hover.texture;
+		dropDownScrollDownBtnArrowStyle.fixedHeight = true;
+		dropDownScrollDownBtnArrowStyle.fixedWidth = false;
+		dropDownScrollDownBtnArrowStyle.height = 7;
+		dropDownScrollDownBtnArrowStyle.width = 30;
+		dropDownScrollDownBtnArrowStyle.border.left = 1;
+		dropDownScrollDownBtnArrowStyle.border.right = 1;
+		dropDownScrollDownBtnArrowStyle.border.top = 1;
+		dropDownScrollDownBtnArrowStyle.border.bottom = 1;
+
+		mSkin.setStyle("ListBoxScrollDownBtnArrow", dropDownScrollDownBtnArrowStyle);
+		mSkin.setStyle("MenuBarScrollDownBtnArrow", dropDownScrollDownBtnArrowStyle);
+		mSkin.setStyle("ContextMenuScrollDownBtnArrow", dropDownScrollDownBtnArrowStyle);
+
+		// DropDown scroll down button
+		GUIElementStyle dropDownScrollDownBtnStyle;
+		dropDownScrollDownBtnStyle.normal.texture = getTexture(DropDownBoxBtnDownNormalTex);
+		dropDownScrollDownBtnStyle.hover.texture = getTexture(DropDownBoxBtnDownHoverTex);
+		dropDownScrollDownBtnStyle.active.texture = dropDownScrollDownBtnStyle.hover.texture;
+		dropDownScrollDownBtnStyle.fixedHeight = true;
+		dropDownScrollDownBtnStyle.fixedWidth = false;
+		dropDownScrollDownBtnStyle.height = 7;
+		dropDownScrollDownBtnStyle.width = 30;
+		dropDownScrollDownBtnStyle.border.left = 1;
+		dropDownScrollDownBtnStyle.border.right = 1;
+		dropDownScrollDownBtnStyle.border.top = 1;
+		dropDownScrollDownBtnStyle.border.bottom = 1;
+
+		mSkin.setStyle("ListBoxScrollDownBtn", dropDownScrollDownBtnStyle);
+		mSkin.setStyle("MenuBarScrollDownBtn", dropDownScrollDownBtnStyle);
+		mSkin.setStyle("ContextMenuScrollDownBtn", dropDownScrollDownBtnStyle);
+
+		// DropDown entry button
+		GUIElementStyle dropDownEntryBtnStyle;
+		dropDownEntryBtnStyle.normal.texture = getTexture(DropDownBoxEntryNormalTex);
+		dropDownEntryBtnStyle.hover.texture = getTexture(DropDownBoxEntryHoverTex);
+		dropDownEntryBtnStyle.active.texture = dropDownEntryBtnStyle.hover.texture;
+		dropDownEntryBtnStyle.fixedHeight = true;
+		dropDownEntryBtnStyle.fixedWidth = false;
+		dropDownEntryBtnStyle.height = 14;
+		dropDownEntryBtnStyle.width = 30;
+		dropDownEntryBtnStyle.border.left = 1;
+		dropDownEntryBtnStyle.border.right = 1;
+		dropDownEntryBtnStyle.border.top = 1;
+		dropDownEntryBtnStyle.border.bottom = 1;
+		dropDownEntryBtnStyle.font = font;
+		dropDownEntryBtnStyle.fontSize = DefaultFontSize;
+		dropDownEntryBtnStyle.textHorzAlign = THA_Left;
+		dropDownEntryBtnStyle.textVertAlign = TVA_Top;
+
+		mSkin.setStyle("ListBoxEntryBtn", dropDownEntryBtnStyle);
+		mSkin.setStyle("MenuBarEntryBtn", dropDownEntryBtnStyle);
+		mSkin.setStyle("ContextMenuEntryBtn", dropDownEntryBtnStyle);
+
+		// DropDown entry button with expand
+		GUIElementStyle dropDownEntryExpBtnStyle;
+		dropDownEntryExpBtnStyle.normal.texture = getTexture(DropDownBoxEntryExpNormalTex);
+		dropDownEntryExpBtnStyle.hover.texture = getTexture(DropDownBoxEntryExpHoverTex);
+		dropDownEntryExpBtnStyle.active.texture = dropDownEntryExpBtnStyle.hover.texture;
+		dropDownEntryExpBtnStyle.fixedHeight = true;
+		dropDownEntryExpBtnStyle.fixedWidth = false;
+		dropDownEntryExpBtnStyle.height = 14;
+		dropDownEntryExpBtnStyle.width = 30;
+		dropDownEntryExpBtnStyle.border.left = 1;
+		dropDownEntryExpBtnStyle.border.right = 6;
+		dropDownEntryExpBtnStyle.border.top = 1;
+		dropDownEntryExpBtnStyle.border.bottom = 1;
+		dropDownEntryExpBtnStyle.font = font;
+		dropDownEntryExpBtnStyle.fontSize = DefaultFontSize;
+		dropDownEntryExpBtnStyle.textHorzAlign = THA_Left;
+		dropDownEntryExpBtnStyle.textVertAlign = TVA_Top;
+
+		mSkin.setStyle("ListBoxEntryExpBtn", dropDownEntryExpBtnStyle);
+		mSkin.setStyle("MenuBarEntryExpBtn", dropDownEntryExpBtnStyle);
+		mSkin.setStyle("ContextMenuEntryExpBtn", dropDownEntryExpBtnStyle);
+
+		// DropDown box frame
+		GUIElementStyle dropDownBoxStyle;
+		dropDownBoxStyle.normal.texture = getTexture(DropDownBoxBgTex);
+		dropDownBoxStyle.hover.texture = dropDownEntryBtnStyle.normal.texture;
+		dropDownBoxStyle.active.texture = dropDownEntryBtnStyle.hover.texture;
+		dropDownBoxStyle.fixedHeight = false;
+		dropDownBoxStyle.fixedWidth = false;
+		dropDownBoxStyle.border.left = 1;
+		dropDownBoxStyle.border.right = 1;
+		dropDownBoxStyle.border.top = 1;
+		dropDownBoxStyle.border.bottom = 1;
+		dropDownBoxStyle.margins.left = 1;
+		dropDownBoxStyle.margins.right = 1;
+		dropDownBoxStyle.margins.top = 1;
+		dropDownBoxStyle.margins.bottom = 1;
+
+		mSkin.setStyle("ListBoxFrame", dropDownBoxStyle);
+		mSkin.setStyle("MenuBarFrame", dropDownBoxStyle);
+		mSkin.setStyle("ContextMenuFrame", dropDownBoxStyle);
+
+		// Drop down separator
+		GUIElementStyle dropDownSeparatorStyle;
+		dropDownSeparatorStyle.normal.texture = getTexture(DropDownSeparatorTex);
+		dropDownSeparatorStyle.fixedHeight = true;
+		dropDownSeparatorStyle.fixedWidth = false;
+		dropDownSeparatorStyle.height = 3;
+		dropDownSeparatorStyle.width = 30;
+		dropDownSeparatorStyle.border.left = 1;
+		dropDownSeparatorStyle.border.right = 1;
+		dropDownSeparatorStyle.border.top = 1;
+		dropDownSeparatorStyle.border.bottom = 1;
+
+		mSkin.setStyle("ListBoxSeparator", dropDownSeparatorStyle);
+		mSkin.setStyle("MenuBarSeparator", dropDownSeparatorStyle);
+		mSkin.setStyle("ContextMenuSeparator", dropDownSeparatorStyle);
+
+		/************************************************************************/
+		/* 								MENU BAR	                     		*/
+		/************************************************************************/
+
+		// MenuBar background
+		GUIElementStyle menuBarBgStyle;
+		menuBarBgStyle.normal.texture = getTexture(MenuBarBgTex);
+		menuBarBgStyle.fixedHeight = false;
+		menuBarBgStyle.fixedWidth = false;
+		menuBarBgStyle.height = 4;
+		menuBarBgStyle.width = 4;
+
+		mSkin.setStyle("MenuBarBg", menuBarBgStyle);
+
+		// MenuBar Banshee logo
+		GUIElementStyle menuBarBansheeLogoStyle;
+		menuBarBansheeLogoStyle.normal.texture = getTexture(MenuBarBansheeLogoTex);
+		menuBarBansheeLogoStyle.fixedHeight = true;
+		menuBarBansheeLogoStyle.fixedWidth = true;
+		menuBarBansheeLogoStyle.height = 7;
+		menuBarBansheeLogoStyle.width = 51;
+
+		mSkin.setStyle("MenuBarBansheeLogo", menuBarBansheeLogoStyle);
+
+		// MenuBar button
+		GUIElementStyle menuBarBtnStyle;
+		menuBarBtnStyle.normal.texture = getTexture(MenuBarBtnNormalTex);
+		menuBarBtnStyle.hover.texture = getTexture(MenuBarBtnHoverTex);
+		menuBarBtnStyle.active.texture = menuBarBtnStyle.hover.texture;
+		menuBarBtnStyle.normalOn.texture = menuBarBtnStyle.hover.texture;
+		menuBarBtnStyle.hoverOn.texture = menuBarBtnStyle.hover.texture;
+		menuBarBtnStyle.activeOn.texture = menuBarBtnStyle.hover.texture;
+		menuBarBtnStyle.fixedHeight = true;
+		menuBarBtnStyle.fixedWidth = false;
+		menuBarBtnStyle.height = 15;
+		menuBarBtnStyle.width = 4;
+		menuBarBtnStyle.margins.left = 2;
+		menuBarBtnStyle.margins.right = 2;
+		menuBarBtnStyle.margins.top = 2;
+		menuBarBtnStyle.margins.bottom = 2;
+		menuBarBtnStyle.font = font;
+		menuBarBtnStyle.fontSize = DefaultFontSize;
+		menuBarBtnStyle.textHorzAlign = THA_Left;
+		menuBarBtnStyle.textVertAlign = TVA_Top;
+
+		mSkin.setStyle("MenuBarBtn", menuBarBtnStyle);
+
+		/************************************************************************/
+		/* 								DOCK SLIDER	                     		*/
+		/************************************************************************/
+
+		GUIElementStyle dockSliderBtnStyle;
+		dockSliderBtnStyle.normal.texture = getTexture(DockSliderNormalTex);
+		dockSliderBtnStyle.fixedHeight = false;
+		dockSliderBtnStyle.fixedWidth = false;
+		dockSliderBtnStyle.height = 2;
+		dockSliderBtnStyle.width = 2;
+
+		mSkin.setStyle("DockSliderBtn", dockSliderBtnStyle);
+	}
+
+	HSpriteTexture EditorGUI::getTexture(const CM::String& name)
+	{
+		return SpriteTexture::create(static_resource_cast<Texture>(Importer::instance().import(FileSystem::getCurrentPath() + "\\" + DefaultFolder + name)));
+	}
+}

+ 3 - 3
CamelotClient/Source/BsEditorWindowBase.cpp

@@ -6,7 +6,7 @@
 #include "BsEditorWindowManager.h"
 #include "BsEditorWindowManager.h"
 #include "BsCamera.h"
 #include "BsCamera.h"
 #include "BsGUIWindowFrameWidget.h"
 #include "BsGUIWindowFrameWidget.h"
-#include "BsEngineGUI.h"
+#include "BsEditorGUI.h"
 
 
 using namespace CamelotFramework;
 using namespace CamelotFramework;
 using namespace BansheeEngine;
 using namespace BansheeEngine;
@@ -75,9 +75,9 @@ namespace BansheeEditor
 		mGUI = mSceneObject->addComponent<GUIWidget>(mCamera->getViewport().get());
 		mGUI = mSceneObject->addComponent<GUIWidget>(mCamera->getViewport().get());
 		mGUI->setDepth(128);
 		mGUI->setDepth(128);
 
 
-		mGUI->setSkin(EngineGUI::instance().getSkin());
+		mGUI->setSkin(EditorGUI::instance().getSkin());
 
 
-		mWindowFrame = mSceneObject->addComponent<WindowFrameWidget>(mCamera->getViewport().get(), renderWindow.get(), EngineGUI::instance().getSkin());
+		mWindowFrame = mSceneObject->addComponent<WindowFrameWidget>(mCamera->getViewport().get(), renderWindow.get(), EditorGUI::instance().getSkin());
 		mWindowFrame->setDepth(129);
 		mWindowFrame->setDepth(129);
 
 
 		mResizedConn = mCamera->getViewport()->onResized.connect(boost::bind(&EditorWindowBase::resized, this));
 		mResizedConn = mCamera->getViewport()->onResized.connect(boost::bind(&EditorWindowBase::resized, this));

+ 3 - 3
CamelotClient/Source/BsGUIMenuBar.cpp

@@ -27,10 +27,10 @@ namespace BansheeEditor
 		mMainArea = GUIArea::create(*parent, 0, 0, 1, 13, 9899);
 		mMainArea = GUIArea::create(*parent, 0, 0, 1, 13, 9899);
 
 
 		mBgTexture = GUITexture::create(*parent, GUIImageScaleMode::StretchToFit, GUIOptions(GUIOption::flexibleWidth(), GUIOption::flexibleHeight()),
 		mBgTexture = GUITexture::create(*parent, GUIImageScaleMode::StretchToFit, GUIOptions(GUIOption::flexibleWidth(), GUIOption::flexibleHeight()),
-			EngineGUI::instance().getSkin().getStyle("MenuBarBg"));
+			parent->getSkin().getStyle("MenuBarBg"));
 		mBackgroundArea->getLayout().addElement(mBgTexture);
 		mBackgroundArea->getLayout().addElement(mBgTexture);
 
 
-		mLogoTexture = GUITexture::create(*parent, GUIImageScaleMode::StretchToFit, EngineGUI::instance().getSkin().getStyle("MenuBarBansheeLogo"));
+		mLogoTexture = GUITexture::create(*parent, GUIImageScaleMode::StretchToFit, parent->getSkin().getStyle("MenuBarBansheeLogo"));
 		GUILayout& mainLayout = mMainArea->getLayout();
 		GUILayout& mainLayout = mMainArea->getLayout();
 
 
 		mainLayout.addElement(mLogoTexture);
 		mainLayout.addElement(mLogoTexture);
@@ -134,7 +134,7 @@ namespace BansheeEditor
 		newSubMenu.name = name;
 		newSubMenu.name = name;
 		newSubMenu.menu = cm_new<GUIMenu>();
 		newSubMenu.menu = cm_new<GUIMenu>();
 
 
-		GUIButton* newButton = GUIButton::create(*mParentWidget, HString(name), EngineGUI::instance().getSkin().getStyle("MenuBarBtn"));
+		GUIButton* newButton = GUIButton::create(*mParentWidget, HString(name), mParentWidget->getSkin().getStyle("MenuBarBtn"));
 		newButton->onClick.connect(boost::bind(&GUIMenuBar::openSubMenu, this, name));
 		newButton->onClick.connect(boost::bind(&GUIMenuBar::openSubMenu, this, name));
 		newButton->onHover.connect(boost::bind(&GUIMenuBar::onSubMenuHover, this, name));
 		newButton->onHover.connect(boost::bind(&GUIMenuBar::onSubMenuHover, this, name));
 		mMainArea->getLayout().insertElement(mMainArea->getLayout().getNumChildren() - NUM_ELEMENTS_AFTER_CONTENT, newButton);
 		mMainArea->getLayout().insertElement(mMainArea->getLayout().getNumChildren() - NUM_ELEMENTS_AFTER_CONTENT, newButton);

+ 2 - 2
CamelotClient/Source/CmTestTextSprite.cpp

@@ -11,7 +11,7 @@
 #include "BsGUISkin.h"
 #include "BsGUISkin.h"
 #include "BsOverlayManager.h"
 #include "BsOverlayManager.h"
 #include "BsSpriteTexture.h"
 #include "BsSpriteTexture.h"
-#include "BsEngineGUI.h"
+#include "BsEditorGUI.h"
 #include "BsGUITexture.h"
 #include "BsGUITexture.h"
 #include "BsGUIRenderTexture.h"
 #include "BsGUIRenderTexture.h"
 #include "BsGUIArea.h"
 #include "BsGUIArea.h"
@@ -40,7 +40,7 @@ namespace CamelotFramework
 
 
 	void TestTextSprite::init(const HCamera& camera, const String& text, CM::RenderTexturePtr sceneView)
 	void TestTextSprite::init(const HCamera& camera, const String& text, CM::RenderTexturePtr sceneView)
 	{
 	{
-		setSkin(EngineGUI::instance().getSkin());
+		setSkin(BansheeEditor::EditorGUI::instance().getSkin());
 		setDepth(128);
 		setDepth(128);
 
 
 		GUIArea* area = GUIArea::createStretchedXY(*this, 0, 0, 0, 0);
 		GUIArea* area = GUIArea::createStretchedXY(*this, 0, 0, 0, 0);

+ 7 - 6
CamelotClient/Source/DbgEditorWidget2.cpp

@@ -6,7 +6,8 @@
 #include "BsGUILayout.h"
 #include "BsGUILayout.h"
 #include "BsEditorWindow.h"
 #include "BsEditorWindow.h"
 #include "BsEditorWidgetContainer.h"
 #include "BsEditorWidgetContainer.h"
-#include "BsEngineGUI.h"
+#include "BsGUIWidget.h"
+#include "BsGUISkin.h"
 
 
 using namespace CamelotFramework;
 using namespace CamelotFramework;
 using namespace BansheeEngine;
 using namespace BansheeEngine;
@@ -37,11 +38,11 @@ namespace BansheeEditor
 
 
 		std::shared_ptr<GUIToggleGroup> toggleGroup = GUIToggle::createToggleGroup();
 		std::shared_ptr<GUIToggleGroup> toggleGroup = GUIToggle::createToggleGroup();
 
 
-		scrollLayout.addElement(GUIToggle::create(getParentWidget(), HString(L"Test A"), toggleGroup, EngineGUI::instance().getSkin().getStyle("Button")));
-		scrollLayout.addElement(GUIToggle::create(getParentWidget(), HString(L"Test B"), toggleGroup, EngineGUI::instance().getSkin().getStyle("Button")));
-		scrollLayout.addElement(GUIToggle::create(getParentWidget(), HString(L"Test C"), toggleGroup, EngineGUI::instance().getSkin().getStyle("Button")));
-		scrollLayout.addElement(GUIToggle::create(getParentWidget(), HString(L"Test D"), toggleGroup, EngineGUI::instance().getSkin().getStyle("Button")));
-		scrollLayout.addElement(GUIToggle::create(getParentWidget(), HString(L"Test E"), toggleGroup, EngineGUI::instance().getSkin().getStyle("Button")));
+		scrollLayout.addElement(GUIToggle::create(getParentWidget(), HString(L"Test A"), toggleGroup, getParentWidget().getSkin().getStyle("Button")));
+		scrollLayout.addElement(GUIToggle::create(getParentWidget(), HString(L"Test B"), toggleGroup, getParentWidget().getSkin().getStyle("Button")));
+		scrollLayout.addElement(GUIToggle::create(getParentWidget(), HString(L"Test C"), toggleGroup, getParentWidget().getSkin().getStyle("Button")));
+		scrollLayout.addElement(GUIToggle::create(getParentWidget(), HString(L"Test D"), toggleGroup, getParentWidget().getSkin().getStyle("Button")));
+		scrollLayout.addElement(GUIToggle::create(getParentWidget(), HString(L"Test E"), toggleGroup, getParentWidget().getSkin().getStyle("Button")));
 	}
 	}
 
 
 	DbgEditorWidget2* DbgEditorWidget2::instance()
 	DbgEditorWidget2* DbgEditorWidget2::instance()

+ 1 - 2
EditorWindowDock.txt

@@ -1,6 +1,5 @@
 TODO:
 TODO:
- - Add proper slider style and possibly set a different one depending if its vertical or horizontal
-   - I might need to add EditorGUI (similar to EngineGUI)
+ - Closing all docked widgets causes an exception
  - Test out minimum dock container size and maybe increase it a bit
  - Test out minimum dock container size and maybe increase it a bit
  - (Unrelated) Can't click and drag a scroll handle
  - (Unrelated) Can't click and drag a scroll handle
 
 

+ 6 - 6
SBansheeEditor/SBansheeEditor.vcxproj

@@ -122,7 +122,7 @@
       <WarningLevel>Level3</WarningLevel>
       <WarningLevel>Level3</WarningLevel>
       <Optimization>Disabled</Optimization>
       <Optimization>Disabled</Optimization>
       <SDLCheck>true</SDLCheck>
       <SDLCheck>true</SDLCheck>
-      <AdditionalIncludeDirectories>.\Include;..\CamelotCore\Include;..\CamelotUtility\Include;..\Dependencies\Include;..\BansheeEngine\Include;..\BansheeMono\Include;..\SBansheeEngine\Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>.\Include;..\CamelotCore\Include;..\CamelotUtility\Include;..\CamelotClient\Include;..\Dependencies\Include;..\BansheeEngine\Include;..\BansheeMono\Include;..\SBansheeEngine\Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>BS_SCR_BED_EXPORTS;_WINDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <PreprocessorDefinitions>BS_SCR_BED_EXPORTS;_WINDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
     </ClCompile>
     </ClCompile>
     <Link>
     <Link>
@@ -137,7 +137,7 @@
       <WarningLevel>Level3</WarningLevel>
       <WarningLevel>Level3</WarningLevel>
       <Optimization>Disabled</Optimization>
       <Optimization>Disabled</Optimization>
       <SDLCheck>true</SDLCheck>
       <SDLCheck>true</SDLCheck>
-      <AdditionalIncludeDirectories>.\Include;..\CamelotCore\Include;..\CamelotUtility\Include;..\Dependencies\Include;..\BansheeEngine\Include;..\BansheeMono\Include;..\SBansheeEngine\Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>.\Include;..\CamelotCore\Include;..\CamelotUtility\Include;..\CamelotClient\Include;..\Dependencies\Include;..\BansheeEngine\Include;..\BansheeMono\Include;..\SBansheeEngine\Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>BS_SCR_BED_EXPORTS;_WINDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <PreprocessorDefinitions>BS_SCR_BED_EXPORTS;_WINDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
     </ClCompile>
     </ClCompile>
     <Link>
     <Link>
@@ -154,7 +154,7 @@
       <FunctionLevelLinking>true</FunctionLevelLinking>
       <FunctionLevelLinking>true</FunctionLevelLinking>
       <IntrinsicFunctions>true</IntrinsicFunctions>
       <IntrinsicFunctions>true</IntrinsicFunctions>
       <SDLCheck>true</SDLCheck>
       <SDLCheck>true</SDLCheck>
-      <AdditionalIncludeDirectories>.\Include;..\CamelotCore\Include;..\CamelotUtility\Include;..\Dependencies\Include;..\BansheeEngine\Include;..\BansheeMono\Include;..\SBansheeEngine\Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>.\Include;..\CamelotCore\Include;..\CamelotUtility\Include;..\CamelotClient\Include;..\Dependencies\Include;..\BansheeEngine\Include;..\BansheeMono\Include;..\SBansheeEngine\Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <DebugInformationFormat>None</DebugInformationFormat>
       <DebugInformationFormat>None</DebugInformationFormat>
       <PreprocessorDefinitions>BS_SCR_BED_EXPORTS;_WINDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <PreprocessorDefinitions>BS_SCR_BED_EXPORTS;_WINDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
     </ClCompile>
     </ClCompile>
@@ -174,7 +174,7 @@
       <FunctionLevelLinking>true</FunctionLevelLinking>
       <FunctionLevelLinking>true</FunctionLevelLinking>
       <IntrinsicFunctions>true</IntrinsicFunctions>
       <IntrinsicFunctions>true</IntrinsicFunctions>
       <SDLCheck>true</SDLCheck>
       <SDLCheck>true</SDLCheck>
-      <AdditionalIncludeDirectories>.\Include;..\CamelotCore\Include;..\CamelotUtility\Include;..\Dependencies\Include;..\BansheeEngine\Include;..\BansheeMono\Include;..\SBansheeEngine\Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>.\Include;..\CamelotCore\Include;..\CamelotUtility\Include;..\CamelotClient\Include;..\Dependencies\Include;..\BansheeEngine\Include;..\BansheeMono\Include;..\SBansheeEngine\Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>BS_SCR_BED_EXPORTS;_WINDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <PreprocessorDefinitions>BS_SCR_BED_EXPORTS;_WINDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
     </ClCompile>
     </ClCompile>
     <Link>
     <Link>
@@ -193,7 +193,7 @@
       <FunctionLevelLinking>true</FunctionLevelLinking>
       <FunctionLevelLinking>true</FunctionLevelLinking>
       <IntrinsicFunctions>true</IntrinsicFunctions>
       <IntrinsicFunctions>true</IntrinsicFunctions>
       <SDLCheck>true</SDLCheck>
       <SDLCheck>true</SDLCheck>
-      <AdditionalIncludeDirectories>.\Include;..\CamelotCore\Include;..\CamelotUtility\Include;..\Dependencies\Include;..\BansheeEngine\Include;..\BansheeMono\Include;..\SBansheeEngine\Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>.\Include;..\CamelotCore\Include;..\CamelotUtility\Include;..\CamelotClient\Include;..\Dependencies\Include;..\BansheeEngine\Include;..\BansheeMono\Include;..\SBansheeEngine\Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <DebugInformationFormat>None</DebugInformationFormat>
       <DebugInformationFormat>None</DebugInformationFormat>
       <PreprocessorDefinitions>BS_SCR_BED_EXPORTS;_WINDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <PreprocessorDefinitions>BS_SCR_BED_EXPORTS;_WINDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
     </ClCompile>
     </ClCompile>
@@ -213,7 +213,7 @@
       <FunctionLevelLinking>true</FunctionLevelLinking>
       <FunctionLevelLinking>true</FunctionLevelLinking>
       <IntrinsicFunctions>true</IntrinsicFunctions>
       <IntrinsicFunctions>true</IntrinsicFunctions>
       <SDLCheck>true</SDLCheck>
       <SDLCheck>true</SDLCheck>
-      <AdditionalIncludeDirectories>.\Include;..\CamelotCore\Include;..\CamelotUtility\Include;..\Dependencies\Include;..\BansheeEngine\Include;..\BansheeMono\Include;..\SBansheeEngine\Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>.\Include;..\CamelotCore\Include;..\CamelotUtility\Include;..\CamelotClient\Include;..\Dependencies\Include;..\BansheeEngine\Include;..\BansheeMono\Include;..\SBansheeEngine\Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>BS_SCR_BED_EXPORTS;_WINDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <PreprocessorDefinitions>BS_SCR_BED_EXPORTS;_WINDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
     </ClCompile>
     </ClCompile>
     <Link>
     <Link>

+ 2 - 2
SBansheeEditor/Source/BsScriptEditorGUI.cpp

@@ -6,7 +6,7 @@
 #include "BsGUIWidget.h"
 #include "BsGUIWidget.h"
 #include "BsCamera.h"
 #include "BsCamera.h"
 #include "CmSceneObject.h"
 #include "CmSceneObject.h"
-#include "BsEngineGUI.h"
+#include "BsEditorGUI.h"
 
 
 using namespace CamelotFramework;
 using namespace CamelotFramework;
 using namespace BansheeEngine;
 using namespace BansheeEngine;
@@ -38,7 +38,7 @@ namespace BansheeEditor
 
 
 		HSceneObject sceneObj = nativeParentWindow->getSceneObject();
 		HSceneObject sceneObj = nativeParentWindow->getSceneObject();
 		HGUIWidget widget = sceneObj->addComponent<GUIWidget>(nativeParentWindow->getCamera()->getViewport().get());
 		HGUIWidget widget = sceneObj->addComponent<GUIWidget>(nativeParentWindow->getCamera()->getViewport().get());
-		widget->setSkin(EngineGUI::instance().getSkin());
+		widget->setSkin(EditorGUI::instance().getSkin());
 		widget->setDepth(128);
 		widget->setDepth(128);
 
 
 		ScriptEditorGUI* nativeInstance = new (cm_alloc<ScriptEditorGUI>()) ScriptEditorGUI(*widget.get(), nativeParentWindow);
 		ScriptEditorGUI* nativeInstance = new (cm_alloc<ScriptEditorGUI>()) ScriptEditorGUI(*widget.get(), nativeParentWindow);