Browse Source

Documentation

Marko Pintera 10 years ago
parent
commit
f12949f26d

+ 0 - 2
BansheeEditor/BansheeEditor.vcxproj

@@ -327,7 +327,6 @@
     <ClInclude Include="Include\BsGUITreeViewEditBox.h" />
     <ClInclude Include="Include\BsGUIWindowFrame.h" />
     <ClInclude Include="Include\BsGUIWindowFrameWidget.h" />
-    <ClInclude Include="Include\BsGUIWindowDropArea.h" />
     <ClInclude Include="Include\BsMainEditorWindow.h" />
     <ClInclude Include="Include\BsProjectLibrary.h" />
     <ClInclude Include="Include\BsProjectLibraryEntries.h" />
@@ -387,7 +386,6 @@
     <ClCompile Include="Source\BsGUIVector4Field.cpp" />
     <ClCompile Include="Source\BsGUIWindowFrame.cpp" />
     <ClCompile Include="Source\BsGUIWindowFrameWidget.cpp" />
-    <ClCompile Include="Source\BsGUIWindowDropArea.cpp" />
     <ClCompile Include="Source\BsHandleDrawManager.cpp" />
     <ClCompile Include="Source\BsHandleManager.cpp" />
     <ClCompile Include="Source\BsHandleSliderManager.cpp" />

+ 0 - 6
BansheeEditor/BansheeEditor.vcxproj.filters

@@ -183,9 +183,6 @@
     <ClInclude Include="Include\BsGUIVector4Field.h">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="Include\BsGUIWindowDropArea.h">
-      <Filter>Header Files</Filter>
-    </ClInclude>
     <ClInclude Include="Include\BsGUIWindowFrame.h">
       <Filter>Header Files</Filter>
     </ClInclude>
@@ -395,9 +392,6 @@
     <ClCompile Include="Source\BsGUIVector4Field.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="Source\BsGUIWindowDropArea.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
     <ClCompile Include="Source\BsGUIWindowFrame.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>

+ 0 - 1
BansheeEditor/Include/BsEditorPrerequisites.h

@@ -30,7 +30,6 @@ namespace BansheeEngine
 	class ModalWindow;
 	class GUITabbedTitleBar;
 	class GUITabButton;
-	class GUIWindowDropArea;
 	class GUIWindowFrame;
 	class GUIIntField;
 	class GUIFloatField;

+ 1 - 1
BansheeEditor/Include/BsGUIFloatField.h

@@ -46,7 +46,7 @@ namespace BansheeEngine
 		 */
 		virtual void setTint(const Color& color) override;
 
-		Event<void(float)> onValueChanged; /**< Triggers when the internal value changes. */
+		Event<void(float)> onValueChanged; /**< Triggers when the field value changes. */
 	protected:
 		virtual ~GUIFloatField();
 

+ 29 - 3
BansheeEditor/Include/BsGUITreeViewEditBox.h

@@ -5,20 +5,46 @@
 
 namespace BansheeEngine
 {
+	/**
+	 * @brief	Input box used for renaming elements in a TreeView.
+	 */
 	class GUITreeViewEditBox : public GUIInputBox
 	{
 	public:
+		/**
+		 * Returns type name of the GUI element used for finding GUI element styles. 
+		 */
 		static const String& getGUITypeName();
 
+		/**
+		 * @brief	Creates a new GUI tree view edito box element.
+		 *
+		 * @param	styleName		Optional style to use for the element. Style will be retrieved
+		 *							from GUISkin of the GUIWidget the element is used on. If not specified
+		 *							default style is used.
+		 */
 		static GUITreeViewEditBox* create(const String& styleName = StringUtil::BLANK);
+
+		/**
+		 * @brief	Creates a new GUI tree view edito box element.
+		 *
+		 * @param	options			Options that allow you to control how is the element positioned and sized.
+		 *							This will override any similar options set by style.
+		 * @param	styleName		Optional style to use for the element. Style will be retrieved
+		 *							from GUISkin of the GUIWidget the element is used on. If not specified
+		 *							default style is used.
+		 */
 		static GUITreeViewEditBox* create(const GUIOptions& options, const String& styleName = StringUtil::BLANK);
 
-		Event<void()> onInputConfirmed;
-		Event<void()> onInputCanceled;
+		Event<void()> onInputConfirmed; /**< Triggered when the user confirms the input in the edit box. */
+		Event<void()> onInputCanceled; /**< Triggered when the user cancels the input in the edit box. */
 
 	private:
 		GUITreeViewEditBox(const String& styleName, const GUIDimensions& dimensions);
 
-		virtual bool _commandEvent(const GUICommandEvent& ev);
+		/**
+		 * @copydoc	GUIElement::_commandEvent
+		 */
+		virtual bool _commandEvent(const GUICommandEvent& ev) override;
 	};
 }

