Эх сурвалжийг харах

Got cmake to work for msvc

However, there are tons of errors on gcc in Ubuntu 12.04
Nate Starkey 13 жил өмнө
parent
commit
dad4d6e30c

+ 47 - 1
Build/CMakeLists.txt

@@ -46,6 +46,7 @@ endif()
 
 option(BUILD_SHARED_LIBS "Build shared libraries" ON)
 option(BUILD_PYTHON_BINDINGS "Build python bindings" OFF)
+option(BUILD_LUA_BINDINGS "Build Lua bindings" OFF)
 option(BUILD_SAMPLES "Build samples" OFF)
 
 if(NOT BUILD_SHARED_LIBS)
@@ -88,6 +89,15 @@ if(BUILD_PYTHON_BINDINGS)
 
 endif()
 
+#Lua
+if(BUILD_LUA_BINDINGS)
+    find_package(Lua51 REQUIRED)
+    if(LUA_INCLUDE_DIR)
+        include_directories(${LUA_INCLUDE_DIR})
+        list(APPEND LUA_BINDINGS_LINK_LIBS ${LUA_LIBRARIES})
+    endif()
+endif()
+
 
 #===================================
 # Setup paths ======================
@@ -154,6 +164,28 @@ if(BUILD_PYTHON_BINDINGS)
     endforeach(library)
 endif()
 
+# Build Lua bindings
+if(BUILD_LUA_BINDINGS)
+    set(LIBRARIES core controls)
+
+    foreach(library ${LIBRARIES})
+        set(NAME Rocket${library}Lua)
+
+        add_library(${NAME} ${Lua${library}_SRC_FILES}
+                            ${Lua${library}_HDR_FILES}
+                            ${Lua${library}_PUB_HDR_FILES}
+        )
+
+        set_target_properties(${NAME} PROPERTIES PREFIX "")
+        
+        install(TARGETS ${NAME}
+            LIBRARY DESTINATION lib
+            ARCHIVE DESTINATION lib
+            RUNTIME DESTINATION bin
+        )
+    endforeach(library)
+endif()
+
 
 #===================================
 # Link libraries ===================
@@ -168,6 +200,11 @@ if(BUILD_PYTHON_BINDINGS)
     target_link_libraries(_rocketcontrols RocketControls ${PY_BINDINGS_LINK_LIBS})
 endif()
 
+if(BUILD_LUA_BINDINGS)
+    target_link_libraries(RocketcoreLua RocketCore ${LUA_BINDINGS_LINK_LIBS})
+    target_link_libraries(RocketcontrolsLua RocketControls RocketcoreLua ${LUA_BINDINGS_LINK_LIBS})
+endif()
+
 
 #===================================
 # Build samples ====================
@@ -276,11 +313,20 @@ if(BUILD_PYTHON_BINDINGS)
     )
     install(DIRECTORY ${PROJECT_SOURCE_DIR}/Include/Rocket
             DESTINATION include
+            PATTERN "Lua" EXCLUDE
     )
-else()
+endif()
+if(BUILD_LUA_BINDINGS)
+    install(DIRECTORY ${PROJECT_SOURCE_DIR}/Include/Rocket
+            DESTINATION include
+            PATTERN "Python" EXCLUDE
+    )
+endif()
+if(NOT BUILD_LUA_BINDINGS AND NOT BUILD_PYTHON_BINDINGS)
     install(DIRECTORY ${PROJECT_SOURCE_DIR}/Include/Rocket
             DESTINATION include
             PATTERN "Python" EXCLUDE
+            PATTERN "Lua" EXCLUDE
     )
 endif()
 

+ 2 - 2
Build/RocketControlsLua.vcproj

@@ -42,7 +42,7 @@
 				Name="VCCLCompilerTool"
 				Optimization="0"
 				AdditionalIncludeDirectories=""$(SolutionDir)..\Include";"$(SolutionDir)..\Source\Core";"$(SolutionDir)..\Dependencies\lua\src";"$(SolutionDir)..\Source\Controls\Lua""
-				PreprocessorDefinitions="_WIN32,_DEBUG,RocketLua_EXPORTS"
+				PreprocessorDefinitions="_WIN32,_DEBUG,RocketcontrolsLua_EXPORTS"
 				MinimalRebuild="true"
 				BasicRuntimeChecks="3"
 				RuntimeLibrary="3"
@@ -125,7 +125,7 @@
 				EnableIntrinsicFunctions="true"
 				WholeProgramOptimization="true"
 				AdditionalIncludeDirectories=""$(SolutionDir)..\Include";"$(SolutionDir)..\Source\Core";"$(SolutionDir)..\Dependencies\lua\src";"$(SolutionDir)..\Source\Controls\Lua""
-				PreprocessorDefinitions="_WIN32,NDEBUG,RocketLua_EXPORTS"
+				PreprocessorDefinitions="_WIN32,NDEBUG,RocketcontrolsLua_EXPORTS"
 				RuntimeLibrary="2"
 				EnableFunctionLevelLinking="true"
 				UsePrecompiledHeader="2"

+ 2 - 2
Build/RocketCoreLua.vcproj

@@ -42,7 +42,7 @@
 				Name="VCCLCompilerTool"
 				Optimization="0"
 				AdditionalIncludeDirectories=""$(SolutionDir)..\Include";"$(SolutionDir)..\Source\Core";"$(SolutionDir)..\Dependencies\lua\src""
-				PreprocessorDefinitions="_WIN32,_DEBUG,RocketLua_EXPORTS"
+				PreprocessorDefinitions="_WIN32,_DEBUG,RocketcoreLua_EXPORTS"
 				MinimalRebuild="true"
 				BasicRuntimeChecks="3"
 				RuntimeLibrary="3"
@@ -125,7 +125,7 @@
 				EnableIntrinsicFunctions="true"
 				WholeProgramOptimization="true"
 				AdditionalIncludeDirectories=""$(SolutionDir)..\Include";"$(SolutionDir)..\Source\Core";"$(SolutionDir)..\Dependencies\lua\src""
-				PreprocessorDefinitions="_WIN32,NDEBUG,RocketLua_EXPORTS"
+				PreprocessorDefinitions="_WIN32,NDEBUG,RocketcoreLua_EXPORTS"
 				RuntimeLibrary="2"
 				EnableFunctionLevelLinking="true"
 				UsePrecompiledHeader="2"

+ 444 - 333
Build/cmake/FileList.cmake

