Selaa lähdekoodia

More work on improving documentation for Doxygen generation

BearishSun 10 vuotta sitten
vanhempi
sitoutus
9ca3da4d44
39 muutettua tiedostoa jossa 1081 lisäystä ja 1389 poistoa
  1. 11 3
      BansheeEditor/Include/BsBuildDataRTTI.h
  2. 11 6
      BansheeEditor/Include/BsDockManagerLayoutRTTI.h
  3. 1 1
      BansheeEditor/Include/BsEditorPrerequisites.h
  4. 11 3
      BansheeEditor/Include/BsEditorSettingsRTTI.h
  5. 8 0
      BansheeEditor/Include/BsEditorShaderIncludeHandler.h
  6. 11 6
      BansheeEditor/Include/BsEditorWidgetLayoutRTTI.h
  7. 76 126
      BansheeEditor/Include/BsGUIResourceTreeView.h
  8. 56 95
      BansheeEditor/Include/BsGUISceneTreeView.h
  9. 24 40
      BansheeEditor/Include/BsGUISliderField.h
  10. 34 50
      BansheeEditor/Include/BsGUIStatusBar.h
  11. 48 60
      BansheeEditor/Include/BsGUITabButton.h
  12. 64 97
      BansheeEditor/Include/BsGUITabbedTitleBar.h
  13. 91 118
      BansheeEditor/Include/BsGUITextField.h
  14. 17 26
      BansheeEditor/Include/BsGUIToggleField.h
  15. 70 142
      BansheeEditor/Include/BsGUITreeView.h
  16. 18 18
      BansheeEditor/Include/BsGUITreeViewEditBox.h
  17. 17 30
      BansheeEditor/Include/BsGUIVector2Field.h
  18. 17 30
      BansheeEditor/Include/BsGUIVector3Field.h
  19. 17 30
      BansheeEditor/Include/BsGUIVector4Field.h
  20. 18 18
      BansheeEditor/Include/BsGUIWindowFrame.h
  21. 8 0
      BansheeEditor/Include/BsGUIWindowFrameWidget.h
  22. 11 3
      BansheeEditor/Include/BsGUIWindowFrameWidgetRTTI.h
  23. 132 178
      BansheeEditor/Include/BsGizmoManager.h
  24. 67 65
      BansheeEditor/Include/BsHandleDrawManager.h
  25. 8 0
      BansheeEditor/Include/BsHandleManager.h
  26. 6 0
      BansheeEditor/Include/BsHandleSlider.h
  27. 37 45
      BansheeEditor/Include/BsHandleSliderDisc.h
  28. 20 24
      BansheeEditor/Include/BsHandleSliderLine.h
  29. 8 0
      BansheeEditor/Include/BsHandleSliderManager.h
  30. 27 32
      BansheeEditor/Include/BsHandleSliderPlane.h
  31. 14 6
      BansheeEditor/Include/BsPlatformInfoRTTI.h
  32. 6 0
      BansheeEditor/Include/BsProjectLibrary.h
  33. 14 12
      BansheeEditor/Include/BsProjectLibraryEntries.h
  34. 8 3
      BansheeEditor/Include/BsProjectLibraryEntriesRTTI.h
  35. 15 15
      BansheeEditor/Include/BsProjectResourceMeta.h
  36. 8 0
      BansheeEditor/Include/BsProjectResourceMetaRTTI.h
  37. 11 3
      BansheeEditor/Include/BsProjectSettingsRTTI.h
  38. 8 0
      BansheeEditor/Include/BsSettingsRTTI.h
  39. 53 104
      RenderBeast/Include/BsRenderBeast.h

+ 11 - 3
BansheeEditor/Include/BsBuildDataRTTI.h

@@ -8,6 +8,11 @@
 
 namespace BansheeEngine
 {
+	/** @cond INTERNAL */
+	/** @addtogroup RTTI-Impl-Editor
+	 *  @{
+	 */
+
 	class BuildDataRTTI : public RTTIType <BuildData, IReflectable, BuildDataRTTI>
 	{
 	private:
@@ -28,20 +33,23 @@ namespace BansheeEngine
 			addPlainField("activePlatform", 1, &BuildDataRTTI::getActivePlatform, &BuildDataRTTI::setActivePlatform);
 		}
 
-		virtual const String& getRTTIName()
+		const String& getRTTIName() override
 		{
 			static String name = "BuildData";
 			return name;
 		}
 
-		virtual UINT32 getRTTIId()
+		UINT32 getRTTIId() override
 		{
 			return TID_BuildData;
 		}
 
-		virtual std::shared_ptr<IReflectable> newRTTIObject()
+		std::shared_ptr<IReflectable> newRTTIObject() override
 		{
 			return bs_shared_ptr_new<BuildData>();
 		}
 	};
+
+	/** @} */
+	/** @endcond */
 }

+ 11 - 6
BansheeEditor/Include/BsDockManagerLayoutRTTI.h

@@ -8,6 +8,11 @@
 
 namespace BansheeEngine
 {
+	/** @cond INTERNAL */
+	/** @addtogroup RTTI-Impl-Editor
+	 *  @{
+	 */
+
 	class DockManagerLayoutRTTI : public RTTIType<DockManagerLayout, IReflectable, DockManagerLayoutRTTI>
 	{
 	private:
@@ -51,26 +56,23 @@ namespace BansheeEngine
 			}
 		}
 
-		virtual const String& getRTTIName() override
+		const String& getRTTIName() override
 		{
 			static String name = "DockManagerLayout";
 			return name;
 		}
 
-		virtual UINT32 getRTTIId() override
+		UINT32 getRTTIId() override
 		{
 			return TID_DockManagerLayout;
 		}
 
-		virtual std::shared_ptr<IReflectable> newRTTIObject() override
+		std::shared_ptr<IReflectable> newRTTIObject() override
 		{
 			return bs_shared_ptr_new<DockManagerLayout>();
 		}
 	};
-}
 
-namespace BansheeEngine
-{
 	template<> struct RTTIPlainType<BansheeEngine::DockManagerLayout::Entry>
 	{	
 		enum { id = BansheeEngine::TID_DockManagerLayoutEntry }; enum { hasDynamicSize = 1 };
@@ -143,4 +145,7 @@ namespace BansheeEngine
 			return (UINT32)dataSize;
 		}	
 	}; 
+
+	/** @} */
+	/** @endcond */
 }

+ 1 - 1
BansheeEditor/Include/BsEditorPrerequisites.h

@@ -41,7 +41,7 @@
  *  Types containing RTTI for specific classes.
  */
 
-/** @defgroup Scene Scene
+/** @defgroup Scene-Editor Scene
   *	Functionality for rendering/interacting with the scene view in editor.
   */
 

+ 11 - 3
BansheeEditor/Include/BsEditorSettingsRTTI.h

@@ -8,6 +8,11 @@
 
 namespace BansheeEngine
 {
+	/** @cond INTERNAL */
+	/** @addtogroup RTTI-Impl-Editor
+	 *  @{
+	 */
+
 	class EditorSettingsRTTI : public RTTIType <EditorSettings, Settings, EditorSettingsRTTI>
 	{
 	private:
@@ -59,18 +64,18 @@ namespace BansheeEngine
 			BS_ADD_PLAIN_FIELD(mMouseSensitivity, 14);
 		}
 
-		virtual const String& getRTTIName() override
+		const String& getRTTIName() override
 		{
 			static String name = "EditorSettings";
 			return name;
 		}
 
-		virtual UINT32 getRTTIId() override
+		UINT32 getRTTIId() override
 		{
 			return TID_EditorSettings;
 		}
 
-		virtual std::shared_ptr<IReflectable> newRTTIObject() override
+		std::shared_ptr<IReflectable> newRTTIObject() override
 		{
 			return bs_shared_ptr_new<EditorSettings>();
 		}
@@ -119,4 +124,7 @@ namespace BansheeEngine
 			return (UINT32)dataSize;
 		}
 	};
+
+	/** @} */
+	/** @endcond */
 }

+ 8 - 0
BansheeEditor/Include/BsEditorShaderIncludeHandler.h

@@ -7,6 +7,11 @@
 
 namespace BansheeEngine
 {
+	/** @cond INTERNAL */
+	/** @addtogroup Library
+	 *  @{
+	 */
+
 	/**
 	 * Shader include handler for the editor. It uses project library to find the includes, and supports special keywords 
 	 * for built-in includes that reside outside of the project library.
@@ -20,4 +25,7 @@ namespace BansheeEngine
 		/** Converts a shader include name or path to a path of the resource containing include data. */
 		static Path toResourcePath(const String& name);
 	};
+
+	/** @} */
+	/** @endcond */
 }

+ 11 - 6
BansheeEditor/Include/BsEditorWidgetLayoutRTTI.h

@@ -9,6 +9,11 @@
 
 namespace BansheeEngine
 {
+	/** @cond INTERNAL */
+	/** @addtogroup RTTI-Impl-Editor
+	 *  @{
+	 */
+
 	class EditorWidgetLayoutRTTI : public RTTIType<EditorWidgetLayout, IReflectable, EditorWidgetLayoutRTTI>
 	{
 	private:
@@ -33,26 +38,23 @@ namespace BansheeEngine
 			addPlainField("mMaximized", 2, &EditorWidgetLayoutRTTI::getIsMainWindowMaximized, &EditorWidgetLayoutRTTI::setIsMainWindowMaximized);
 		}
 
-		virtual const String& getRTTIName()
+		const String& getRTTIName() override
 		{
 			static String name = "EditorWidgetLayout";
 			return name;
 		}
 
-		virtual UINT32 getRTTIId()
+		UINT32 getRTTIId() override
 		{
 			return TID_EditorWidgetLayout;
 		}
 
-		virtual std::shared_ptr<IReflectable> newRTTIObject()
+		std::shared_ptr<IReflectable> newRTTIObject() override
 		{
 			return bs_shared_ptr_new<EditorWidgetLayout>(EditorWidgetLayout::PrivatelyConstruct());
 		}
 	};
-}
 
-namespace BansheeEngine
-{
 	template<> struct RTTIPlainType<BansheeEngine::EditorWidgetLayout::Entry>
 	{	
 		enum { id = BansheeEngine::TID_EditorWidgetLayoutEntry }; enum { hasDynamicSize = 1 };
@@ -105,4 +107,7 @@ namespace BansheeEngine
 			return (UINT32)dataSize;
 		}	
 	}; 
+
+	/** @} */
+	/** @endcond */
 }

+ 76 - 126
BansheeEditor/Include/BsGUIResourceTreeView.h

@@ -10,33 +10,28 @@
 
 namespace BansheeEngine
 {
-	/**
-	 * @brief	Contains paths to resources currently involved
-	 *			in a drag and drop operation.
+	/** @cond INTERNAL */
+	/** @addtogroup GUI-Editor
+	 *  @{
 	 */
+
+	/** Contains paths to resources currently involved in a drag and drop operation. */
 	struct DraggedResources
 	{
 		Vector<Path> resourcePaths;
 	};
 
-	/**
-	 * @brief	GUI element that displays all resources in the active project in a tree view.
-	 */
+	/**	GUI element that displays all resources in the active project in a tree view. */
 	class GUIResourceTreeView : public GUITreeView
 	{
-		/**
-		 * @brief	Tree element with resource-specific data.
-		 */
+		/**	Tree element with resource-specific data. */
 		struct ResourceTreeElement : public GUITreeView::TreeElement
 		{
 			Path mFullPath;
 			WString mElementName;
 		};
 
-		/**
-		 * @brief	Contains paths to resources currently involved
-		 *			in a drag and drop operation initiated by this tree view.
-		 */
+		/** Contains paths to resources currently involved in a drag and drop operation initiated by this tree view. */
 		struct InternalDraggedResources
 		{
 			InternalDraggedResources(UINT32 numObjects);
@@ -47,23 +42,21 @@ namespace BansheeEngine
 		};
 
 	public:
-		/**
-		 * Returns type name of the GUI element used for finding GUI element styles. 
-		 */
+		/** Returns type name of the GUI element used for finding GUI element styles. */
 		static const String& getGUITypeName();
 
 		/**
-		 * @brief	Creates a new resource tree view element.
+		 * Creates a new resource tree view element.
 		 *
-		 * @param	backgroundStyle				Name of the style for the tree view background.
-		 * @param	elementBtnStyle				Name of the style for a normal tree view element.
-		 * @param	foldoutBtnStyle				Name of the style for a foldout element (e.g. for a folder).
-		 * @param	highlightBackgroundStyle	Name of the style for the background of highlighted elements.
-		 * @param	selectionBackgroundStyle	Name of the style for the background of selected elements.
-		 * @param	editBoxStyle				Name of the style for element that is being renamed.
-		 * @param	dragHighlightStyle			Name of the style for the element being dragged over.
-		 * @param	dragSepHighlightStyle		Name of the style for the separator displayed while dragging
-		 *										an element between two other elements.
+		 * @param[in]	backgroundStyle				Name of the style for the tree view background.
+		 * @param[in]	elementBtnStyle				Name of the style for a normal tree view element.
+		 * @param[in]	foldoutBtnStyle				Name of the style for a foldout element (e.g. for a folder).
+		 * @param[in]	highlightBackgroundStyle	Name of the style for the background of highlighted elements.
+		 * @param[in]	selectionBackgroundStyle	Name of the style for the background of selected elements.
+		 * @param[in]	editBoxStyle				Name of the style for element that is being renamed.
+		 * @param[in]	dragHighlightStyle			Name of the style for the element being dragged over.
+		 * @param[in]	dragSepHighlightStyle		Name of the style for the separator displayed while dragging
+		 *											an element between two other elements.
 		 */	
 		static GUIResourceTreeView* create(
 			const String& backgroundStyle = StringUtil::BLANK, const String& elementBtnStyle = StringUtil::BLANK, 
@@ -72,19 +65,19 @@ namespace BansheeEngine
 			const String& dragHighlightStyle = StringUtil::BLANK, const String& dragSepHighlightStyle = StringUtil::BLANK);
 
 		/**
-		 * @brief	Creates a new resource tree view element.
+		 * Creates a new resource tree view 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	backgroundStyle				Name of the style for the tree view background.
-		 * @param	elementBtnStyle				Name of the style for a normal tree view element.
-		 * @param	foldoutBtnStyle				Name of the style for a foldout element (e.g. for a folder).
-		 * @param	highlightBackgroundStyle	Name of the style for the background of highlighted elements.
-		 * @param	selectionBackgroundStyle	Name of the style for the background of selected elements.
-		 * @param	editBoxStyle				Name of the style for element that is being renamed.
-		 * @param	dragHighlightStyle			Name of the style for the element being dragged over.
-		 * @param	dragSepHighlightStyle		Name of the style for the separator displayed while dragging
-		 *										an element between two other elements.
+		 * @param[in]	options						Options that allow you to control how is the element positioned and 
+		 *											sized. This will override any similar options set by style.
+		 * @param[in]	backgroundStyle				Name of the style for the tree view background.
+		 * @param[in]	elementBtnStyle				Name of the style for a normal tree view element.
+		 * @param[in]	foldoutBtnStyle				Name of the style for a foldout element (e.g. for a folder).
+		 * @param[in]	highlightBackgroundStyle	Name of the style for the background of highlighted elements.
+		 * @param[in]	selectionBackgroundStyle	Name of the style for the background of selected elements.
+		 * @param[in]	editBoxStyle				Name of the style for element that is being renamed.
+		 * @param[in]	dragHighlightStyle			Name of the style for the element being dragged over.
+		 * @param[in]	dragSepHighlightStyle		Name of the style for the separator displayed while dragging an element
+		 *											between two other elements.
 		 */	
 		static GUIResourceTreeView* create(const GUIOptions& options, 
 			const String& backgroundStyle = StringUtil::BLANK, const String& elementBtnStyle = StringUtil::BLANK, 
@@ -93,18 +86,17 @@ namespace BansheeEngine
 			const String& dragHighlightStyle = StringUtil::BLANK, const String& dragSepHighlightStyle = StringUtil::BLANK);
 
 		/**
-		 * @brief	Returns a list of paths of currently selected resources (if any).
-		 *			Returned paths are relative to the project folder.
+		 * Returns a list of paths of currently selected resources (if any). Returned paths are relative to the project
+		 * folder.
 		 */	
 		Vector<Path> getSelection() const;
 
-		/**
-		 * @brief	Changes the active selection to the provided resources.
-		 *			Paths can be absolute or relative.
-		 */	
+		/** Changes the active selection to the provided resources. Paths can be absolute or relative. */	
 		void setSelection(const Vector<Path>& paths);
 
-		Event<void()> onSelectionChanged; /**< Triggered whenever the selection changes. Call ::getSelection() to retrieve new selection: */
+		/** Triggered whenever the selection changes. Call getSelection() to retrieve the new selection. */
+		Event<void()> onSelectionChanged; 
+
 		static const MessageId SELECTION_CHANGED_MSG;
 
 	protected:
@@ -126,152 +118,110 @@ namespace BansheeEngine
 			const String& highlightBackgroundStyle, const String& selectionBackgroundStyle, const String& editBoxStyle,
 			const String& dragHighlightStyle, const String& dragSepHighlightStyle, const GUIDimensions& dimensions);
 
-		/**
-		 * @copydoc	GUITreeView::_updateLayoutInternal
-		 */	
+		/** @copydoc GUITreeView::_updateLayoutInternal */	
 		virtual void _updateLayoutInternal(const GUILayoutData& data) override;
 
-		/**
-		 * @copydoc	GUITreeView::getRootElement
-		 */	
+		/** @copydoc GUITreeView::getRootElement */	
 		virtual TreeElement& getRootElement() override { return mRootElement; }
 
-		/**
-		 * @copydoc	GUITreeView::getRootElementConst
-		 */	
+		/** @copydoc GUITreeView::getRootElementConst */	
 		virtual const TreeElement& getRootElementConst() const override { return mRootElement; }
 
-		/**
-		 * @copydoc	GUITreeView::updateTreeElementHierarchy
-		 */	
+		/** @copydoc GUITreeView::updateTreeElementHierarchy */	
 		virtual void updateTreeElementHierarchy() override;
 
-		/**
-		 * @copydoc	GUITreeView::renameTreeElement
-		 */	
+		/** @copydoc GUITreeView::renameTreeElement */	
 		virtual void renameTreeElement(TreeElement* element, const WString& name) override;
 
-		/**
-		 * @copydoc	GUITreeView::deleteTreeElement
-		 */	
+		/** @copydoc GUITreeView::deleteTreeElement */	
 		virtual void deleteTreeElement(TreeElement* element) override;
 
-		/**
-		 * @copydoc	GUITreeView::acceptDragAndDrop
-		 */	
+		/** @copydoc GUITreeView::acceptDragAndDrop */	
 		virtual bool acceptDragAndDrop() const override;
 
-		/**
-		 * @copydoc	GUITreeView::dragAndDropStart
-		 */	
+		/** @copydoc GUITreeView::dragAndDropStart */	
 		virtual void dragAndDropStart() override;
 
-		/**
-		 * @copydoc	GUITreeView::dragAndDropEnded
-		 */	
+		/** @copydoc GUITreeView::dragAndDropEnded */	
 		virtual void dragAndDropEnded(TreeElement* overTreeElement) override;
 
-		/**
-		 * @copydoc	GUITreeView::_acceptDragAndDrop
-		 */	
+		/** @copydoc GUITreeView::_acceptDragAndDrop */	
 		virtual bool _acceptDragAndDrop(const Vector2I position, UINT32 typeId) const override;
 
-		/**
-		 * @copydoc	GUITreeView::selectionChanged
-		 */	
+		/** @copydoc GUITreeView::selectionChanged */	
 		virtual void selectionChanged() override;
 
-		/**
-		 * @copydoc	GUITreeView::_changeParentWidget
-		 */	
+		/** @copydoc GUITreeView::_changeParentWidget */	
 		void _changeParentWidget(GUIWidget* widget) override;
 
 		/**
-		 * @brief	Triggered when a drag and drop operation that was started by the tree view
-		 *			ends, regardless if it was processed or not.
+		 * Triggered when a drag and drop operation that was started by the tree view ends, regardless if it was processed
+		 * or not.
 		 */
 		void dragAndDropFinalize();
 
-		/**
-		 * @brief	Updates the contents of the provided tree entry with a project library entry.
-		 */
+		/**	Updates the contents of the provided tree entry with a project library entry. */
 		void updateFromProjectLibraryEntry(ResourceTreeElement* treeElement, const ProjectLibrary::LibraryEntry* libraryEntry);
 
 		/**
-		 * @brief	Creates a new tree view entry.
+		 * Creates a new tree view entry.
 		 *
-		 * @param	parent		Parent tree view entry to create the new one for.
-		 * @param	fullPath	Absolute path to the new tree entry.
+		 * @param[in]	parent		Parent tree view entry to create the new one for.
+		 * @param[in]	fullPath	Absolute path to the new tree entry.
 		 */
 		ResourceTreeElement* addTreeElement(ResourceTreeElement* parent, const Path& fullPath);
 
-		/**
-		 * @brief	Deletes the provided tree element.
-		 */
+		/**	Deletes the provided tree element. */
 		void deleteTreeElement(ResourceTreeElement* element);
 
-		/**
-		 * @brief	Sorts the children of the provided tree element by name.
-		 */
+		/**	Sorts the children of the provided tree element by name. */
 		void sortTreeElement(ResourceTreeElement* element);
 
-		/**
-		 * @brief	Attempts to find a tree element with the specified path.
-		 *			Returns null if one cannot be found.
-		 */
+		/** Attempts to find a tree element with the specified path. Returns null if one cannot be found. */
 		ResourceTreeElement* findTreeElement(const Path& fullPath);
 
-		/**
-		 * @brief	Called whenever a new entry is added to the project library.
-		 */
+		/**	Called whenever a new entry is added to the project library. */
 		void entryAdded(const Path& path); 
 
-		/**
-		 * @brief	Called whenever an entry is removed from the project library.
-		 */
+		/**	Called whenever an entry is removed from the project library. */
 		void entryRemoved(const Path& path);
 
 		/**
-		 * @brief	Sets an OS drag and drop target that allows this element to receive OS-specific
-		 *			drag and drop events originating from other processes.
+		 * Sets an OS drag and drop target that allows this element to receive OS-specific drag and drop events originating
+		 * from other processes.
 		 */
 		void setDropTarget(RenderWindow* parentWindow, INT32 x, INT32 y, UINT32 width, UINT32 height);
 
-		/**
-		 * @brief	Removes the currently set OS drop target.
-		 */
+		/**	Removes the currently set OS drop target. */
 		void clearDropTarget();
 
 		/**
-		 * @brief	Triggered whenever the user drags the pointer over the set drop target,
-		 *			while OS drag and drop operation is active.
+		 * Triggered whenever the user drags the pointer over the set drop target, while OS drag and drop operation is
+		 * active.
 		 *
-		 * @param	x	X coordinate of the pointer, relative to drop area.
-		 * @param	y	Y coordinate of the pointer, relative to drop area.
+		 * @param[in]	x	X coordinate of the pointer, relative to drop area.
+		 * @param[in]	y	Y coordinate of the pointer, relative to drop area.
 		 */
 		void dropTargetDragMove(INT32 x, INT32 y);
 
-		/**
-		 * @brief	Triggered whenever pointer leaves the drop target,
-		 *			while OS drag and drop operation is active.
-		 */
+		/** Triggered whenever pointer leaves the drop target, while OS drag and drop operation is active. */
 		void dropTargetDragLeave();
 
 		/**
-		 * @brief	Triggered whenever the user releases the pointer over the set drop target,
-		 *			while OS drag and drop operation is active.
+		 * Triggered whenever the user releases the pointer over the set drop target, while OS drag and drop operation is
+		 * active.
 		 *
-		 * @param	x	X coordinate of the pointer, relative to drop area.
-		 * @param	y	Y coordinate of the pointer, relative to drop area.
+		 * @param[in]	x	X coordinate of the pointer, relative to drop area.
+		 * @param[in]	y	Y coordinate of the pointer, relative to drop area.
 		 */
 		void dropTargetDragDropped(INT32 x, INT32 y);
 
-		/**
-		 * @brief	Generates a unique path in the case that something already
-		 *			exists on the provided one.
-		 */
+		/**	Generates a unique path in the case that something already exists on the provided one. */
 		Path findUniquePath(const Path& path);
 	};
 
 	typedef ServiceLocator<GUIResourceTreeView> ResourceTreeViewLocator;