+ 32 - 3
BansheeEditor/Include/BsGUIVector2Field.h

@@ -6,33 +6,62 @@
 
 namespace BansheeEngine
 {
+	/**
+	 * @brief	A composite GUI object representing an editor field. Editor fields are a combination
+	 *			of a label and an input field. Label is optional. This specific implementation
+	 *			displays a Vector2 input field.
+	 */
 	class BS_ED_EXPORT GUIVector2Field : public TGUIField<GUIVector2Field>
 	{
 	public:
+		/**
+		 * Returns type name of the GUI element used for finding GUI element styles. 
+		 */
 		static const String& getGUITypeName();
+
+		/**
+		 * Style type name for the internal input boxes.
+		 */
 		static const String& getFloatFieldStyleType();
 
 		GUIVector2Field(const PrivatelyConstruct& dummy, const GUIContent& labelContent, UINT32 labelWidth,
 			const String& style, const GUIDimensions& dimensions, bool withLabel);
 
+		/**
+		 * @brief	Returns the value of the input field.
+		 */
 		Vector2 getValue() const;
+
+		/**
+		 * @brief	Sets a new value in the input field.
+		 */
 		void setValue(const Vector2& value);
 
+		/**
+		 * @brief	Checks is the input field currently active.
+		 */
 		bool hasInputFocus() const;
 
 		/**
 		 * @copydoc	GUIElement::setTint
 		 */
-		virtual void setTint(const Color& color);
+		virtual void setTint(const Color& color) override;
 
-		Event<void(const Vector2&)> onValueChanged;
+		Event<void(const Vector2&)> onValueChanged; /**< Triggers when the field value changes. */
 	protected:
 		virtual ~GUIVector2Field() { }
 
 	protected:
 		static const UINT32 ELEMENT_LABEL_WIDTH;
 
-		void styleUpdated();
+		/**
+		 * @copydoc	GUIElement::styleUpdated
+		 */
+		void styleUpdated() override;
+
+		/**
+		 * @brief	Triggered when the values in either of the input boxes change.
+		 */
 		void valueChanged(float newValue);
 
 		GUIFloatField* mFieldX;

+ 32 - 3
BansheeEditor/Include/BsGUIVector3Field.h

@@ -6,30 +6,59 @@
 
 namespace BansheeEngine
 {
+	/**
+	 * @brief	A composite GUI object representing an editor field. Editor fields are a combination
+	 *			of a label and an input field. Label is optional. This specific implementation
+	 *			displays a Vector3 input field.
+	 */
 	class BS_ED_EXPORT GUIVector3Field : public TGUIField<GUIVector3Field>
 	{
 	public:
+		/**
+		 * Returns type name of the GUI element used for finding GUI element styles. 
+		 */
 		static const String& getGUITypeName();
+
+		/**
+		 * Style type name for the internal input boxes.
+		 */
 		static const String& getFloatFieldStyleType();
 
 		GUIVector3Field(const PrivatelyConstruct& dummy, const GUIContent& labelContent, UINT32 labelWidth,
 			const String& style, const GUIDimensions& dimensions, bool withLabel);
 
+		/**
+		 * @brief	Returns the value of the input field.
+		 */
 		Vector3 getValue() const;
+
+		/**
+		 * @brief	Sets a new value in the input field.
+		 */
 		void setValue(const Vector3& value);
 
+		/**
+		 * @brief	Checks is the input field currently active.
+		 */
 		bool hasInputFocus() const;
 
 		/**
 		 * @copydoc	GUIElement::setTint
 		 */
-		virtual void setTint(const Color& color);
+		virtual void setTint(const Color& color) override;
 
-		Event<void(const Vector3&)> onValueChanged;
+		Event<void(const Vector3&)> onValueChanged; /**< Triggers when the field value changes. */
 	protected:
 		virtual ~GUIVector3Field() { }
 
-		void styleUpdated();
+		/**
+		 * @copydoc	GUIElement::styleUpdated
+		 */
+		void styleUpdated() override;
+
+		/**
+		 * @brief	Triggered when the values in any of the input boxes change.
+		 */
 		void valueChanged(float newValue);
 
 		static const UINT32 ELEMENT_LABEL_WIDTH;

+ 32 - 3
BansheeEditor/Include/BsGUIVector4Field.h

@@ -6,30 +6,59 @@
 
 namespace BansheeEngine
 {
+	/**
+	 * @brief	A composite GUI object representing an editor field. Editor fields are a combination
+	 *			of a label and an input field. Label is optional. This specific implementation
+	 *			displays a Vector4 input field.
+	 */
 	class BS_ED_EXPORT GUIVector4Field : public TGUIField<GUIVector4Field>
 	{
 	public:
+		/**
+		 * Returns type name of the GUI element used for finding GUI element styles. 
+		 */
 		static const String& getGUITypeName();
+
+		/**
+		 * Style type name for the internal input boxes.
+		 */
 		static const String& getFloatFieldStyleType();
 
 		GUIVector4Field(const PrivatelyConstruct& dummy, const GUIContent& labelContent, UINT32 labelWidth,
 			const String& style, const GUIDimensions& dimensions, bool withLabel);
 
+		/**
+		 * @brief	Returns the value of the input field.
+		 */
 		Vector4 getValue() const;
+
+		/**
+		 * @brief	Sets a new value in the input field.
+		 */
 		void setValue(const Vector4& value);
 
+		/**
+		 * @brief	Checks is the input field currently active.
+		 */
 		bool hasInputFocus() const;
 
 		/**
 		 * @copydoc	GUIElement::setTint
 		 */
-		virtual void setTint(const Color& color);
+		virtual void setTint(const Color& color) override;
 
-		Event<void(const Vector4&)> onValueChanged;
+		Event<void(const Vector4&)> onValueChanged; /**< Triggers when the field value changes. */
 	protected:
 		virtual ~GUIVector4Field() { }
 
-		void styleUpdated();
+		/**
+		 * @copydoc	GUIElement::setTint
+		 */
+		void styleUpdated() override;
+
+		/**
+		 * @brief	Triggered when the values in any of the input boxes change.
+		 */
 		void valueChanged(float newValue);
 
 		static const UINT32 ELEMENT_LABEL_WIDTH;

+ 0 - 26
BansheeEditor/Include/BsGUIWindowDropArea.h

@@ -1,26 +0,0 @@
-#pragma once
-
-#include "BsEditorPrerequisites.h"
-#include "BsGUITexture.h"
-#include "BsEvent.h"
-
-namespace BansheeEngine
-{
-	class GUIWindowDropArea : public GUITexture
-	{
-	public:
-		static const String& getGUITypeName();
-
-		static GUIWindowDropArea* create(const String& styleName = StringUtil::BLANK);
-		static GUIWindowDropArea* create(const GUIOptions& options, const String& styleName = StringUtil::BLANK);
-
-		void setFocused(bool focused);
-
-		Event<void()> onDraggedItemDropped;
-	protected:
-		~GUIWindowDropArea();
-		GUIWindowDropArea(const String& styleName, const GUIDimensions& dimensions);
-
-		virtual bool _mouseEvent(const GUIMouseEvent& ev);
-	};
-}

+ 26 - 0
BansheeEditor/Include/BsGUIWindowFrame.h

@@ -6,14 +6,40 @@
 
 namespace BansheeEngine
 {
+	/**
+	 * @brief	GUI element used for displaying a border on an editor window edge.
+	 */
 	class GUIWindowFrame : public GUITexture
 	{
 	public:
+		/**
+		 * Returns type name of the GUI element used for finding GUI element styles. 
+		 */
 		static const String& getGUITypeName();
 
+		/**
+		 * @brief	Creates a new GUI window frame element.
+		 *
+		 * @param	styleName		Optional style to use for the element. Style will be retrieved
+		 *							from GUISkin of the GUIWidget the element is used on. If not specified
+		 *							default style is used.
+		 */
 		static GUIWindowFrame* create(const String& styleName = StringUtil::BLANK);
+
+		/**
+		 * @brief	Creates a new GUI window frame element.
+		 *
+		 * @param	options			Options that allow you to control how is the element positioned and sized.
+		 *							This will override any similar options set by style.
+		 * @param	styleName		Optional style to use for the element. Style will be retrieved
+		 *							from GUISkin of the GUIWidget the element is used on. If not specified
+		 *							default style is used.
+		 */
 		static GUIWindowFrame* create(const GUIOptions& options, const String& styleName = StringUtil::BLANK);
 
+		/**
+		 * @brief	Sets whether the frame should be displayed in focus or unfocused state.
+		 */
 		void setFocused(bool focused);
 	protected:
 		~GUIWindowFrame();

+ 41 - 8
BansheeEditor/Include/BsGUIWindowFrameWidget.h

@@ -6,26 +6,59 @@
 
 namespace BansheeEngine
 {
+	/**
+	 * @brief	A GUIWidget specialization that when attached to a window will
+	 *			create a window border, window background and provide resize
+	 *			functionality.
+	 */
 	class WindowFrameWidget : public GUIWidget
 	{
 	public:
+		/**
+		 * @brief	Constructs a new window frame.
+		 *
+		 * @param	parent			Parent SceneObject to attach the Component to.
+		 * @param	allowResize		Should the widget set up resize handles that can be dragged by the user.
+		 * @param	target			Viewport to draw the GUI elements in.
+		 * @param	ownerWindow		Window that the frame widget will act on.
+		 * @param	skin			GUI skin used for the GUI child elements.
+		 */
 		WindowFrameWidget(const HSceneObject& parent, bool allowResize, Viewport* target, RenderWindow* ownerWindow, const HGUISkin& skin);
 		virtual ~WindowFrameWidget();
 
 	protected:
+		/**
+		 * @copydoc	Component::update
+		 */
+		virtual void update() override;
+
+		/**
+		 * @copydoc	GUIWidget::ownerWindowFocusChanged
+		 */
+		virtual bool _mouseEvent(GUIElement* element, const GUIMouseEvent& ev) override;
+
+		/**
+		 * @copydoc	GUIWidget::ownerWindowFocusChanged
+		 */
+		virtual void ownerWindowFocusChanged() override;
+
+		/**
+		 * @copydoc	GUIWidget::ownerTargetResized
+		 */
+		virtual void ownerTargetResized() override;
+
+		/**
+		 * @brief	Updates the non-client areas that notify the OS where the interactable elements
+		 *			used for window resize operations are. This should be called after any resize
+		 *			operations.
+		 */
+		void refreshNonClientAreas() const;
+
 		static const UINT32 RESIZE_BORDER_WIDTH;
 
 		bool mAllowResize;
 		GUIPanel* mWindowFramePanel;
 		RenderWindow* mParentWindow;
 		GUIWindowFrame* mWindowFrame;
-
-		virtual void update();
-
-		virtual bool _mouseEvent(GUIElement* element, const GUIMouseEvent& ev);
-		virtual void ownerWindowFocusChanged();
-		virtual void ownerTargetResized();
-
-		void refreshNonClientAreas() const;
 	};
 }

+ 159 - 0
BansheeEditor/Include/BsHandleDrawManager.h

@@ -7,33 +7,158 @@ namespace BansheeEngine
 {
 	class HandleDrawManagerCore;
 
+	/**
+	 * @brief	Allows you to easily draw various kinds of simple shapes, primarily
+	 *			used for drawing handles in the scene view.
+	 *
+	 *			Drawn elements only persist for a single draw call and need to be re-queued
+	 *			after.
+	 */
 	class BS_ED_EXPORT HandleDrawManager
 	{
 	public:
 		HandleDrawManager();
 		~HandleDrawManager();
 
+		/**
+		 * @brief	Sets the color of all the following draw* calls.
+		 */
 		void setColor(const Color& color);
+
+		/**
+		 * @brief	Sets the transform matrix that will be applied to all
+		 *			following draw* calls.
+		 */
 		void setTransform(const Matrix4& transform);
 
+		/**
+		 * @brief	Draws a solid cuboid.
+		 *
+		 * @param	position	Center of the cuboid.
+		 * @param	extents		Radius of the cuboid in all directions.
+		 * @param	size		Uniform scale of the object.
+		 */
 		void drawCube(const Vector3& position, const Vector3& extents, float size = 1.0f);
+
+		/**
+		 * @brief	Draws a solid sphere.
+		 *
+		 * @param	position	Center of the sphere.
+		 * @param	radius		Radius of the sphere.
+		 * @param	size		Uniform scale of the object.
+		 */
 		void drawSphere(const Vector3& position, float radius, float size = 1.0f);
+
+		/**
+		 * @brief	Draws a wireframe cuboid.
+		 *
+		 * @param	position	Center of the cuboid.
+		 * @param	extents		Radius of the cuboid in all directions.
+		 * @param	size		Uniform scale of the object.
+		 */
 		void drawWireCube(const Vector3& position, const Vector3& extents, float size = 1.0f);
+
+		/**
+		 * @brief	Draws a wireframe sphere.
+		 *
+		 * @param	position	Center of the sphere.
+		 * @param	radius		Radius of the sphere.
+		 * @param	size		Uniform scale of the object.
+		 */
 		void drawWireSphere(const Vector3& position, float radius, float size = 1.0f);
+
+		/**
+		 * @brief	Draws a solid cone.
+		 *
+		 * @param	base		Position of the center of the base of the cone.
+		 * @param	normal		Orientation of the cone, pointing from center base to the tip of the cone.
+		 * @param	height		Height of the cone (along the normal).
+		 * @param	radius		Radius of the base of the cone.
+		 * @param	size		Uniform scale of the object.
+		 */
 		void drawCone(const Vector3& base, const Vector3& normal, float height, float radius, float size = 1.0f);
+
+		/**
+		 * @brief	Draws a line.
+		 *
+		 * @param	start		Starting point for the line.
+		 * @param	end			Ending point for the line.
+		 * @param	size		Uniform scale of the object.
+		 */
 		void drawLine(const Vector3& start, const Vector3& end, float size = 1.0f);
+
+		/**
+		 * @brief	Draws a single-sided solid disc.
+		 *
+		 * @param	position	Center of the disc.
+		 * @param	normal		Orientation of the disc, pointing in the direction the disc is visible in.
+		 * @param	radius		Radius of the disc.
+		 * @param	size		Uniform scale of the object.
+		 */
 		void drawDisc(const Vector3& position, const Vector3& normal, float radius, float size = 1.0f);
+
+		/**
+		 * @brief	Draws a single-sided wireframe disc.
+		 *
+		 * @param	position	Center of the disc.
+		 * @param	normal		Orientation of the disc, pointing in the direction the disc is visible in.
+		 * @param	radius		Radius of the disc.
+		 * @param	size		Uniform scale of the object.
+		 */
 		void drawWireDisc(const Vector3& position, const Vector3& normal, float radius, float size = 1.0f);
+
+		/**
+		 * @brief	Draws a single-sided solid arc.
+		 *
+		 * @param	position	Center of the arc.
+		 * @param	normal		Orientation of the arc, pointing in the direction the arc is visible in.
+		 * @param	radius		Radius of the arc.
+		 * @param	startAngle	Angle at which to start the arc.
+		 * @param	amountAngle	Length of the arc.
+		 * @param	size		Uniform scale of the object.
+		 */
 		void drawArc(const Vector3& position, const Vector3& normal, float radius, Degree startAngle, Degree amountAngle, float size = 1.0f);
+
+		/**
+		 * @brief	Draws a single-sided wireframe arc.
+		 *
+		 * @param	position	Center of the arc.
+		 * @param	normal		Orientation of the arc, pointing in the direction the arc is visible in.
+		 * @param	radius		Radius of the arc.
+		 * @param	startAngle	Angle at which to start the arc.
+		 * @param	amountAngle	Length of the arc.
+		 * @param	size		Uniform scale of the object.
+		 */
 		void drawWireArc(const Vector3& position, const Vector3& normal, float radius, Degree startAngle, Degree amountAngle, float size = 1.0f);
+
+		/**
+		 * @brief	Draws a single-sided solid rectangle.
+		 *
+		 * @param	area		Position and size of the rectangle.
+		 * @param	size		Uniform scale of the object.
+		 */
 		void drawRect(const Rect3& area, float size = 1.0f);
 
+		/**
+		 * @brief	Queues all the handle draw commands executed so far for rendering. All commands
+		 *			are cleared and will need to be called again to draw them again.
+		 */
 		void draw(const CameraHandlerPtr& camera);
 
 	private:
 		friend class HandleDrawManagerCore;
 
+		/**
+		 * @brief	Initializes the core thread portion of the draw manager.
+		 *
+		 * @param	wireMat		Material used for drawing the wireframe objects.
+		 * @param	solidMat	Material used for drawing the solid objects.
+		 */
 		void initializeCore(const SPtr<MaterialCore>& wireMat, const SPtr<MaterialCore>& solidMat);
+
+		/**
+		 * @brief	Destroys the core thread portion of the draw manager.
+		 */
 		void destroyCore(HandleDrawManagerCore* core);
 
 		static const UINT32 SPHERE_QUALITY;
@@ -45,8 +170,16 @@ namespace BansheeEngine
 		DrawHelper* mDrawHelper;
 	};
 
+	/**
+	 * @brief	Core thread specific portion of the HandleDrawManager that
+	 *			handles actual rendering.
+	 */
 	class BS_ED_EXPORT HandleDrawManagerCore
 	{
+		/**
+		 * @brief	Contains information about the material used for 
+		 *			drawing solid objects and its parameters.
+		 */
 		struct SolidMaterialData
 		{
 			SPtr<MaterialCore> mat;
@@ -54,17 +187,27 @@ namespace BansheeEngine
 			GpuParamVec4Core mViewDir;
 		};
 
+		/**
+		 * @brief	Contains information about the material used for 
+		 *			drawing wireframe objects and its parameters.
+		 */
 		struct WireMaterialData
 		{
 			SPtr<MaterialCore> mat;
 			GpuParamMat4Core mViewProj;
 		};
 
+		/**
+		 * @brief	Type of mesh that can be drawn.
+		 */
 		enum class MeshType
 		{
 			Solid, Wire
 		};
 
+		/**
+		 * @brief	Contains data about a render mesh.
+		 */
 		struct MeshData
 		{
 			MeshData(const SPtr<MeshCoreBase>& mesh, MeshType type)
@@ -83,9 +226,25 @@ namespace BansheeEngine
 	private:
 		friend class HandleDrawManager;
 
+		/**
+		 * @brief	Initializes the object. Must be called right after construction.
+		 *
+		 * @param	wireMat		Material used for drawing the wireframe objects.
+		 * @param	solidMat	Material used for drawing the solid objects.
+		 */
 		void initialize(const SPtr<MaterialCore>& wireMat, const SPtr<MaterialCore>& solidMat);
 
+		/**
+		 * @brief	Updates the data that will be used for rendering the new frame.
+		 *
+		 * @param	camera	Camera to render to.
+		 * @param	meshes	Meshes to render.
+		 */
 		void updateData(const SPtr<CameraHandlerCore>& camera, const Vector<MeshData>& meshes);
+
+		/**
+		 * @brief	Callback triggered by the renderer. Draws the stored meshes.
+		 */
 		void render();
 
 		SPtr<CameraHandlerCore> mCamera;

+ 0 - 1
BansheeEditor/Source/BsGUITabbedTitleBar.cpp

@@ -4,7 +4,6 @@
 #include "BsGUIButton.h"
 #include "BsGUITabButton.h"
 #include "BsGUISpace.h"
-#include "BsGUIWindowDropArea.h"
 #include "BsBuiltinResources.h"
 #include "BsGUIWidget.h"
 #include "BsGUIMouseEvent.h"

+ 0 - 59
BansheeEditor/Source/BsGUIWindowDropArea.cpp

@@ -1,59 +0,0 @@
-#include "BsGUIWindowDropArea.h"
-#include "BsCoreApplication.h"
-#include "BsTexture.h"
-#include "BsGUIWidget.h"
-#include "BsGUISkin.h"
-#include "BsSpriteTexture.h"
-#include "BsGUIDimensions.h"
-#include "BsGUIMouseEvent.h"
-
-namespace BansheeEngine
-{
-	const String& GUIWindowDropArea::getGUITypeName()
-	{
-		static String name = "WindowDropArea";
-		return name;
-	}
-
-	GUIWindowDropArea::GUIWindowDropArea(const String& styleName, const GUIDimensions& dimensions)
-		:GUITexture(styleName, HSpriteTexture(), GUIImageScaleMode::ScaleToFit, true, dimensions)
-	{ }
-
-	GUIWindowDropArea::~GUIWindowDropArea()
-	{ }
-
-	GUIWindowDropArea* GUIWindowDropArea::create(const String& styleName)
-	{
-		return new (bs_alloc<GUIWindowDropArea, PoolAlloc>()) 
-			GUIWindowDropArea(getStyleName<GUIWindowDropArea>(styleName), GUIDimensions::create());
-	}
-
-	GUIWindowDropArea* GUIWindowDropArea::create(const GUIOptions& options, const String& styleName)
-	{
-		return new (bs_alloc<GUIWindowDropArea, PoolAlloc>()) 
-			GUIWindowDropArea(getStyleName<GUIWindowDropArea>(styleName), GUIDimensions::create(options));
-	}
-
-	void GUIWindowDropArea::setFocused(bool focused)
-	{
-		if(focused)
-			mActiveTexture = _getStyle()->focused.texture;
-		else
-			mActiveTexture = _getStyle()->normal.texture;
-
-		_markContentAsDirty();
-	}
-
-	bool GUIWindowDropArea::_mouseEvent(const GUIMouseEvent& ev)
-	{
-		if(ev.getType() == GUIMouseEventType::MouseDragAndDropDropped)
-		{
-			if(!onDraggedItemDropped.empty())
-				onDraggedItemDropped();
-
-			return true;
-		}
-
-		return false;
-	}
-}