@@ -1,488 +1,599 @@
 # This file was auto-generated with gen_filelists.sh
 
 set(Core_HDR_FILES
-    ${PROJECT_SOURCE_DIR}/Source/Core/StyleSheetNodeSelectorFirstOfType.h
-    ${PROJECT_SOURCE_DIR}/Source/Core/DecoratorTiledBoxInstancer.h
-    ${PROJECT_SOURCE_DIR}/Source/Core/ElementStyle.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/Clock.h
     ${PROJECT_SOURCE_DIR}/Source/Core/ContextInstancerDefault.h
-    ${PROJECT_SOURCE_DIR}/Source/Core/PropertyParserKeyword.h
-    ${PROJECT_SOURCE_DIR}/Source/Core/ElementDefinition.h
-    ${PROJECT_SOURCE_DIR}/Source/Core/StyleSheetNodeSelectorOnlyChild.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/DebugFont.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/DecoratorNone.h
     ${PROJECT_SOURCE_DIR}/Source/Core/DecoratorNoneInstancer.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/DecoratorTiled.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/DecoratorTiledBox.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/DecoratorTiledBoxInstancer.h
     ${PROJECT_SOURCE_DIR}/Source/Core/DecoratorTiledHorizontal.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/DecoratorTiledHorizontalInstancer.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/DecoratorTiledImage.h
     ${PROJECT_SOURCE_DIR}/Source/Core/DecoratorTiledImageInstancer.h
-    ${PROJECT_SOURCE_DIR}/Source/Core/PluginRegistry.h
-    ${PROJECT_SOURCE_DIR}/Source/Core/StyleSheetNodeSelectorEmpty.h
-    ${PROJECT_SOURCE_DIR}/Source/Core/StyleSheetParser.h
-    ${PROJECT_SOURCE_DIR}/Source/Core/XMLNodeHandlerTemplate.h
-    ${PROJECT_SOURCE_DIR}/Source/Core/PropertyShorthandDefinition.h
-    ${PROJECT_SOURCE_DIR}/Source/Core/StyleSheetNodeSelectorNthOfType.h
-    ${PROJECT_SOURCE_DIR}/Source/Core/ElementTextDefault.h
-    ${PROJECT_SOURCE_DIR}/Source/Core/StyleSheetNodeSelector.h
-    ${PROJECT_SOURCE_DIR}/Source/Core/FontEffectShadowInstancer.h
-    ${PROJECT_SOURCE_DIR}/Source/Core/StyleSheetNodeSelectorLastOfType.h
-    ${PROJECT_SOURCE_DIR}/Source/Core/TextureLayoutRow.h
-    ${PROJECT_SOURCE_DIR}/Source/Core/ElementBackground.h
-    ${PROJECT_SOURCE_DIR}/Source/Core/PropertyParserString.h
-    ${PROJECT_SOURCE_DIR}/Source/Core/TextureResource.h
-    ${PROJECT_SOURCE_DIR}/Source/Core/StyleSheetNode.h
-    ${PROJECT_SOURCE_DIR}/Source/Core/Clock.h
     ${PROJECT_SOURCE_DIR}/Source/Core/DecoratorTiledInstancer.h
-    ${PROJECT_SOURCE_DIR}/Source/Core/DecoratorTiledImage.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/DecoratorTiledVertical.h
     ${PROJECT_SOURCE_DIR}/Source/Core/DecoratorTiledVerticalInstancer.h
-    ${PROJECT_SOURCE_DIR}/Source/Core/StyleSheetNodeSelectorLastChild.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/DocumentHeader.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/ElementBackground.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/ElementBorder.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/ElementDecoration.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/ElementDefinition.h
     ${PROJECT_SOURCE_DIR}/Source/Core/ElementHandle.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/ElementImage.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/ElementStyle.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/ElementTextDefault.h
     ${PROJECT_SOURCE_DIR}/Source/Core/EventDispatcher.h
-    ${PROJECT_SOURCE_DIR}/Source/Core/Pool.h
-    ${PROJECT_SOURCE_DIR}/Source/Core/TemplateCache.h
-    ${PROJECT_SOURCE_DIR}/Source/Core/Template.h
-    ${PROJECT_SOURCE_DIR}/Source/Core/UnicodeRange.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/EventInstancerDefault.h
     ${PROJECT_SOURCE_DIR}/Source/Core/EventIterators.h
-    ${PROJECT_SOURCE_DIR}/Source/Core/XMLNodeHandlerBody.h
-    ${PROJECT_SOURCE_DIR}/Source/Core/LayoutBlockBox.h
-    ${PROJECT_SOURCE_DIR}/Source/Core/WidgetSlider.h
-    ${PROJECT_SOURCE_DIR}/Source/Core/LayoutInlineBoxText.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/FileInterfaceDefault.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/FontEffectNone.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/FontEffectNoneInstancer.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/FontEffectOutline.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/FontEffectOutlineInstancer.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/FontEffectShadow.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/FontEffectShadowInstancer.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/FontFace.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/FontFaceHandle.h
     ${PROJECT_SOURCE_DIR}/Source/Core/FontFaceLayer.h
-    ${PROJECT_SOURCE_DIR}/Source/Core/ElementImage.h
     ${PROJECT_SOURCE_DIR}/Source/Core/FontFamily.h
-    ${PROJECT_SOURCE_DIR}/Source/Core/DecoratorTiled.h
-    ${PROJECT_SOURCE_DIR}/Source/Core/PropertyParserColour.h
-    ${PROJECT_SOURCE_DIR}/Source/Core/XMLParseTools.h
-    ${PROJECT_SOURCE_DIR}/Source/Core/WidgetSliderScroll.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/GeometryDatabase.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/LayoutBlockBox.h
     ${PROJECT_SOURCE_DIR}/Source/Core/LayoutBlockBoxSpace.h
-    ${PROJECT_SOURCE_DIR}/Source/Core/DocumentHeader.h
-    ${PROJECT_SOURCE_DIR}/Source/Core/precompiled.h
-    ${PROJECT_SOURCE_DIR}/Source/Core/FontFaceHandle.h
-    ${PROJECT_SOURCE_DIR}/Source/Core/StyleSheetNodeSelectorNthLastChild.h
-    ${PROJECT_SOURCE_DIR}/Source/Core/StyleSheetNodeSelectorFirstChild.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/LayoutEngine.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/LayoutInlineBox.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/LayoutInlineBoxText.h
     ${PROJECT_SOURCE_DIR}/Source/Core/LayoutLineBox.h
-    ${PROJECT_SOURCE_DIR}/Source/Core/DebugFont.h
-    ${PROJECT_SOURCE_DIR}/Source/Core/FontEffectNone.h
-    ${PROJECT_SOURCE_DIR}/Source/Core/FontEffectShadow.h
-    ${PROJECT_SOURCE_DIR}/Source/Core/TextureDatabase.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/PluginRegistry.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/Pool.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/precompiled.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/PropertyParserColour.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/PropertyParserKeyword.h
     ${PROJECT_SOURCE_DIR}/Source/Core/PropertyParserNumber.h
-    ${PROJECT_SOURCE_DIR}/Source/Core/DecoratorTiledVertical.h
-    ${PROJECT_SOURCE_DIR}/Source/Core/StyleSheetNodeSelectorNthChild.h
-    ${PROJECT_SOURCE_DIR}/Source/Core/TextureLayoutRectangle.h
-    ${PROJECT_SOURCE_DIR}/Source/Core/LayoutInlineBox.h
-    ${PROJECT_SOURCE_DIR}/Source/Core/GeometryDatabase.h
-    ${PROJECT_SOURCE_DIR}/Source/Core/FontEffectOutlineInstancer.h
-    ${PROJECT_SOURCE_DIR}/Source/Core/TextureLayoutTexture.h
-    ${PROJECT_SOURCE_DIR}/Source/Core/FontFace.h
-    ${PROJECT_SOURCE_DIR}/Source/Core/TextureLayout.h
-    ${PROJECT_SOURCE_DIR}/Source/Core/EventInstancerDefault.h
-    ${PROJECT_SOURCE_DIR}/Source/Core/ElementBorder.h
-    ${PROJECT_SOURCE_DIR}/Source/Core/XMLNodeHandlerHead.h
-    ${PROJECT_SOURCE_DIR}/Source/Core/ElementDecoration.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/PropertyParserString.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/PropertyShorthandDefinition.h
     ${PROJECT_SOURCE_DIR}/Source/Core/StreamFile.h
-    ${PROJECT_SOURCE_DIR}/Source/Core/LayoutEngine.h
-    ${PROJECT_SOURCE_DIR}/Source/Core/FontEffectOutline.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/StringCache.h
     ${PROJECT_SOURCE_DIR}/Source/Core/StyleSheetFactory.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/StyleSheetNode.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/StyleSheetNodeSelector.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/StyleSheetNodeSelectorEmpty.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/StyleSheetNodeSelectorFirstChild.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/StyleSheetNodeSelectorFirstOfType.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/StyleSheetNodeSelectorLastChild.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/StyleSheetNodeSelectorLastOfType.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/StyleSheetNodeSelectorNthChild.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/StyleSheetNodeSelectorNthLastChild.h
     ${PROJECT_SOURCE_DIR}/Source/Core/StyleSheetNodeSelectorNthLastOfType.h
-    ${PROJECT_SOURCE_DIR}/Source/Core/FileInterfaceDefault.h
-    ${PROJECT_SOURCE_DIR}/Source/Core/XMLNodeHandlerDefault.h
-    ${PROJECT_SOURCE_DIR}/Source/Core/DecoratorNone.h
-    ${PROJECT_SOURCE_DIR}/Source/Core/DecoratorTiledHorizontalInstancer.h
-    ${PROJECT_SOURCE_DIR}/Source/Core/StringCache.h
-    ${PROJECT_SOURCE_DIR}/Source/Core/FontEffectNoneInstancer.h
-    ${PROJECT_SOURCE_DIR}/Source/Core/DecoratorTiledBox.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/StyleSheetNodeSelectorNthOfType.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/StyleSheetNodeSelectorOnlyChild.h
     ${PROJECT_SOURCE_DIR}/Source/Core/StyleSheetNodeSelectorOnlyOfType.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/StyleSheetParser.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/Template.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/TemplateCache.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/TextureDatabase.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/TextureLayout.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/TextureLayoutRectangle.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/TextureLayoutRow.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/TextureLayoutTexture.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/TextureResource.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/UnicodeRange.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/WidgetSlider.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/WidgetSliderScroll.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/XMLNodeHandlerBody.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/XMLNodeHandlerDefault.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/XMLNodeHandlerHead.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/XMLNodeHandlerTemplate.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/XMLParseTools.h
 )
 
 set(Core_PUB_HDR_FILES
-    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/FontEffect.h
-    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/TypeConverter.h
-    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/ElementScroll.h
-    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/SystemInterface.h
-    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/Colour.h
+    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/BaseXMLParser.h
     ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/Box.h
+    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/Colour.h
+    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/Context.h
+    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/ContextInstancer.h
     ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/ConvolutionFilter.h
-    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/EventListenerInstancer.h
+    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/Core.h
+    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/Debug.h
+    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/Decorator.h
+    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/DecoratorInstancer.h
+    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/Dictionary.h
+    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/Element.h
+    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/ElementDocument.h
+    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/ElementInstancer.h
     ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/ElementInstancerGeneric.h
+    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/ElementReference.h
+    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/ElementScroll.h
+    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/ElementStyle.h
+    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/ElementText.h
+    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/ElementUtilities.h
+    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/Event.h
+    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/EventInstancer.h
+    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/EventListener.h
+    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/EventListenerInstancer.h
+    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/Factory.h
     ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/FileInterface.h
+    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/Font.h
+    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/FontDatabase.h
+    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/FontEffect.h
+    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/FontEffectInstancer.h
+    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/FontGlyph.h
+    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/Geometry.h
+    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/GeometryUtilities.h
+    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/Header.h
+    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/Input.h
+    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/Log.h
+    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/Math.h
     ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/MathTypes.h
-    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/ElementInstancer.h
-    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/PropertySpecification.h
-    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/Property.h
+    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/Platform.h
     ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/Plugin.h
-    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/ElementReference.h
-    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/StreamMemory.h
-    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/WString.h
-    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/EventListener.h
+    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/Property.h
     ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/PropertyDefinition.h
-    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/Decorator.h
-    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/Texture.h
     ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/PropertyDictionary.h
-    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/StyleSheet.h
-    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/FontGlyph.h
+    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/PropertyParser.h
+    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/PropertySpecification.h
     ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/ReferenceCountable.h
-    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/StringUtilities.h
-    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/Vertex.h
-    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/ElementUtilities.h
-    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/Factory.h
-    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/Stream.h
-    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/GeometryUtilities.h
-    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/Vector2.h
-    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/StyleSheetSpecification.h
     ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/RenderInterface.h
+    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/ScriptInterface.h
+    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/Stream.h
+    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/StreamMemory.h
+    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/String.h
+    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/StringBase.h
+    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/StringUtilities.h
+    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/StyleSheet.h
     ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/StyleSheetKeywords.h
-    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/Core.h
-    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/FontDatabase.h
-    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/Header.h
-    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/Dictionary.h
+    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/StyleSheetSpecification.h
+    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/SystemInterface.h
+    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/Texture.h
+    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/TypeConverter.h
     ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/Types.h
-    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/XMLParser.h
-    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/ElementDocument.h
-    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/BaseXMLParser.h
-    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/Debug.h
     ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/URL.h
-    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/Input.h
-    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/Event.h
-    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/Geometry.h
-    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/Font.h
-    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/ElementText.h
-    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/String.h
-    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/Element.h
-    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/ScriptInterface.h
-    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/StringBase.h
-    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/EventInstancer.h
-    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/DecoratorInstancer.h
-    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/Context.h
-    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/FontEffectInstancer.h
     ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/Variant.h
-    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/Math.h
-    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/Log.h
-    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/Platform.h
+    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/Vector2.h
+    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/Vertex.h
+    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/WString.h
     ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/XMLNodeHandler.h
-    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/PropertyParser.h
-    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/ContextInstancer.h
+    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/XMLParser.h
     ${PROJECT_SOURCE_DIR}/Include/Rocket/Core.h
 )
 
 set(Core_SRC_FILES
-    ${PROJECT_SOURCE_DIR}/Source/Core/StreamMemory.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/DecoratorTiledVertical.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/EventInstancerDefault.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/ElementHandle.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/XMLNodeHandlerBody.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/TextureDatabase.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/DecoratorTiledBox.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/StyleSheetParser.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/Core.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/Template.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/XMLNodeHandler.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/String.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/ReferenceCountable.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/StyleSheetNodeSelectorLastOfType.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/ElementBackground.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/DecoratorTiledHorizontal.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/EventDispatcher.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/EventListenerInstancer.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/StringCache.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/ElementUtilities.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/TemplateCache.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/DecoratorTiledBoxInstancer.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/Event.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/Clock.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/GeometryDatabase.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/StyleSheetNodeSelectorOnlyChild.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/FontEffectInstancer.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/ElementDecoration.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/FontEffect.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/FileInterfaceDefault.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/XMLNodeHandlerTemplate.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/ConvolutionFilter.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/DecoratorTiled.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/XMLNodeHandlerHead.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/DocumentHeader.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/ContextInstancer.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/DecoratorTiledInstancer.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/Decorator.cpp
     ${PROJECT_SOURCE_DIR}/Source/Core/BaseXMLParser.cpp
     ${PROJECT_SOURCE_DIR}/Source/Core/Box.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/PropertyDefinition.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/Math.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/ElementText.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/precompiled.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/StyleSheetSpecification.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/FontEffectNone.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/PluginRegistry.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/ElementInstancer.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/RenderInterface.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/Clock.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/Context.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/ContextInstancer.cpp
     ${PROJECT_SOURCE_DIR}/Source/Core/ContextInstancerDefault.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/LayoutInlineBoxText.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/TextureLayout.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/PropertyDictionary.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/ConvolutionFilter.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/Core.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/Decorator.cpp
     ${PROJECT_SOURCE_DIR}/Source/Core/DecoratorInstancer.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/Context.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/LayoutEngine.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/WidgetSlider.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/Property.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/ElementStyle.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/DecoratorNone.cpp
     ${PROJECT_SOURCE_DIR}/Source/Core/DecoratorNoneInstancer.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/DecoratorTiled.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/DecoratorTiledBox.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/DecoratorTiledBoxInstancer.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/DecoratorTiledHorizontal.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/DecoratorTiledHorizontalInstancer.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/DecoratorTiledImage.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/DecoratorTiledImageInstancer.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/DecoratorTiledInstancer.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/DecoratorTiledVertical.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/DecoratorTiledVerticalInstancer.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/Dictionary.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/DocumentHeader.cpp
     ${PROJECT_SOURCE_DIR}/Source/Core/Element.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/FontEffectOutlineInstancer.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/FontDatabase.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/Texture.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/ElementBackground.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/ElementBorder.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/ElementDecoration.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/ElementDefinition.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/ElementDocument.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/ElementHandle.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/ElementImage.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/ElementInstancer.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/ElementReference.cpp
     ${PROJECT_SOURCE_DIR}/Source/Core/ElementScroll.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/FontFaceLayer.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/UnicodeRange.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/ElementStyle.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/ElementText.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/ElementTextDefault.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/ElementUtilities.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/Event.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/EventDispatcher.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/EventInstancer.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/EventInstancerDefault.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/EventListenerInstancer.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/Factory.cpp
     ${PROJECT_SOURCE_DIR}/Source/Core/FileInterface.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/StyleSheetNodeSelectorNthLastChild.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/FontEffectShadow.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/StyleSheetFactory.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/StyleSheetNodeSelectorLastChild.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/LayoutBlockBoxSpace.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/FileInterfaceDefault.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/FontDatabase.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/FontEffect.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/FontEffectInstancer.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/FontEffectNone.cpp
     ${PROJECT_SOURCE_DIR}/Source/Core/FontEffectNoneInstancer.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/FontEffectOutline.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/FontEffectOutlineInstancer.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/FontEffectShadow.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/FontEffectShadowInstancer.cpp
     ${PROJECT_SOURCE_DIR}/Source/Core/FontFace.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/Vector2.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/FontFaceHandle.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/FontFaceLayer.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/FontFamily.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/Geometry.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/GeometryDatabase.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/GeometryUtilities.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/LayoutBlockBox.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/LayoutBlockBoxSpace.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/LayoutEngine.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/LayoutInlineBox.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/LayoutInlineBoxText.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/LayoutLineBox.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/Log.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/Math.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/Plugin.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/PluginRegistry.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/precompiled.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/Property.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/PropertyDefinition.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/PropertyDictionary.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/PropertyParserColour.cpp
     ${PROJECT_SOURCE_DIR}/Source/Core/PropertyParserKeyword.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/PropertyParserNumber.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/PropertyParserString.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/PropertySpecification.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/ReferenceCountable.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/RenderInterface.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/Stream.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/StreamFile.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/StreamMemory.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/String.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/StringCache.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/StringUtilities.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/StyleSheet.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/StyleSheetFactory.cpp
     ${PROJECT_SOURCE_DIR}/Source/Core/StyleSheetNode.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/ElementDocument.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/StyleSheetNodeSelector.cpp
     ${PROJECT_SOURCE_DIR}/Source/Core/StyleSheetNodeSelectorEmpty.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/DecoratorTiledImageInstancer.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/FontEffectOutline.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/FontFamily.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/WString.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/URL.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/FontEffectShadowInstancer.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/DecoratorTiledHorizontalInstancer.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/DecoratorNone.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/StreamFile.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/Dictionary.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/DecoratorTiledImage.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/EventInstancer.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/TextureLayoutRow.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/PropertySpecification.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/FontFaceHandle.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/StyleSheetNodeSelectorFirstChild.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/StyleSheetNodeSelectorFirstOfType.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/StyleSheetNodeSelectorLastChild.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/StyleSheetNodeSelectorLastOfType.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/StyleSheetNodeSelectorNthChild.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/StyleSheetNodeSelectorNthLastChild.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/StyleSheetNodeSelectorNthLastOfType.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/StyleSheetNodeSelectorNthOfType.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/StyleSheetNodeSelectorOnlyChild.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/StyleSheetNodeSelectorOnlyOfType.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/StyleSheetParser.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/StyleSheetSpecification.cpp
     ${PROJECT_SOURCE_DIR}/Source/Core/SystemInterface.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/ElementBorder.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/Plugin.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/LayoutLineBox.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/Template.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/TemplateCache.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/Texture.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/TextureDatabase.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/TextureLayout.cpp
     ${PROJECT_SOURCE_DIR}/Source/Core/TextureLayoutRectangle.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/TextureLayoutRow.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/TextureLayoutTexture.cpp
     ${PROJECT_SOURCE_DIR}/Source/Core/TextureResource.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/LayoutBlockBox.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/StyleSheetNodeSelectorNthOfType.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/ElementImage.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/StyleSheetNodeSelector.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/GeometryUtilities.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/StyleSheetNodeSelectorNthLastOfType.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/UnicodeRange.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/URL.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/Variant.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/Vector2.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/WidgetSlider.cpp
     ${PROJECT_SOURCE_DIR}/Source/Core/WidgetSliderScroll.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/XMLParseTools.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/StyleSheetNodeSelectorFirstOfType.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/ElementTextDefault.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/PropertyParserNumber.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/WString.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/XMLNodeHandler.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/XMLNodeHandlerBody.cpp
     ${PROJECT_SOURCE_DIR}/Source/Core/XMLNodeHandlerDefault.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/TextureLayoutTexture.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/Stream.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/XMLNodeHandlerHead.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/XMLNodeHandlerTemplate.cpp
     ${PROJECT_SOURCE_DIR}/Source/Core/XMLParser.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/StyleSheet.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/StyleSheetNodeSelectorFirstChild.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/StringUtilities.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/Log.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/Variant.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/StyleSheetNodeSelectorNthChild.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/Geometry.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/DecoratorTiledVerticalInstancer.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/ElementReference.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/StyleSheetNodeSelectorOnlyOfType.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/PropertyParserString.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/PropertyParserColour.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/Factory.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/ElementDefinition.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/LayoutInlineBox.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/XMLParseTools.cpp
 )
 
 set(Controls_HDR_FILES
-    ${PROJECT_SOURCE_DIR}/Source/Controls/WidgetDropDown.h
+    ${PROJECT_SOURCE_DIR}/Source/Controls/ElementTextSelection.h
+    ${PROJECT_SOURCE_DIR}/Source/Controls/InputType.h
+    ${PROJECT_SOURCE_DIR}/Source/Controls/InputTypeButton.h
+    ${PROJECT_SOURCE_DIR}/Source/Controls/InputTypeCheckbox.h
+    ${PROJECT_SOURCE_DIR}/Source/Controls/InputTypeRadio.h
     ${PROJECT_SOURCE_DIR}/Source/Controls/InputTypeRange.h
+    ${PROJECT_SOURCE_DIR}/Source/Controls/InputTypeSubmit.h
+    ${PROJECT_SOURCE_DIR}/Source/Controls/InputTypeText.h
+    ${PROJECT_SOURCE_DIR}/Source/Controls/WidgetDropDown.h
+    ${PROJECT_SOURCE_DIR}/Source/Controls/WidgetSlider.h
     ${PROJECT_SOURCE_DIR}/Source/Controls/WidgetSliderInput.h
-    ${PROJECT_SOURCE_DIR}/Source/Controls/WidgetTextInputSingleLine.h
     ${PROJECT_SOURCE_DIR}/Source/Controls/WidgetTextInput.h
-    ${PROJECT_SOURCE_DIR}/Source/Controls/InputTypeButton.h
-    ${PROJECT_SOURCE_DIR}/Source/Controls/WidgetSlider.h
     ${PROJECT_SOURCE_DIR}/Source/Controls/WidgetTextInputMultiLine.h
-    ${PROJECT_SOURCE_DIR}/Source/Controls/XMLNodeHandlerTabSet.h
-    ${PROJECT_SOURCE_DIR}/Source/Controls/InputTypeCheckbox.h
-    ${PROJECT_SOURCE_DIR}/Source/Controls/InputTypeSubmit.h
-    ${PROJECT_SOURCE_DIR}/Source/Controls/InputTypeRadio.h
-    ${PROJECT_SOURCE_DIR}/Source/Controls/ElementTextSelection.h
-    ${PROJECT_SOURCE_DIR}/Source/Controls/InputType.h
+    ${PROJECT_SOURCE_DIR}/Source/Controls/WidgetTextInputSingleLine.h
+    ${PROJECT_SOURCE_DIR}/Source/Controls/WidgetTextInputSingleLinePassword.h
     ${PROJECT_SOURCE_DIR}/Source/Controls/XMLNodeHandlerDataGrid.h
+    ${PROJECT_SOURCE_DIR}/Source/Controls/XMLNodeHandlerTabSet.h
     ${PROJECT_SOURCE_DIR}/Source/Controls/XMLNodeHandlerTextArea.h
-    ${PROJECT_SOURCE_DIR}/Source/Controls/WidgetTextInputSingleLinePassword.h
-    ${PROJECT_SOURCE_DIR}/Source/Controls/InputTypeText.h
 )
 
 set(Controls_PUB_HDR_FILES
-    ${PROJECT_SOURCE_DIR}/Include/Rocket/Controls/DataQuery.h
-    ${PROJECT_SOURCE_DIR}/Include/Rocket/Controls/ElementFormControlDataSelect.h
-    ${PROJECT_SOURCE_DIR}/Include/Rocket/Controls/ElementFormControlTextArea.h
-    ${PROJECT_SOURCE_DIR}/Include/Rocket/Controls/ElementTabSet.h
+    ${PROJECT_SOURCE_DIR}/Include/Rocket/Controls/Clipboard.h
     ${PROJECT_SOURCE_DIR}/Include/Rocket/Controls/Controls.h
-    ${PROJECT_SOURCE_DIR}/Include/Rocket/Controls/ElementFormControlSelect.h
-    ${PROJECT_SOURCE_DIR}/Include/Rocket/Controls/SelectOption.h
-    ${PROJECT_SOURCE_DIR}/Include/Rocket/Controls/ElementFormControlInput.h
-    ${PROJECT_SOURCE_DIR}/Include/Rocket/Controls/ElementFormControl.h
-    ${PROJECT_SOURCE_DIR}/Include/Rocket/Controls/Header.h
+    ${PROJECT_SOURCE_DIR}/Include/Rocket/Controls/DataFormatter.h
+    ${PROJECT_SOURCE_DIR}/Include/Rocket/Controls/DataQuery.h
     ${PROJECT_SOURCE_DIR}/Include/Rocket/Controls/DataSource.h
+    ${PROJECT_SOURCE_DIR}/Include/Rocket/Controls/DataSourceListener.h
     ${PROJECT_SOURCE_DIR}/Include/Rocket/Controls/ElementDataGrid.h
+    ${PROJECT_SOURCE_DIR}/Include/Rocket/Controls/ElementDataGridCell.h
     ${PROJECT_SOURCE_DIR}/Include/Rocket/Controls/ElementDataGridExpandButton.h
     ${PROJECT_SOURCE_DIR}/Include/Rocket/Controls/ElementDataGridRow.h
-    ${PROJECT_SOURCE_DIR}/Include/Rocket/Controls/Clipboard.h
-    ${PROJECT_SOURCE_DIR}/Include/Rocket/Controls/DataFormatter.h
-    ${PROJECT_SOURCE_DIR}/Include/Rocket/Controls/DataSourceListener.h
     ${PROJECT_SOURCE_DIR}/Include/Rocket/Controls/ElementForm.h
-    ${PROJECT_SOURCE_DIR}/Include/Rocket/Controls/ElementDataGridCell.h
+    ${PROJECT_SOURCE_DIR}/Include/Rocket/Controls/ElementFormControl.h
+    ${PROJECT_SOURCE_DIR}/Include/Rocket/Controls/ElementFormControlDataSelect.h
+    ${PROJECT_SOURCE_DIR}/Include/Rocket/Controls/ElementFormControlInput.h
+    ${PROJECT_SOURCE_DIR}/Include/Rocket/Controls/ElementFormControlSelect.h
+    ${PROJECT_SOURCE_DIR}/Include/Rocket/Controls/ElementFormControlTextArea.h
+    ${PROJECT_SOURCE_DIR}/Include/Rocket/Controls/ElementTabSet.h
+    ${PROJECT_SOURCE_DIR}/Include/Rocket/Controls/Header.h
+    ${PROJECT_SOURCE_DIR}/Include/Rocket/Controls/SelectOption.h
     ${PROJECT_SOURCE_DIR}/Include/Rocket/Controls.h
 )
 
 set(Controls_SRC_FILES
-    ${PROJECT_SOURCE_DIR}/Source/Controls/SelectOption.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Controls/WidgetTextInputSingleLinePassword.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Controls/XMLNodeHandlerDataGrid.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Controls/XMLNodeHandlerTextArea.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Controls/WidgetDropDown.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Controls/ElementTabSet.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Controls/ElementFormControlTextArea.cpp
     ${PROJECT_SOURCE_DIR}/Source/Controls/Clipboard.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Controls/WidgetTextInputMultiLine.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Controls/DataSourceListener.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Controls/WidgetSliderInput.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Controls/ElementFormControlDataSelect.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Controls/InputTypeSubmit.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Controls/WidgetTextInput.cpp
     ${PROJECT_SOURCE_DIR}/Source/Controls/Controls.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Controls/InputTypeRadio.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Controls/ElementDataGridRow.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Controls/ElementFormControlSelect.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Controls/WidgetSlider.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Controls/DataFormatter.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Controls/DataQuery.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Controls/DataSource.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Controls/DataSourceListener.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Controls/ElementDataGrid.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Controls/ElementDataGridCell.cpp
     ${PROJECT_SOURCE_DIR}/Source/Controls/ElementDataGridExpandButton.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Controls/InputTypeText.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Controls/InputTypeCheckbox.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Controls/InputType.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Controls/ElementDataGridRow.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Controls/ElementForm.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Controls/ElementFormControl.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Controls/ElementFormControlDataSelect.cpp
     ${PROJECT_SOURCE_DIR}/Source/Controls/ElementFormControlInput.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Controls/ElementDataGrid.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Controls/ElementFormControlSelect.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Controls/ElementFormControlTextArea.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Controls/ElementTabSet.cpp
     ${PROJECT_SOURCE_DIR}/Source/Controls/ElementTextSelection.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Controls/XMLNodeHandlerTabSet.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Controls/DataQuery.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Controls/ElementForm.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Controls/InputType.cpp
     ${PROJECT_SOURCE_DIR}/Source/Controls/InputTypeButton.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Controls/InputTypeCheckbox.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Controls/InputTypeRadio.cpp
     ${PROJECT_SOURCE_DIR}/Source/Controls/InputTypeRange.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Controls/ElementDataGridCell.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Controls/ElementFormControl.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Controls/InputTypeSubmit.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Controls/InputTypeText.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Controls/SelectOption.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Controls/WidgetDropDown.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Controls/WidgetSlider.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Controls/WidgetSliderInput.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Controls/WidgetTextInput.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Controls/WidgetTextInputMultiLine.cpp
     ${PROJECT_SOURCE_DIR}/Source/Controls/WidgetTextInputSingleLine.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Controls/DataFormatter.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Controls/DataSource.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Controls/WidgetTextInputSingleLinePassword.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Controls/XMLNodeHandlerDataGrid.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Controls/XMLNodeHandlerTabSet.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Controls/XMLNodeHandlerTextArea.cpp
 )
 
 set(Debugger_HDR_FILES
+    ${PROJECT_SOURCE_DIR}/Source/Debugger/BeaconSource.h
+    ${PROJECT_SOURCE_DIR}/Source/Debugger/CommonSource.h
+    ${PROJECT_SOURCE_DIR}/Source/Debugger/ElementContextHook.h
+    ${PROJECT_SOURCE_DIR}/Source/Debugger/ElementInfo.h
     ${PROJECT_SOURCE_DIR}/Source/Debugger/ElementLog.h
-    ${PROJECT_SOURCE_DIR}/Source/Debugger/SystemInterface.h
+    ${PROJECT_SOURCE_DIR}/Source/Debugger/FontSource.h
+    ${PROJECT_SOURCE_DIR}/Source/Debugger/Geometry.h
     ${PROJECT_SOURCE_DIR}/Source/Debugger/InfoSource.h
-    ${PROJECT_SOURCE_DIR}/Source/Debugger/Plugin.h
     ${PROJECT_SOURCE_DIR}/Source/Debugger/LogSource.h
-    ${PROJECT_SOURCE_DIR}/Source/Debugger/ElementInfo.h
-    ${PROJECT_SOURCE_DIR}/Source/Debugger/BeaconSource.h
-    ${PROJECT_SOURCE_DIR}/Source/Debugger/Geometry.h
     ${PROJECT_SOURCE_DIR}/Source/Debugger/MenuSource.h
-    ${PROJECT_SOURCE_DIR}/Source/Debugger/ElementContextHook.h
-    ${PROJECT_SOURCE_DIR}/Source/Debugger/CommonSource.h
-    ${PROJECT_SOURCE_DIR}/Source/Debugger/FontSource.h
+    ${PROJECT_SOURCE_DIR}/Source/Debugger/Plugin.h
+    ${PROJECT_SOURCE_DIR}/Source/Debugger/SystemInterface.h
 )
 
 set(Debugger_PUB_HDR_FILES
-    ${PROJECT_SOURCE_DIR}/Include/Rocket/Debugger/Header.h
     ${PROJECT_SOURCE_DIR}/Include/Rocket/Debugger/Debugger.h
+    ${PROJECT_SOURCE_DIR}/Include/Rocket/Debugger/Header.h
     ${PROJECT_SOURCE_DIR}/Include/Rocket/Debugger.h
 )
 
 set(Debugger_SRC_FILES
-    ${PROJECT_SOURCE_DIR}/Source/Debugger/ElementInfo.cpp
     ${PROJECT_SOURCE_DIR}/Source/Debugger/Debugger.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Debugger/ElementLog.cpp
     ${PROJECT_SOURCE_DIR}/Source/Debugger/ElementContextHook.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Debugger/SystemInterface.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Debugger/Plugin.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Debugger/ElementInfo.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Debugger/ElementLog.cpp
     ${PROJECT_SOURCE_DIR}/Source/Debugger/Geometry.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Debugger/Plugin.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Debugger/SystemInterface.cpp
 )
 
 set(Pycore_HDR_FILES
     ${PROJECT_SOURCE_DIR}/Source/Core/Python/ContextDocumentProxy.h
-    ${PROJECT_SOURCE_DIR}/Source/Core/Python/EventListenerInstancer.h
-    ${PROJECT_SOURCE_DIR}/Source/Core/Python/ElementInterface.h
-    ${PROJECT_SOURCE_DIR}/Source/Core/Python/EventListener.h
-    ${PROJECT_SOURCE_DIR}/Source/Core/Python/Module.h
-    ${PROJECT_SOURCE_DIR}/Source/Core/Python/EventWrapper.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/Python/ContextInstancer.h
     ${PROJECT_SOURCE_DIR}/Source/Core/Python/ContextInterface.h
-    ${PROJECT_SOURCE_DIR}/Source/Core/Python/ElementStyleProxy.h
-    ${PROJECT_SOURCE_DIR}/Source/Core/Python/EventInterface.h
     ${PROJECT_SOURCE_DIR}/Source/Core/Python/ContextProxy.h
     ${PROJECT_SOURCE_DIR}/Source/Core/Python/Converters.h
-    ${PROJECT_SOURCE_DIR}/Source/Core/Python/ElementDocumentWrapper.h
-    ${PROJECT_SOURCE_DIR}/Source/Core/Python/precompiled.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/Python/DataSourceWrapper.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/Python/ElementAttributeProxy.h
     ${PROJECT_SOURCE_DIR}/Source/Core/Python/ElementChildrenProxy.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/Python/ElementDocumentWrapper.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/Python/ElementInterface.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/Python/ElementStyleProxy.h
     ${PROJECT_SOURCE_DIR}/Source/Core/Python/EventInstancer.h
-    ${PROJECT_SOURCE_DIR}/Source/Core/Python/ElementAttributeProxy.h
-    ${PROJECT_SOURCE_DIR}/Source/Core/Python/ContextInstancer.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/Python/EventInterface.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/Python/EventListener.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/Python/EventListenerInstancer.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/Python/EventWrapper.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/Python/Module.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/Python/precompiled.h
 )
 
 set(Pycore_PUB_HDR_FILES
-    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/Python/VectorInterface.h
-    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/Python/Wrapper.h
-    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/Python/NameIndexInterface.h
+    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/Python/ConverterScriptObject.h
     ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/Python/ElementInstancer.h
-    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/Python/PickleTypeConverter.h
     ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/Python/ElementWrapper.h
-    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/Python/Utilities.h
     ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/Python/Header.h
+    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/Python/NameIndexInterface.h
+    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/Python/PickleTypeConverter.h
     ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/Python/Python.h
+    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/Python/Utilities.h
+    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/Python/VectorInterface.h
+    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/Python/Wrapper.h
     ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/Python/WrapperIter.h
-    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/Python/ConverterScriptObject.h
 )
 
 set(Pycore_SRC_FILES
-    ${PROJECT_SOURCE_DIR}/Source/Core/Python/ElementChildrenProxy.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/Python/EventListenerInstancer.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/Python/EventListener.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/Python/Utilities.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/Python/ContextDocumentProxy.cpp
     ${PROJECT_SOURCE_DIR}/Source/Core/Python/ContextInstancer.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/Python/Interfaces.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/Python/precompiled.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/Python/ElementStyleProxy.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/Python/ContextInterface.cpp
     ${PROJECT_SOURCE_DIR}/Source/Core/Python/ContextProxy.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/Python/ElementDocumentWrapper.cpp
     ${PROJECT_SOURCE_DIR}/Source/Core/Python/Converters.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/Python/ContextInterface.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/Python/Module.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/Python/EventInstancer.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/Python/EventWrapper.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/Python/DataSourceWrapper.cpp
     ${PROJECT_SOURCE_DIR}/Source/Core/Python/ElementAttributeProxy.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Core/Python/ContextDocumentProxy.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/Python/ElementChildrenProxy.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/Python/ElementDocumentWrapper.cpp
     ${PROJECT_SOURCE_DIR}/Source/Core/Python/ElementInterface.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/Python/ElementStyleProxy.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/Python/EventInstancer.cpp
     ${PROJECT_SOURCE_DIR}/Source/Core/Python/EventInterface.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/Python/EventListener.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/Python/EventListenerInstancer.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/Python/EventWrapper.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/Python/Interfaces.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/Python/Module.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/Python/precompiled.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/Python/Utilities.cpp
 )
 
 set(Pycontrols_HDR_FILES
     ${PROJECT_SOURCE_DIR}/Source/Controls/Python/DataFormatterWrapper.h
+    ${PROJECT_SOURCE_DIR}/Source/Controls/Python/DataGridRowProxy.h
     ${PROJECT_SOURCE_DIR}/Source/Controls/Python/DataSourceWrapper.h
     ${PROJECT_SOURCE_DIR}/Source/Controls/Python/ElementInterface.h
     ${PROJECT_SOURCE_DIR}/Source/Controls/Python/Module.h
-    ${PROJECT_SOURCE_DIR}/Source/Controls/Python/SelectOptionProxy.h
     ${PROJECT_SOURCE_DIR}/Source/Controls/Python/precompiled.h
-    ${PROJECT_SOURCE_DIR}/Source/Controls/Python/DataGridRowProxy.h
+    ${PROJECT_SOURCE_DIR}/Source/Controls/Python/SelectOptionProxy.h
 )
 
 set(Pycontrols_PUB_HDR_FILES
 )
 
 set(Pycontrols_SRC_FILES
-    ${PROJECT_SOURCE_DIR}/Source/Controls/Python/precompiled.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Controls/Python/DataFormatterWrapper.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Controls/Python/DataGridRowProxy.cpp
     ${PROJECT_SOURCE_DIR}/Source/Controls/Python/DataSourceWrapper.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Controls/Python/ElementInterface.cpp
     ${PROJECT_SOURCE_DIR}/Source/Controls/Python/Module.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Controls/Python/precompiled.cpp
     ${PROJECT_SOURCE_DIR}/Source/Controls/Python/SelectOptionProxy.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Controls/Python/DataFormatterWrapper.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Controls/Python/ElementInterface.cpp
-    ${PROJECT_SOURCE_DIR}/Source/Controls/Python/DataGridRowProxy.cpp
+)
+
+set(Luacore_HDR_FILES
+    ${PROJECT_SOURCE_DIR}/Source/Core/Lua/Colourb.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/Lua/Colourf.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/Lua/Context.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/Lua/ContextDocumentsProxy.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/Lua/Document.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/Lua/Element.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/Lua/ElementAttributesProxy.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/Lua/ElementChildNodesProxy.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/Lua/ElementInstancer.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/Lua/ElementStyle.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/Lua/ElementText.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/Lua/Event.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/Lua/EventParametersProxy.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/Lua/GlobalLuaFunctions.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/Lua/Log.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/Lua/LuaDocument.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/Lua/LuaDocumentElementInstancer.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/Lua/LuaElement.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/Lua/LuaElementInstancer.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/Lua/LuaEventListener.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/Lua/LuaEventListenerInstancer.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/Lua/precompiled.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/Lua/Rocket.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/Lua/RocketContextsProxy.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/Lua/Vector2f.h
+    ${PROJECT_SOURCE_DIR}/Source/Core/Lua/Vector2i.h
+)
+
+set(Luacore_PUB_HDR_FILES
+    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/Lua/Header.h
+    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/Lua/Interpreter.h
+    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/Lua/LuaType.h
+    ${PROJECT_SOURCE_DIR}/Include/Rocket/Core/Lua/Utilities.h
+)
+
+set(Luacore_SRC_FILES
+    ${PROJECT_SOURCE_DIR}/Source/Core/Lua/Colourb.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/Lua/Colourf.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/Lua/Context.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/Lua/ContextDocumentsProxy.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/Lua/Document.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/Lua/Element.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/Lua/ElementAttributesProxy.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/Lua/ElementChildNodesProxy.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/Lua/ElementInstancer.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/Lua/ElementStyle.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/Lua/ElementText.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/Lua/Event.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/Lua/EventParametersProxy.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/Lua/GlobalLuaFunctions.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/Lua/Interpreter.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/Lua/Log.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/Lua/LuaDocument.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/Lua/LuaDocumentElementInstancer.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/Lua/LuaElementInstancer.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/Lua/LuaEventListener.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/Lua/LuaEventListenerInstancer.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/Lua/precompiled.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/Lua/Rocket.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/Lua/RocketContextsProxy.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/Lua/Utilities.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/Lua/Vector2f.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Core/Lua/Vector2i.cpp
+)
+
+set(Luacontrols_HDR_FILES
+    ${PROJECT_SOURCE_DIR}/Source/Controls/Lua/As.h
+    ${PROJECT_SOURCE_DIR}/Source/Controls/Lua/DataFormatter.h
+    ${PROJECT_SOURCE_DIR}/Source/Controls/Lua/DataSource.h
+    ${PROJECT_SOURCE_DIR}/Source/Controls/Lua/ElementDataGrid.h
+    ${PROJECT_SOURCE_DIR}/Source/Controls/Lua/ElementDataGridRow.h
+    ${PROJECT_SOURCE_DIR}/Source/Controls/Lua/ElementForm.h
+    ${PROJECT_SOURCE_DIR}/Source/Controls/Lua/ElementFormControl.h
+    ${PROJECT_SOURCE_DIR}/Source/Controls/Lua/ElementFormControlDataSelect.h
+    ${PROJECT_SOURCE_DIR}/Source/Controls/Lua/ElementFormControlInput.h
+    ${PROJECT_SOURCE_DIR}/Source/Controls/Lua/ElementFormControlSelect.h
+    ${PROJECT_SOURCE_DIR}/Source/Controls/Lua/ElementFormControlTextArea.h
+    ${PROJECT_SOURCE_DIR}/Source/Controls/Lua/ElementTabSet.h
+    ${PROJECT_SOURCE_DIR}/Source/Controls/Lua/LuaDataFormatter.h
+    ${PROJECT_SOURCE_DIR}/Source/Controls/Lua/LuaDataSource.h
+    ${PROJECT_SOURCE_DIR}/Source/Controls/Lua/precompiled.h
+    ${PROJECT_SOURCE_DIR}/Source/Controls/Lua/SelectOptionsProxy.h
+)
+
+set(Luacontrols_PUB_HDR_FILES
+    ${PROJECT_SOURCE_DIR}/Include/Rocket/Controls/Lua/Controls.h
+    ${PROJECT_SOURCE_DIR}/Include/Rocket/Controls/Lua/Header.h
+)
+
+set(Luacontrols_SRC_FILES
+    ${PROJECT_SOURCE_DIR}/Source/Controls/Lua/Controls.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Controls/Lua/DataFormatter.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Controls/Lua/DataSource.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Controls/Lua/ElementDataGrid.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Controls/Lua/ElementDataGridRow.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Controls/Lua/ElementForm.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Controls/Lua/ElementFormControl.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Controls/Lua/ElementFormControlDataSelect.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Controls/Lua/ElementFormControlInput.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Controls/Lua/ElementFormControlSelect.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Controls/Lua/ElementFormControlTextArea.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Controls/Lua/ElementTabSet.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Controls/Lua/LuaDataFormatter.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Controls/Lua/LuaDataSource.cpp
+    ${PROJECT_SOURCE_DIR}/Source/Controls/Lua/SelectOptionsProxy.cpp
 )
 