+
+	/** @} */
+	/** @endcond */
 }

+ 56 - 95
BansheeEditor/Include/BsGUISceneTreeView.h

@@ -9,10 +9,12 @@
 
 namespace BansheeEngine
 {
-	/**
-	 * @brief	Contains SceneObject%s currently involved
-	 *			in a drag and drop operation.
+	/** @cond INTERNAL */
+	/** @addtogroup GUI-Editor
+	 *  @{
 	 */
+
+	/** Contains SceneObject%s currently involved in a drag and drop operation. */
 	struct BS_ED_EXPORT DraggedSceneObjects
 	{
 		DraggedSceneObjects(UINT32 numObjects);
@@ -22,15 +24,10 @@ namespace BansheeEngine
 		HSceneObject* objects;
 	};
 
-	/**
-	 * @brief	GUI element that displays all SceneObject%s in the current scene
-	 *			in the active project in a tree view.
-	 */
+	/** GUI element that displays all SceneObject%s in the current scene in the active project in a tree view. */
 	class BS_ED_EXPORT GUISceneTreeView : public GUITreeView
 	{
-		/**
-		 * @brief	Tree element with SceneObject%-specific data.
-		 */
+		/**	Tree element with SceneObject%-specific data. */
 		struct SceneTreeElement : public GUITreeView::TreeElement
 		{
 			SceneTreeElement()
@@ -43,23 +40,21 @@ namespace BansheeEngine
 		};
 
 	public:
-		/**
-		 * Returns type name of the GUI element used for finding GUI element styles. 
-		 */
+		/** Returns type name of the GUI element used for finding GUI element styles. */
 		static const String& getGUITypeName();
 
 		/**
-		 * @brief	Creates a new resource tree view element.
+		 * Creates a new resource tree view element.
 		 *
-		 * @param	backgroundStyle				Name of the style for the tree view background.
-		 * @param	elementBtnStyle				Name of the style for a normal tree view element.
-		 * @param	foldoutBtnStyle				Name of the style for a foldout element (e.g. for a folder).
-		 * @param	selectionBackgroundStyle	Name of the style for the background of selected elements.
-		 * @param	highlightBackgroundStyle	Name of the style for the background of highlighted elements.
-		 * @param	editBoxStyle				Name of the style for element that is being renamed.
-		 * @param	dragHighlightStyle			Name of the style for the element being dragged over.
-		 * @param	dragSepHighlightStyle		Name of the style for the separator displayed while dragging
-		 *										an element between two other elements.
+		 * @param[in]	backgroundStyle				Name of the style for the tree view background.
+		 * @param[in]	elementBtnStyle				Name of the style for a normal tree view element.
+		 * @param[in]	foldoutBtnStyle				Name of the style for a foldout element (e.g. for a folder).
+		 * @param[in]	selectionBackgroundStyle	Name of the style for the background of selected elements.
+		 * @param[in]	highlightBackgroundStyle	Name of the style for the background of highlighted elements.
+		 * @param[in]	editBoxStyle				Name of the style for element that is being renamed.
+		 * @param[in]	dragHighlightStyle			Name of the style for the element being dragged over.
+		 * @param[in]	dragSepHighlightStyle		Name of the style for the separator displayed while dragging an element
+		 *											between two other elements.
 		 */	
 		static GUISceneTreeView* create(
 			const String& backgroundStyle = StringUtil::BLANK, const String& elementBtnStyle = StringUtil::BLANK, 
@@ -68,19 +63,19 @@ namespace BansheeEngine
 			const String& dragHighlightStyle = StringUtil::BLANK, const String& dragSepHighlightStyle = StringUtil::BLANK);
 
 		/**
-		 * @brief	Creates a new resource tree view element.
+		 * Creates a new resource tree view 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	backgroundStyle				Name of the style for the tree view background.
-		 * @param	elementBtnStyle				Name of the style for a normal tree view element.
-		 * @param	foldoutBtnStyle				Name of the style for a foldout element (e.g. for a folder).
-		 * @param	highlightBackgroundStyle	Name of the style for the background of highlighted elements.
-		 * @param	selectionBackgroundStyle	Name of the style for the background of selected elements.
-		 * @param	editBoxStyle				Name of the style for element that is being renamed.
-		 * @param	dragHighlightStyle			Name of the style for the element being dragged over.
-		 * @param	dragSepHighlightStyle		Name of the style for the separator displayed while dragging
-		 *										an element between two other elements.
+		 * @param[in]	options						Options that allow you to control how is the element positioned and 
+		 *											sized. This will override any similar options set by style.
+		 * @param[in]	backgroundStyle				Name of the style for the tree view background.
+		 * @param[in]	elementBtnStyle				Name of the style for a normal tree view element.
+		 * @param[in]	foldoutBtnStyle				Name of the style for a foldout element (e.g. for a folder).
+		 * @param[in]	highlightBackgroundStyle	Name of the style for the background of highlighted elements.
+		 * @param[in]	selectionBackgroundStyle	Name of the style for the background of selected elements.
+		 * @param[in]	editBoxStyle				Name of the style for element that is being renamed.
+		 * @param[in]	dragHighlightStyle			Name of the style for the element being dragged over.
+		 * @param[in]	dragSepHighlightStyle		Name of the style for the separator displayed while dragging an element
+		 *											between two other elements.
 		 */	
 		static GUISceneTreeView* create(const GUIOptions& options, 
 			const String& backgroundStyle = StringUtil::BLANK, const String& elementBtnStyle = StringUtil::BLANK, 
@@ -88,19 +83,13 @@ namespace BansheeEngine
 			const String& selectionBackgroundStyle = StringUtil::BLANK, const String& editBoxStyle = StringUtil::BLANK, 
 			const String& dragHighlightStyle = StringUtil::BLANK, const String& dragSepHighlightStyle = StringUtil::BLANK);
 
-		/**
-		 * @brief	Returns a list of SceneObject&s currently selected (if any).
-		 */	
+		/**	Returns a list of SceneObject&s currently selected (if any). */	
 		Vector<HSceneObject> getSelection() const;
 
-		/**
-		 * @brief	Changes the active selection to the provided SceneObject%s.
-		 */	
+		/**	Changes the active selection to the provided SceneObject%s. */	
 		void setSelection(const Vector<HSceneObject>& objects);
 
-		/**
-		 * @brief	Scrolls to and highlights the selected object (does not select it).
-		 */
+		/**	Scrolls to and highlights the selected object (does not select it). */
 		void ping(const HSceneObject& object);
 
 		/** @copydoc GUITreeView::duplicateSelection */
@@ -143,93 +132,62 @@ namespace BansheeEngine
 			const String& editBoxStyle, const String& dragHighlightStyle, const String& dragSepHighlightStyle, const GUIDimensions& dimensions);
 
 		/**
-		 * @brief	Checks it the SceneObject referenced by this tree element changed in any way and updates
-		 *			the tree element. This can involve recursing all children and updating them as well.
+		 * Checks it the SceneObject referenced by this tree element changed in any way and updates the tree element. This
+		 * can involve recursing all children and updating them as well.
 		 */
 		void updateTreeElement(SceneTreeElement* element);
 
 		/**
-		 * @brief	Triggered when a drag and drop operation that was started by the tree view
-		 *			ends, regardless if it was processed or not.
+		 * Triggered when a drag and drop operation that was started by the tree view ends, regardless if it was processed
+		 * or not.
 		 */
 		void dragAndDropFinalize();
 
-		/**
-		 * @copydoc	TreeView::getRootElement
-		 */
+		/** @copydoc TreeView::getRootElement */
 		virtual TreeElement& getRootElement() override { return mRootElement; }
 
-		/**
-		 * @copydoc	TreeView::getRootElementConst
-		 */
+		/** @copydoc TreeView::getRootElementConst */
 		virtual const TreeElement& getRootElementConst() const override { return mRootElement; }
 
-		/**
-		 * @copydoc	TreeView::updateTreeElementHierarchy
-		 */
+		/** @copydoc TreeView::updateTreeElementHierarchy */
 		virtual void updateTreeElementHierarchy() override;
 
-		/**
-		 * @copydoc	TreeView::renameTreeElement
-		 */
+		/** @copydoc TreeView::renameTreeElement */
 		virtual void renameTreeElement(TreeElement* element, const WString& name) override;
 
-		/**
-		 * @copydoc	TreeView::deleteTreeElement
-		 */
+		/** @copydoc TreeView::deleteTreeElement */
 		virtual void deleteTreeElement(TreeElement* element) override;
 
-		/**
-		 * @copydoc	TreeView::acceptDragAndDrop
-		 */
+		/** @copydoc TreeView::acceptDragAndDrop */
 		virtual bool acceptDragAndDrop() const override;
 
-		/**
-		 * @copydoc	TreeView::dragAndDropStart
-		 */
+		/** @copydoc TreeView::dragAndDropStart */
 		virtual void dragAndDropStart() override;
 
-		/**
-		 * @copydoc	TreeView::dragAndDropEnded
-		 */
+		/** @copydoc TreeView::dragAndDropEnded */
 		virtual void dragAndDropEnded(TreeElement* overTreeElement) override;
 
-		/**
-		 * @copydoc	TreeView::_acceptDragAndDrop
-		 */
+		/** @copydoc TreeView::_acceptDragAndDrop */
 		virtual bool _acceptDragAndDrop(const Vector2I position, UINT32 typeId) const override;
 
-		/**
-		 * @copydoc	TreeView::selectionChanged
-		 */
+		/** @copydoc TreeView::selectionChanged */
 		virtual void selectionChanged() override;
 
-		/**
-		 * @brief	Deletes the internal TreeElement representation without
-		 *			actually deleting the referenced SceneObject.
-		 */
+		/** Deletes the internal TreeElement representation without actually deleting the referenced SceneObject. */
 		void deleteTreeElementInternal(TreeElement* element);
 
-		/**
-		 * @brief	Attempts to find a tree element referencing the specified
-		 *			scene object.
-		 */
+		/**	Attempts to find a tree element referencing the specified scene object. */
 		SceneTreeElement* findTreeElement(const HSceneObject& so);
 
-		/**
-		 * @brief	Creates a new scene object as a child of the currently selected object (if any).
-		 */
+		/**	Creates a new scene object as a child of the currently selected object (if any). */
 		void createNewSO();
 
-		/**
-		 * @brief	Removes all elements from the list used for copy/cut operations.
-		 */
+		/**	Removes all elements from the list used for copy/cut operations. */
 		void clearCopyList();
 
 		/**
-		 * @brief	Cleans duplicate objects from the provided scene object list.
-		 *			This involves removing child elements if their parents are
-		 *			already part of the list.
+		 * Cleans duplicate objects from the provided scene object list. This involves removing child elements if their
+		 * parents are already part of the list.
 		 */
 		static void cleanDuplicates(Vector<HSceneObject>& objects);
 
@@ -240,4 +198,7 @@ namespace BansheeEngine
 	};
 
 	typedef ServiceLocator<GUISceneTreeView> SceneTreeViewLocator;
+
+	/** @} */
+	/** @endcond */
 }

+ 24 - 40
BansheeEditor/Include/BsGUISliderField.h

@@ -7,62 +7,53 @@
 
 namespace BansheeEngine
 {
+	/** @addtogroup GUI-Editor
+	 *  @{
+	 */
+
 	/**
-	 * @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 horizontal slider and a floating point input box.
+	 * 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 horizontal slider and a floating point input box.
 	 */
 	class BS_ED_EXPORT GUISliderField : public TGUIField<GUISliderField>
 	{
 	public:
-		/**
-		 * Returns type name of the GUI element used for finding GUI element styles. 
-		 */
+		/** Returns type name of the GUI element used for finding GUI element styles. */
 		static const String& getGUITypeName();
 
-		/**
-		 * Style type name for the internal input box.
-		 */
+		/** Style type name for the internal input box. */
 		static const String& getInputStyleType();
 
-		/**
-		 * Style type name for the internal slider.
-		 */
+		/** Style type name for the internal slider. */
 		static const String& getSliderStyleType();
 
 		GUISliderField(const PrivatelyConstruct& dummy, const GUIContent& labelContent, UINT32 labelWidth,
 			const String& style, const GUIDimensions& dimensions, bool withLabel);
 
-		/**
-		 * @brief	Returns the value of the input field/slider.
-		 */
+		/**	Returns the value of the input field/slider. */
 		float getValue() const;
 
-		/**
-		 * @brief	Sets a new value in the input field/slider.
-		 */
+		/**	Sets a new value in the input field/slider. */
 		void setValue(float value);
 
 		/**
-		 * @brief	Sets a minimum and maximum allow values in the input field.
-		 *			Set to large negative/positive values if you don't require clamping.
+		 * Sets a minimum and maximum allow values in the input field. Set to large negative/positive values if you don't
+		 * require clamping.
 		 */
 		void setRange(float min, float max);
 
 		/**
-		 * @brief	Sets a step that defines the minimal increment the value can be increased/decreased by. Set to zero
-		 * 			to have no step.
+		 * Sets a step that defines the minimal increment the value can be increased/decreased by. Set to zero to have no
+		 * step.
 		 */
 		void setStep(float step);
 
-		/**
-		 * @copydoc	GUIElement::setTint
-		 */
+		/** @copydoc GUIElement::setTint */
 		void setTint(const Color& color) override;
 
 		/**
-		 * @brief	Sets a new value in the input field, and also allows you to choose should the field trigger an
-		 *			onValueChanged event.
+		 * Sets a new value in the input field, and also allows you to choose should the field trigger an onValueChanged
+		 * event.
 		 */
 		void _setValue(float value, bool triggerEvent);
 
@@ -70,28 +61,21 @@ namespace BansheeEngine
 	protected:
 		virtual ~GUISliderField();
 
-		/**
-		 * @copydoc	GUIElementContainer::styleUpdated
-		 */
+		/** @copydoc GUIElementContainer::styleUpdated */
 		void styleUpdated() override;
 
-		/**
-		 * @brief	Triggered when the input box value changes.
-		 */
+		/**	Triggered when the input box value changes. */
 		void valueChanged(const WString& newValue);
 
-		/**
-		 * @brief	Triggered when the slider is moved.
-		 */
+		/**	Triggered when the slider is moved. */
 		void sliderChanged(float newValue);
 
-		/**
-		 * @brief	Callback that checks can the provided string be
-		 *			converted to a floating point value.
-		 */
+		/**	Callback that checks can the provided string be	converted to a floating point value. */
 		static bool floatFilter(const WString& str);
 
 		GUIInputBox* mInputBox;
 		GUISliderHorz* mSlider;
 	};
+
+	/** @} */
 }

+ 34 - 50
BansheeEditor/Include/BsGUIStatusBar.h

@@ -7,106 +7,87 @@
 
 namespace BansheeEngine
 {
-	/**
-	 * @brief  Editor window status bar that displays log messages and various other information.
+	/** @cond INTERNAL */
+	/** @addtogroup GUI-Editor
+	 *  @{
 	 */
+
+	/** Editor window status bar that displays log messages and various other information. */
 	class BS_ED_EXPORT GUIStatusBar : public GUIElementContainer
 	{
 		struct PrivatelyConstruct {};
 
 	public:
-		/**
-		 * Returns type name of the GUI element used for finding GUI element styles. 
-		 */
+		/** Returns type name of the GUI element used for finding GUI element styles. */
 		static const String& getGUITypeName();
 
-		/**
-		 * Returns type name of the internal background GUI element. 
-		 */
+		/** Returns type name of the internal background GUI element. */
 		static const String& getGUIBackgroundTypeName();
 
-		/**
-		 * Returns type name of the internal message button GUI element. 
-		 */
+		/** Returns type name of the internal message button GUI element. */
 		static const String& getGUIMessageTypeName();
 
 		/**
-		 * @brief	Creates a new GUI status bar.
+		 * Creates a new GUI status bar.
 		 *
-		 * @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.
+		 * @param[in]	options			Options that allow you to control how is the element positioned and sized.
+		 *								This will override any similar options set by style.
+		 * @param[in]	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 GUIStatusBar* create(const GUIOptions& options, const String& style = StringUtil::BLANK);
 
 		/**
-		 * @brief	Creates a new GUI status bar.
+		 * Creates a new GUI status bar.
 		 *
-		 * @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.
+		 * @param[in]	options			Options that allow you to control how is the element positioned and sized.
+		 *								This will override any similar options set by style.
+		 * @param[in]	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 GUIStatusBar* create(const String& style = StringUtil::BLANK);
 
 		GUIStatusBar(const PrivatelyConstruct& dummy, const String& style, const GUIDimensions& dimensions);
 
 		/**
-		 * @brief	Updates the active project displayed on the status bar.
+		 * Updates the active project displayed on the status bar.
 		 * 	
-		 * @param	name		Name of the project.
-		 * @param	modified	Should the project be displayed as modified (i.e. needs saving).
+		 * @param[in]	name		Name of the project.
+		 * @param[in]	modified	Should the project be displayed as modified (i.e. needs saving).
 		 */
 		void setProject(const WString& name, bool modified);
 
 		/**
-		 * @brief	Updates the active scene displayed on the status bar.
+		 * Updates the active scene displayed on the status bar.
 		 * 	
-		 * @param	name		Name of the scene.
-		 * @param	modified	Should the scene be displayed as modified (i.e. needs saving).
+		 * @param[in]	name		Name of the scene.
+		 * @param[in]	modified	Should the scene be displayed as modified (i.e. needs saving).
 		 */
 		void setScene(const WString& name, bool modified);
 
-		/**
-		 * @brief	Activates or deactivates the "compilation in progress" visuals on the status bar.
-		 */
+		/**	Activates or deactivates the "compilation in progress" visuals on the status bar. */
 		void setIsCompiling(bool compiling);
 
-		/**
-		 * @copydoc	GUIElement::setTint
-		 */
+		/** @copydoc GUIElement::setTint */
 		virtual void setTint(const Color& color) override;
 
-		/**
-		 * @copydoc	GUIElement::_updateLayoutInternal
-		 */
+		/** @copydoc GUIElement::_updateLayoutInternal */
 		void _updateLayoutInternal(const GUILayoutData& data) override;
 
-		/**
-		 * @copydoc	GUIElement::_getOptimalSize
-		 */
+		/** @copydoc GUIElement::_getOptimalSize */
 		Vector2I _getOptimalSize() const override;
 
 		Event<void()> onMessageClicked; /**< Triggered when the user clicks on the console message. */
 	private:
 		virtual ~GUIStatusBar();
 
-		/**
-		 * @copydoc	GUIElement::styleUpdated
-		 */
+		/** @copydoc GUIElement::styleUpdated */
 		void styleUpdated() override;
 
-		/**
-		 * @brief	Triggered when the debug Log was modified.
-		 */
+		/**	Triggered when the debug Log was modified. */
 		void logModified();
 
-		/**
-		 * @brief	Triggered when the user clicks on the message display.
-		 */
+		/**	Triggered when the user clicks on the message display. */
 		void messageBtnClicked();
 
 	private:
@@ -125,4 +106,7 @@ namespace BansheeEngine
 		HEvent mLogEntryAddedConn;
 		HEvent mMessageBtnPressedConn;
 	};
+
+	/** @} */
+	/** @endcond */
 }

+ 48 - 60
BansheeEditor/Include/BsGUITabButton.h

@@ -10,115 +10,100 @@
 
 namespace BansheeEngine
 {
+	/** @cond INTERNAL */
+	/** @addtogroup GUI-Editor
+	 *  @{
+	 */
+
 	/**
-	 * @brief	Specialization of a GUIToggle element used for displaying
-	 *			tabs in a GUITabbedTitleBar. Aside from being toggleable these
-	 *			buttons also track drag and drop operations.
+	 * Specialization of a GUIToggle element used for displaying tabs in a GUITabbedTitleBar. Aside from being toggleable
+	 * these buttons also track drag and drop operations.
 	 */
 	class GUITabButton : public GUIToggle
 	{
 	public:
-		/**
-		 * Returns type name of the GUI element used for finding GUI element styles. 
-		 */
+		/** Returns type name of the GUI element used for finding GUI element styles.  */
 		static const String& getGUITypeName();
 
 		/**
-		 * @brief	Creates a new GUI tab button element.
+		 * Creates a new GUI tab button element.
 		 *
-		 * @param	toggleGroup		A toggle group that forms a link between related tab buttons.
-		 * @param	index			Unique index that can be used for identifying a tab.
-		 * @param	text			Label to display in the button.
-		 * @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.
+		 * @param[in]	toggleGroup		A toggle group that forms a link between related tab buttons.
+		 * @param[in]	index			Unique index that can be used for identifying a tab.
+		 * @param[in]	text			Label to display in the button.
+		 * @param[in]	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 GUITabButton* create(const GUIToggleGroupPtr& toggleGroup, UINT32 index, const HString& text, 
 			const String& styleName = StringUtil::BLANK);
 
 		/**
-		 * @brief	Creates a new GUI tab button element.
+		 * Creates a new GUI tab button element.
 		 *
-		 * @param	toggleGroup		A toggle group that forms a link between related tab buttons.
-		 * @param	index			Unique index that can be used for identifying a tab.
-		 * @param	text			Label to display in the button.
-		 * @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.
+		 * @param[in]	toggleGroup		A toggle group that forms a link between related tab buttons.
+		 * @param[in]	index			Unique index that can be used for identifying a tab.
+		 * @param[in]	text			Label to display in the button.
+		 * @param[in]	options			Options that allow you to control how is the element positioned and sized.
+		 *								This will override any similar options set by style.
+		 * @param[in]	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 GUITabButton* create(const GUIToggleGroupPtr& toggleGroup, UINT32 index, const HString& text, 
 			const GUIOptions& options, const String& styleName = StringUtil::BLANK);
 	
 		/**
-		 * @brief	Creates a new GUI tab button element.
+		 * Creates a new GUI tab button element.
 		 *
-		 * @param	toggleGroup		A toggle group that forms a link between related tab buttons.
-		 * @param	index			Unique index that can be used for identifying a tab.
-		 * @param	content			Content to display in the button.
-		 * @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.
+		 * @param[in]	toggleGroup		A toggle group that forms a link between related tab buttons.
+		 * @param[in]	index			Unique index that can be used for identifying a tab.
+		 * @param[in]	content			Content to display in the button.
+		 * @param[in]	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 GUITabButton* create(const GUIToggleGroupPtr& toggleGroup, UINT32 index, const GUIContent& content, 
 			const String& styleName = StringUtil::BLANK);
 
 		/**
-		 * @brief	Creates a new GUI tab button element.
+		 * Creates a new GUI tab button element.
 		 *
-		 * @param	toggleGroup		A toggle group that forms a link between related tab buttons.
-		 * @param	index			Unique index that can be used for identifying a tab.
-		 * @param	content			Content to display in the button.
-		 * @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.
+		 * @param[in]	toggleGroup		A toggle group that forms a link between related tab buttons.
+		 * @param[in]	index			Unique index that can be used for identifying a tab.
+		 * @param[in]	content			Content to display in the button.
+		 * @param[in]	options			Options that allow you to control how is the element positioned and sized.
+		 *								This will override any similar options set by style.
+		 * @param[in]	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 GUITabButton* create(const GUIToggleGroupPtr& toggleGroup, UINT32 index, const GUIContent& content, 
 			const GUIOptions& options, const String& styleName = StringUtil::BLANK);
 
-		/**
-		 * @brief	Returns the unique index for this tab button.
-		 */
+		/**	Returns the unique index for this tab button. */
 		UINT32 getIndex() const { return mIndex; }
 
-		/**
-		 * @copydoc GUIToggle::toggleOn
-		 */
+		/** @copydoc GUIToggle::toggleOn */
 		void toggleOn() override;
 
-		/**
-		 * @copydoc GUIToggle::toggleOff
-		 */
+		/** @copydoc GUIToggle::toggleOff */
 		void toggleOff() override;
 
-		/**
-		 * @brief	Changes the button state to dragged or not dragged, resulting primarily
-		 *			in a visual change.
-		 *
-		 * @note	Internal method.
-		 */
+		/** Changes the button state to dragged or not dragged, resulting primarily in a visual change. */
 		void _setDraggedState(bool active);
 
 		/**
-		 * @brief	Triggered when the user starts dragging the tab button. Reported parameters
-		 *			are the unique index of the tab and pointer position relative to parent GUIWidget.
+		 * Triggered when the user starts dragging the tab button. Reported parameters are the unique index of the tab and
+		 * pointer position relative to parent GUIWidget.
 		 */
 		Event<void(UINT32, const Vector2I&)> onDragged; 
 
 		/**
-		 * @brief	Triggered when the user ends dragging the tab button. Reported parameters
-		 *			are the unique index of the tab and pointer position relative to parent GUIWidget.
+		 * Triggered when the user ends dragging the tab button. Reported parameters are the unique index of the tab and
+		 * pointer position relative to parent GUIWidget.
 		 */
 		Event<void(UINT32, const Vector2I&)> onDragEnd;
 	protected:
 		GUITabButton(const String& styleName, const GUIToggleGroupPtr& toggleGroup, UINT32 index, const GUIContent& content, const GUIDimensions& dimensions);
 
-		/**
-		 * @copydoc GUIElement::_mouseEvent
-		 */
+		/** @copydoc GUIElement::_mouseEvent */
 		virtual bool _mouseEvent(const GUIMouseEvent& ev) override;
 
 		UINT32 mIndex;
@@ -128,4 +113,7 @@ namespace BansheeEngine
 
 		static const UINT32 DRAG_MIN_DISTANCE;
 	};
+
+	/** @} */
+	/** @endcond */
 }

+ 64 - 97
BansheeEditor/Include/BsGUITabbedTitleBar.h

@@ -9,123 +9,105 @@
 
 namespace BansheeEngine
 {
+	/** @cond INTERNAL */
+	/** @addtogroup GUI-Editor
+	 *  @{
+	 */
+
 	/**
-	 * @brief	Tabbed title bar to be used in editor windows. Displays tabs that can
-	 *			be activated, reordered by dragging, or dragged off and on to/on other title bars.
+	 * Tabbed title bar to be used in editor windows. Displays tabs that can be activated, reordered by dragging, or
+	 * dragged off and on to/on other title bars.
 	 */
 	class GUITabbedTitleBar : public GUIElementContainer
 	{
 	public:
-		/**
-		 * Returns type name of the GUI element used for finding GUI element styles. 
-		 */
+		/** Returns type name of the GUI element used for finding GUI element styles. */
 		static const String& getGUITypeName();
 
 		/**
-		 * @brief	Creates a new GUI foldout element.
+		 * Creates a new GUI foldout element.
 		 *
-		 * @param	backgroundStyle		GUI style to display the background in. Keep as blank for default.
-		 * @param	backgroundStyle		GUI style to display the tab buttons in. Keep as blank for default.
-		 * @param	maxBtnStyle			GUI style to display the maximize button in. Keep as blank for default.
-		 * @param	closeBtnStyle		GUI style to display the close button in. Keep as blank for default.
+		 * @param[in]	backgroundStyle		GUI style to display the background in. Keep as blank for default.
+		 * @param[in]	backgroundStyle		GUI style to display the tab buttons in. Keep as blank for default.
+		 * @param[in]	maxBtnStyle			GUI style to display the maximize button in. Keep as blank for default.
+		 * @param[in]	closeBtnStyle		GUI style to display the close button in. Keep as blank for default.
 		 */
 		static GUITabbedTitleBar* create(const String& backgroundStyle = StringUtil::BLANK, const String& tabBtnStyle = StringUtil::BLANK, 
 			const String& maxBtnStyle = StringUtil::BLANK, const String& closeBtnStyle = StringUtil::BLANK);
 
 		/**
-		 * @brief	Creates a new GUI foldout element.
+		 * Creates a new GUI foldout 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	backgroundStyle		GUI style to display the background in. Keep as blank for default.
-		 * @param	backgroundStyle		GUI style to display the tab buttons in. Keep as blank for default.
-		 * @param	maxBtnStyle			GUI style to display the maximize button in. Keep as blank for default.
-		 * @param	closeBtnStyle		GUI style to display the close button in. Keep as blank for default.
+		 * @param[in]	options				Options that allow you to control how is the element positioned and sized.
+		 *									This will override any similar options set by style.
+		 * @param[in]	backgroundStyle		GUI style to display the background in. Keep as blank for default.
+		 * @param[in]	backgroundStyle		GUI style to display the tab buttons in. Keep as blank for default.
+		 * @param[in]	maxBtnStyle			GUI style to display the maximize button in. Keep as blank for default.
+		 * @param[in]	closeBtnStyle		GUI style to display the close button in. Keep as blank for default.
 		 */
 		static GUITabbedTitleBar* create(const GUIOptions& options,
 			const String& backgroundStyle = StringUtil::BLANK, const String& tabBtnStyle = StringUtil::BLANK, 
 			const String& maxBtnStyle = StringUtil::BLANK, const String& closeBtnStyle = StringUtil::BLANK);
 
 		/**
-		 * @brief	Adds a new tab to the end of the tab list.
-		 *
-		 * @param	name	Title to display on the tab button.
+		 * Adds a new tab to the end of the tab list.
 		 *
-		 * @returns	A unique index (not sequential) that you may use for later identifying the tab.
+		 * @param[in]	name	Title to display on the tab button.
+		 * @return				A unique index (not sequential) that you may use for later identifying the tab.
 		 */
 		UINT32 addTab(const HString& name);
 
 		/**
-		 * @brief	Inserts a new tab button at the specified position.
+		 * Inserts a new tab button at the specified position.
 		 *
-		 * @param	position	Sequential index to insert the tab button in. This will be clamped
-		 *						to a valid range.
-		 * @param	name		Title to display on the tab button.
-		 *
-		 * @returns	A unique index (not sequential) that you may use for later identifying the tab.
+		 * @param[in]	position	Sequential index to insert the tab button in. This will be clamped to a valid range.
+		 * @param[in]	name		Title to display on the tab button.
+		 * @return					A unique index (not sequential) that you may use for later identifying the tab.
 		 */
 		UINT32 insertTab(UINT32 position, const HString& name);
 
-		/**
-		 * @brief	Removes the tab button with the specified unique index.
-		 */
+		/**	Removes the tab button with the specified unique index. */
 		void removeTab(UINT32 uniqueIdx);
 
-		/**
-		 * @brief	Activates the tab button with the specified unique index.
-		 */
+		/**	Activates the tab button with the specified unique index. */
 		void setActive(UINT32 uniqueIdx);
 
-		/**
-		 * @brief	Finds the unique tab index from the provided sequential tab position.
-		 */
+		/**	Finds the unique tab index from the provided sequential tab position. */
 		UINT32 getTabIdx(UINT32 position) const;
 
-		/**
-		 * @brief	Returns the total number of display tab buttons.
-		 */
+		/**	Returns the total number of display tab buttons. */
 		UINT32 getNumTabs() const { return (UINT32)mTabButtons.size(); }
 
-		/**
-		 * @brief	Changes the displayed title for a tab with the specified index.
-		 */
+		/**	Changes the displayed title for a tab with the specified index. */
 		void updateTabName(UINT32 uniqueIdx, const HString& name);
 
 		/**
-		 * @brief	Calculates areas between the tab buttons and other GUI elements on the title bar.
-		 *			These areas are normally used for setting up valid areas the user can click on and drag
-		 *			the window the title bar belongs to.
+		 * Calculates areas between the tab buttons and other GUI elements on the title bar. These areas are normally used
+		 * for setting up valid areas the user can click on and drag the window the title bar belongs to.
 		 */
 		Vector<Rect2I> calcDraggableAreas(INT32 x, INT32 y, UINT32 width, UINT32 height) const;
 
-		/**
-		 * @brief	Triggered when the active tab changes. Provided parameter is the
-		 *			unique index of the activated tab.
-		 */
+		/** Triggered when the active tab changes. Provided parameter is the unique index of the activated tab. */
 		Event<void(UINT32)> onTabActivated; 
 
-		/**
-		 * @brief	Triggered when a tab is closed. Provided parameter is the
-		 *			unique index of the closed tab.
-		 */
+		/**	Triggered when a tab is closed. Provided parameter is the unique index of the closed tab. */
 		Event<void(UINT32)> onTabClosed;
 
 		/**
-		 * @brief	Triggered when a tab maximize button is clicked. Provided parameter is the
-		 *			unique index of the maximized/restored tab.
+		 * Triggered when a tab maximize button is clicked. Provided parameter is the unique index of the
+		 * maximized/restored tab.
 		 */
 		Event<void(UINT32)> onTabMaximized;
 
 		/**
-		 * @brief	Triggered when a tab gets dragged off the title bar. Provided 
-		 *			parameter is the unique index of the activated tab.
+		 * Triggered when a tab gets dragged off the title bar. Provided parameter is the unique index of the activated tab.
 		 */
 		Event<void(UINT32)> onTabDraggedOff;
 
 		/**
-		 * @brief	Triggered when a new tab gets dragged on the title bar. Provided 
-		 *			parameter is the sequential index of the activated tab.
+		 * Triggered when a new tab gets dragged on the title bar. Provided parameter is the sequential index of the
+		 * activated tab.
 		 */
 		Event<void(UINT32)> onTabDraggedOn;
 
@@ -135,78 +117,60 @@ namespace BansheeEngine
 
 		virtual ~GUITabbedTitleBar();
 
-		/**
-		 * @copydoc GUIElementContainer::updateClippedBounds
-		 */
+		/** @copydoc GUIElementContainer::updateClippedBounds */
 		void updateClippedBounds() override;
 
-		/**
-		 * @copydoc GUIElementContainer::_getOptimalSize
-		 */
+		/** @copydoc GUIElementContainer::_getOptimalSize */
 		Vector2I _getOptimalSize() const override;
 
-		/**
-		 * @copydoc GUIElementContainer::_updateLayoutInternal
-		 */
+		/** @copydoc GUIElementContainer::_updateLayoutInternal */
 		void _updateLayoutInternal(const GUILayoutData& data) override;
 
-		/**
-		 * @copydoc GUIElementContainer::_mouseEvent
-		 */
+		/** @copydoc GUIElementContainer::_mouseEvent */
 		virtual bool _mouseEvent(const GUIMouseEvent& ev) override;
 
 		/**
-		 * @brief	Starts the internal drag and drop operation.
+		 * Starts the internal drag and drop operation.
 		 *
-		 * @param	seqIdx			Sequential index of the dragged tab.
-		 * @param	startDragPos	Pointer position of where the drag originated, relative
-		 *							to parent widget.
+		 * @param[in]	seqIdx			Sequential index of the dragged tab.
+		 * @param[in]	startDragPos	Pointer position of where the drag originated, relative to parent widget.
 		 */
 		void startDrag(UINT32 seqIdx, const Vector2I& startDragPos);
 
-		/**
-		 * @brief	Ends the internal drag and drop operation started with ::startDrag.
-		 */
+		/**	Ends the internal drag and drop operation started with startDrag(). */
 		void endDrag();
 
 		/**
-		 * @brief	Triggered when a tab button is toggled on or off.
+		 * Triggered when a tab button is toggled on or off.
 		 *
-		 * @param	tabIdx		Unique index of the tab.
-		 * @param	toggledOn	Whether the tab was activated or deactivated.
+		 * @param[in]	tabIdx		Unique index of the tab.
+		 * @param[in]	toggledOn	Wether the tab was activated or deactivated.
 		 */
 		void tabToggled(UINT32 tabIdx, bool toggledOn);
 
-		/**
-		 * @brief	Triggered when the close button is pressed.
-		 */
+		/**	Triggered when the close button is pressed. */
 		void tabClosed();
 
-		/**
-		 * @brief	Triggered when the maximize button is pressed.
-		 */
+		/**	Triggered when the maximize button is pressed. */
 		void tabMaximize();
 
 		/**
-		 * @brief	Triggered every frame while a tab button is being dragged.
+		 * Triggered every frame while a tab button is being dragged.
 		 *
-		 * @param	tabIdx	Unique index of the dragged tab.
-		 * @param	dragPos	Position of the pointer, relative to parent widget.
+		 * @param[in]	tabIdx	Unique index of the dragged tab.
+		 * @param[in]	dragPos	Position of the pointer, relative to parent widget.
 		 */
 		void tabDragged(UINT32 tabIdx, const Vector2I& dragPos);
 
 		/**
-		 * @brief	Triggered when a drag operation on a tab button ends.
+		 * Triggered when a drag operation on a tab button ends.
 		 *
-		 * @param	tabIdx	Unique index of the dragged tab.
-		 * @param	dragPos	Position of the pointer, relative to parent widget.
+		 * @param[in]	tabIdx	Unique index of the dragged tab.
+		 * @param[in]	dragPos	Position of the pointer, relative to parent widget.
 		 */
 		void tabDragEnd(UINT32 tabIdx, const Vector2I& dragPos);
 
-		/**
-		 * @brief	Converts unique tab index to a sequential index corresponding to the
-		 *			tab's position in the title bar.
-		 */
+		/** Converts unique tab index to a sequential index corresponding to the tab's position in the title bar. */
 		INT32 uniqueIdxToSeqIdx(UINT32 uniqueIdx) const;
 
 		static const INT32 TAB_SPACING;
@@ -236,4 +200,7 @@ namespace BansheeEngine
 		String mMaximizeBtnStyle;
 		String mTabBtnStyle;
 	};
+
+	/** @} */
+	/** @endcond */
 }

+ 91 - 118
BansheeEditor/Include/BsGUITextField.h