+ 102 - 90
Build/cmake/SampleFileList.cmake

@@ -19,14 +19,14 @@ set(directx_SRC_FILES
 )
 
 set(drag_HDR_FILES
-    ${PROJECT_SOURCE_DIR}/Samples/basic/drag/src/Inventory.h
     ${PROJECT_SOURCE_DIR}/Samples/basic/drag/src/DragListener.h
+    ${PROJECT_SOURCE_DIR}/Samples/basic/drag/src/Inventory.h
 )
 
 set(drag_SRC_FILES
-    ${PROJECT_SOURCE_DIR}/Samples/basic/drag/src/main.cpp
     ${PROJECT_SOURCE_DIR}/Samples/basic/drag/src/DragListener.cpp
     ${PROJECT_SOURCE_DIR}/Samples/basic/drag/src/Inventory.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/basic/drag/src/main.cpp
 )
 
 set(loaddocument_HDR_FILES
@@ -37,158 +37,170 @@ set(loaddocument_SRC_FILES
 )
 
 set(ogre3d_HDR_FILES
-    ${PROJECT_SOURCE_DIR}/Samples/basic/ogre3d/src/RocketApplication.h
     ${PROJECT_SOURCE_DIR}/Samples/basic/ogre3d/src/RenderInterfaceOgre3D.h
+    ${PROJECT_SOURCE_DIR}/Samples/basic/ogre3d/src/RocketApplication.h
     ${PROJECT_SOURCE_DIR}/Samples/basic/ogre3d/src/RocketFrameListener.h
     ${PROJECT_SOURCE_DIR}/Samples/basic/ogre3d/src/SystemInterfaceOgre3D.h
 )
 
 set(ogre3d_SRC_FILES
-    ${PROJECT_SOURCE_DIR}/Samples/basic/ogre3d/src/RenderInterfaceOgre3D.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/basic/ogre3d/src/SystemInterfaceOgre3D.cpp
     ${PROJECT_SOURCE_DIR}/Samples/basic/ogre3d/src/main.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/basic/ogre3d/src/RocketFrameListener.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/basic/ogre3d/src/RenderInterfaceOgre3D.cpp
     ${PROJECT_SOURCE_DIR}/Samples/basic/ogre3d/src/RocketApplication.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/basic/ogre3d/src/RocketFrameListener.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/basic/ogre3d/src/SystemInterfaceOgre3D.cpp
 )
 
 set(treeview_HDR_FILES
-    ${PROJECT_SOURCE_DIR}/Samples/basic/treeview/src/FileSystem.h
     ${PROJECT_SOURCE_DIR}/Samples/basic/treeview/src/FileFormatter.h
+    ${PROJECT_SOURCE_DIR}/Samples/basic/treeview/src/FileSystem.h
 )
 
 set(treeview_SRC_FILES
-    ${PROJECT_SOURCE_DIR}/Samples/basic/treeview/src/main.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/basic/treeview/src/FileSystem.cpp
     ${PROJECT_SOURCE_DIR}/Samples/basic/treeview/src/FileFormatter.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/basic/treeview/src/FileSystem.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/basic/treeview/src/main.cpp
 )
 
 set(invaders_HDR_FILES
+    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/DecoratorDefender.h
+    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/DecoratorInstancerDefender.h
+    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/DecoratorInstancerStarfield.h
+    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/DecoratorStarfield.h
+    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/Defender.h
     ${PROJECT_SOURCE_DIR}/Samples/invaders/src/ElementGame.h
+    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/Event.h
     ${PROJECT_SOURCE_DIR}/Samples/invaders/src/EventHandler.h
-    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/Invader.h
-    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/Shield.h
-    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/DecoratorInstancerStarfield.h
-    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/Mothership.h
-    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/EventManager.h
+    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/EventHandlerHighScore.h
     ${PROJECT_SOURCE_DIR}/Samples/invaders/src/EventHandlerOptions.h
-    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/DecoratorInstancerDefender.h
-    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/Defender.h
-    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/DecoratorStarfield.h
+    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/EventHandlerStartGame.h
+    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/EventInstancer.h
+    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/EventManager.h
     ${PROJECT_SOURCE_DIR}/Samples/invaders/src/Game.h
     ${PROJECT_SOURCE_DIR}/Samples/invaders/src/GameDetails.h
-    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/HighScoresNameFormatter.h
-    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/Event.h
     ${PROJECT_SOURCE_DIR}/Samples/invaders/src/HighScores.h
-    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/EventInstancer.h
-    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/DecoratorDefender.h
-    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/EventHandlerStartGame.h
-    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/EventHandlerHighScore.h
+    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/HighScoresNameFormatter.h
     ${PROJECT_SOURCE_DIR}/Samples/invaders/src/HighScoresShipFormatter.h
+    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/Invader.h
+    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/Mothership.h
+    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/Shield.h
     ${PROJECT_SOURCE_DIR}/Samples/invaders/src/Sprite.h
 )
 
 set(invaders_SRC_FILES
+    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/DecoratorDefender.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/DecoratorInstancerDefender.cpp
     ${PROJECT_SOURCE_DIR}/Samples/invaders/src/DecoratorInstancerStarfield.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/main.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/Invader.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/HighScoresShipFormatter.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/EventHandlerOptions.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/DecoratorStarfield.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/Defender.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/ElementGame.cpp
     ${PROJECT_SOURCE_DIR}/Samples/invaders/src/Event.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/Sprite.cpp
     ${PROJECT_SOURCE_DIR}/Samples/invaders/src/EventHandler.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/HighScoresNameFormatter.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/EventHandlerHighScore.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/EventHandlerOptions.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/EventHandlerStartGame.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/EventInstancer.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/EventManager.cpp
     ${PROJECT_SOURCE_DIR}/Samples/invaders/src/Game.cpp
     ${PROJECT_SOURCE_DIR}/Samples/invaders/src/GameDetails.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/DecoratorInstancerDefender.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/DecoratorStarfield.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/EventInstancer.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/HighScores.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/HighScoresNameFormatter.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/HighScoresShipFormatter.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/Invader.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/main.cpp
     ${PROJECT_SOURCE_DIR}/Samples/invaders/src/Mothership.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/EventHandlerHighScore.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/DecoratorDefender.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/ElementGame.cpp
     ${PROJECT_SOURCE_DIR}/Samples/invaders/src/Shield.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/EventManager.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/HighScores.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/EventHandlerStartGame.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/Defender.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/Sprite.cpp
+)
+
+set(luainvaders_HDR_FILES
+    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/DecoratorDefender.h
+    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/DecoratorInstancerDefender.h
+    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/DecoratorInstancerStarfield.h
+    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/DecoratorStarfield.h
+    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/Defender.h
+    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/ElementGame.h
+    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/ElementGameInstancer.h
+    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/Game.h
+    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/GameDetails.h
+    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/HighScores.h
+    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/Invader.h
+    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/LuaInterface.h
+    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/Mothership.h
+    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/PythonInterface.h
+    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/Shield.h
+    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/Sprite.h
+)
+
+set(luainvaders_SRC_FILES
+    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/DecoratorDefender.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/DecoratorInstancerDefender.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/DecoratorInstancerStarfield.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/DecoratorStarfield.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/Defender.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/ElementGame.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/ElementGameInstancer.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/Game.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/GameDetails.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/HighScores.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/Invader.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/LuaInterface.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/main.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/Mothership.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/PythonInterface.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/Shield.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/Sprite.cpp
 )
 
 set(pyinvaders_HDR_FILES
-    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/ElementGame.h
-    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/Invader.h
-    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/Shield.h
-    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/DecoratorInstancerStarfield.h
-    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/Mothership.h
+    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/DecoratorDefender.h
     ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/DecoratorInstancerDefender.h
-    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/Defender.h
+    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/DecoratorInstancerStarfield.h
     ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/DecoratorStarfield.h
+    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/Defender.h
+    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/ElementGame.h
     ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/Game.h
     ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/GameDetails.h
-    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/PythonInterface.h
     ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/HighScores.h
-    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/DecoratorDefender.h
+    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/Invader.h
+    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/Mothership.h
+    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/PythonInterface.h
+    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/Shield.h
     ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/Sprite.h
 )
 
 set(pyinvaders_SRC_FILES
+    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/DecoratorDefender.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/DecoratorInstancerDefender.cpp
     ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/DecoratorInstancerStarfield.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/main.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/Invader.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/Sprite.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/DecoratorStarfield.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/Defender.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/ElementGame.cpp
     ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/Game.cpp
     ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/GameDetails.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/DecoratorInstancerDefender.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/DecoratorStarfield.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/PythonInterface.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/HighScores.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/Invader.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/main.cpp
     ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/Mothership.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/DecoratorDefender.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/ElementGame.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/PythonInterface.cpp
     ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/Shield.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/HighScores.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/Defender.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/Sprite.cpp
 )
 
 set(shell_HDR_FILES
-    ${PROJECT_SOURCE_DIR}/Samples/shell/include/ShellSystemInterface.h
-    ${PROJECT_SOURCE_DIR}/Samples/shell/include/ShellFileInterface.h
-    ${PROJECT_SOURCE_DIR}/Samples/shell/include/ShellRenderInterfaceOpenGL.h
-    ${PROJECT_SOURCE_DIR}/Samples/shell/include/ShellOpenGL.h
     ${PROJECT_SOURCE_DIR}/Samples/shell/include/Input.h
     ${PROJECT_SOURCE_DIR}/Samples/shell/include/Shell.h
+    ${PROJECT_SOURCE_DIR}/Samples/shell/include/ShellFileInterface.h
+    ${PROJECT_SOURCE_DIR}/Samples/shell/include/ShellOpenGL.h
+    ${PROJECT_SOURCE_DIR}/Samples/shell/include/ShellRenderInterfaceOpenGL.h
+    ${PROJECT_SOURCE_DIR}/Samples/shell/include/ShellSystemInterface.h
 )
 
 set(shell_SRC_FILES
     ${PROJECT_SOURCE_DIR}/Samples/shell/src/Input.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/shell/src/Shell.cpp
     ${PROJECT_SOURCE_DIR}/Samples/shell/src/ShellFileInterface.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/shell/src/ShellSystemInterface.cpp
     ${PROJECT_SOURCE_DIR}/Samples/shell/src/ShellRenderInterfaceOpenGL.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/shell/src/Shell.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/shell/src/ShellSystemInterface.cpp
 )
 
-# Deal with platform specific sources for sample shell
-if(WIN32)
-	list(APPEND shell_SRC_FILES
-		${PROJECT_SOURCE_DIR}/Samples/shell/src/win32/ShellWin32.cpp
-		${PROJECT_SOURCE_DIR}/Samples/shell/src/win32/InputWin32.cpp
-	)
-	list(APPEND shell_HDR_FILES
-		${PROJECT_SOURCE_DIR}/Samples/shell/include/win32/InputWin32.h
-	)
-elseif(APPLE)
-	list(APPEND shell_SRC_FILES
-		${PROJECT_SOURCE_DIR}/Samples/shell/src/macosx/ShellMacOSX.cpp
-		${PROJECT_SOURCE_DIR}/Samples/shell/src/macosx/InputMacOSX.cpp
-	)
-	list(APPEND shell_HDR_FILES
-		${PROJECT_SOURCE_DIR}/Samples/shell/include/macosx/InputMacOSX.h
-	)
-else()
-	list(APPEND shell_SRC_FILES
-		${PROJECT_SOURCE_DIR}/Samples/shell/src/x11/ShellX11.cpp
-		${PROJECT_SOURCE_DIR}/Samples/shell/src/x11/InputX11.cpp
-	)
-	list(APPEND shell_HDR_FILES
-		${PROJECT_SOURCE_DIR}/Samples/shell/include/x11/InputX11.h
-	)
-endif()
-

+ 19 - 0
Build/cmake/gen_filelists.sh

@@ -9,6 +9,7 @@ srcdir='${PROJECT_SOURCE_DIR}'
 srcpath=Source
 hdrpath=Include/Rocket
 pypath=Python
+luapath=Lua
 
 printfiles() {
     # Print headers
@@ -42,6 +43,21 @@ printpyfiles() {
     echo -e ')\n' >>$file
 }
 
+printluafiles() {
+    # Print headers
+    echo ${hdr/lib/Lua${1,}} >>$file
+    find  $srcpath/$1/$luapath -iname "*.h" -exec echo '    '$srcdir/{} \; >>$file
+    echo -e ')\n' >>$file
+    # Print public headers
+    echo ${pubhdr/lib/Lua${1,}} >>$file
+    find  $hdrpath/$1/$luapath -iname "*.h" -exec echo '    '$srcdir/{} \; >>$file 2>/dev/null
+    echo -e ')\n' >>$file
+    # Print source files
+    echo ${src/lib/Lua${1,}} >>$file
+    find  $srcpath/$1/$luapath -iname "*.cpp" -exec echo '    '$srcdir/{} \; >>$file
+    echo -e ')\n' >>$file
+}
+
 pushd $basedir
 echo -e "# This file was auto-generated with gen_filelists.sh\n" >$file
 for lib in "Core" "Controls" "Debugger"; do
@@ -51,5 +67,8 @@ done
 for lib in "Core" "Controls"; do
     printpyfiles $lib
 done
+for lib in "Core" "Controls"; do
+    printluafiles $lib
+done
 popd
 

+ 1 - 1
Build/cmake/gen_samplelists.sh

@@ -7,7 +7,7 @@ hdr='set(sample_HDR_FILES'
 srcdir='${PROJECT_SOURCE_DIR}'
 srcpath=Samples
 samples=('basic/customlog' 'basic/directx' 'basic/drag' 'basic/loaddocument'
-        'basic/ogre3d' 'basic/treeview' 'invaders' 'pyinvaders' 'shell'
+        'basic/ogre3d' 'basic/treeview' 'invaders' 'luainvaders' 'pyinvaders' 'shell'
 )
 
 printfiles() {

+ 1 - 1
Include/Rocket/Controls/Lua/Controls.h

@@ -28,7 +28,7 @@
 #ifndef ROCKETCONTROLSLUACONTROLS_H
 #define ROCKETCONTROLSLUACONTROLS_H
 
-#include <Rocket/Core/Lua/Header.h>
+#include <Rocket/Controls/Lua/Header.h>
 
 namespace Rocket {
 namespace Controls {

+ 53 - 0
Include/Rocket/Controls/Lua/Header.h

@@ -0,0 +1,53 @@
+/*
+ * This source file is part of libRocket, the HTML/CSS Interface Middleware
+ *
+ * For the latest information, see http://www.librocket.com
+ *
+ * Copyright (c) 2008-2010 CodePoint Ltd, Shift Technology Ltd
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ * 
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ */
+ 
+#ifndef ROCKETCONTROLSLUAHEADER_H
+#define ROCKETCONTROLSLUAHEADER_H
+
+#include <Rocket/Core/Platform.h>
+
+#ifdef ROCKETLUA_API
+#undef ROCKETLUA_API
+#endif
+
+#if !defined STATIC_LIB
+	#ifdef ROCKET_PLATFORM_WIN32
+		#if defined RocketcoreLua_EXPORTS 
+			#define ROCKETLUA_API __declspec(dllexport)
+        #elif defined RocketcontrolsLua_EXPORTS
+            #define ROCKETLUA_API __declspec(dllexport)
+        #else
+			#define ROCKETLUA_API __declspec(dllimport)
+		#endif
+	#else
+		#define ROCKETLUA_API __attribute__((visibility("default")))
+	#endif
+#else
+	#define ROCKETLUA_API
+#endif
+
+#endif

+ 9 - 3
Include/Rocket/Core/Lua/Header.h

@@ -30,11 +30,17 @@
 
 #include <Rocket/Core/Platform.h>
 
+#ifdef ROCKETLUA_API
+#undef ROCKETLUA_API
+#endif
+
 #if !defined STATIC_LIB
 	#ifdef ROCKET_PLATFORM_WIN32
-		#ifdef RocketLua_EXPORTS
+		#if defined RocketcoreLua_EXPORTS 
 			#define ROCKETLUA_API __declspec(dllexport)
-		#else
+        #elif defined RocketcontrolsLua_EXPORTS
+            #define ROCKETLUA_API __declspec(dllexport)
+        #else
 			#define ROCKETLUA_API __declspec(dllimport)
 		#endif
 	#else
@@ -44,4 +50,4 @@
 	#define ROCKETLUA_API
 #endif
 
-#endif
+#endif

+ 1 - 1
Source/Controls/Lua/ElementFormControl.cpp

@@ -29,7 +29,7 @@
 #include "ElementFormControl.h"
 #include <Rocket/Controls/ElementFormControl.h>
 #include <Rocket/Core/Element.h>
-#include "Lua/Element.h"
+#include <Rocket/../../Source/Core/Lua/Element.h>
 #include <Rocket/Core/Lua/Utilities.h>
 
 template<> void Rocket::Core::Lua::ExtraInit<Rocket::Controls::ElementFormControl>(lua_State* L, int metatable_index)

+ 43 - 0
Source/Controls/Lua/precompiled.h

@@ -0,0 +1,43 @@
+/*
+ * This source file is part of libRocket, the HTML/CSS Interface Middleware
+ *
+ * For the latest information, see http://www.librocket.com
+ *
+ * Copyright (c) 2008-2010 CodePoint Ltd, Shift Technology Ltd
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ * 
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ *
+ */
+ 
+#ifndef ROCKETCORELUAPRECOMPILED_H
+#define ROCKETCORELUAPRECOMPILED_H
+
+#include <Rocket/Core/Core.h>
+#include <Rocket/Core/Debug.h>
+#include <Rocket/Controls/Controls.h>
+#include <Rocket/Core/Lua/LuaType.h>
+//We can't use LUATYPEDEFINE from LuaType.h due to namespace issues
+#define LUACONTROLSTYPEDEFINE(type,is_ref_counted) \
+    template<> const char* Rocket::Core::Lua::GetTClassName<type>() { return #type; } \
+    template<> Rocket::Core::Lua::RegType<type>* Rocket::Core::Lua::GetMethodTable<type>() { return Rocket::Controls::Lua::type##Methods; } \
+    template<> luaL_reg* Rocket::Core::Lua::GetAttrTable<type>() { return Rocket::Controls::Lua::type##Getters; } \
+    template<> luaL_reg* Rocket::Core::Lua::SetAttrTable<type>() { return Rocket::Controls::Lua::type##Setters; } \
+    template<> bool Rocket::Core::Lua::IsReferenceCounted<type>() { return (is_ref_counted); } \
+
+#endif