@@ -7,225 +7,196 @@
 
 namespace BansheeEngine
 {
+	/** @addtogroup GUI-Editor
+	 *  @{
+	 */
+
 	/**
-	 * @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 text input field.
+	 * 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 text input field.
 	 */
 	class BS_ED_EXPORT GUITextField : public GUIElementContainer
 	{
 		struct PrivatelyConstruct {};
 
 	public:
-		/**
-		 * Returns type name of the GUI element used for finding GUI element styles. 
-		 */
+		/** Returns type name of the GUI element used for finding GUI element styles. */
 		static const String& getGUITypeName();
 
-		/**
-		 * Returns style type name of the internal GUILabel element.
-		 */
+		/** Returns style type name of the internal GUILabel element. */
 		static const String& getLabelStyleType();
 
-		/**
-		 * Returns style type name of the internal GUIInputBox element.
-		 */
+		/** Returns style type name of the internal GUIInputBox element. */
 		static const String& getInputStyleType();
 
 		/**
-		 * @brief	Creates a new GUI text editor field with a label.
+		 * Creates a new GUI text editor field with a label.
 		 *
-		 * @param	multiline		Should the input box accept multiple lines of input.
-		 * @param	labelContent	Content to display in the editor field label.
-		 * @param	labelWidth		Width of the label in pixels.
-		 * @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.
+		 * @param[in]	multiline		Should the input box accept multiple lines of input.
+		 * @param[in]	labelContent	Content to display in the editor field label.
+		 * @param[in]	labelWidth		Width of the label in pixels.
+		 * @param[in]	options			Options that allow you to control how is the element positioned and sized. This will
+		 *								override any similar options set by style.
+		 * @param[in]	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 GUITextField* create(bool multiline, const GUIContent& labelContent, UINT32 labelWidth, const GUIOptions& options,
 			const String& style = StringUtil::BLANK);
 
 		/**
-		 * @brief	Creates a new GUI text editor field with a label.
+		 * Creates a new GUI text editor field with a label.
 		 *
-		 * @param	multiline		Should the input box accept multiple lines of input.
-		 * @param	labelContent	Content to display in the editor field label.
-		 * @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.
+		 * @param[in]	multiline		Should the input box accept multiple lines of input.
+		 * @param[in]	labelContent	Content to display in the editor field label.
+		 * @param[in]	options			Options that allow you to control how is the element positioned and sized.
+		 *								This will override any similar options set by style.
+		 * @param[in]	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 GUITextField* create(bool multiline, const GUIContent& labelContent, const GUIOptions& options,
 			const String& style = StringUtil::BLANK);
 
 		/**
-		 * @brief	Creates a new GUI text editor field with a label.
+		 * Creates a new GUI text editor field with a label.
 		 *
-		 * @param	multiline		Should the input box accept multiple lines of input.
-		 * @param	labelText		String to display in the editor field label.
-		 * @param	labelWidth		Width of the label in pixels.
-		 * @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.
+		 * @param[in]	multiline		Should the input box accept multiple lines of input.
+		 * @param[in]	labelText		String to display in the editor field label.
+		 * @param[in]	labelWidth		Width of the label in pixels.
+		 * @param[in]	options			Options that allow you to control how is the element positioned and sized.
+		 *								This will override any similar options set by style.
+		 * @param[in]	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 GUITextField* create(bool multiline, const HString& labelText, UINT32 labelWidth, const GUIOptions& options,
 			const String& style = StringUtil::BLANK);
 
 		/**
-		 * @brief	Creates a new GUI text editor field with a label.
+		 * Creates a new GUI text editor field with a label.
 		 *
-		 * @param	multiline		Should the input box accept multiple lines of input.
-		 * @param	labelText		String to display in the editor field label.
-		 * @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.
+		 * @param[in]	multiline		Should the input box accept multiple lines of input.
+		 * @param[in]	labelText		String to display in the editor field label.
+		 * @param[in]	options			Options that allow you to control how is the element positioned and sized.
+		 *								This will override any similar options set by style.
+		 * @param[in]	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 GUITextField* create(bool multiline, const HString& labelText, const GUIOptions& options,
 			const String& style = StringUtil::BLANK);
 
 		/**
-		 * @brief	Creates a new GUI text editor field without a label.
+		 * Creates a new GUI text editor field without a label.
 		 *
-		 * @param	multiline		Should the input box accept multiple lines of input.
-		 * @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.
+		 * @param[in]	multiline		Should the input box accept multiple lines of input.
+		 * @param[in]	options			Options that allow you to control how is the element positioned and sized.
+		 *								This will override any similar options set by style.
+		 * @param[in]	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 GUITextField* create(bool multiline, const GUIOptions& options, const String& style = StringUtil::BLANK);
 
 		/**
-		 * @brief	Creates a new GUI text editor field with a label.
+		 * Creates a new GUI text editor field with a label.
 		 *
-		 * @param	multiline		Should the input box accept multiple lines of input.
-		 * @param	labelContent	Content to display in the editor field label.
-		 * @param	labelWidth		Width of the label in pixels.
-		 * @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.
+		 * @param[in]	multiline		Should the input box accept multiple lines of input.
+		 * @param[in]	labelContent	Content to display in the editor field label.
+		 * @param[in]	labelWidth		Width of the label in pixels.
+		 * @param[in]	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 GUITextField* create(bool multiline, const GUIContent& labelContent, UINT32 labelWidth,
 			const String& style = StringUtil::BLANK);
 
 		/**
-		 * @brief	Creates a new GUI text editor field with a label.
+		 * Creates a new GUI text editor field with a label.
 		 *
-		 * @param	multiline		Should the input box accept multiple lines of input.
-		 * @param	labelContent	Content to display in the editor field label.
-		 * @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.
+		 * @param[in]	multiline		Should the input box accept multiple lines of input.
+		 * @param[in]	labelContent	Content to display in the editor field label.
+		 * @param[in]	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 GUITextField* create(bool multiline, const GUIContent& labelContent,
 			const String& style = StringUtil::BLANK);
 
 		/**
-		 * @brief	Creates a new GUI text editor field with a label.
+		 * Creates a new GUI text editor field with a label.
 		 *
-		 * @param	multiline		Should the input box accept multiple lines of input.
-		 * @param	labelText		String to display in the editor field label.
-		 * @param	labelWidth		Width of the label in pixels.
-		 * @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.
+		 * @param[in]	multiline		Should the input box accept multiple lines of input.
+		 * @param[in]	labelText		String to display in the editor field label.
+		 * @param[in]	labelWidth		Width of the label in pixels.
+		 * @param[in]	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 GUITextField* create(bool multiline, const HString& labelText, UINT32 labelWidth,
 			const String& style = StringUtil::BLANK);
 
 		/**
-		 * @brief	Creates a new GUI text editor field with a label.
+		 * Creates a new GUI text editor field with a label.
 		 *
-		 * @param	multiline		Should the input box accept multiple lines of input.
-		 * @param	labelText		String to display in the editor field label.
-		 * @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.
+		 * @param[in]	multiline		Should the input box accept multiple lines of input.
+		 * @param[in]	labelText		String to display in the editor field label.
+		 * @param[in]	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 GUITextField* create(bool multiline, const HString& labelText,
 			const String& style = StringUtil::BLANK);
 
 		/**
-		 * @brief	Creates a new GUI text editor field without a label.
+		 * Creates a new GUI text editor field without a label.
 		 *
-		 * @param	multiline		Should the input box accept multiple lines of input.
-		 * @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.
+		 * @param[in]	multiline		Should the input box accept multiple lines of input.
+		 * @param[in]	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 GUITextField* create(bool multiline, const String& style = StringUtil::BLANK);
 
 		GUITextField(const PrivatelyConstruct& dummy, bool multiline, const GUIContent& labelContent, UINT32 labelWidth,
 			const String& style, const GUIDimensions& dimensions, bool withLabel);
 
-		/**
-		 * @brief	Returns the value currently input in the text field.
-		 */
+		/**	Returns the value currently input in the text field. */
 		WString getValue() const { return mValue; }
 
-		/**
-		 * @brief	Sets a new value in the text field.
-		 */
+		/**	Sets a new value in the text field. */
 		void setValue(const WString& value);
 
-		/**
-		 * @brief	Checks whether the element currently has keyboard focus.
-		 */
+		/**	Checks whether the element currently has keyboard focus. */
 		bool hasInputFocus() const { return mHasInputFocus; }
 
-		/**
-		 * @copydoc	GUIElement::setTint
-		 */
+		/** @copydoc GUIElement::setTint */
 		void setTint(const Color& color) override;
 		
+		Event<void(const WString&)> onValueChanged; /** Triggered when the value in the field changes. */
+		Event<void()> onConfirm; /**< Triggered when the user hits the Enter key with the input box in focus. */
+
+		/** @cond INTERNAL */
+
 		/**
-		 * @brief	Sets a new value in the input field, and also allows you to choose should the field trigger an
-		 *			onValueChanged event.
+		 * Sets a new value in the input field, and also allows you to choose should the field trigger an onValueChanged
+		 * event.
 		 */
 		void _setValue(const WString& value, bool triggerEvent);
 
-		Event<void(const WString&)> onValueChanged; /** Triggered when the value in the field changes. */
-		Event<void()> onConfirm; /**< Triggered when the user hits the Enter key with the input box in focus. */
+		/** @endcond */
 	protected:
 		static const UINT32 DEFAULT_LABEL_WIDTH;
 
 		virtual ~GUITextField();
 
-		/**
-		 * @copydoc	GUIElement::styleUpdated
-		 */
+		/** @copydoc GUIElement::styleUpdated */
 		void styleUpdated() override;
 
-		/**
-		 * @copydoc	GUIElement::_updateLayoutInternal
-		 */
+		/** @copydoc GUIElement::_updateLayoutInternal */
 		void _updateLayoutInternal(const GUILayoutData& data) override;
 
-		/**
-		 * @copydoc	GUIElement::_getOptimalSize
-		 */
+		/** @copydoc GUIElement::_getOptimalSize */
 		Vector2I _getOptimalSize() const override;
 
-		/**
-		 * @brief	Triggered when the value in the internal input box changes.
-		 */
+		/**	Triggered when the value in the internal input box changes. */
 		void valueChanged(const WString& newValue);
 
-		/**
-		 * @brief	Triggers when the input box receives or loses keyboard focus.
-		 */
+		/**	Triggers when the input box receives or loses keyboard focus. */
 		void focusChanged(bool focus);
 
-		/**
-		 * @brief	Triggered when the users confirms input in the input box.
-		 */
+		/**	Triggered when the users confirms input in the input box. */
 		void inputConfirmed();
 
 		GUIInputBox* mInputBox;
@@ -234,4 +205,6 @@ namespace BansheeEngine
 		bool mHasInputFocus;
 		WString mValue;
 	};
+
+	/** @} */
 }

+ 17 - 26
BansheeEditor/Include/BsGUIToggleField.h

@@ -7,45 +7,38 @@
 
 namespace BansheeEngine
 {
+	/** @addtogroup GUI-Editor
+	 *  @{
+	 */
+
 	/**
-	 * @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 toggle button.
+	 * 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 toggle button.
 	 */
 	class BS_ED_EXPORT GUIToggleField : public TGUIField<GUIToggleField>
 	{
 	public:
-		/**
-		 * Returns type name of the GUI element used for finding GUI element styles. 
-		 */
+		/** Returns type name of the GUI element used for finding GUI element styles. */
 		static const String& getGUITypeName();
 
-		/**
-		 * Returns style type name of the internal GUIToggle element.
-		 */
+		/** Returns style type name of the internal GUIToggle element. */
 		static const String& getToggleStyleType();
 
 		GUIToggleField(const PrivatelyConstruct& dummy, const GUIContent& labelContent, UINT32 labelWidth,
 			const String& style, const GUIDimensions& dimensions, bool withLabel);
 
-		/**
-		 * @brief	Returns the current value of the toggle.
-		 */
+		/**	Returns the current value of the toggle. */
 		bool getValue() const { return mValue; }
 
-		/**
-		 * @brief	Activates/deactivates the toggle.
-		 */
+		/**	Activates/deactivates the toggle. */
 		void setValue(bool value);
 
-		/**
-		 * @copydoc	GUIElement::setTint
-		 */
+		/** @copydoc GUIElement::setTint */
 		void setTint(const Color& color) override;
 
 		/**
-		 * @brief	Sets a new value in the input field, and also allows you to choose should the field trigger an
-		 *			onValueChanged event.
+		 * Sets a new value in the input field, and also allows you to choose should the field trigger an onValueChanged
+		 * event.
 		 */
 		void _setValue(bool value, bool triggerEvent);
 
@@ -53,17 +46,15 @@ namespace BansheeEngine
 	protected:
 		virtual ~GUIToggleField() { }
 
-		/**
-		 * @copydoc	GUIElement::styleUpdated
-		 */
+		/** @copydoc GUIElement::styleUpdated */
 		void styleUpdated() override;
 
-		/**
-		 * @brief	Triggered when the value of the internal toggle button changes.
-		 */
+		/**	Triggered when the value of the internal toggle button changes. */
 		void valueChanged(bool newValue);
 
 		GUIToggle* mToggle;
 		bool mValue;
 	};
+
+	/** @} */
 }

+ 70 - 142
BansheeEditor/Include/BsGUITreeView.h

@@ -9,22 +9,24 @@
 
 namespace BansheeEngine
 {
+	/** @cond INTERNAL */
+	/** @addtogroup GUI-Editor
+	 *  @{
+	 */
+
 	/**
-	 * @brief	GUI element that displays some contents in a tree-view where elements
-	 *			are placed vertically above/beneath each other, and different elements
-	 *			may be nested within other elements.
+	 * GUI element that displays some contents in a tree-view where elements are placed vertically above/beneath each other,
+	 * and different elements may be nested within other elements.
 	 *
-	 *			Elements may be selected, renamed, dragged and re-parented.
+	 * Elements may be selected, renamed, dragged and re-parented.
 	 *
-	 *			This class is abstract and meant to be extended by an implementation 
-	 *			specific to some content type (e.g. scene object hierarchy). 
+	 * This class is abstract and meant to be extended by an implementation specific to some content type (e.g. scene object
+	 * hierarchy). 
 	 */
 	class BS_ED_EXPORT GUITreeView : public GUIElementContainer
 	{
 	protected:
-		/**
-		 * @brief	Types of possible states when the tree view is auto-scrolling.
-		 */
+		/**	Types of possible states when the tree view is auto-scrolling. */
 		enum class ScrollState
 		{
 			None,
@@ -35,9 +37,8 @@ namespace BansheeEngine
 		};
 
 		/**
-		 * @brief	Contains data about a single piece of content
-		 *			and all its children. This element may be visible and represented
-		 *			by a GUI element, but might not (e.g. its parent is collapsed).
+		 * Contains data about a single piece of content and all its children. This element may be visible and represented
+		 * by a GUI element, but might not (e.g. its parent is collapsed).
 		 */
 		struct TreeElement
 		{
@@ -65,9 +66,8 @@ namespace BansheeEngine
 		};
 
 		/**
-		 * @brief	Contains data about all visible elements in the tree view.
-		 *			This might be a TreeElement entry, or a separator (empty space)
-		 *			between two TreeElement%s.
+		 * Contains data about all visible elements in the tree view. This might be a TreeElement entry, or a separator
+		 * (empty space) between two TreeElement%s.
 		 */
 		struct InteractableElement
 		{
@@ -83,9 +83,7 @@ namespace BansheeEngine
 			Rect2I bounds;
 		};
 
-		/**
-		 * @brief	Contains data about one of the currently selected tree elements.
-		 */
+		/**	Contains data about one of the currently selected tree elements. */
 		struct SelectedElement
 		{
 			SelectedElement()
@@ -119,13 +117,13 @@ namespace BansheeEngine
 		/**	Pastes a set of entries previously marked for cut or copy. */
 		virtual void paste() { }
 
-		/**
-		 * Updates tree view if dirty, among other operations. Must be called every frame. 
-		 *
-		 * @note	Internal method.
-		 */
+		/** @cond INTERNAL */
+
+		/** Updates tree view if dirty, among other operations. Must be called every frame. */
 		void _update();
 
+		/** @endcond */
+
 	protected:
 		GUITreeView(const String& backgroundStyle, const String& elementBtnStyle, 
 			const String& foldoutBtnStyle, const String& highlightBackgroundStyle, const String& selectionBackgroundStyle, const String& editBoxStyle,
@@ -133,220 +131,147 @@ namespace BansheeEngine
 
 		virtual ~GUITreeView();
 
-		/**
-		 * @copydoc	GUIElement::_getOptimalSize
-		 */
+		/** @copydoc GUIElement::_getOptimalSize */
 		Vector2I _getOptimalSize() const override;
 
-		/**
-		 * @copydoc	GUIElement::updateClippedBounds
-		 */
+		/** @copydoc GUIElement::updateClippedBounds */
 		void updateClippedBounds() override;
 
-		/**
-		 * @copydoc	GUIElement::_updateLayoutInternal
-		 */
+		/** @copydoc GUIElement::_updateLayoutInternal */
 		virtual void _updateLayoutInternal(const GUILayoutData& data) override;
 
-		/**
-		 * @copydoc	GUIElement::_mouseEvent
-		 */
+		/** @copydoc GUIElement::_mouseEvent */
 		virtual bool _mouseEvent(const GUIMouseEvent& ev) override;
 
-		/**
-		 * @copydoc	GUIElement::_commandEvent
-		 */
+		/** @copydoc GUIElement::_commandEvent */
 		virtual bool _commandEvent(const GUICommandEvent& ev) override;
 
-		/**
-		 * @copydoc	GUIElement::_virtualButtonEvent
-		 */
+		/** @copydoc GUIElement::_virtualButtonEvent */
 		virtual bool _virtualButtonEvent(const GUIVirtualButtonEvent& ev) override;
 
 		/**
-		 * @brief	Attempts to find an interactable element under the specified coordinates.
-		 *			Returns null if one cannot be found.
+		 * Attempts to find an interactable element under the specified coordinates. Returns null if one cannot be found.
 		 *
-		 * @param	coord	Coordinates relative to parent GUI widget.
+		 * @param[in]	coord	Coordinates relative to parent GUI widget.
 		 */
 		const GUITreeView::InteractableElement* findElementUnderCoord(const Vector2I& coord) const;
 
-		/**
-		 * @brief	Returns the top-most selected tree element if selection is active,
-		 *			null otherwise.
-		 */
+		/**	Returns the top-most selected tree element if selection is active, null otherwise. */
 		TreeElement* getTopMostSelectedElement() const;
 
-		/**
-		 * @brief	Returns the bottom-most selected tree element if selection is active,
-		 *			null otherwise.
-		 */
+		/** Returns the bottom-most selected tree element if selection is active, null otherwise. */
 		TreeElement* getBottomMostSelectedElement() const;
 
-		/**
-		 * @brief	Starts rename operation on the specified tree element, spawning an input box.
-		 */
+		/**	Starts rename operation on the specified tree element, spawning an input box. */
 		void enableEdit(TreeElement* element);
 
 		/**
-		 * @brief	Ends rename operation if one is currently active.
+		 * Ends rename operation if one is currently active.
 		 *
-		 * @param	acceptChanges	Should the new name be accepted or discarded.
+		 * @param[in]	acceptChanges	Should the new name be accepted or discarded.
 		 */
 		void disableEdit(bool acceptChanges);
 
 		/**
-		 * @brief	Triggered when the Foldout button for a tree element was been toggled.
-		 *			(i.e. something was expanded or collapsed).
+		 * Triggered when the Foldout button for a tree element was been toggled (i.e. something was expanded or collapsed).
 		 */
 		void elementToggled(TreeElement* element, bool toggled);
 
-		/**
-		 * @brief	Returns the top level TreeElement.
-		 */
+		/**	Returns the top level TreeElement. */
 		virtual TreeElement& getRootElement() = 0;
 
-		/**
-		 * @brief	Returns the top level TreeElement that cannot be modified.
-		 */
+		/**	Returns the top level TreeElement that cannot be modified. */
 		virtual const TreeElement& getRootElementConst() const = 0;
 
-		/**
-		 * @brief	Checks if the hierarchy needs any updates and performs those
-		 *			updates if needed.
-		 */
+		/** Checks if the hierarchy needs any updates and performs those updates if needed. */
 		virtual void updateTreeElementHierarchy() = 0;
 
-		/**
-		 * @brief	Changes the name of the content associated with the provided tree element.
-		 */
+		/**	Changes the name of the content associated with the provided tree element. */
 		virtual void renameTreeElement(TreeElement* element, const WString& name) = 0;
 
-		/**
-		 * @brief	Deletes the content associated with the provided tree element.
-		 */
+		/**	Deletes the content associated with the provided tree element. */
 		virtual void deleteTreeElement(TreeElement* element) = 0;
 
-		/**
-		 * @brief	Checks whether the tree view can accept the currently active drag and drop
-		 *			operation.
-		 */
+		/**	Checks whether the tree view can accept the currently active drag and drop operation. */
 		virtual bool acceptDragAndDrop() const = 0;
 
-		/**
-		 * @brief	Triggered when the user drags a tree element and starts a drag and drop operation.
-		 */
+		/**	Triggered when the user drags a tree element and starts a drag and drop operation. */
 		virtual void dragAndDropStart() = 0;
 
 		/**
-		 * @brief	Triggered when the user ends a drag and drop operation over the tree view.
+		 * Triggered when the user ends a drag and drop operation over the tree view.
 		 *
-		 * @param	overTreeElement	TreeElement the drag operation ended over, if any.
+		 * @param[in]	overTreeElement	TreeElement the drag operation ended over, if any.
 		 */
 		virtual void dragAndDropEnded(TreeElement* overTreeElement) = 0;
 
-		/**
-		 * @brief	Triggered whenever a TreeElement gets selected or deselected.
-		 */
+		/**	Triggered whenever a TreeElement gets selected or deselected. */
 		virtual void selectionChanged() { }
 
-		/**
-		 * @brief	Are any tree elements currently selected.
-		 */
+		/**	Are any tree elements currently selected. */
 		bool isSelectionActive() const;
 
-		/**
-		 * @brief	Expands the selection to the provided TreeElement. Doesn't clear
-		 *			previous selection.
-		 */
+		/**	Expands the selection to the provided TreeElement. Doesn't clear previous selection. */
 		void selectElement(TreeElement* element);
 
-		/**
-		 * @brief	Unselects the provided TreeElement.
-		 */
+		/**	Unselects the provided TreeElement. */
 		void unselectElement(TreeElement* element);
 
 		/**
-		 * @brief	Unselects all selected TreeElement%s.
+		 * Unselects all selected TreeElement%s.
 		 *
-		 * @param	sendEvent	Determines should the external world be notified of this change.
+		 * @param[in]	sendEvent	Determines should the external world be notified of this change.
 		 */
 		void unselectAll(bool sendEvent = true);
 
-		/**
-		 * @brief	Starts rename operation on the currently selected element.
-		 */
+		/**	Starts rename operation on the currently selected element. */
 		void renameSelected();
 
-		/**
-		 * @brief	Expands all parents of the provided TreeElement making it interactable.
-		 */
+		/**	Expands all parents of the provided TreeElement making it interactable. */
 		void expandToElement(TreeElement* element);
 
-		/**
-		 * @brief	Expands the provided TreeElement making its children interactable.
-		 */
+		/**	Expands the provided TreeElement making its children interactable. */
 		void expandElement(TreeElement* element);
 
-		/**
-		 * @brief	Collapses the provided TreeElement making its children hidden and not interactable.
-		 */
+		/**	Collapses the provided TreeElement making its children hidden and not interactable. */
 		void collapseElement(TreeElement* element);
 
-		/**
-		 * @brief	Rebuilds the needed GUI elements for the provided TreeElement.
-		 */
+		/**	Rebuilds the needed GUI elements for the provided TreeElement. */
 		void updateElementGUI(TreeElement* element);
 
-		/**
-		 * @brief	Close any elements that were temporarily expanded due to a drag operation
-		 *			hovering over them.
-		 */
+		/**	Close any elements that were temporarily expanded due to a drag operation hovering over them. */
 		void closeTemporarilyExpandedElements();
 
 		/**
-		 * @brief	Temporarily expand the provided element. Temporarily expanded elements can be
-		 *			closed by calling ::closeTemporarilyExpandedElements.
+		 * Temporarily expand the provided element. Temporarily expanded elements can be closed by calling
+		 * closeTemporarilyExpandedElements().
 		 */
 		void temporarilyExpandElement(const GUITreeView::InteractableElement* mouseOverElement);
 
 		/**
-		 * @brief	Scrolls the parent GUIScrollArea (if any) so that the specified TreeElement is visible.
+		 * Scrolls the parent GUIScrollArea (if any) so that the specified TreeElement is visible.
 		 *
-		 * @param	element	Element to scroll to.
-		 * @param	center	If true the element will be centered in the scroll view,
-		 *					otherwise it will be at the top. 
+		 * @param[in]	element	Element to scroll to.
+		 * @param[in]	center	If true the element will be centered in the scroll view, otherwise it will be at the top. 
 		 */
 		void scrollToElement(TreeElement* element, bool center);
 
-		/**
-		 * @brief	Attempts to find the parent GUIScrollArea that the tree view is a child of.
-		 */
+		/**	Attempts to find the parent GUIScrollArea that the tree view is a child of. */
 		GUIScrollArea* findParentScrollArea() const;
 
-		/**
-		 * @brief	Scrolls the tree view to the specified element and highlights it.
-		 */
+		/**	Scrolls the tree view to the specified element and highlights it. */
 		void ping(TreeElement* element);
 
-		/**
-		 * @brief	Clears the ping highlight on the currently highlighted element.
-		 */
+		/**	Clears the ping highlight on the currently highlighted element. */
 		void clearPing();
 
-		/**
-		 * @brief	Triggered when the user accepts the changes during a rename operation.
-		 */
+		/**	Triggered when the user accepts the changes during a rename operation. */
 		void onEditAccepted();
 
-		/**
-		 * @brief	Triggered when the user rejects the changes during a rename operation.
-		 */
+		/**	Triggered when the user rejects the changes during a rename operation. */
 		void onEditCanceled();
 
-		/**
-		 * @brief	Triggered when the user clicks outside of the edit box during a rename operation.
-		 */
+		/**	Triggered when the user clicks outside of the edit box during a rename operation. */
 		void onEditFocusLost();
 
 		String mBackgroundStyle;
@@ -403,4 +328,7 @@ namespace BansheeEngine
 		static const Color CUT_COLOR;
 		static const Color DISABLED_COLOR;
 	};
+
+	/** @} */
+	/** @endcond */
 }

+ 18 - 18
BansheeEditor/Include/BsGUITreeViewEditBox.h

@@ -7,34 +7,33 @@
 
 namespace BansheeEngine
 {
-	/**
-	 * @brief	Input box used for renaming elements in a TreeView.
+	/** @cond INTERNAL */
+	/** @addtogroup GUI-Editor
+	 *  @{
 	 */
+
+	/** 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. 
-		 */
+		/** 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.
+		 * 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.
+		 * @param[in]	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.
+		 * 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.
+		 * @param[in]	options			Options that allow you to control how is the element positioned and sized.
+		 *								This will override any similar options set by style.
+		 * @param[in]	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);
 
@@ -44,9 +43,10 @@ namespace BansheeEngine
 	private:
 		GUITreeViewEditBox(const String& styleName, const GUIDimensions& dimensions);
 
-		/**
-		 * @copydoc	GUIElement::_commandEvent
-		 */
+		/** @copydoc GUIElement::_commandEvent */
 		virtual bool _commandEvent(const GUICommandEvent& ev) override;
 	};
+
+	/** @} */
+	/** @endcond */
 }

+ 17 - 30
BansheeEditor/Include/BsGUIVector2Field.h

@@ -8,45 +8,36 @@
 
 namespace BansheeEngine
 {
+	/** @addtogroup GUI-Editor
+	 *  @{
+	 */
+
 	/**
-	 * @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.
+	 * 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. 
-		 */
+		/** 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.
-		 */
+		/** 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.
-		 */
+		/**	Returns the value of the input field. */
 		Vector2 getValue() const;
 
-		/**
-		 * @brief	Sets a new value in the input field.
-		 */
+		/**	Sets a new value in the input field. */
 		void setValue(const Vector2& value);
 
-		/**
-		 * @brief	Checks is the input field currently active.
-		 */
+		/**	Checks is the input field currently active. */
 		bool hasInputFocus() const;
 
-		/**
-		 * @copydoc	GUIElement::setTint
-		 */
+		/** @copydoc GUIElement::setTint */
 		virtual void setTint(const Color& color) override;
 
 		Event<void(const Vector2&)> onValueChanged; /**< Triggers when the field value changes. */
@@ -57,22 +48,18 @@ namespace BansheeEngine
 	protected:
 		static const UINT32 ELEMENT_LABEL_WIDTH;
 
-		/**
-		 * @copydoc	GUIElement::styleUpdated
-		 */
+		/** @copydoc GUIElement::styleUpdated */
 		void styleUpdated() override;
 
-		/**
-		 * @brief	Triggered when the values in either of the input boxes change.
-		 */
+		/**	Triggered when the values in either of the input boxes change. */
 		void valueChanged(float newValue);
 
-		/**
-		 * @brief	Triggered when the users confirms input in the input box.
-		 */
+		/**	Triggered when the users confirms input in the input box. */
 		void inputConfirmed();
 
 		GUIFloatField* mFieldX;
 		GUIFloatField* mFieldY;
 	};
+
+	/** @} */
 }

+ 17 - 30
BansheeEditor/Include/BsGUIVector3Field.h

@@ -8,45 +8,36 @@
 
 namespace BansheeEngine
 {
+	/** @addtogroup GUI-Editor
+	 *  @{
+	 */
+
 	/**
-	 * @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.
+	 * 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. 
-		 */
+		/** 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.
-		 */
+		/** 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.
-		 */
+		/**	Returns the value of the input field. */
 		Vector3 getValue() const;
 
-		/**
-		 * @brief	Sets a new value in the input field.
-		 */
+		/**	Sets a new value in the input field. */
 		void setValue(const Vector3& value);
 
-		/**
-		 * @brief	Checks is the input field currently active.
-		 */
+		/**	Checks is the input field currently active. */
 		bool hasInputFocus() const;
 
-		/**
-		 * @copydoc	GUIElement::setTint
-		 */
+		/** @copydoc GUIElement::setTint */
 		virtual void setTint(const Color& color) override;
 
 		Event<void(const Vector3&)> onValueChanged; /**< Triggers when the field value changes. */
@@ -54,19 +45,13 @@ namespace BansheeEngine
 	protected:
 		virtual ~GUIVector3Field() { }
 
-		/**
-		 * @copydoc	GUIElement::styleUpdated
-		 */
+		/** @copydoc GUIElement::styleUpdated */
 		void styleUpdated() override;
 
-		/**
-		 * @brief	Triggered when the values in any of the input boxes change.
-		 */
+		/**	Triggered when the values in any of the input boxes change. */
 		void valueChanged(float newValue);
 
-		/**
-		 * @brief	Triggered when the users confirms input in the input box.
-		 */
+		/**	Triggered when the users confirms input in the input box. */
 		void inputConfirmed();
 
 		static const UINT32 ELEMENT_LABEL_WIDTH;
@@ -75,4 +60,6 @@ namespace BansheeEngine
 		GUIFloatField* mFieldY;
 		GUIFloatField* mFieldZ;
 	};
+
+	/** @} */
 }

+ 17 - 30
BansheeEditor/Include/BsGUIVector4Field.h

@@ -8,45 +8,36 @@
 
 namespace BansheeEngine
 {
+	/** @addtogroup GUI-Editor
+	 *  @{
+	 */
+
 	/**
-	 * @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.
+	 * 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. 
-		 */
+		/** 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.
-		 */
+		/** 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.
-		 */
+		/**	Returns the value of the input field. */
 		Vector4 getValue() const;
 
-		/**
-		 * @brief	Sets a new value in the input field.
-		 */
+		/**	Sets a new value in the input field. */
 		void setValue(const Vector4& value);
 
-		/**
-		 * @brief	Checks is the input field currently active.
-		 */
+		/**	Checks is the input field currently active. */
 		bool hasInputFocus() const;
 
-		/**
-		 * @copydoc	GUIElement::setTint
-		 */
+		/** @copydoc GUIElement::setTint */
 		virtual void setTint(const Color& color) override;
 
 		Event<void(const Vector4&)> onValueChanged; /**< Triggers when the field value changes. */
@@ -54,19 +45,13 @@ namespace BansheeEngine
 	protected:
 		virtual ~GUIVector4Field() { }
 
-		/**
-		 * @copydoc	GUIElement::setTint
-		 */
+		/** @copydoc GUIElement::setTint */
 		void styleUpdated() override;
 
-		/**
-		 * @brief	Triggered when the values in any of the input boxes change.
-		 */
+		/**	Triggered when the values in any of the input boxes change. */
 		void valueChanged(float newValue);
 
-		/**
-		 * @brief	Triggered when the users confirms input in the input box.
-		 */
+		/**	Triggered when the users confirms input in the input box. */
 		void inputConfirmed();
 
 		static const UINT32 ELEMENT_LABEL_WIDTH;
@@ -76,4 +61,6 @@ namespace BansheeEngine
 		GUIFloatField* mFieldZ;
 		GUIFloatField* mFieldW;
 	};
+
+	/** @} */
 }

+ 18 - 18
BansheeEditor/Include/BsGUIWindowFrame.h

@@ -8,43 +8,43 @@
 
 namespace BansheeEngine
 {
-	/**
-	 * @brief	GUI element used for displaying a border on an editor window edge.
+	/** @cond INTERNAL */
+	/** @addtogroup GUI-Editor
+	 *  @{
 	 */
+
+	/**	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. 
-		 */
+		/** 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.
+		 * 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.
+		 * @param[in]	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.
+		 * 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.
+		 * @param[in]	options			Options that allow you to control how is the element positioned and sized.
+		 *								This will override any similar options set by style.
+		 * @param[in]	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.
-		 */
+		/**	Sets whether the frame should be displayed in focus or unfocused state. */
 		void setFocused(bool focused);
 	protected:
 		~GUIWindowFrame();
 		GUIWindowFrame(const String& styleName, const GUIDimensions& dimensions);
 	};
+
+	/** @} */
+	/** @endcond */
 }

+ 8 - 0
BansheeEditor/Include/BsGUIWindowFrameWidget.h

@@ -8,6 +8,11 @@
 
 namespace BansheeEngine
 {
+	/** @cond INTERNAL */
+	/** @addtogroup GUI-Editor
+	 *  @{
+	 */
+
 	/**
 	 * A GUIWidget specialization that when attached to a window will create a window border, window background and provide 
 	 * resize functionality.
@@ -58,4 +63,7 @@ namespace BansheeEngine
 
 		WindowFrameWidget() { } // Serialization only
 	};
+
+	/** @} */
+	/** @endcond */
 }

+ 11 - 3
BansheeEditor/Include/BsGUIWindowFrameWidgetRTTI.h

@@ -9,6 +9,11 @@
 
 namespace BansheeEngine
 {
+	/** @cond INTERNAL */
+	/** @addtogroup RTTI-Impl-Editor
+	 *  @{
+	 */
+
 	class BS_ED_EXPORT WindowFrameWidgetRTTI : public RTTIType <WindowFrameWidget, CGUIWidget, WindowFrameWidgetRTTI>
 	{
 	private:
@@ -17,20 +22,23 @@ namespace BansheeEngine
 		WindowFrameWidgetRTTI()
 		{ }
 
-		virtual const String& getRTTIName() override
+		const String& getRTTIName() override
 		{
 			static String name = "WindowFrameWidget";
 			return name;
 		}
 
-		virtual UINT32 getRTTIId() override
+		UINT32 getRTTIId() override
 		{
 			return TID_WindowFrameWidget;
 		}
 
-		virtual std::shared_ptr<IReflectable> newRTTIObject() override
+		std::shared_ptr<IReflectable> newRTTIObject() override
 		{
 			return GameObjectRTTI::createGameObject<WindowFrameWidget>();
 		}
 	};
+
+	/** @} */
+	/** @endcond */
 }

+ 132 - 178
BansheeEditor/Include/BsGizmoManager.h

@@ -12,14 +12,17 @@
 
 namespace BansheeEngine
 {
+	/** @addtogroup Scene-Editor
+	 *  @{
+	 */
+
 	class GizmoManagerCore;
 
 	/**
-	 * @brief	Handles the rendering and picking of gizmo elements. Gizmos are icons and 3D objects
-	 *			usually rendered in scene view for various visualization purposes (e.g. a Camera component
-	 *			will have a gizmo that draws a Camera icon since otherwise it has no visual representation).
-	 *			Aside from being rendered, gizmos can also be selected by the user as if they were normal
-	 *			scene elements.
+	 * Handles the rendering and picking of gizmo elements. Gizmos are icons and 3D objects usually rendered in scene view
+	 * for various visualization purposes (e.g. a Camera component will have a gizmo that draws a Camera icon since
+	 * otherwise it has no visual representation). Aside from being rendered, gizmos can also be selected by the user as if
+	 * they were normal scene elements.
 	 */
 	class BS_ED_EXPORT GizmoManager : public Module<GizmoManager>
 	{
@@ -28,128 +31,116 @@ namespace BansheeEngine
 		~GizmoManager();
 
 		/**
-		 * @brief	Starts gizmo creation. All further call will be referencing this gizmo. 
-		 *			Must be followed by a matching "endGizmo".
+		 * Starts gizmo creation. All further call will be referencing this gizmo. Must be followed by a matching 
+		 * endGizmo().
 		 *
-		 * @note	gizmoParent	Scene object this gizmo is attached to. Selecting the gizmo will
-		 *			select this scene object.
+		 * @param	gizmoParent	Scene object this gizmo is attached to. Selecting the gizmo will select this scene object.
 		 */
 		void startGizmo(const HSceneObject& gizmoParent);
 
-		/**
-		 * @brief	Ends gizmo creation. Must be called after a matching "startGizmo".
-		 */
+		/**	Ends gizmo creation. Must be called after a matching startGizmo(). */
 		void endGizmo();
 
-		/**
-		 * @brief	Changes the color of any further gizmo draw calls. 
-		 */
+		/**	Changes the color of any further gizmo draw calls. */
 		void setColor(const Color& color);
 
-		/**
-		 * @brief	Changes the transform that will be applied to meshes of any further gizmo draw calls. 
-		 */
+		/**	Changes the transform that will be applied to meshes of any further gizmo draw calls.  */
 		void setTransform(const Matrix4& transform);
 
 		/**
-		 * @brief	If pickable is set to true, gizmo can be selected by the user, otherwise it will be
-		 *			drawn but cannot be interacted with.
+		 * If pickable is set to true, gizmo can be selected by the user, otherwise it will be drawn but cannot be
+		 * interacted with.
 		 *
 		 * @note	Must be called between startGizmo/endGizmo calls.
 		 */
 		void setPickable(bool pickable) { mPickable = pickable; }
 
-		/**
-		 * @brief	Returns the currently set gizmo color.
-		 */
+		/**	Returns the currently set gizmo color. */
 		Color getColor() const { return mColor; }
 
-		/**
-		 * @brief	Returns the currently set gizmo transform.
-		 */
+		/**	Returns the currently set gizmo transform. */
 		Matrix4 getTransform() const { return mTransform; }
 
 		/**
-		 * @brief	Draws an axis aligned cuboid.
+		 * Draws an axis aligned cuboid.
 		 *
-		 * @param	position	Center of the cuboid.
-		 * @param	extents		Radius of the cuboid in each axis.
+		 * @param[in]	position	Center of the cuboid.
+		 * @param[in]	extents		Radius of the cuboid in each axis.
 		 *
 		 * @note	Must be called between startGizmo/endGizmo calls.
 		 */
 		void drawCube(const Vector3& position, const Vector3& extents);
 
 		/**
-		 * @brief	Draws a sphere.
+		 * Draws a sphere.
 		 *
 		 * @note	Must be called between startGizmo/endGizmo calls.
 		 */
 		void drawSphere(const Vector3& position, float radius);
 
 		/**
-		 * @brief	Draws a wireframe axis aligned cuboid.
+		 * Draws a wireframe axis aligned cuboid.
 		 *
-		 * @param	position	Center of the cuboid.
-		 * @param	extents		Radius of the cuboid in each axis.
+		 * @param[in]	position	Center of the cuboid.
+		 * @param[in]	extents		Radius of the cuboid in each axis.
 		 *
 		 * @note	Must be called between startGizmo/endGizmo calls.
 		 */
 		void drawWireCube(const Vector3& position, const Vector3& extents);
 
 		/**
-		 * @brief	Draws a wireframe sphere represented by three discs.
+		 * Draws a wireframe sphere represented by three discs.
 		 *
 		 * @note	Must be called between startGizmo/endGizmo calls.
 		 */
 		void drawWireSphere(const Vector3& position, float radius);
 
 		/**
-		 * @brief	Draws a line between two points.
+		 * Draws a line between two points.
 		 *
 		 * @note	Must be called between startGizmo/endGizmo calls.
 		 */
 		void drawLine(const Vector3& start, const Vector3& end);
 
 		/**
-		 * @brief	Draws a wireframe disc.
+		 * Draws a 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[in]	position	Center of the disc.
+		 * @param[in]	normal		Orientation of the disc, pointing in the direction the disc is visible in.
+		 * @param[in]	radius		Radius of the disc.
 		 */
 		void drawWireDisc(const Vector3& position, const Vector3& normal, float radius);
 
 		/**
-		 * @brief	Draws a wireframe arc.
+		 * Draws a 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[in]	position	Center of the arc.
+		 * @param[in]	normal		Orientation of the arc, pointing in the direction the arc is visible in.
+		 * @param[in]	radius		Radius of the arc.
+		 * @param[in]	startAngle	Angle at which to start the arc.
+		 * @param[in]	amountAngle	Length of the arc.
 		 */
 		void drawWireArc(const Vector3& position, const Vector3& normal, float radius, Degree startAngle, Degree amountAngle);
 
 		/**
-		 * @brief	Draws a wireframe frustum.
+		 * Draws a wireframe frustum.
 		 *
-		 * @param	position	Origin of the frustum, or the eye point.
-		 * @param	aspect		Ratio of frustum width over frustum height.
-		 * @param	FOV			Horizontal field of view in degrees.
-		 * @param	near		Distance to the near frustum plane.
-		 * @param	far			Distance to the far frustum plane.
+		 * @param[in]	position	Origin of the frustum, or the eye point.
+		 * @param[in]	aspect		Ratio of frustum width over frustum height.
+		 * @param[in]	FOV			Horizontal field of view in degrees.
+		 * @param[in]	near		Distance to the near frustum plane.
+		 * @param[in]	far			Distance to the far frustum plane.
 		 *
 		 * @note	Must be called between startGizmo/endGizmo calls.
 		 */
 		void drawFrustum(const Vector3& position, float aspect, Degree FOV, float near, float far);
 
 		/**
-		 * @brief	Draws an icon that always faces the camera.
+		 * Draws an icon that always faces the camera.
 		 *
-		 * @param	position	Position of the center of the icon.
-		 * @param	image		Sprite image for the icon to draw.
-		 * @param	fixedScale	If true then the icon will remain the same size
-		 *						regardless of the distance from camera.
+		 * @param[in]	position	Position of the center of the icon.
+		 * @param[in]	image		Sprite image for the icon to draw.
+		 * @param[in]	fixedScale	If true then the icon will remain the same size regardless of the distance from camera.
 		 *
 		 * @note	Must be called between startGizmo/endGizmo calls.
 		 */
@@ -166,7 +157,28 @@ namespace BansheeEngine
 		void drawText(const Vector3& position, const WString& text, const HFont& font, UINT32 fontSize = 16);
 
 		/**
-		 * @brief	Updates all the gizmo meshes to reflect all draw calls submitted since "clearGizmos".
+		 * Clears all gizmo data, but doesn't update the meshes or the render data. (Calling update would create empty
+		 * meshes, but before calling update gizmos will still be drawn).
+		 */
+		void clearGizmos();
+
+		/**
+		 * Clears gizmo render data like meshes, but doesn't clear the original gizmo data (Calling update would just
+		 * recreate the render data).
+		 */
+		void clearRenderData();
+
+		/**
+		 * Returns a scene object that was attached to a specific gizmo.
+		 *
+		 * @param[in]	gizmoIdx	Index of the gizmo to look for.
+		 */
+		HSceneObject getSceneObject(UINT32 gizmoIdx);
+
+		/** @cond INTERNAL */
+
+		/**
+		 * Updates all the gizmo meshes to reflect all draw calls submitted since clearGizmos().
 		 *
 		 * @note	Internal method.
 		 */
@@ -183,40 +195,18 @@ namespace BansheeEngine
 		 */
 		void renderForPicking(const CameraPtr& camera, std::function<Color(UINT32)> idxToColorCallback);
 
-		/**
-		 * @brief	Clears all gizmo data, but doesn't update the meshes
-		 *			or the render data. (Calling update would create empty
-		 *			meshes, but before calling update gizmos will still be drawn).
-		 */
-		void clearGizmos();
-
-		/**
-		 * @brief	Clears gizmo render data like meshes, but doesn't clear the original gizmo data.
-		 *			(Calling update would just recreate the render data).
-		 */
-		void clearRenderData();
-
-		/**
-		 * @brief	Returns a scene object that was attached to a specific gizmo.
-		 *
-		 * @param	gizmoIdx	Index of the gizmo to look for.
-		 */
-		HSceneObject getSceneObject(UINT32 gizmoIdx);
+		/** @endcond */
 
 	private:
 		friend class GizmoManagerCore;
 
-		/**
-		 * @brief	Supported types of gizmo materials (i.e. shaders)
-		 */
+		/**	Supported types of gizmo materials (i.e. shaders) */
 		enum class GizmoMaterial
 		{
 			Solid, Wire, Picking, PickingAlpha, Text
 		};
 
-		/**
-		 * @brief	Common data shared by all gizmo types.
-		 */
+		/**	Common data shared by all gizmo types. */
 		struct CommonData
 		{
 			UINT32 idx;
@@ -226,36 +216,28 @@ namespace BansheeEngine
 			bool pickable;
 		};
 
-		/**
-		 * @brief	Data required for rendering a cuboid gizmo.
-		 */
+		/**	Data required for rendering a cuboid gizmo. */
 		struct CubeData : public CommonData
 		{
 			Vector3 position;
 			Vector3 extents;
 		};
 
-		/**
-		 * @brief	Data required for rendering a sphere gizmo.
-		 */
+		/**	Data required for rendering a sphere gizmo. */
 		struct SphereData : public CommonData
 		{
 			Vector3 position;
 			float radius;
 		};
 
-		/**
-		 * @brief	Data required for rendering a line gizmo.
-		 */
+		/**	Data required for rendering a line gizmo. */
 		struct LineData : public CommonData
 		{
 			Vector3 start;
 			Vector3 end;
 		};
 
-		/**
-		 * @brief	Data required for rendering a wireframe disc gizmo.
-		 */
+		/**	Data required for rendering a wireframe disc gizmo. */
 		struct WireDiscData : public CommonData
 		{
 			Vector3 position;
@@ -263,9 +245,7 @@ namespace BansheeEngine
 			float radius;
 		};
 
-		/**
-		 * @brief	Data required for rendering a wireframe arc gizmo.
-		 */
+		/**	Data required for rendering a wireframe arc gizmo. */
 		struct WireArcData : public CommonData
 		{
 			Vector3 position;
@@ -275,9 +255,7 @@ namespace BansheeEngine
 			Degree amountAngle;
 		};
 
-		/**
-		 * @brief	Data required for rendering a frustum gizmo.
-		 */
+		/**	Data required for rendering a frustum gizmo. */
 		struct FrustumData : public CommonData
 		{
 			Vector3 position;
@@ -287,9 +265,7 @@ namespace BansheeEngine
 			float far;
 		};
 
-		/**
-		 * @brief	Data required for rendering an icon gizmo.
-		 */
+		/**	Data required for rendering an icon gizmo. */
 		struct IconData : public CommonData
 		{
 			Vector3 position;
@@ -297,9 +273,7 @@ namespace BansheeEngine
 			HSpriteTexture texture;
 		};
 
-		/**
-		 * @brief	Data required for rendering text.
-		 */
+		/**	Data required for rendering text. */
 		struct TextData : public CommonData
 		{
 			Vector3 position;
@@ -308,18 +282,14 @@ namespace BansheeEngine
 			UINT32 fontSize;
 		};
 
-		/**
-		 * @brief	Stores how many icons use a specific texture.
-		 */
+		/**	Stores how many icons use a specific texture. */
 		struct IconRenderData
 		{
 			UINT32 count;
 			SPtr<TextureCore> texture;
 		};
 
-		/**
-		 * @brief	Data used for initializing the core thread equivalent of the gizmo manager.
-		 */
+		/**	Data used for initializing the core thread equivalent of the gizmo manager. */
 		struct CoreInitData
 		{
 			SPtr<MaterialCore> solidMat;
@@ -334,44 +304,39 @@ namespace BansheeEngine
 		typedef std::shared_ptr<IconRenderDataVec> IconRenderDataVecPtr;
 
 		/**
-		 * @brief	Builds a brand new mesh that can be used for rendering all icon gizmos.
+		 * Builds a brand new mesh that can be used for rendering all icon gizmos.
 		 *
-		 * @param	camera		Camera the mesh will be rendered to.
-		 * @param	iconData	A list of all icons and their properties.
-		 * @param	forPicking	Whether the icons will be rendered normally, or with a special material for picking.
-		 * @param	renderData	Output data that outlines the structure of the returned mesh. It tells us which portions of the
-		 *						mesh use which icon texture.
+		 * @param[in]	camera		Camera the mesh will be rendered to.
+		 * @param[in]	iconData	A list of all icons and their properties.
+		 * @param[in]	forPicking	Whether the icons will be rendered normally, or with a special material for picking.
+		 * @param[in]	renderData	Output data that outlines the structure of the returned mesh. It tells us which portions
+		 *							of the mesh use which icon texture.
 		 *
-		 * @returns	A mesh containing all of the visible icons. Mesh is allocated using the icon mesh heap and should be deallocated manually.
+		 * @return					A mesh containing all of the visible icons. Mesh is allocated using the icon mesh heap
+		 *							and should be deallocated manually.
 		 */
 		TransientMeshPtr buildIconMesh(const CameraPtr& camera, const Vector<IconData>& iconData, bool forPicking, IconRenderDataVecPtr& renderData);
 
-		/**
-		 * @brief	Resizes the icon width/height so it is always scaled to optimal size (with preserved aspect).
-		 */
+		/**	Resizes the icon width/height so it is always scaled to optimal size (with preserved aspect). */
 		void limitIconSize(UINT32& width, UINT32& height);
 
 		/**
-		 * @brief	Calculates colors for an icon based on its position in the camera. e.g. icons too close to too far might be faded.
+		 * Calculates colors for an icon based on its position in the camera. e.g. icons too close to too far might be faded.
 		 *
-		 * @param	tint		Primary tint for the icon.
-		 * @param	camera		Camera in which the icon will be rendered in.
-		 * @param	iconHeight	Height of the icon in pixels.
-		 * @param	fixedScale	Whether the icon size changes depending on distance from the camera.
-		 * @param	normalColor	Normal color of the icon.
-		 * @param	fadedColor	Faded color to be used when icon is occluded by geometry.
+		 * @param[in]	tint		Primary tint for the icon.
+		 * @param[in]	camera		Camera in which the icon will be rendered in.
+		 * @param[in]	iconHeight	Height of the icon in pixels.
+		 * @param[in]	fixedScale	Whether the icon size changes depending on distance from the camera.
+		 * @param[in]	normalColor	Normal color of the icon.
+		 * @param[in]	fadedColor	Faded color to be used when icon is occluded by geometry.
 		 */
 		void calculateIconColors(const Color& tint, const CameraPtr& camera, UINT32 iconHeight, bool fixedScale,
 			Color& normalColor, Color& fadedColor);
 
-		/**
-		 * @brief	Initializes the core thread version of the gizmo manager.
-		 */
+		/**	Initializes the core thread version of the gizmo manager. */
 		void initializeCore(const CoreInitData& initData);
 
-		/**
-		 * @brief	Destroys the core thread version of the gizmo manager.
-		 */
+		/**	Destroys the core thread version of the gizmo manager. */
 		void destroyCore(GizmoManagerCore* core);
 
 		static const UINT32 VERTEX_BUFFER_GROWTH;
@@ -426,17 +391,16 @@ namespace BansheeEngine
 		Vector<SortedIconData> mSortedIconData;
 	};
 
+	/** @cond INTERNAL */
+
 	/**
-	 * @brief	Core thread version of the gizmo manager that handles most of the rendering
-	 *			of meshes provided by the gizmo manager.
+	 * Core thread version of the gizmo manager that handles most of the rendering of meshes provided by the gizmo manager.
 	 */
 	class GizmoManagerCore
 	{
 		friend class GizmoManager;
 
-		/**
-		 * @brief	Solid gizmo material and parameter handles.
-		 */
+		/**	Solid gizmo material and parameter handles. */
 		struct SolidMaterialData
 		{
 			SPtr<MaterialCore> mat;
@@ -444,18 +408,14 @@ namespace BansheeEngine
 			GpuParamVec4Core mViewDir;
 		};
 
-		/**
-		 * @brief	Wire gizmo material and parameter handles.
-		 */
+		/**	Wire gizmo material and parameter handles. */
 		struct WireMaterialData
 		{
 			SPtr<MaterialCore> mat;
 			GpuParamMat4Core mViewProj;
 		};
 
-		/**
-		 * @brief	Icon gizmo material and parameter handles.
-		 */
+		/**	Icon gizmo material and parameter handles. */
 		struct IconMaterialData
 		{
 			SPtr<MaterialCore> mat;
@@ -464,9 +424,7 @@ namespace BansheeEngine
 			GpuParamTextureCore mTexture[2];
 		};
 
-		/**
-		 * @brief	Text gizmo material and parameter handles.
-		 */
+		/**	Text gizmo material and parameter handles. */
 		struct TextMaterialData
 		{
 			SPtr<MaterialCore> mat;
@@ -474,9 +432,7 @@ namespace BansheeEngine
 			GpuParamTextureCore mTexture;
 		};
 
-		/**
-		 * @brief	Gizmo material and parameter handles used for picking.
-		 */
+		/**	Gizmo material and parameter handles used for picking. */
 		struct PickingMaterialData
 		{
 			SPtr<MaterialCore> mat;
@@ -484,8 +440,7 @@ namespace BansheeEngine
 		};
 
 		/**
-		 * @brief	Gizmo material and parameter handles used for picking, with
-		 *			blending support (generally used for icon picking).
+		 * Gizmo material and parameter handles used for picking, with blending support (generally used for icon picking).
 		 */
 		struct AlphaPickingMaterialData
 		{
@@ -520,47 +475,43 @@ namespace BansheeEngine
 		~GizmoManagerCore();
 
 	private:
-		/**
-		 * @brief	Initializes the core gizmo manager. Must be called right after creation.
-		 */
+		/**	Initializes the core gizmo manager. Must be called right after creation. */
 		void initialize(const GizmoManager::CoreInitData& initData);
 
-		/**
-		 * @brief	Renders all gizmos in the parent camera.
-		 */
+		/**	Renders all gizmos in the parent camera. */
 		void render();
 
 		/**
-		 * @brief	Renders a non-icon gizmo mesh using the provided parameters.
+		 * Renders a non-icon gizmo mesh using the provided parameters.
 		 *
-		 * @param	viewMatrix	View matrix of the camera we are rendering with.
-		 * @param	projMatrix	Projection matrix of the camera we are rendering with.
-		 * @param	viewDir		View direction of the camera we are rendering with.
-		 * @param	mesh		Mesh to render. This is normally the solid or wireframe gizmo mesh.
-		 * @param	texture		Texture to apply to the material, if the material supports a texture.
-		 * @param	material	Material to use for rendering. This is normally the solid, wireframe or picking material.
+		 * @param[in]	viewMatrix	View matrix of the camera we are rendering with.
+		 * @param[in]	projMatrix	Projection matrix of the camera we are rendering with.
+		 * @param[in]	viewDir		View direction of the camera we are rendering with.
+		 * @param[in]	mesh		Mesh to render. This is normally the solid or wireframe gizmo mesh.
+		 * @param[in]	texture		Texture to apply to the material, if the material supports a texture.
+		 * @param[in]	material	Material to use for rendering. This is normally the solid, wireframe or picking material.
 		 */
 		void renderGizmos(const Matrix4& viewMatrix, const Matrix4& projMatrix, const Vector3& viewDir, 
 			const SPtr<MeshCoreBase>& mesh, const SPtr<TextureCore>& texture, GizmoManager::GizmoMaterial material);
 
 		/**
-		 * @brief	Renders the icon gizmo mesh using the provided parameters.
+		 * Renders the icon gizmo mesh using the provided parameters.
 		 *
-		 * @param	screenArea			Area of the viewport to render the gizmos in, in pixels.
-		 * @param	mesh				Mesh containing the icons.
-		 * @param	renderData			Icon render data outlining which parts of the icon mesh use which textures.
-		 * @param	usePickingMaterial	Should the icons be rendered normally or for picking.
+		 * @param[in]	screenArea			Area of the viewport to render the gizmos in, in pixels.
+		 * @param[in]	mesh				Mesh containing the icons.
+		 * @param[in]	renderData			Icon render data outlining which parts of the icon mesh use which textures.
+		 * @param[in]	usePickingMaterial	Should the icons be rendered normally or for picking.
 		 */
 		void renderIconGizmos(Rect2I screenArea, SPtr<MeshCoreBase> mesh, GizmoManager::IconRenderDataVecPtr renderData, bool usePickingMaterial);
 
 		/**
-		 * @brief	Updates the internal data that is used for rendering. Normally you would call this after 
-		 *			updating the camera or meshes on the sim thread.
+		 * Updates the internal data that is used for rendering. Normally you would call this after updating the camera or
+		 * meshes on the sim thread.
 		 *
-		 * @param	camera			Sets the camera all rendering will be performed to.
-		 * @param	meshes			Meshes to render.
-		 * @param	iconMesh		Mesh containing icon meshes.
-		 * @param	iconRenderData	Icon render data outlining which parts of the icon mesh use which textures.
+		 * @param[in]	camera			Sets the camera all rendering will be performed to.
+		 * @param[in]	meshes			Meshes to render.
+		 * @param[in]	iconMesh		Mesh containing icon meshes.
+		 * @param[in]	iconRenderData	Icon render data outlining which parts of the icon mesh use which textures.
 		 */
 		void updateData(const SPtr<CameraCore>& camera, const Vector<MeshData>& meshes, const SPtr<MeshCoreBase>& iconMesh, 
 			const GizmoManager::IconRenderDataVecPtr& iconRenderData);
@@ -582,4 +533,7 @@ namespace BansheeEngine
 		PickingMaterialData mPickingMaterial;
 		AlphaPickingMaterialData mAlphaPickingMaterial;
 	};
+
+	/** @endcond */
+	/** @} */
 }

+ 67 - 65
BansheeEditor/Include/BsHandleDrawManager.h

@@ -8,14 +8,16 @@
 
 namespace BansheeEngine
 {
+	/** @addtogroup Handles
+	 *  @{
+	 */
+
 	class HandleDrawManagerCore;
 
 	/**
-	 * @brief	Allows you to easily draw various kinds of simple shapes, primarily
-	 *			used for drawing handles in the scene view.
+	 * 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.
+	 * Drawn elements only persist for a single draw() call and need to be re-queued after.
 	 */
 	class BS_ED_EXPORT HandleDrawManager
 	{
@@ -23,15 +25,10 @@ namespace BansheeEngine
 		HandleDrawManager();
 		~HandleDrawManager();
 
-		/**
-		 * @brief	Sets the color of all the following draw* calls.
-		 */
+		/**	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.
-		 */
+		/** Sets the transform matrix that will be applied to all following draw* calls. */
 		void setTransform(const Matrix4& transform);
 
 		/**
@@ -41,110 +38,110 @@ namespace BansheeEngine
 		void setLayer(UINT64 layer);
 
 		/**
-		 * @brief	Draws a solid cuboid.
+		 * 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.
+		 * @param[in]	position	Center of the cuboid.
+		 * @param[in]	extents		Radius of the cuboid in all directions.
+		 * @param[in]	size		Uniform scale of the object.
 		 */
 		void drawCube(const Vector3& position, const Vector3& extents, float size = 1.0f);
 
 		/**
-		 * @brief	Draws a solid sphere.
+		 * Draws a solid sphere.
 		 *
-		 * @param	position	Center of the sphere.
-		 * @param	radius		Radius of the sphere.
-		 * @param	size		Uniform scale of the object.
+		 * @param[in]	position	Center of the sphere.
+		 * @param[in]	radius		Radius of the sphere.
+		 * @param[in]	size		Uniform scale of the object.
 		 */
 		void drawSphere(const Vector3& position, float radius, float size = 1.0f);
 
 		/**
-		 * @brief	Draws a wireframe cuboid.
+		 * 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.
+		 * @param[in]	position	Center of the cuboid.
+		 * @param[in]	extents		Radius of the cuboid in all directions.
+		 * @param[in]	size		Uniform scale of the object.
 		 */
 		void drawWireCube(const Vector3& position, const Vector3& extents, float size = 1.0f);
 
 		/**
-		 * @brief	Draws a wireframe sphere.
+		 * Draws a wireframe sphere.
 		 *
-		 * @param	position	Center of the sphere.
-		 * @param	radius		Radius of the sphere.
-		 * @param	size		Uniform scale of the object.
+		 * @param[in]	position	Center of the sphere.
+		 * @param[in]	radius		Radius of the sphere.
+		 * @param[in]	size		Uniform scale of the object.
 		 */
 		void drawWireSphere(const Vector3& position, float radius, float size = 1.0f);
 
 		/**
-		 * @brief	Draws a solid cone.
+		 * 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.
+		 * @param[in]	base		Position of the center of the base of the cone.
+		 * @param[in]	normal		Orientation of the cone, pointing from center base to the tip of the cone.
+		 * @param[in]	height		Height of the cone (along the normal).
+		 * @param[in]	radius		Radius of the base of the cone.
+		 * @param[in]	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.
+		 * Draws a line.
 		 *
-		 * @param	start		Starting point for the line.
-		 * @param	end			Ending point for the line.
-		 * @param	size		Uniform scale of the object.
+		 * @param[in]	start		Starting point for the line.
+		 * @param[in]	end			Ending point for the line.
+		 * @param[in]	size		Uniform scale of the object.
 		 */
 		void drawLine(const Vector3& start, const Vector3& end, float size = 1.0f);
 
 		/**
-		 * @brief	Draws a double-sided solid disc.
+		 * Draws a double-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.
+		 * @param[in]	position	Center of the disc.
+		 * @param[in]	normal		Orientation of the disc, pointing in the direction the disc is visible in.
+		 * @param[in]	radius		Radius of the disc.
+		 * @param[in]	size		Uniform scale of the object.
 		 */
 		void drawDisc(const Vector3& position, const Vector3& normal, float radius, float size = 1.0f);
 
 		/**
-		 * @brief	Draws a wireframe disc.
+		 * Draws a 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.
+		 * @param[in]	position	Center of the disc.
+		 * @param[in]	normal		Orientation of the disc, pointing in the direction the disc is visible in.
+		 * @param[in]	radius		Radius of the disc.
+		 * @param[in]	size		Uniform scale of the object.
 		 */
 		void drawWireDisc(const Vector3& position, const Vector3& normal, float radius, float size = 1.0f);
 
 		/**
-		 * @brief	Draws a double-sided solid arc.
+		 * Draws a double-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.
+		 * @param[in]	position	Center of the arc.
+		 * @param[in]	normal		Orientation of the arc, pointing in the direction the arc is visible in.
+		 * @param[in]	radius		Radius of the arc.
+		 * @param[in]	startAngle	Angle at which to start the arc.
+		 * @param[in]	amountAngle	Length of the arc.
+		 * @param[in]	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 wireframe arc.
+		 * Draws a 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.
+		 * @param[in]	position	Center of the arc.
+		 * @param[in]	normal		Orientation of the arc, pointing in the direction the arc is visible in.
+		 * @param[in]	radius		Radius of the arc.
+		 * @param[in]	startAngle	Angle at which to start the arc.
+		 * @param[in]	amountAngle	Length of the arc.
+		 * @param[in]	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 double-sided solid rectangle.
+		 * Draws a double-sided solid rectangle.
 		 *
-		 * @param	area		Position and size of the rectangle.
-		 * @param	size		Uniform scale of the object.
+		 * @param[in]	area		Position and size of the rectangle.
+		 * @param[in]	size		Uniform scale of the object.
 		 */
 		void drawRect(const Rect3& area, float size = 1.0f);
 
@@ -173,7 +170,7 @@ namespace BansheeEngine
 		 *
 		 * @param[in]	wireMat		Material used for drawing the wireframe objects.
 		 * @param[in]	solidMat	Material used for drawing the solid objects.
-		 *@param[in]	textMat		Material used for drawing the text.
+		 * @param[in]	textMat		Material used for drawing the text.
 		 * @param[in]	clearMat	Material used for clearing the alpha channel in the empty areas.
 		 */
 		void initializeCore(const SPtr<MaterialCore>& wireMat, const SPtr<MaterialCore>& solidMat, 
@@ -197,6 +194,8 @@ namespace BansheeEngine
 		DrawHelper* mDrawHelper;
 	};
 
+	/** @cond INTERNAL */
+
 	/** Core thread specific portion of the HandleDrawManager that handles actual rendering. */
 	class BS_ED_EXPORT HandleDrawManagerCore
 	{
@@ -296,4 +295,7 @@ namespace BansheeEngine
 		TextMaterialData mTextMaterial;
 		WireMaterialData mClearMaterial;
 	};
+
+	/** @endcond */
+	/** @} */
 }

+ 8 - 0
BansheeEditor/Include/BsHandleManager.h

@@ -8,6 +8,11 @@
 
 namespace BansheeEngine
 {
+	/** @cond INTERNAL */
+	/** @addtogroup Handles
+	 *  @{
+	 */
+
 	/** The central place for interacting with and drawing handles. */
 	class BS_ED_EXPORT HandleManager : public Module<HandleManager>
 	{
@@ -103,4 +108,7 @@ namespace BansheeEngine
 		UINT32 mSettingsHash;
 		UINT64 mLastDrawFrameIdx;
 	};
+
+	/** @} */
+	/** @endcond */
 }

+ 6 - 0
BansheeEditor/Include/BsHandleSlider.h

@@ -9,6 +9,10 @@
 
 namespace BansheeEngine
 {
+	/** @addtogroup Handles
+	 *  @{
+	 */
+
 	/**
 	 * Base class for all handle sliders. A handle slider is geometry that the user can interact with by selecting or 
 	 * dragging (i.e. sliding) it. Sliders generally output a one- or multi-dimensional delta value that signals the drag 
@@ -157,4 +161,6 @@ namespace BansheeEngine
 		mutable Matrix4 mTransform;
 		mutable Matrix4 mTransformInv;
 	};
+
+	/** @} */
 }

+ 37 - 45
BansheeEditor/Include/BsHandleSliderDisc.h

@@ -8,93 +8,83 @@
 
 namespace BansheeEngine
 {
+	/** @addtogroup Handles
+	 *  @{
+	 */
+
 	/**
-	 * @brief	Handle slider that returns a delta value as you drag the pointer
-	 *			along a disc. For intersection purposes the disc is internally 
-	 *			represented by a torus.
+	 * Handle slider that returns a delta value as you drag the pointer along a disc. For intersection purposes the disc is
+	 * internally represented by a torus.
 	 */
 	class BS_ED_EXPORT HandleSliderDisc : public HandleSlider
 	{
 	public:
 		/**
-		 * @brief	Constructs a new disc slider.
+		 * Constructs a new disc slider.
 		 *
-		 * @param	normal		Normal that determines the orientation of the disc.
-		 * @param	radius		Radius of the disc.
-		 * @param	fixedScale	If true the handle slider will always try to maintain the same visible
-		 *						area in the viewport regardless of distance from camera.
-		 * @param	layer		Layer that allows filtering of which sliders are interacted with from a specific camera.
+		 * @param[in]	normal		Normal that determines the orientation of the disc.
+		 * @param[in]	radius		Radius of the disc.
+		 * @param[in]	fixedScale	If true the handle slider will always try to maintain the same visible area in the
+		 *							viewport regardless of distance from camera.
+		 * @param[in]	layer		Layer that allows filtering of which sliders are interacted with from a specific camera.
 		 */
 		HandleSliderDisc(const Vector3& normal, float radius, bool fixedScale, UINT64 layer);
 		~HandleSliderDisc();
 
-		/**
-		 * @copydoc	HandleSlider::intersects
-		 */
+		/** @copydoc	HandleSlider::intersects */
 		bool intersects(const Ray& ray, float& t) const override;
 
-		/**
-		 * @copydoc	HandleSlider::handleInput
-		 */
+		/** @copydoc	HandleSlider::handleInput */
 		void handleInput(const CameraPtr& camera, const Vector2I& inputDelta) override;
 
 		/**
-		 * @brief	Enables or disables a cut-off plane that can allow the disc to be intersected
-		 *			with only in an 180 degree arc.
+		 * Enables or disables a cut-off plane that can allow the disc to be intersected with only in an 180 degree arc.
 		 *
-		 * @param	angle	Angle at which to start the cut-off. Points on the dist at the specified angle and the next
-		 *					180 degrees won't be interactable.	
+		 * @param[in]	angle	Angle at which to start the cut-off. Points on the dist at the specified angle and the next
+		 *						180 degrees won't be interactable.	
 		 */
 		void setCutoffPlane(Degree angle, bool enabled);
 
 		/**
-		 * @brief	Returns a delta value that is the result of dragging/sliding the pointer 
-		 *			along the disc. This changes every frame and will be zero unless the slider is active.
+		 * Returns a delta value that is the result of dragging/sliding the pointer along the disc. This changes every frame
+		 * and will be zero unless the slider is active.
 		 */
 		Radian getDelta() const { return mDelta; }
 
 		/**
-		 * @brief	Gets the initial angle at which the drag/slide operation started. This is only
-		 *			valid when the slider is active.
+		 * Gets the initial angle at which the drag/slide operation started. This is only valid when the slider is active.
 		 */
 		Radian getStartAngle() const { return mStartAngle; }
 
 	protected:
 
-		/**
-		 * @copydoc	HandleSlider::activate
-		 */
+		/** @copydoc HandleSlider::activate */
 		void activate(const CameraPtr& camera, const Vector2I& pointerPos) override;
 
-		/**
-		 * @copydoc	HandleSlider::reset
-		 */
+		/** @copydoc HandleSlider::reset */
 		void reset() override { mDelta = 0.0f; }
 
 		/**
-		 * @brief	Calculates the closest point on an arc from a ray.
-		 *
-		 * @param	inputRay	Ray to use for determining the point.
-		 * @param	center		Center of the arc.
-		 * @param	up			Normal vector of the arc. Must be normalized.
-		 * @param	radius		Radius of the arc.
-		 * @param	startAngle	Starting angle of the arc.
-		 * @param	angleAmount	Length of the arc.
+		 * Calculates the closest point on an arc from a ray.
 		 *
-		 * @return	A point on the arc closest to the provided ray.
+		 * @param[in]	inputRay	Ray to use for determining the point.
+		 * @param[in]	center		Center of the arc.
+		 * @param[in]	up			Normal vector of the arc. Must be normalized.
+		 * @param[in]	radius		Radius of the arc.
+		 * @param[in]	startAngle	Starting angle of the arc.
+		 * @param[in]	angleAmount	Length of the arc.
+		 * @return					A point on the arc closest to the provided ray.
 		 */
 		Vector3 calculateClosestPointOnArc(const Ray& inputRay, const Vector3& center, const Vector3& up,
 			float radius, Degree startAngle, Degree angleAmount);
 
 		/**
-		 * @brief	Determines an angle of a point on a circle.
-		 *
-		 * @param	up		Normal vector of the circle. Must be normalized.
-		 * @param	point	Point to try to find the angle for. Caller must ensure the
-		 *					point is actually somewhere on the circle otherwise the result
-		 *					is undefined.
+		 * Determines an angle of a point on a circle.
 		 *
-		 * @return	Angle at which the provided point lies on the circle.
+		 * @param[in]	up		Normal vector of the circle. Must be normalized.
+		 * @param[in]	point	Point to try to find the angle for. Caller must ensure the point is actually somewhere on
+		 *						the circle otherwise the result is undefined.
+		 * @return				Angle at which the provided point lies on the circle.
 		 */
 		Degree pointOnCircleToAngle(Vector3 up, Vector3 point);
 
@@ -112,4 +102,6 @@ namespace BansheeEngine
 
 		Torus mCollider;
 	};
+	
+	/** @} */
 }

+ 20 - 24
BansheeEditor/Include/BsHandleSliderLine.h

@@ -9,52 +9,46 @@
 
 namespace BansheeEngine
 {
+	/** @addtogroup Handles
+	 *  @{
+	 */
+
 	/**
-	 * @brief	Handle slider that returns a delta value as you drag the pointer
-	 *			along a line. For intersection purposes the line is internally 
-	 *			by a capsule and a sphere at its cap (assuming this will be used 
-	 *			for arrow-like handles).
+	 * Handle slider that returns a delta value as you drag the pointer along a line. For intersection purposes the line
+	 * is internally by a capsule and a sphere at its cap (assuming this will be used for arrow-like handles).
 	 */
 	class BS_ED_EXPORT HandleSliderLine : public HandleSlider
 	{
 	public:
 		/**
-		 * @brief	Constructs a new line slider.
+		 * Constructs a new line slider.
 		 *
-		 * @param	direction	Direction of the line.
-		 * @param	length		Length of the slider (i.e. the line).
-		 * @param	fixedScale	If true the handle slider will always try to maintain the same visible
-		 *						area in the viewport regardless of distance from camera.
-		 * @param	layer		Layer that allows filtering of which sliders are interacted with from a specific camera.
+		 * @param[in]	direction	Direction of the line.
+		 * @param[in]	length		Length of the slider (i.e. the line).
+		 * @param[in]	fixedScale	If true the handle slider will always try to maintain the same visible area in the
+		 *							viewport regardless of distance from camera.
+		 * @param[in]	layer		Layer that allows filtering of which sliders are interacted with from a specific camera.
 		 */
 		HandleSliderLine(const Vector3& direction, float length, bool fixedScale, UINT64 layer);
 		~HandleSliderLine();
 
-		/**
-		 * @copydoc	HandleSlider::intersects
-		 */
+		/** @copydoc	HandleSlider::intersects */
 		bool intersects(const Ray& ray, float& t) const override;
 
-		/**
-		 * @copydoc	HandleSlider::handleInput
-		 */
+		/** @copydoc	HandleSlider::handleInput */
 		void handleInput(const CameraPtr& camera, const Vector2I& inputDelta) override;
 
 		/**
-		 * @brief	Returns a delta value that is the result of dragging/sliding the pointer 
-		 *			along the line. This changes every frame and will be zero unless the slider is active.
+		 * Returns a delta value that is the result of dragging/sliding the pointer along the line. This changes every
+		 * frame and will be zero unless the slider is active.
 		 */
 		float getDelta() const { return mDelta; }
 
 	protected:
-		/**
-		 * @copydoc	HandleSlider::activate
-		 */
+		/** @copydoc HandleSlider::activate */
 		void activate(const CameraPtr& camera, const Vector2I& pointerPos) override { mStartPosition = getPosition(); }
 
-		/**
-		 * @copydoc	HandleSlider::reset
-		 */
+		/** @copydoc HandleSlider::reset */
 		void reset() override { mDelta = 0.0f; }
 
 		static const float CAPSULE_RADIUS;
@@ -69,4 +63,6 @@ namespace BansheeEngine
 		Capsule mCapsuleCollider;
 		Sphere mSphereCollider;
 	};
+
+	/** @} */
 }

+ 8 - 0
BansheeEditor/Include/BsHandleSliderManager.h

@@ -6,6 +6,11 @@
 
 namespace BansheeEngine
 {
+	/** @cond INTERNAL */
+	/** @addtogroup Handles
+	 *  @{
+	 */
+
 	/** Controls all instantiated HandleSlider%s. */
 	class BS_ED_EXPORT HandleSliderManager
 	{
@@ -61,4 +66,7 @@ namespace BansheeEngine
 		UnorderedMap<UINT64, StatePerCamera> mStates;
 		UnorderedSet<HandleSlider*> mSliders;
 	};
+
+	/** @} */
+	/** @endcond */
 }

+ 27 - 32
BansheeEditor/Include/BsHandleSliderPlane.h

@@ -9,63 +9,56 @@
 
 namespace BansheeEngine
 {
+	/** @addtogroup Handles
+	 *  @{
+	 */
+
 	/**
-	 * @brief	Handle slider that returns a delta value as you drag the pointer
-	 *			along a plane. For intersection purposes the line is internally
-	 *			by a quadrilateral (a bounded plane).
+	 * Handle slider that returns a delta value as you drag the pointer	along a plane. For intersection purposes the line
+	 * is internally by a quadrilateral.
 	 */
 	class BS_ED_EXPORT HandleSliderPlane : public HandleSlider
 	{
 	public:
 		/**
-		 * @brief	Constructs a new plane slider. The plane is constructed from two
-		 *			direction vectors.
+		 * Constructs a new plane slider. The plane is constructed from two direction vectors.
 		 *
-		 * @param	dir1		First direction of the plane. The x component of returned delta value will be in 
-		 *						this direction. Should be perpendicular to \p dir2.
-		 * @param	dir2		Second direction of the plane. The y component of returned delta value will be in 
-		 *						this direction. Should be perpendicular to \p dir1.
-		 * @param	length		Determines size of the plane. 
-		 * @param	fixedScale	If true the handle slider will always try to maintain the same visible
-		 *						area in the viewport regardless of distance from camera.
-		 * @param	layer		Layer that allows filtering of which sliders are interacted with from a specific camera.
+		 * @param[in]	dir1		First direction of the plane. The x component of returned delta value will be in this
+		 *							direction. Should be perpendicular to @p dir2.
+		 * @param[in]	dir2		Second direction of the plane. The y component of returned delta value will be in this
+		 *							direction. Should be perpendicular to @p dir1.
+		 * @param[in]	length		Determines size of the plane. 
+		 * @param[in]	fixedScale	If true the handle slider will always try to maintain the same visible area in the
+		 *							viewport regardless of distance from camera.
+		 * @param[in]	layer		Layer that allows filtering of which sliders are interacted with from a specific camera.
 		 */
 		HandleSliderPlane(const Vector3& dir1, const Vector3& dir2, float length, bool fixedScale, UINT64 layer);
 		~HandleSliderPlane();
 
-		/**
-		 * @copydoc	HandleSlider::intersects
-		 */
+		/** @copydoc HandleSlider::intersects */
 		bool intersects(const Ray& ray, float& t) const override;
 
-		/**
-		 * @copydoc	HandleSlider::handleInput
-		 */
+		/** @copydoc HandleSlider::handleInput */
 		void handleInput(const CameraPtr& camera, const Vector2I& inputDelta) override;
 
 		/**
-		 * @brief	Returns a delta value that is the result of dragging/sliding the pointer 
-		 *			along the plane. Returned movement is in terms of the two directions originally provided
-		 *			when constructing the slider. This changes every frame and will be zero unless the slider 
-		 *			is active.
+		 * Returns a delta value that is the result of dragging/sliding the pointer along the plane. Returned movement is
+		 * in terms of the two directions originally provided when constructing the slider. This changes every frame and
+		 * will be zero unless the slider is active.
 		 */
 		Vector2 getDelta() const { return mDelta; }
 	protected:
-		/**
-		 * @copydoc	HandleSlider::activate
-		 */
+		/** @copydoc HandleSlider::activate */
 		void activate(const CameraPtr& camera, const Vector2I& pointerPos) override;
 
-		/**
-		 * @copydoc	HandleSlider::reset
-		 */
+		/** @copydoc HandleSlider::reset */
 		void reset() override { mDelta = Vector2::ZERO; }
 
 		/**
-		 * @brief	Returns the position on plane based on pointer position.
+		 * Returns the position on plane based on pointer position.
 		 *
-		 * @param	camera		Camera we're interacting through.
-		 * @param	pointerPos	Position of the pointer in pixels relative to the provided camera's viewport.
+		 * @param[in]	camera		Camera we're interacting through.
+		 * @param[in]	pointerPos	Position of the pointer in pixels relative to the provided camera's viewport.
 		 */
 		Vector3 getPositionOnPlane(const CameraPtr& camera, const Vector2I& pointerPos) const;
 
@@ -79,4 +72,6 @@ namespace BansheeEngine
 		Vector3 mStartPlanePosition;
 		Vector3 mStartClickPosition;
 	};
+
+	/** @} */
 }

+ 14 - 6
BansheeEditor/Include/BsPlatformInfoRTTI.h

@@ -8,6 +8,11 @@
 
 namespace BansheeEngine
 {
+	/** @cond INTERNAL */
+	/** @addtogroup RTTI-Impl-Editor
+	 *  @{
+	 */
+
 	class BS_ED_EXPORT PlatformInfoRTTI : public RTTIType <PlatformInfo, IReflectable, PlatformInfoRTTI>
 	{
 	private:
@@ -44,18 +49,18 @@ namespace BansheeEngine
 			addPlainField("debug", 6, &PlatformInfoRTTI::getDebug, &PlatformInfoRTTI::setDebug);
 		}
 
-		virtual const String& getRTTIName() override
+		const String& getRTTIName() override
 		{
 			static String name = "PlatformInfo";
 			return name;
 		}
 
-		virtual UINT32 getRTTIId() override
+		UINT32 getRTTIId() override
 		{
 			return TID_PlatformInfo;
 		}
 
-		virtual std::shared_ptr<IReflectable> newRTTIObject() override
+		std::shared_ptr<IReflectable> newRTTIObject() override
 		{
 			return bs_shared_ptr_new<PlatformInfo>();
 		}
@@ -77,20 +82,23 @@ namespace BansheeEngine
 			addPlainField("titlebarText", 10, &WinPlatformInfoRTTI::getTitlebarText, &WinPlatformInfoRTTI::setTitlebarText);
 		}
 
-		virtual const String& getRTTIName() override
+		const String& getRTTIName() override
 		{
 			static String name = "WinPlatformInfo";
 			return name;
 		}
 
-		virtual UINT32 getRTTIId() override
+		UINT32 getRTTIId() override
 		{
 			return TID_WinPlatformInfo;
 		}
 
-		virtual std::shared_ptr<IReflectable> newRTTIObject() override
+		std::shared_ptr<IReflectable> newRTTIObject() override
 		{
 			return bs_shared_ptr_new<WinPlatformInfo>();
 		}
 	};
+
+	/** @} */
+	/** @endcond */
 }

+ 6 - 0
BansheeEditor/Include/BsProjectLibrary.h

@@ -7,6 +7,10 @@
 
 namespace BansheeEngine
 {
+	/** @addtogroup Library
+	 *  @{
+	 */
+
 	/**
 	 * Project library is the primary location for interacting with all the resources in the current project. A complete
 	 * hierarchy of resources is provided which can be interacted with by importing new ones, deleting them, moving,
@@ -376,4 +380,6 @@ namespace BansheeEngine
 
 	/**	Provides easy access to ProjectLibrary. */
 	BS_ED_EXPORT ProjectLibrary& gProjectLibrary();
+
+	/** @} */
 }

+ 14 - 12
BansheeEditor/Include/BsProjectLibraryEntries.h

@@ -8,10 +8,14 @@
 
 namespace BansheeEngine
 {
+	/** @cond INTERNAL */
+	/** @addtogroup Library
+	 *  @{
+	 */
+
 	/**
-	 * @brief	Contains a list of entries used by the ProjectLibrary. Used primarily
-	 *			for serialization purposes, i.e. persisting ProjectLibrary state
-	 *			between application runs.
+	 * Contains a list of entries used by the ProjectLibrary. Used primarily for serialization purposes, i.e. persisting
+	 * ProjectLibrary state between application runs.
 	 */
 	class ProjectLibraryEntries : public IReflectable
 	{
@@ -22,15 +26,13 @@ namespace BansheeEngine
 		ProjectLibraryEntries(const ProjectLibrary::DirectoryEntry& rootEntry);
 
 		/**
-		 * @brief	Creates new project library entries based on a ProjectLibrary root directory entry.
+		 * Creates new project library entries based on a ProjectLibrary root directory entry.
 		 *
-		 * @param	rootEntry	Root directory entry in ProjectLibrary.
+		 * @param[in]	rootEntry	Root directory entry in ProjectLibrary.
 		 */
 		static std::shared_ptr<ProjectLibraryEntries> create(const ProjectLibrary::DirectoryEntry& rootEntry);
 		
-		/**
-		 * @brief	Returns the root directory entry that references the entire entry hierarchy.
-		 */
+		/**	Returns the root directory entry that references the entire entry hierarchy. */
 		const ProjectLibrary::DirectoryEntry& getRootEntry() const { return mRootEntry; }
 
 	private:
@@ -40,10 +42,7 @@ namespace BansheeEngine
 		/* 								SERIALIZATION                      		*/
 		/************************************************************************/
 
-		/**
-		 * @brief	Creates new empty project library entries object. Used for serialization
-		 *			purposes.
-		 */
+		/** Creates new empty project library entries object. Used for serialization purposes. */
 		static std::shared_ptr<ProjectLibraryEntries> createEmpty();
 
 	public:
@@ -51,4 +50,7 @@ namespace BansheeEngine
 		static RTTITypeBase* getRTTIStatic();
 		virtual RTTITypeBase* getRTTI() const override;
 	};
+
+	/** @} */
+	/** @endcond */
 }

+ 8 - 3
BansheeEditor/Include/BsProjectLibraryEntriesRTTI.h

@@ -8,6 +8,11 @@
 
 namespace BansheeEngine
 {
+	/** @cond INTERNAL */
+	/** @addtogroup RTTI-Impl-Editor
+	 *  @{
+	 */
+
 	class ProjectLibraryEntriesRTTI : public RTTIType<ProjectLibraryEntries, IReflectable, ProjectLibraryEntriesRTTI>
 	{
 	private:
@@ -36,10 +41,7 @@ namespace BansheeEngine
 			return ProjectLibraryEntries::createEmpty();
 		}
 	};
-}
 
-namespace BansheeEngine
-{
 	template<> struct RTTIPlainType<BansheeEngine::ProjectLibrary::FileEntry>
 	{	
 		enum { id = BansheeEngine::TID_ProjectLibraryResEntry }; enum { hasDynamicSize = 1 };
@@ -197,4 +199,7 @@ namespace BansheeEngine
 			return (UINT32)dataSize;
 		}	
 	}; 
+
+	/** @} */
+	/** @endcond */
 }

+ 15 - 15
BansheeEditor/Include/BsProjectResourceMeta.h

@@ -7,6 +7,10 @@
 
 namespace BansheeEngine
 {
+	/** @addtogroup Library
+	 *  @{
+	 */
+
 	/**	Contains meta-data for a resource stored in the ProjectLibrary. */
 	class BS_ED_EXPORT ProjectResourceMeta : public IReflectable
 	{
@@ -19,12 +23,11 @@ namespace BansheeEngine
 		/**
 		 * Creates a new project library resource meta-data entry.
 		 *
-		 * @param	name				Name of the resource, unique within the file containing the resource.
-		 * @param	uuid				UUID of the resource.
-		 * @param	typeId				RTTI type id of the resource.
-		 * @param	resourceMetaData	Non-project library specific meta-data.
-		 *
-		 * @return	New project library resource meta data instance.
+		 * @param[in]	name				Name of the resource, unique within the file containing the resource.
+		 * @param[in]	uuid				UUID of the resource.
+		 * @param[in]	typeId				RTTI type id of the resource.
+		 * @param[in]	resourceMetaData	Non-project library specific meta-data.
+		 * @return							New project library resource meta data instance.
 		 */
 		static ProjectResourceMetaPtr create(const WString& name, const String& uuid, UINT32 typeId, 
 			const ResourceMetaDataPtr& resourceMetaData);
@@ -53,9 +56,7 @@ namespace BansheeEngine
 		/* 								RTTI		                     		*/
 		/************************************************************************/
 
-		/**
-		 * @brief	Creates a new empty meta-data instance. Used only for serialization purposes.
-		 */
+		/**	Creates a new empty meta-data instance. Used only for serialization purposes. */
 		static ProjectResourceMetaPtr createEmpty();
 
 	public:
@@ -79,9 +80,8 @@ namespace BansheeEngine
 		/**
 		 * Creates a new project library file meta-data entry.
 		 *
-		 * @param	importOptions		Import options used for importing the resource.
-		 *
-		 * @return	New project library file meta data instance.
+		 * @param[in]	importOptions		Import options used for importing the resource.
+		 * @return							New project library file meta data instance.
 		 */
 		static ProjectFileMetaPtr create(const ImportOptionsPtr& importOptions);
 
@@ -123,9 +123,7 @@ namespace BansheeEngine
 		/* 								RTTI		                     		*/
 		/************************************************************************/
 
-		/**
-		 * @brief	Creates a new empty meta-data instance. Used only for serialization purposes.
-		 */
+		/**	Creates a new empty meta-data instance. Used only for serialization purposes. */
 		static ProjectFileMetaPtr createEmpty();
 
 	public:
@@ -133,4 +131,6 @@ namespace BansheeEngine
 		static RTTITypeBase* getRTTIStatic();
 		virtual RTTITypeBase* getRTTI() const override;	
 	};
+
+	/** @} */
 }

+ 8 - 0
BansheeEditor/Include/BsProjectResourceMetaRTTI.h

@@ -10,6 +10,11 @@
 
 namespace BansheeEngine
 {
+	/** @cond INTERNAL */
+	/** @addtogroup RTTI-Impl-Editor
+	 *  @{
+	 */
+
 	class ProjectResourceMetaRTTI : public RTTIType<ProjectResourceMeta, IReflectable, ProjectResourceMetaRTTI>
 	{
 	private:
@@ -75,4 +80,7 @@ namespace BansheeEngine
 			return ProjectFileMeta::createEmpty();
 		}
 	};
+
+	/** @} */
+	/** @endcond */
 }

+ 11 - 3
BansheeEditor/Include/BsProjectSettingsRTTI.h

@@ -8,6 +8,11 @@
 
 namespace BansheeEngine
 {
+	/** @cond INTERNAL */
+	/** @addtogroup RTTI-Impl-Editor
+	 *  @{
+	 */
+
 	class ProjectSettingsRTTI : public RTTIType <ProjectSettings, Settings, ProjectSettingsRTTI>
 	{
 	private:
@@ -19,20 +24,23 @@ namespace BansheeEngine
 			BS_ADD_PLAIN_FIELD(mLastOpenScene, 0);
 		}
 
-		virtual const String& getRTTIName() override
+		const String& getRTTIName() override
 		{
 			static String name = "ProjectSettings";
 			return name;
 		}
 
-		virtual UINT32 getRTTIId() override
+		UINT32 getRTTIId() override
 		{
 			return TID_ProjectSettings;
 		}
 
-		virtual std::shared_ptr<IReflectable> newRTTIObject() override
+		std::shared_ptr<IReflectable> newRTTIObject() override
 		{
 			return bs_shared_ptr_new<ProjectSettings>();
 		}
 	};
+
+	/** @} */
+	/** @endcond */
 }

+ 8 - 0
BansheeEditor/Include/BsSettingsRTTI.h

@@ -8,6 +8,11 @@
 
 namespace BansheeEngine
 {
+	/** @cond INTERNAL */
+	/** @addtogroup RTTI-Impl-Editor
+	 *  @{
+	 */
+
 	class SettingsRTTI : public RTTIType <Settings, IReflectable, SettingsRTTI>
 	{
 	private:
@@ -41,4 +46,7 @@ namespace BansheeEngine
 			return bs_shared_ptr_new<Settings>();
 		}
 	};
+
+	/** @} */
+	/** @endcond */
 }

+ 53 - 104
RenderBeast/Include/BsRenderBeast.h

@@ -14,10 +14,7 @@ namespace BansheeEngine
 {
 	class BeastRenderableElement;
 
-	/**
-	 * Semantics that may be used for signaling the renderer
-	 * for what is a certain shader parameter used for.
-	 */
+	/** Semantics that may be used for signaling the renderer for what is a certain shader parameter used for. */
 	static StringID RPS_GBufferA = "GBufferA";
 	static StringID RPS_GBufferB = "GBufferB";
 	static StringID RPS_GBufferDepth = "GBufferDepth";
@@ -25,9 +22,7 @@ namespace BansheeEngine
 	/** Basic shader that is used when no other is available. */
 	class DefaultMaterial : public RendererMaterial<DefaultMaterial> { RMAT_DEF("Default.bsl"); };
 
-	/**
-	 * @brief	Data used by the renderer when rendering renderable handlers.
-	 */
+	/**	Data used by the renderer when rendering renderable handlers. */
 	struct RenderableData
 	{
 		RenderableCore* renderable;
@@ -35,9 +30,7 @@ namespace BansheeEngine
 		RenderableHandler* controller;
 	};
 
-	/**
-	 * @brief	Data bound to the shader when rendering a specific renderable.
-	 */
+	/**	Data bound to the shader when rendering a specific renderable. */
 	struct RenderableShaderData
 	{
 		Matrix4 worldTransform;
@@ -47,9 +40,7 @@ namespace BansheeEngine
 		float worldDeterminantSign;
 	};
 
-	/**
-	 * @brief	Data bound to the shader when rendering a with a specific camera.
-	 */
+	/**	Data bound to the shader when rendering a with a specific camera. */
 	struct CameraShaderData
 	{
 		Vector3 viewDir;
@@ -72,38 +63,31 @@ namespace BansheeEngine
 	{
 	public:
 		/**
-		 * @brief	Optional overrides for material sampler states.
-		 *			Used when renderer wants to override certain sampling
-		 *			properties on a global scale (e.g. filtering most commonly).
+		 * Optional overrides for material sampler states. Used when renderer wants to override certain sampling properties
+		 * on a global scale (e.g. filtering most commonly).
 		 */
 		MaterialSamplerOverrides* samplerOverrides;
 
-		/**
-		 * @brief	Id of the owner renderable.
-		 */
+		/**	Identifier of the owner renderable. */
 		UINT32 renderableId;
 	};
 
 	/**
-	 * @brief	Default renderer for Banshee. Performs frustum culling, sorting and 
-	 *			renders objects in custom ways determine by renderable handlers.
+	 * Default renderer for Banshee. Performs frustum culling, sorting and renders objects in custom ways determine by
+	 * renderable handlers.
 	 *
 	 * @note	Sim thread unless otherwise noted.
 	 */
 	class BS_BSRND_EXPORT RenderBeast : public Renderer
 	{
-		/**
-		 * @brief	Render data for a single render target.
-		 */
+		/**	Render data for a single render target. */
 		struct RenderTargetData
 		{
 			SPtr<RenderTargetCore> target;
 			Vector<const CameraCore*> cameras;
 		};
 
-		/**
-		 * @brief	Data used by the renderer for a camera.
-		 */
+		/**	Data used by the renderer for a camera. */
 		struct CameraData
 		{
 			RenderQueuePtr opaqueQueue;
@@ -112,9 +96,7 @@ namespace BansheeEngine
 			SPtr<RenderTargets> target;
 		};
 
-		/**
-		 * @brief	Data used by the renderer for lights.
-		 */
+		/**	Data used by the renderer for lights. */
 		struct LightData
 		{
 			LightCore* internal;
@@ -124,163 +106,130 @@ namespace BansheeEngine
 		RenderBeast();
 		~RenderBeast() { }
 
-		/**
-		 * @copydoc	Renderer::getName
-		 */
+		/** @copydoc Renderer::getName */
 		virtual const StringID& getName() const override;
 
-		/**
-		 * @copydoc	Renderer::renderAll
-		 */
+		/** @copydoc Renderer::renderAll */
 		virtual void renderAll() override;
 
-		/**
-		 * @brief	Sets options used for controlling the rendering.
-		 */
+		/**	Sets options used for controlling the rendering. */
 		void setOptions(const SPtr<CoreRendererOptions>& options) override;
 
-		/**
-		 * @brief	Returns current set of options used for controlling the rendering.
-		 */
+		/**	Returns current set of options used for controlling the rendering. */
 		SPtr<CoreRendererOptions> getOptions() const override;
 
-		/**
-		 * @copydoc	Renderer::initialize
-		 */
+		/** @copydoc Renderer::initialize */
 		virtual void initialize() override;
 
-		/**
-		 * @copydoc	Renderer::destroy
-		 */
+		/** @copydoc Renderer::destroy */
 		virtual void destroy() override;
 
 	private:
-		/**
-		 * @copydoc	Renderer::_notifyCameraAdded
-		 */
+		/** @copydoc Renderer::_notifyCameraAdded */
 		void _notifyCameraAdded(const CameraCore* camera) override;
 
-		/**
-		 * @copydoc	Renderer::_notifyCameraRemoved
-		 */
+		/** @copydocRenderer::_notifyCameraRemoved */
 		void _notifyCameraRemoved(const CameraCore* camera) override;
 
-		/**
-		 * @copydoc	Renderer::_notifyLightAdded
-		 */
+		/** @copydoc Renderer::_notifyLightAdded */
 		void _notifyLightAdded(LightCore* light) override;
 
-		/**
-		 * @copydoc	Renderer::_notifyLightUpdated
-		 */
+		/** @copydoc Renderer::_notifyLightUpdated */
 		void _notifyLightUpdated(LightCore* light) override;
 
-		/**
-		 * @copydoc	Renderer::_notifyLightRemoved
-		 */
+		/** @copydoc Renderer::_notifyLightRemoved */
 		void _notifyLightRemoved(LightCore* light) override;
 
-		/**
-		 * @copydoc	Renderer::_notifyRenderableAdded
-		 */
+		/** @copydoc Renderer::_notifyRenderableAdded */
 		void _notifyRenderableAdded(RenderableCore* renderable) override;
 
-		/**
-		 * @copydoc	Renderer::_notifyRenderableUpdated
-		 */
+		/** @copydoc Renderer::_notifyRenderableUpdated */
 		void _notifyRenderableUpdated(RenderableCore* renderable) override;
 
-		/**
-		 * @copydoc	Renderer::_notifyRenderableRemoved
-		 */
+		/** @copydoc Renderer::_notifyRenderableRemoved */
 		void _notifyRenderableRemoved(RenderableCore* renderable) override;
 
 		/**
-		 * @brief	Updates the render options on the core thread.
+		 * Updates the render options on the core thread.
 		 *
 		 * @note	Core thread only.
 		 */
 		void syncRenderOptions(const RenderBeastOptions& options);
 
 		/**
-		 * @brief	Performs rendering over all camera proxies.
+		 * Performs rendering over all camera proxies.
 		 *
-		 * @param	time	Current frame time in milliseconds.
+		 * @param[in]	time	Current frame time in milliseconds.
 		 *
 		 * @note	Core thread only.
 		 */
 		void renderAllCore(float time);
 
 		/**
-		 * @brief	Populates camera render queues by determining visible renderable object.
+		 * Populates camera render queues by determining visible renderable object.
 		 *
-		 * @param	camera	The camera to determine visibility for.
+		 * @param[in]	camera	The camera to determine visibility for.
 		 */
 		void determineVisible(const CameraCore& camera);
 
 		/**
-		 * @brief	Renders all objects visible by the provided camera.
+		 * Renders all objects visible by the provided camera.
 		 *
-		 * @param	rtData	Render target data containing the camera to render.
-		 * @param	camIdx	Index of the camera to render.
+		 * @param[in]	rtData	Render target data containing the camera to render.
+		 * @param[in]	camIdx	Index of the camera to render.
 		 * 					
 		 * @note	Core thread only.
 		 */
 		void render(RenderTargetData& rtData, UINT32 camIdx);
 
-		/**
-		 * @brief	Creates data used by the renderer on the core thread.
-		 */
+		/**	Creates data used by the renderer on the core thread. */
 		void initializeCore();
 
-		/**
-		 * @brief	Destroys data used by the renderer on the core thread.
-		 */
+		/**	Destroys data used by the renderer on the core thread. */
 		void destroyCore();
 
 		/**
-		 * @brief	Checks all sampler overrides in case material sampler states changed,
-		 *			and updates them.
+		 * Checks all sampler overrides in case material sampler states changed, and updates them.
 		 *
-		 * @param	force	If true, all sampler overrides will be updated, regardless of a change
-		 *					in the material was detected or not.
+		 * @param[in]	force	If true, all sampler overrides will be updated, regardless of a change in the material
+		 *						was detected or not.
 		 */
 		void refreshSamplerOverrides(bool force = false);
 
 		/**
-		 * @brief	Extracts the necessary values from the projection matrix that allow you to transform
-		 * 			device Z value into world Z value.
+		 * Extracts the necessary values from the projection matrix that allow you to transform device Z value into
+		 * world Z value.
 		 * 			
-		 * @param	projMatrix	Projection matrix that was used to create the device Z value to transform.
-		 * 						
-		 * @returns	Returns two values that can be used to transform device z to world z using this formula:
-		 * 			z = deviceZ * x - y.
+		 * @param[in]	projMatrix	Projection matrix that was used to create the device Z value to transform.
+		 * @return					Returns two values that can be used to transform device z to world z using this formula:
+		 * 							z = deviceZ * x - y.
 		 */
 		static Vector2 getDeviceZTransform();
 
 		/**
-		 * @brief	Populates the provided camera shader data object with data from the provided camera. The object can
-		 * 			then be used for populating per-camera parameter buffers.
+		 * Populates the provided camera shader data object with data from the provided camera. The object can then be used
+		 * for populating per-camera parameter buffers.
 		 * 			
 		 * @note	Core thread.
 		 */
 		static CameraShaderData getCameraShaderData(const CameraCore& camera);
 
 		/**
-		 * @brief	Activates the specified pass on the pipeline.
+		 * Activates the specified pass on the pipeline.
 		 *
-		 * @param	pass			Pass to activate.
+		 * @param[in]	pass	Pass to activate.
 		 * 
 		 * @note	Core thread.
 		 */
 		static void setPass(const SPtr<PassCore>& pass);
 
 		/**
-		 * @brief	Sets parameters (textures, samplers, buffers) for the currently active pass.
+		 * Sets parameters (textures, samplers, buffers) for the currently active pass.
+		 *
+		 * @param[in]	passParams			Structure containing parameters for all stages of the pass.
+		 * @param[in]	samplerOverrides	Optional samplers to use instead of the those in the pass parameters. Number of
+		 *									samplers must match number in pass parameters.
 		 *
-		 * @param	passParams			Structure containing parameters for all stages of the pass.
-		 * @param	samplerOverrides	Optional samplers to use instead of the those in the pass parameters.
-		 *								Number of samplers must match number in pass parameters.						
 		 * @note	Core thread.
 		 */
 		static void setPassParams(const SPtr<PassParametersCore>& passParams, const PassSamplerOverrides* samplerOverrides);