Browse Source

Merge branch 'upstream' into jcc

Conflicts:
	Build/CMakeLists.txt
	Build/cmake/FileList.cmake
	Build/cmake/SampleFileList.cmake
	Build/cmake/gen_samplelists.sh
John Clark 12 years ago
parent
commit
35da5b834d
100 changed files with 9611 additions and 910 deletions
  1. 11 4
      .gitignore
  2. 1 0
      Build/.gitignore
  3. 338 302
      Build/CMakeLists.txt
  4. 123 108
      Build/Rocket.xcodeproj/project.pbxproj
  5. 8 0
      Build/RocketCore.vcproj
  6. 398 396
      Build/cmake/FileList.cmake
  7. 129 85
      Build/cmake/SampleFileList.cmake
  8. 3 1
      Build/cmake/gen_samplelists.sh
  9. 6 0
      Build/vc2010/.gitignore
  10. 32 0
      Build/vc2010/README.txt
  11. 32 0
      Build/vc2010/Rocket.sln
  12. 505 0
      Build/vc2010/RocketControls.vcproj
  13. 165 0
      Build/vc2010/RocketControls.vcxproj
  14. 265 0
      Build/vc2010/RocketControls.vcxproj.filters
  15. 3 0
      Build/vc2010/RocketControls.vcxproj.user
  16. 1506 0
      Build/vc2010/RocketCore.vcproj
  17. 376 0
      Build/vc2010/RocketCore.vcxproj
  18. 996 0
      Build/vc2010/RocketCore.vcxproj.filters
  19. 3 0
      Build/vc2010/RocketCore.vcxproj.user
  20. 267 0
      Build/vc2010/RocketDebugger.vcproj
  21. 115 0
      Build/vc2010/RocketDebugger.vcxproj
  22. 85 0
      Build/vc2010/RocketDebugger.vcxproj.filters
  23. 3 0
      Build/vc2010/RocketDebugger.vcxproj.user
  24. 29 0
      Build/vc2010/vsprops/BuildConfigurationBase.props
  25. 70 0
      Build/vc2010/vsprops/BuildConfigurationBase.vsprops
  26. 7 0
      Build/vc2010/vsprops/BuildConfigurationDLL.props
  27. 7 0
      Build/vc2010/vsprops/BuildConfigurationDLL.vsprops
  28. 19 0
      Build/vc2010/vsprops/BuildConfigurationDLLDebug.props
  29. 17 0
      Build/vc2010/vsprops/BuildConfigurationDLLDebug.vsprops
  30. 19 0
      Build/vc2010/vsprops/BuildConfigurationDLLRelease.props
  31. 17 0
      Build/vc2010/vsprops/BuildConfigurationDLLRelease.vsprops
  32. 20 0
      Build/vc2010/vsprops/BuildConfigurationDebug.props
  33. 21 0
      Build/vc2010/vsprops/BuildConfigurationDebug.vsprops
  34. 21 0
      Build/vc2010/vsprops/BuildConfigurationRelease.props
  35. 20 0
      Build/vc2010/vsprops/BuildConfigurationRelease.vsprops
  36. 6 0
      Build/vc2012/.gitignore
  37. 32 0
      Build/vc2012/README.txt
  38. 32 0
      Build/vc2012/Rocket.sln
  39. 167 0
      Build/vc2012/RocketControls.vcxproj
  40. 265 0
      Build/vc2012/RocketControls.vcxproj.filters
  41. 378 0
      Build/vc2012/RocketCore.vcxproj
  42. 996 0
      Build/vc2012/RocketCore.vcxproj.filters
  43. 117 0
      Build/vc2012/RocketDebugger.vcxproj
  44. 85 0
      Build/vc2012/RocketDebugger.vcxproj.filters
  45. 29 0
      Build/vc2012/vsprops/BuildConfigurationBase.props
  46. 7 0
      Build/vc2012/vsprops/BuildConfigurationDLL.props
  47. 19 0
      Build/vc2012/vsprops/BuildConfigurationDLLDebug.props
  48. 19 0
      Build/vc2012/vsprops/BuildConfigurationDLLRelease.props
  49. 20 0
      Build/vc2012/vsprops/BuildConfigurationDebug.props
  50. 21 0
      Build/vc2012/vsprops/BuildConfigurationRelease.props
  51. 3 1
      Include/Rocket/Controls/ElementDataGridCell.h
  52. 2 0
      Include/Rocket/Controls/ElementDataGridRow.h
  53. 6 0
      Include/Rocket/Controls/ElementTabSet.h
  54. 43 0
      Include/Rocket/Core/Element.h
  55. 3 0
      Include/Rocket/Core/ElementDocument.h
  56. 5 0
      Include/Rocket/Core/FontDatabase.h
  57. 7 2
      Include/Rocket/Core/FontGlyph.h
  58. 9 1
      Include/Rocket/Core/Property.h
  59. 9 3
      Include/Rocket/Core/PropertySpecification.h
  60. 4 0
      Include/Rocket/Core/Python/Header.h
  61. 4 0
      Include/Rocket/Core/RenderInterface.h
  62. 19 0
      Include/Rocket/Core/String.h
  63. 4 2
      Include/Rocket/Core/StringBase.inl
  64. 1 1
      Include/Rocket/Core/StyleSheet.h
  65. 7 3
      Include/Rocket/Core/StyleSheetSpecification.h
  66. 11 0
      Include/Rocket/Core/URL.h
  67. 4 0
      Include/Rocket/Core/Variant.inl
  68. BIN
      Samples/assets/high_scores_alien_1.tga
  69. BIN
      Samples/assets/high_scores_alien_2.tga
  70. BIN
      Samples/assets/high_scores_alien_3.tga
  71. BIN
      Samples/assets/high_scores_defender.tga
  72. 2 0
      Samples/basic/customlog/src/main.cpp
  73. 1 0
      Samples/basic/drag/src/main.cpp
  74. 1 0
      Samples/basic/loaddocument/src/main.cpp
  75. 2 0
      Samples/basic/treeview/src/main.cpp
  76. 2 0
      Samples/invaders/src/main.cpp
  77. 10 0
      Samples/shell/include/ShellRenderInterfaceOpenGL.h
  78. 8 1
      Samples/shell/src/ShellRenderInterfaceOpenGL.cpp
  79. 29 0
      Samples/tutorial/datagrid/Datagrid.sln
  80. 191 0
      Samples/tutorial/datagrid/Datagrid.vcproj
  81. 65 0
      Samples/tutorial/datagrid/Datagrid.vcproj.user
  82. 63 0
      Samples/tutorial/datagrid/SConstruct
  83. 15 0
      Samples/tutorial/datagrid/data/template.rml
  84. 128 0
      Samples/tutorial/datagrid/data/tutorial.rcss
  85. 28 0
      Samples/tutorial/datagrid/data/tutorial.rml
  86. 10 0
      Samples/tutorial/datagrid/high_score.txt
  87. 70 0
      Samples/tutorial/datagrid/src/DecoratorDefender.cpp
  88. 46 0
      Samples/tutorial/datagrid/src/DecoratorDefender.h
  89. 51 0
      Samples/tutorial/datagrid/src/DecoratorInstancerDefender.cpp
  90. 41 0
      Samples/tutorial/datagrid/src/DecoratorInstancerDefender.h
  91. 115 0
      Samples/tutorial/datagrid/src/HighScores.cpp
  92. 50 0
      Samples/tutorial/datagrid/src/HighScores.h
  93. 102 0
      Samples/tutorial/datagrid/src/main.cpp
  94. 28 0
      Samples/tutorial/datagrid_tree/DatagridTree.sln
  95. 199 0
      Samples/tutorial/datagrid_tree/DatagridTree.vcproj
  96. 65 0
      Samples/tutorial/datagrid_tree/DatagridTree.vcproj.user
  97. 63 0
      Samples/tutorial/datagrid_tree/SConstruct
  98. 15 0
      Samples/tutorial/datagrid_tree/data/template.rml
  99. 128 0
      Samples/tutorial/datagrid_tree/data/tutorial.rcss
  100. 112 0
      Samples/tutorial/datagrid_tree/data/tutorial.rml

+ 11 - 4
.gitignore

@@ -1,4 +1,11 @@
-# Ignore compiled python code
-*.pyc
-# Ignore MacOSX directory info
-.DS_Store
+# Ignore compiled python code
+*.pyc
+# Ignore MacOSX directory info
+.DS_Store
+# VS user project files
+*.suo
+*.user
+*.opensdf
+bin/*
+
+/lib/

+ 1 - 0
Build/.gitignore

@@ -0,0 +1 @@
+/build/

+ 338 - 302
Build/CMakeLists.txt

@@ -1,92 +1,103 @@
-#===================================
-# Build script for libRocket =======
-#===================================
-
-if(APPLE)
-# We use the new OSX_ARCHITECTURES property
-cmake_minimum_required(VERSION 2.8.1)
-else()
-cmake_minimum_required(VERSION 2.6)
-endif()
-
-if(COMMAND cmake_policy)
-  cmake_policy(SET CMP0015 NEW)
-endif(COMMAND cmake_policy)
-
-project(libRocket C CXX)
-
-set(LIBROCKET_VERSION_MAJOR 1)
-set(LIBROCKET_VERSION_MINOR 2)
-set(LIBROCKET_VERSION_PATCH 1)
-set(PROJECT_VERSION ${LIBROCKET_VERSION_MAJOR}.${LIBROCKET_VERSION_MINOR}.${LIBROCKET_VERSION_PATCH})
-
-# Search in the 'cmake' directory for additional CMake modules.
-list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake)
-
-set(CMAKE_DEBUG_POSTFIX  "_d")
-
-#===================================
-# Environment tests ================
-#===================================
-
-include(TestForANSIForScope)
-include(TestForANSIStreamHeaders)
-include(TestForSTDNamespace)
-
-
-#===================================
-# Build options ====================
-#===================================
-
-if(NOT CMAKE_BUILD_TYPE)
-    set(CMAKE_BUILD_TYPE Release CACHE STRING
-        "Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel."
-        FORCE)
-endif()
-
-option(BUILD_SHARED_LIBS "Build shared libraries" ON)
-option(BUILD_PYTHON_BINDINGS "Build python bindings" OFF)
+#===================================
+# Build script for libRocket =======
+#===================================
+
+# We use the new OSX_ARCHITECTURES property
+# and GNUInstallDirs module
+cmake_minimum_required(VERSION 2.8.5)
+
+if(COMMAND cmake_policy)
+  cmake_policy(SET CMP0015 NEW)
+endif(COMMAND cmake_policy)
+
+project(libRocket C CXX)
+
+# paths
+include(GNUInstallDirs)
+
+set(LIBROCKET_VERSION_MAJOR 1)
+set(LIBROCKET_VERSION_MINOR 2)
+set(LIBROCKET_VERSION_PATCH 1)
+set(PROJECT_VERSION ${LIBROCKET_VERSION_MAJOR}.${LIBROCKET_VERSION_MINOR}.${LIBROCKET_VERSION_PATCH})
+
+# Search in the 'cmake' directory for additional CMake modules.
+list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake)
+
+set(CMAKE_DEBUG_POSTFIX  "_d")
+
+#===================================
+# Environment tests ================
+#===================================
+
+include(TestForANSIForScope)
+include(TestForANSIStreamHeaders)
+include(TestForSTDNamespace)
+
+
+#===================================
+# Build options ====================
+#===================================
+
+if(NOT CMAKE_BUILD_TYPE)
+    set(CMAKE_BUILD_TYPE Release CACHE STRING
+        "Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel."
+        FORCE)
+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)
-    add_definitions(-DSTATIC_LIB)
-endif()
-
-#===================================
-# Find dependencies ================
-#===================================
-
-# FreeType
-find_package(Freetype REQUIRED)	
-if(FREETYPE_FOUND)
-		include_directories(${FREETYPE_INCLUDE_DIRS})
-		link_directories(${FREETYPE_LINK_DIRS})
-		list(APPEND CORE_LINK_LIBS ${FREETYPE_LIBRARY})
-endif()
-mark_as_advanced(FREETYPE_INCLUDE_DIRS FREETYPE_LIBRARY FREETYPE_LINK_DIRECTORIES)
-
-# Boost and Python
-if(BUILD_PYTHON_BINDINGS)
-    find_package(PythonInterp REQUIRED)
-    find_package(PythonLibs REQUIRED)
-    execute_process(
-        COMMAND ${PYTHON_EXECUTABLE} -c "from distutils import sysconfig; print(sysconfig.get_python_lib(1,0,prefix=''))"
-        OUTPUT_VARIABLE PYTHON_INSTDIR
-        OUTPUT_STRIP_TRAILING_WHITESPACE
-    )
-    if(PYTHONLIBS_FOUND)
-        include_directories(${PYTHON_INCLUDE_DIR})
-    endif()
-
-    #set(Boost_USE_STATIC_LIBS OFF)
-    #set(Boost_USE_MULTITHREADED ON)
-    find_package(Boost 1.40.0 COMPONENTS python REQUIRED)
-    if(Boost_FOUND)
-        include_directories(${Boost_INCLUDE_DIR})
-        list(APPEND PY_BINDINGS_LINK_LIBS ${Boost_LIBRARIES})
-    endif()
-
+option(BUILD_SAMPLES "Build samples" OFF)
+
+if(NOT BUILD_SHARED_LIBS)
+    add_definitions(-DSTATIC_LIB)
+endif()
+
+#on windows, check for VC10 and fix the multiple compile target issue.
+IF(WIN32)
+  if(MSVC)
+    if(${MSVC_VERSION} STREQUAL 1600 OR ${MSVC_VERSION} STRGREATER 1600)
+      message("Visual Studio 2010 (${MSVC_VERSION}) build fix at play (/FORCE:MULTIPLE)")
+      set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /FORCE:MULTIPLE")
+    endif()
+  endif() 
+ENDIF(WIN32)
+
+
+#===================================
+# Find dependencies ================
+#===================================
+
+# FreeType
+find_package(Freetype REQUIRED)	
+if(FREETYPE_FOUND)
+		include_directories(${FREETYPE_INCLUDE_DIRS})
+		link_directories(${FREETYPE_LINK_DIRS})
+		list(APPEND CORE_LINK_LIBS ${FREETYPE_LIBRARY})
+endif()
+mark_as_advanced(FREETYPE_INCLUDE_DIRS FREETYPE_LIBRARY FREETYPE_LINK_DIRECTORIES)
+
+# Boost and Python
+if(BUILD_PYTHON_BINDINGS)
+    find_package(PythonInterp REQUIRED)
+    find_package(PythonLibs REQUIRED)
+    execute_process(
+        COMMAND ${PYTHON_EXECUTABLE} -c "from distutils import sysconfig; print(sysconfig.get_python_lib(1,0,prefix=''))"
+        OUTPUT_VARIABLE PYTHON_INSTDIR
+        OUTPUT_STRIP_TRAILING_WHITESPACE
+    )
+    if(PYTHONLIBS_FOUND)
+        include_directories(${PYTHON_INCLUDE_DIR})
+    endif()
+
+    #set(Boost_USE_STATIC_LIBS OFF)
+    #set(Boost_USE_MULTITHREADED ON)
+    find_package(Boost 1.40.0 COMPONENTS python REQUIRED)
+    if(Boost_FOUND)
+        include_directories(${Boost_INCLUDE_DIR})
+        list(APPEND PY_BINDINGS_LINK_LIBS ${Boost_LIBRARIES})
+    endif()
+
 endif()
 
 #Lua
@@ -96,70 +107,70 @@ if(BUILD_LUA_BINDINGS)
         include_directories(${LUA_INCLUDE_DIR})
         list(APPEND LUA_BINDINGS_LINK_LIBS ${LUA_LIBRARIES})
     endif()
-endif()
-
-
-#===================================
-# Setup paths ======================
-#===================================
-
-set(PROJECT_SOURCE_DIR ${PROJECT_SOURCE_DIR}/..)
-
-include_directories(
-    ${PROJECT_SOURCE_DIR}/Include
-)
-
-# Include list of source files
-include(FileList)
-
-#===================================
-# Build libraries ==================
-#===================================
-
-set(LIBRARIES Core Controls Debugger)
-
-foreach(library ${LIBRARIES})
-    set(NAME Rocket${library})
-
-    add_library(${NAME} ${${library}_SRC_FILES}
-                        ${${library}_HDR_FILES}
-                        ${${library}_PUB_HDR_FILES}
-    )
-
-    set_target_properties(${NAME} PROPERTIES
-                           VERSION ${PROJECT_VERSION}
-                           SOVERSION ${LIBROCKET_VERSION_MAJOR}
-    )
-    
-    if(APPLE)
-    	set_target_properties(${NAME} PROPERTIES
-    					OSX_ARCHITECTURES "i386;x86_64;"
-    	)
-    endif()
-
-    install(TARGETS ${NAME}
-            LIBRARY DESTINATION lib
-            ARCHIVE DESTINATION lib
-            RUNTIME DESTINATION bin
-    )
-endforeach(library)
-
-# Build python bindings
-if(BUILD_PYTHON_BINDINGS)
-    set(LIBRARIES core controls)
-
-    foreach(library ${LIBRARIES})
-        set(NAME _rocket${library})
-
-        add_library(${NAME} ${Py${library}_SRC_FILES}
-                            ${Py${library}_HDR_FILES}
-                            ${Py${library}_PUB_HDR_FILES}
-        )
-
-        set_target_properties(${NAME} PROPERTIES PREFIX "")
-
-        install(TARGETS ${NAME}
-                LIBRARY DESTINATION ${PYTHON_INSTDIR}
+endif()
+
+
+#===================================
+# Setup paths ======================
+#===================================
+
+set(PROJECT_SOURCE_DIR ${PROJECT_SOURCE_DIR}/..)
+
+include_directories(
+    ${PROJECT_SOURCE_DIR}/Include
+)
+
+# Include list of source files
+include(FileList)
+
+#===================================
+# Build libraries ==================
+#===================================
+
+set(LIBRARIES Core Controls Debugger)
+
+foreach(library ${LIBRARIES})
+    set(NAME Rocket${library})
+
+    add_library(${NAME} ${${library}_SRC_FILES}
+                        ${${library}_HDR_FILES}
+                        ${${library}_PUB_HDR_FILES}
+    )
+
+    set_target_properties(${NAME} PROPERTIES
+                           VERSION ${PROJECT_VERSION}
+                           SOVERSION ${LIBROCKET_VERSION_MAJOR}
+    )
+    
+    if(APPLE)
+    	set_target_properties(${NAME} PROPERTIES
+    					OSX_ARCHITECTURES "i386;x86_64;"
+    	)
+    endif()
+
+    install(TARGETS ${NAME}
+            LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+            ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
+            RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+    )
+endforeach(library)
+
+# Build python bindings
+if(BUILD_PYTHON_BINDINGS)
+    set(LIBRARIES core controls)
+
+    foreach(library ${LIBRARIES})
+        set(NAME _rocket${library})
+
+        add_library(${NAME} ${Py${library}_SRC_FILES}
+                            ${Py${library}_HDR_FILES}
+                            ${Py${library}_PUB_HDR_FILES}
+        )
+
+        set_target_properties(${NAME} PROPERTIES PREFIX "")
+
+        install(TARGETS ${NAME}
+                LIBRARY DESTINATION ${PYTHON_INSTDIR}
         )
     endforeach(library)
 endif()
@@ -182,127 +193,140 @@ if(BUILD_LUA_BINDINGS)
         )
         
         install(TARGETS ${NAME}
-            LIBRARY DESTINATION lib
-            ARCHIVE DESTINATION lib
-            RUNTIME DESTINATION bin
-        )
-    endforeach(library)
-endif()
-
-
-#===================================
-# Link libraries ===================
-#===================================
-
-target_link_libraries(RocketCore ${CORE_LINK_LIBS})
-target_link_libraries(RocketControls RocketCore)
-target_link_libraries(RocketDebugger RocketCore)
-
-if(BUILD_PYTHON_BINDINGS)
-    target_link_libraries(_rocketcore RocketCore ${PY_BINDINGS_LINK_LIBS})
-    target_link_libraries(_rocketcontrols RocketControls ${PY_BINDINGS_LINK_LIBS})
+            LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+            ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
+            RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+        )
+    endforeach(library)
+endif()
+
+
+#===================================
+# Link libraries ===================
+#===================================
+
+target_link_libraries(RocketCore ${CORE_LINK_LIBS})
+target_link_libraries(RocketControls RocketCore)
+target_link_libraries(RocketDebugger RocketCore)
+
+if(BUILD_PYTHON_BINDINGS)
+    target_link_libraries(_rocketcore RocketCore ${PY_BINDINGS_LINK_LIBS})
+    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 ====================
-#===================================
-
-# Build and link the samples
-macro(bl_sample NAME)
-	if (WIN32)
-    	add_executable(${NAME} WIN32 ${${NAME}_SRC_FILES} ${${NAME}_HDR_FILES} )
-	elseif(APPLE)
-		add_executable(${NAME} MACOSX_BUNDLE ${${NAME}_SRC_FILES} ${${NAME}_HDR_FILES} )
-    else()
-    	add_executable(${NAME} ${${NAME}_SRC_FILES} ${${NAME}_HDR_FILES} )
-    endif()
-    
-    if (APPLE)
-    	# We only support i386 for the samples as it still uses Carbon
-    	set_target_properties(${NAME} PROPERTIES OSX_ARCHITECTURES "i386;" )
-    endif()
-
-    target_link_libraries(${NAME} ${ARGN})
-endmacro()
-
-if(BUILD_SAMPLES)
-    include(SampleFileList)
-	set(samples treeview customlog drag loaddocument)
-    
-    set(sample_LIBRARIES
-    	shell 
-    	RocketCore 
-    	RocketControls
-    	RocketDebugger
-    )
-
-	# Find OpenGL 
-	find_package(OpenGL REQUIRED)
-    	   
-    if(OPENGL_FOUND)
-    	include_directories(${OPENGL_INCLUDE_DIR})
-        list(APPEND sample_LIBRARIES ${OPENGL_LIBRARIES})
-    endif()
-    
-    # Set up required system libraries
-    if(WIN32)
-		list(APPEND samples directx)
-    	list(APPEND sample_LIBRARIES d3d9 d3dx9)
-    elseif(APPLE)
-		include(FindCarbon)
-    	find_package(Carbon REQUIRED)
-    	
-    	if (Carbon_FOUND)
-    		include_directories(${Carbon_INCLUDE_DIR})
-        	list(APPEND sample_LIBRARIES ${Carbon_LIBRARIES})
-    	endif()
-    else()
-    	find_package(X11 REQUIRED)
-        if (X11_FOUND)
-        	list(APPEND sample_LIBRARIES ${X11_LIBRARIES})
-        endif()
-    endif()
-   
-    set(SAMPLES_DIR opt/Rocket/Samples)
-
-    # The samples use the shell library
-    include_directories(${PROJECT_SOURCE_DIR}/Samples/shell/include)
-
-    # Build and install sample shell library
-    add_library(shell STATIC ${shell_SRC_FILES} ${shell_HDR_FILES})
-    if (APPLE)
-    	# We only support i386 for the samples as it still uses Carbon
-    	set_target_properties(shell PROPERTIES OSX_ARCHITECTURES "i386;")
-    endif()
-
-    install(TARGETS shell
-            LIBRARY DESTINATION lib
-            ARCHIVE DESTINATION lib
-    )
-
-    # Build and install the basic samples
-    foreach(sample ${samples})
-        bl_sample(${sample} ${sample_LIBRARIES})
-
-        # The samples always set this as their current working directory
-        install(DIRECTORY DESTINATION ${SAMPLES_DIR}/basic/${sample})
-        install(TARGETS ${sample} 
-        	RUNTIME DESTINATION ${SAMPLES_DIR}/${sample}
-        	BUNDLE DESTINATION ${SAMPLES_DIR})
-    endforeach()
-
-    # Build and install invaders sample
-    bl_sample(invaders ${sample_LIBRARIES})
-    install(DIRECTORY DESTINATION ${SAMPLES_DIR}/invaders)
-    install(TARGETS invaders 
-    	RUNTIME DESTINATION ${SAMPLES_DIR}/invaders
-    	BUNDLE DESTINATION ${SAMPLES_DIR})
+endif()
+
+
+#===================================
+# Build samples ====================
+#===================================
+
+# Build and link the samples
+macro(bl_sample NAME)
+	if (WIN32)
+    	add_executable(${NAME} WIN32 ${${NAME}_SRC_FILES} ${${NAME}_HDR_FILES} )
+	elseif(APPLE)
+		add_executable(${NAME} MACOSX_BUNDLE ${${NAME}_SRC_FILES} ${${NAME}_HDR_FILES} )
+    else()
+    	add_executable(${NAME} ${${NAME}_SRC_FILES} ${${NAME}_HDR_FILES} )
+    endif()
+    
+    if (APPLE)
+    	# We only support i386 for the samples as it still uses Carbon
+    	set_target_properties(${NAME} PROPERTIES OSX_ARCHITECTURES "i386;" )
+    endif()
+
+    target_link_libraries(${NAME} ${ARGN})
+endmacro()
+
+if(BUILD_SAMPLES)
+    include(SampleFileList)
+
+    set(samples treeview customlog drag loaddocument)
+    set(tutorials template datagrid datagrid_tree tutorial_drag)
+    
+    set(sample_LIBRARIES
+    	shell 
+    	RocketCore 
+    	RocketControls
+    	RocketDebugger
+    )
+
+	# Find OpenGL 
+	find_package(OpenGL REQUIRED)
+    	   
+    if(OPENGL_FOUND)
+	include_directories(${OPENGL_INCLUDE_DIR})
+	list(APPEND sample_LIBRARIES ${OPENGL_LIBRARIES})
+    endif()
+    
+    # Set up required system libraries
+    if(WIN32)
+		list(APPEND samples directx)
+    	list(APPEND sample_LIBRARIES d3d9 d3dx9)
+    elseif(APPLE)
+		include(FindCarbon)
+    	find_package(Carbon REQUIRED)
+    	
+    	if (Carbon_FOUND)
+    		include_directories(${Carbon_INCLUDE_DIR})
+        	list(APPEND sample_LIBRARIES ${Carbon_LIBRARIES})
+    	endif()
+    else()
+    	find_package(X11 REQUIRED)
+        if (X11_FOUND)
+        	list(APPEND sample_LIBRARIES ${X11_LIBRARIES})
+        endif()
+    endif()
+   
+    set(SAMPLES_DIR opt/Rocket/Samples CACHE PATH "path to samples dir")
+
+    # The samples and tutorials use the shell library
+    include_directories(${PROJECT_SOURCE_DIR}/Samples/shell/include)
+
+    # Build and install sample shell library
+    add_library(shell STATIC ${shell_SRC_FILES} ${shell_HDR_FILES})
+    if (APPLE)
+    	# We only support i386 for the samples as it still uses Carbon
+    	set_target_properties(shell PROPERTIES OSX_ARCHITECTURES "i386;")
+    endif()
+
+    install(TARGETS shell
+            LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+            ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
+    )
+
+    # Build and install the basic samples
+    foreach(sample ${samples})
+        bl_sample(${sample} ${sample_LIBRARIES})
+
+        # The samples always set this as their current working directory
+        install(DIRECTORY DESTINATION ${SAMPLES_DIR}/basic/${sample})
+        install(TARGETS ${sample} 
+        	RUNTIME DESTINATION ${SAMPLES_DIR}/${sample}
+        	BUNDLE DESTINATION ${SAMPLES_DIR})
+    endforeach()
+
+    # Build and install the tutorials
+    foreach(tutorial ${tutorials})
+        bl_sample(${tutorial} ${sample_LIBRARIES})
+
+        # The tutorials always set this as their current working directory
+        install(DIRECTORY DESTINATION ${SAMPLES_DIR}/tutorial/${tutorial})
+        install(TARGETS ${tutorial}
+                RUNTIME DESTINATION ${SAMPLES_DIR}/${tutorial}
+                BUNDLE DESTINATION ${SAMPLES_DIR})
+    endforeach()
+
+    # Build and install invaders sample
+    bl_sample(invaders ${sample_LIBRARIES})
+    install(DIRECTORY DESTINATION ${SAMPLES_DIR}/invaders)
+    install(TARGETS invaders 
+    	RUNTIME DESTINATION ${SAMPLES_DIR}/invaders
+    	BUNDLE DESTINATION ${SAMPLES_DIR})
     
     if(BUILD_LUA_BINDINGS)
         bl_sample(luainvaders RocketcoreLua RocketcontrolsLua ${sample_LIBRARIES} ${LUA_BINDINGS_LINK_LIBS})
@@ -311,26 +335,26 @@ if(BUILD_SAMPLES)
         	RUNTIME DESTINATION ${SAMPLES_DIR}/luainvaders
         	BUNDLE DESTINATION ${SAMPLES_DIR})
     endif()
-endif()
-
-
-#===================================
-# Installation =====================
-#===================================
-
-if(BUILD_PYTHON_BINDINGS)
-    install(FILES ${PROJECT_SOURCE_DIR}/bin/rocket.py
-            DESTINATION ${PYTHON_INSTDIR}
-    )
-    install(DIRECTORY ${PROJECT_SOURCE_DIR}/Include/Rocket
-            DESTINATION include
+endif()
+
+
+#===================================
+# Installation =====================
+#===================================
+
+if(BUILD_PYTHON_BINDINGS)
+    install(FILES ${PROJECT_SOURCE_DIR}/bin/rocket.py
+            DESTINATION ${PYTHON_INSTDIR}
+    )
+    install(DIRECTORY ${PROJECT_SOURCE_DIR}/Include/Rocket
+            DESTINATION include
             PATTERN "Lua" EXCLUDE
-    )
+    )
 endif()
 if(BUILD_LUA_BINDINGS)
-    install(DIRECTORY ${PROJECT_SOURCE_DIR}/Include/Rocket
-            DESTINATION include
-            PATTERN "Python" EXCLUDE
+    install(DIRECTORY ${PROJECT_SOURCE_DIR}/Include/Rocket
+            DESTINATION include
+            PATTERN "Python" EXCLUDE
     )
 endif()
 if(NOT BUILD_LUA_BINDINGS AND NOT BUILD_PYTHON_BINDINGS)
@@ -338,22 +362,34 @@ if(NOT BUILD_LUA_BINDINGS AND NOT BUILD_PYTHON_BINDINGS)
             DESTINATION include
             PATTERN "Python" EXCLUDE
             PATTERN "Lua" EXCLUDE
-    )
-endif()
-
-if(BUILD_SAMPLES)
-    install(DIRECTORY ${PROJECT_SOURCE_DIR}/Samples/basic/treeview/data
-            DESTINATION ${SAMPLES_DIR}/basic/treeview
-    )
-    install(DIRECTORY ${PROJECT_SOURCE_DIR}/Samples/basic/drag/data
-            DESTINATION ${SAMPLES_DIR}/basic/drag
-    )
-    install(DIRECTORY ${PROJECT_SOURCE_DIR}/Samples/invaders/data
-            DESTINATION ${SAMPLES_DIR}/invaders
-    )
-    install(DIRECTORY ${PROJECT_SOURCE_DIR}/Samples/assets
-            DESTINATION ${SAMPLES_DIR}
-    )
+    )
+endif()
+
+if(BUILD_SAMPLES)
+    install(DIRECTORY ${PROJECT_SOURCE_DIR}/Samples/tutorial/template/data
+            DESTINATION ${SAMPLES_DIR}/tutorial/template
+    )
+    install(DIRECTORY ${PROJECT_SOURCE_DIR}/Samples/tutorial/datagrid/data
+            DESTINATION ${SAMPLES_DIR}/tutorial/datagrid
+    )
+    install(DIRECTORY ${PROJECT_SOURCE_DIR}/Samples/tutorial/datagrid_tree/data
+            DESTINATION ${SAMPLES_DIR}/tutorial/datagrid_tree
+    )
+    install(DIRECTORY ${PROJECT_SOURCE_DIR}/Samples/tutorial/tutorial_drag/data
+            DESTINATION ${SAMPLES_DIR}/tutorial/tutorial_drag
+    )
+    install(DIRECTORY ${PROJECT_SOURCE_DIR}/Samples/basic/treeview/data
+            DESTINATION ${SAMPLES_DIR}/basic/treeview
+    )
+    install(DIRECTORY ${PROJECT_SOURCE_DIR}/Samples/basic/drag/data
+            DESTINATION ${SAMPLES_DIR}/basic/drag
+    )
+    install(DIRECTORY ${PROJECT_SOURCE_DIR}/Samples/invaders/data
+            DESTINATION ${SAMPLES_DIR}/invaders
+    )
+    install(DIRECTORY ${PROJECT_SOURCE_DIR}/Samples/assets
+            DESTINATION ${SAMPLES_DIR}
+    )
     if(BUILD_LUA_BINDINGS)
     install(DIRECTORY ${PROJECT_SOURCE_DIR}/Samples/luainvaders/data 
             DESTINATION ${SAMPLES_DIR}/luainvaders
@@ -362,4 +398,4 @@ if(BUILD_SAMPLES)
             DESTINATION ${SAMPLES_DIR}/luainvaders
     )
     endif()
-endif()
+endif()

+ 123 - 108
Build/Rocket.xcodeproj/project.pbxproj

@@ -7,6 +7,14 @@
 	objects = {
 
 /* Begin PBXBuildFile section */
+		6E2C557416AA3EA9007E581B /* ElementStyle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6E2C557016AA3EA9007E581B /* ElementStyle.cpp */; };
+		6E2C557516AA3EA9007E581B /* ElementStyle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6E2C557016AA3EA9007E581B /* ElementStyle.cpp */; };
+		6E2C557616AA3EA9007E581B /* ElementStyle.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2C557116AA3EA9007E581B /* ElementStyle.h */; };
+		6E2C557716AA3EA9007E581B /* ElementStyle.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2C557116AA3EA9007E581B /* ElementStyle.h */; };
+		6E2C557816AA3EA9007E581B /* ElementStyleCache.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6E2C557216AA3EA9007E581B /* ElementStyleCache.cpp */; };
+		6E2C557916AA3EA9007E581B /* ElementStyleCache.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6E2C557216AA3EA9007E581B /* ElementStyleCache.cpp */; };
+		6E2C557A16AA3EA9007E581B /* ElementStyleCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2C557316AA3EA9007E581B /* ElementStyleCache.h */; };
+		6E2C557B16AA3EA9007E581B /* ElementStyleCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 6E2C557316AA3EA9007E581B /* ElementStyleCache.h */; };
 		6E8B1CB6123AB0CC00C451C8 /* Clipboard.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6E8B1C2D123AB0CC00C451C8 /* Clipboard.cpp */; };
 		6E8B1CB7123AB0CC00C451C8 /* Controls.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6E8B1C2E123AB0CC00C451C8 /* Controls.cpp */; };
 		6E8B1CB8123AB0CC00C451C8 /* DataFormatter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6E8B1C2F123AB0CC00C451C8 /* DataFormatter.cpp */; };
@@ -81,7 +89,6 @@
 		6E8B1E03123ABCC200C451C8 /* ElementInstancer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6EF28D3612058A45000FAF17 /* ElementInstancer.cpp */; };
 		6E8B1E04123ABCC200C451C8 /* ElementReference.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6EF28D3712058A45000FAF17 /* ElementReference.cpp */; };
 		6E8B1E05123ABCC200C451C8 /* ElementScroll.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6EF28D3812058A45000FAF17 /* ElementScroll.cpp */; };
-		6E8B1E06123ABCC200C451C8 /* ElementStyle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6EF28D3912058A45000FAF17 /* ElementStyle.cpp */; };
 		6E8B1E07123ABCC200C451C8 /* ElementText.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6EF28D3B12058A45000FAF17 /* ElementText.cpp */; };
 		6E8B1E08123ABCC200C451C8 /* ElementTextDefault.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6EF28D3C12058A45000FAF17 /* ElementTextDefault.cpp */; };
 		6E8B1E09123ABCC200C451C8 /* ElementUtilities.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6EF28D3E12058A45000FAF17 /* ElementUtilities.cpp */; };
@@ -270,7 +277,6 @@
 		6EF28E6212058A45000FAF17 /* ElementInstancer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6EF28D3612058A45000FAF17 /* ElementInstancer.cpp */; };
 		6EF28E6312058A45000FAF17 /* ElementReference.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6EF28D3712058A45000FAF17 /* ElementReference.cpp */; };
 		6EF28E6412058A45000FAF17 /* ElementScroll.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6EF28D3812058A45000FAF17 /* ElementScroll.cpp */; };
-		6EF28E6512058A45000FAF17 /* ElementStyle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6EF28D3912058A45000FAF17 /* ElementStyle.cpp */; };
 		6EF28E6712058A45000FAF17 /* ElementText.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6EF28D3B12058A45000FAF17 /* ElementText.cpp */; };
 		6EF28E6812058A45000FAF17 /* ElementTextDefault.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6EF28D3C12058A45000FAF17 /* ElementTextDefault.cpp */; };
 		6EF28E6A12058A45000FAF17 /* ElementUtilities.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6EF28D3E12058A45000FAF17 /* ElementUtilities.cpp */; };
@@ -497,6 +503,10 @@
 /* End PBXContainerItemProxy section */
 
 /* Begin PBXFileReference section */
+		6E2C557016AA3EA9007E581B /* ElementStyle.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ElementStyle.cpp; path = ../Source/Core/ElementStyle.cpp; sourceTree = "<group>"; };
+		6E2C557116AA3EA9007E581B /* ElementStyle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ElementStyle.h; path = ../Source/Core/ElementStyle.h; sourceTree = "<group>"; };
+		6E2C557216AA3EA9007E581B /* ElementStyleCache.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ElementStyleCache.cpp; path = ../Source/Core/ElementStyleCache.cpp; sourceTree = "<group>"; };
+		6E2C557316AA3EA9007E581B /* ElementStyleCache.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ElementStyleCache.h; path = ../Source/Core/ElementStyleCache.h; sourceTree = "<group>"; };
 		6E8B1B0C123A0E2A00C451C8 /* libRocketCoreiOS.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libRocketCoreiOS.a; sourceTree = BUILT_PRODUCTS_DIR; };
 		6E8B1BF0123AAEE200C451C8 /* libRocketControlsiOS.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libRocketControlsiOS.a; sourceTree = BUILT_PRODUCTS_DIR; };
 		6E8B1C2D123AB0CC00C451C8 /* Clipboard.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Clipboard.cpp; path = ../Source/Controls/Clipboard.cpp; sourceTree = SOURCE_ROOT; };
@@ -625,7 +635,6 @@
 		6EF28D3612058A45000FAF17 /* ElementInstancer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ElementInstancer.cpp; path = ../Source/Core/ElementInstancer.cpp; sourceTree = SOURCE_ROOT; };
 		6EF28D3712058A45000FAF17 /* ElementReference.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ElementReference.cpp; path = ../Source/Core/ElementReference.cpp; sourceTree = SOURCE_ROOT; };
 		6EF28D3812058A45000FAF17 /* ElementScroll.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ElementScroll.cpp; path = ../Source/Core/ElementScroll.cpp; sourceTree = SOURCE_ROOT; };
-		6EF28D3912058A45000FAF17 /* ElementStyle.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ElementStyle.cpp; path = ../Source/Core/ElementStyle.cpp; sourceTree = SOURCE_ROOT; };
 		6EF28D3B12058A45000FAF17 /* ElementText.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ElementText.cpp; path = ../Source/Core/ElementText.cpp; sourceTree = SOURCE_ROOT; };
 		6EF28D3C12058A45000FAF17 /* ElementTextDefault.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ElementTextDefault.cpp; path = ../Source/Core/ElementTextDefault.cpp; sourceTree = SOURCE_ROOT; };
 		6EF28D3E12058A45000FAF17 /* ElementUtilities.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ElementUtilities.cpp; path = ../Source/Core/ElementUtilities.cpp; sourceTree = SOURCE_ROOT; };
@@ -874,91 +883,27 @@
 		6E8B1BD8123AABCD00C451C8 /* Core */ = {
 			isa = PBXGroup;
 			children = (
+				6E9D09261209823B00099E1A /* BaseXMLParser.cpp */,
 				6EF3BBA912481DD40014316D /* BaseXMLParser.h */,
+				6EF28B78120580DA000FAF17 /* Box.cpp */,
 				6EF3BBAA12481DD40014316D /* Box.h */,
+				6EF28D0312058A45000FAF17 /* Clock.cpp */,
 				6EF3BBAB12481DD40014316D /* Colour.h */,
 				6EF3BBAC12481DD40014316D /* Colour.inl */,
-				6EF3BBAD12481DD40014316D /* Context.h */,
-				6EF3BBAE12481DD40014316D /* ContextInstancer.h */,
-				6EF3BBAF12481DD40014316D /* ConvolutionFilter.h */,
-				6EF3BBB012481DD40014316D /* Core.h */,
-				6EF3BBB112481DD40014316D /* Debug.h */,
-				6EF3BBB212481DD40014316D /* Decorator.h */,
-				6EF3BBB312481DD40014316D /* DecoratorInstancer.h */,
-				6EF3BBB412481DD40014316D /* Dictionary.h */,
-				6EF3BBB512481DD40014316D /* Dictionary.inl */,
-				6EF3BBB612481DD40014316D /* Element.h */,
-				6EF3BBB712481DD40014316D /* Element.inl */,
-				6EF3BBB812481DD40014316D /* ElementDocument.h */,
-				6EF3BBB912481DD40014316D /* ElementInstancer.h */,
-				6EF3BBBA12481DD40014316D /* ElementInstancerGeneric.h */,
-				6EF3BBBB12481DD40014316D /* ElementInstancerGeneric.inl */,
-				6EF3BBBC12481DD40014316D /* ElementReference.h */,
-				6EF3BBBD12481DD40014316D /* ElementScroll.h */,
-				6EF3BBBE12481DD40014316D /* ElementText.h */,
-				6EF3BBBF12481DD40014316D /* ElementUtilities.h */,
-				6EF3BBC012481DD40014316D /* Event.h */,
-				6EF3BBC112481DD40014316D /* EventInstancer.h */,
-				6EF3BBC212481DD40014316D /* EventListener.h */,
-				6EF3BBC312481DD40014316D /* EventListenerInstancer.h */,
-				6EF3BBC412481DD40014316D /* Factory.h */,
-				6EF3BBC512481DD40014316D /* FileInterface.h */,
-				6EF3BBC612481DD40014316D /* Font.h */,
-				6EF3BBC712481DD40014316D /* FontDatabase.h */,
-				6EF3BBC812481DD40014316D /* FontEffect.h */,
-				6EF3BBC912481DD40014316D /* FontEffectInstancer.h */,
-				6EF3BBCA12481DD40014316D /* FontGlyph.h */,
-				6EF3BBCB12481DD40014316D /* Geometry.h */,
-				6EF3BBCC12481DD40014316D /* GeometryUtilities.h */,
-				6EF3BBCD12481DD40014316D /* Header.h */,
-				6EF3BBCE12481DD40014316D /* Input.h */,
-				6EF3BBCF12481DD40014316D /* Log.h */,
-				6EF3BBD012481DD40014316D /* Math.h */,
-				6EF3BBD112481DD40014316D /* MathTypes.h */,
-				6EF3BBD212481DD40014316D /* Platform.h */,
-				6EF3BBD312481DD40014316D /* Plugin.h */,
-				6EF3BBD512481DD40014316D /* Pool.inl */,
-				6EF3BBD612481DD40014316D /* Property.h */,
-				6EF3BBD712481DD40014316D /* PropertyDefinition.h */,
-				6EF3BBD812481DD40014316D /* PropertyDictionary.h */,
-				6EF3BBD912481DD40014316D /* PropertyParser.h */,
-				6EF3BBDA12481DD40014316D /* PropertySpecification.h */,
-				6EF3BBE712481DD40014316D /* ReferenceCountable.h */,
-				6EF3BBE812481DD40014316D /* RenderInterface.h */,
-				6EF3BBE912481DD40014316D /* ScriptInterface.h */,
-				6EF3BBEA12481DD40014316D /* Stream.h */,
-				6EF3BBEB12481DD40014316D /* StreamMemory.h */,
-				6EF3BBEC12481DD40014316D /* String.h */,
-				6EF3BBED12481DD40014316D /* StringBase.h */,
-				6EF3BBEE12481DD40014316D /* StringBase.inl */,
-				6EF3BBF012481DD40014316D /* StringUtilities.h */,
-				6EF3BBF112481DD40014316D /* StyleSheet.h */,
-				6EF3BBF212481DD40014316D /* StyleSheetKeywords.h */,
-				6EF3BBF312481DD40014316D /* StyleSheetSpecification.h */,
-				6EF3BBF412481DD40014316D /* SystemInterface.h */,
-				6EF3BBF512481DD40014316D /* Texture.h */,
-				6EF3BBF612481DD40014316D /* TypeConverter.h */,
-				6EF3BBF712481DD40014316D /* TypeConverter.inl */,
-				6EF3BBF812481DD40014316D /* Types.h */,
-				6EF3BBF912481DD40014316D /* URL.h */,
-				6EF3BBFA12481DD40014316D /* Variant.h */,
-				6EF3BBFB12481DD40014316D /* Variant.inl */,
-				6EF3BBFC12481DD40014316D /* Vector2.h */,
-				6EF3BBFD12481DD40014316D /* Vector2.inl */,
-				6EF3BBFE12481DD40014316D /* Vertex.h */,
-				6EF3BBFF12481DD40014316D /* WString.h */,
-				6EF3BC0012481DD40014316D /* XMLNodeHandler.h */,
-				6EF3BC0112481DD40014316D /* XMLParser.h */,
-				6E9D09261209823B00099E1A /* BaseXMLParser.cpp */,
-				6EF28B78120580DA000FAF17 /* Box.cpp */,
-				6EF28D0312058A45000FAF17 /* Clock.cpp */,
 				6EF28D0512058A45000FAF17 /* Context.cpp */,
+				6EF3BBAD12481DD40014316D /* Context.h */,
 				6EF28D0612058A45000FAF17 /* ContextInstancer.cpp */,
+				6EF3BBAE12481DD40014316D /* ContextInstancer.h */,
 				6EF28D0712058A45000FAF17 /* ContextInstancerDefault.cpp */,
 				6EF28D0912058A45000FAF17 /* ConvolutionFilter.cpp */,
+				6EF3BBAF12481DD40014316D /* ConvolutionFilter.h */,
 				6EF28D0A12058A45000FAF17 /* Core.cpp */,
+				6EF3BBB012481DD40014316D /* Core.h */,
+				6EF3BBB112481DD40014316D /* Debug.h */,
 				6EF28D0C12058A45000FAF17 /* Decorator.cpp */,
+				6EF3BBB212481DD40014316D /* Decorator.h */,
 				6EF28D0D12058A45000FAF17 /* DecoratorInstancer.cpp */,
+				6EF3BBB312481DD40014316D /* DecoratorInstancer.h */,
 				6EF28D0E12058A45000FAF17 /* DecoratorNone.cpp */,
 				6EF28D1012058A45000FAF17 /* DecoratorNoneInstancer.cpp */,
 				6EF28D1212058A45000FAF17 /* DecoratorTiled.cpp */,
@@ -972,33 +917,58 @@
 				6EF28D2212058A45000FAF17 /* DecoratorTiledVertical.cpp */,
 				6EF28D2412058A45000FAF17 /* DecoratorTiledVerticalInstancer.cpp */,
 				6E9D09271209823B00099E1A /* Dictionary.cpp */,
+				6EF3BBB412481DD40014316D /* Dictionary.h */,
+				6EF3BBB512481DD40014316D /* Dictionary.inl */,
 				6EF28D2612058A45000FAF17 /* DocumentHeader.cpp */,
 				6EF28D2812058A45000FAF17 /* Element.cpp */,
+				6EF3BBB612481DD40014316D /* Element.h */,
+				6EF3BBB712481DD40014316D /* Element.inl */,
 				6EF28D2912058A45000FAF17 /* ElementBackground.cpp */,
 				6EF28D2B12058A45000FAF17 /* ElementBorder.cpp */,
 				6EF28D2D12058A45000FAF17 /* ElementDecoration.cpp */,
 				6EF28D2F12058A45000FAF17 /* ElementDefinition.cpp */,
 				6EF28D3112058A45000FAF17 /* ElementDocument.cpp */,
+				6EF3BBB812481DD40014316D /* ElementDocument.h */,
 				6EF28D3212058A45000FAF17 /* ElementHandle.cpp */,
 				6EF28D3412058A45000FAF17 /* ElementImage.cpp */,
 				6EF28D3612058A45000FAF17 /* ElementInstancer.cpp */,
+				6EF3BBB912481DD40014316D /* ElementInstancer.h */,
+				6EF3BBBA12481DD40014316D /* ElementInstancerGeneric.h */,
+				6EF3BBBB12481DD40014316D /* ElementInstancerGeneric.inl */,
 				6EF28D3712058A45000FAF17 /* ElementReference.cpp */,
+				6EF3BBBC12481DD40014316D /* ElementReference.h */,
 				6EF28D3812058A45000FAF17 /* ElementScroll.cpp */,
-				6EF28D3912058A45000FAF17 /* ElementStyle.cpp */,
+				6EF3BBBD12481DD40014316D /* ElementScroll.h */,
+				6E2C557016AA3EA9007E581B /* ElementStyle.cpp */,
+				6E2C557116AA3EA9007E581B /* ElementStyle.h */,
+				6E2C557216AA3EA9007E581B /* ElementStyleCache.cpp */,
+				6E2C557316AA3EA9007E581B /* ElementStyleCache.h */,
 				6EF28D3B12058A45000FAF17 /* ElementText.cpp */,
+				6EF3BBBE12481DD40014316D /* ElementText.h */,
 				6EF28D3C12058A45000FAF17 /* ElementTextDefault.cpp */,
 				6EF28D3E12058A45000FAF17 /* ElementUtilities.cpp */,
+				6EF3BBBF12481DD40014316D /* ElementUtilities.h */,
 				6EF28D3F12058A45000FAF17 /* Event.cpp */,
+				6EF3BBC012481DD40014316D /* Event.h */,
 				6EF28D4012058A45000FAF17 /* EventDispatcher.cpp */,
 				6EF28D4212058A45000FAF17 /* EventInstancer.cpp */,
+				6EF3BBC112481DD40014316D /* EventInstancer.h */,
 				6EF28D4312058A45000FAF17 /* EventInstancerDefault.cpp */,
+				6EF3BBC212481DD40014316D /* EventListener.h */,
 				6EF28D4612058A45000FAF17 /* EventListenerInstancer.cpp */,
+				6EF3BBC312481DD40014316D /* EventListenerInstancer.h */,
 				6EF28D4712058A45000FAF17 /* Factory.cpp */,
+				6EF3BBC412481DD40014316D /* Factory.h */,
 				6EF28D4812058A45000FAF17 /* FileInterface.cpp */,
+				6EF3BBC512481DD40014316D /* FileInterface.h */,
 				6EF28D4912058A45000FAF17 /* FileInterfaceDefault.cpp */,
+				6EF3BBC612481DD40014316D /* Font.h */,
 				6EF28D4B12058A45000FAF17 /* FontDatabase.cpp */,
+				6EF3BBC712481DD40014316D /* FontDatabase.h */,
 				6EF28D4C12058A45000FAF17 /* FontEffect.cpp */,
+				6EF3BBC812481DD40014316D /* FontEffect.h */,
 				6EF28D4D12058A45000FAF17 /* FontEffectInstancer.cpp */,
+				6EF3BBC912481DD40014316D /* FontEffectInstancer.h */,
 				6EF28D4E12058A45000FAF17 /* FontEffectNone.cpp */,
 				6EF28D5012058A45000FAF17 /* FontEffectNoneInstancer.cpp */,
 				6EF28D5212058A45000FAF17 /* FontEffectOutline.cpp */,
@@ -1009,9 +979,14 @@
 				6EF28D5C12058A45000FAF17 /* FontFaceHandle.cpp */,
 				6EF28D5E12058A45000FAF17 /* FontFaceLayer.cpp */,
 				6EF28D6012058A45000FAF17 /* FontFamily.cpp */,
+				6EF3BBCA12481DD40014316D /* FontGlyph.h */,
 				6EF28D6212058A45000FAF17 /* Geometry.cpp */,
+				6EF3BBCB12481DD40014316D /* Geometry.h */,
 				6EF28D6312058A45000FAF17 /* GeometryDatabase.cpp */,
 				6EF28D6512058A45000FAF17 /* GeometryUtilities.cpp */,
+				6EF3BBCC12481DD40014316D /* GeometryUtilities.h */,
+				6EF3BBCD12481DD40014316D /* Header.h */,
+				6EF3BBCE12481DD40014316D /* Input.h */,
 				6EF28D6612058A45000FAF17 /* LayoutBlockBox.cpp */,
 				6EF28D6812058A45000FAF17 /* LayoutBlockBoxSpace.cpp */,
 				6EF28D6A12058A45000FAF17 /* LayoutEngine.cpp */,
@@ -1019,27 +994,49 @@
 				6EF28D6E12058A45000FAF17 /* LayoutInlineBoxText.cpp */,
 				6EF28D7012058A45000FAF17 /* LayoutLineBox.cpp */,
 				6EF28D7212058A45000FAF17 /* Log.cpp */,
+				6EF3BBCF12481DD40014316D /* Log.h */,
 				6E9D09771209858B00099E1A /* Math.cpp */,
+				6EF3BBD012481DD40014316D /* Math.h */,
+				6EF3BBD112481DD40014316D /* MathTypes.h */,
+				6EF3BBD212481DD40014316D /* Platform.h */,
 				6EF28D7312058A45000FAF17 /* Plugin.cpp */,
+				6EF3BBD312481DD40014316D /* Plugin.h */,
 				6EF28D7412058A45000FAF17 /* PluginRegistry.cpp */,
+				6EF3BBD512481DD40014316D /* Pool.inl */,
 				6EF28D7812058A45000FAF17 /* Property.cpp */,
+				6EF3BBD612481DD40014316D /* Property.h */,
 				6EF28D7912058A45000FAF17 /* PropertyDefinition.cpp */,
+				6EF3BBD712481DD40014316D /* PropertyDefinition.h */,
 				6EF28D7A12058A45000FAF17 /* PropertyDictionary.cpp */,
+				6EF3BBD812481DD40014316D /* PropertyDictionary.h */,
+				6EF3BBD912481DD40014316D /* PropertyParser.h */,
 				6EF28D7B12058A45000FAF17 /* PropertyParserColour.cpp */,
 				6EF28D7D12058A45000FAF17 /* PropertyParserKeyword.cpp */,
 				6EF28D7F12058A45000FAF17 /* PropertyParserNumber.cpp */,
 				6EF28D8112058A45000FAF17 /* PropertyParserString.cpp */,
 				6EF28D8412058A45000FAF17 /* PropertySpecification.cpp */,
+				6EF3BBDA12481DD40014316D /* PropertySpecification.h */,
 				6E9D0987120986B600099E1A /* ReferenceCountable.cpp */,
+				6EF3BBE712481DD40014316D /* ReferenceCountable.h */,
 				6EF28DE212058A45000FAF17 /* RenderInterface.cpp */,
+				6EF3BBE812481DD40014316D /* RenderInterface.h */,
+				6EF3BBE912481DD40014316D /* ScriptInterface.h */,
 				6E9D09281209823B00099E1A /* Stream.cpp */,
+				6EF3BBEA12481DD40014316D /* Stream.h */,
 				6EF28DE312058A45000FAF17 /* StreamFile.cpp */,
 				6E9D09291209823B00099E1A /* StreamMemory.cpp */,
+				6EF3BBEB12481DD40014316D /* StreamMemory.h */,
 				6E9D099B1209878A00099E1A /* String.cpp */,
+				6EF3BBEC12481DD40014316D /* String.h */,
+				6EF3BBED12481DD40014316D /* StringBase.h */,
+				6EF3BBEE12481DD40014316D /* StringBase.inl */,
 				6EF28DE612058A45000FAF17 /* StringCache.cpp */,
 				6E9D092A1209823B00099E1A /* StringUtilities.cpp */,
+				6EF3BBF012481DD40014316D /* StringUtilities.h */,
 				6EF28DE812058A45000FAF17 /* StyleSheet.cpp */,
+				6EF3BBF112481DD40014316D /* StyleSheet.h */,
 				6EF28DE912058A45000FAF17 /* StyleSheetFactory.cpp */,
+				6EF3BBF212481DD40014316D /* StyleSheetKeywords.h */,
 				6EF28DEB12058A45000FAF17 /* StyleSheetNode.cpp */,
 				6EF28DED12058A45000FAF17 /* StyleSheetNodeSelector.cpp */,
 				6EF28DEF12058A45000FAF17 /* StyleSheetNodeSelectorEmpty.cpp */,
@@ -1055,28 +1052,43 @@
 				6EF28E0312058A45000FAF17 /* StyleSheetNodeSelectorOnlyOfType.cpp */,
 				6EF28E0512058A45000FAF17 /* StyleSheetParser.cpp */,
 				6EF28E0712058A45000FAF17 /* StyleSheetSpecification.cpp */,
+				6EF3BBF312481DD40014316D /* StyleSheetSpecification.h */,
 				6EF28E0812058A45000FAF17 /* SystemInterface.cpp */,
+				6EF3BBF412481DD40014316D /* SystemInterface.h */,
 				6EF28E0912058A45000FAF17 /* Template.cpp */,
 				6EF28E0B12058A45000FAF17 /* TemplateCache.cpp */,
 				6EF28E0D12058A45000FAF17 /* Texture.cpp */,
+				6EF3BBF512481DD40014316D /* Texture.h */,
 				6EF28E0E12058A45000FAF17 /* TextureDatabase.cpp */,
 				6EF28E1012058A45000FAF17 /* TextureLayout.cpp */,
 				6EF28E1212058A45000FAF17 /* TextureLayoutRectangle.cpp */,
 				6EF28E1412058A45000FAF17 /* TextureLayoutRow.cpp */,
 				6EF28E1612058A45000FAF17 /* TextureLayoutTexture.cpp */,
 				6EF28E1812058A45000FAF17 /* TextureResource.cpp */,
+				6EF3BBF612481DD40014316D /* TypeConverter.h */,
+				6EF3BBF712481DD40014316D /* TypeConverter.inl */,
+				6EF3BBF812481DD40014316D /* Types.h */,
 				6EF28E1D12058A45000FAF17 /* UnicodeRange.cpp */,
 				6E9D092B1209823B00099E1A /* URL.cpp */,
+				6EF3BBF912481DD40014316D /* URL.h */,
 				6E9D092C1209823B00099E1A /* Variant.cpp */,
+				6EF3BBFA12481DD40014316D /* Variant.h */,
+				6EF3BBFB12481DD40014316D /* Variant.inl */,
+				6EF3BBFC12481DD40014316D /* Vector2.h */,
+				6EF3BBFD12481DD40014316D /* Vector2.inl */,
+				6EF3BBFE12481DD40014316D /* Vertex.h */,
 				6EF28E1F12058A45000FAF17 /* WidgetSlider.cpp */,
 				6EF28E2112058A45000FAF17 /* WidgetSliderScroll.cpp */,
 				6EF28DE512058A45000FAF17 /* WString.cpp */,
+				6EF3BBFF12481DD40014316D /* WString.h */,
 				6EF28E2312058A45000FAF17 /* XMLNodeHandler.cpp */,
+				6EF3BC0012481DD40014316D /* XMLNodeHandler.h */,
 				6EF28E2412058A45000FAF17 /* XMLNodeHandlerBody.cpp */,
 				6EF28E2612058A45000FAF17 /* XMLNodeHandlerDefault.cpp */,
 				6EF28E2812058A45000FAF17 /* XMLNodeHandlerHead.cpp */,
 				6EF28E2A12058A45000FAF17 /* XMLNodeHandlerTemplate.cpp */,
 				6EF28E2C12058A45000FAF17 /* XMLParser.cpp */,
+				6EF3BC0112481DD40014316D /* XMLParser.h */,
 				6EF28E2D12058A45000FAF17 /* XMLParseTools.cpp */,
 			);
 			name = Core;
@@ -1085,44 +1097,43 @@
 		6E8B1BE2123AADEB00C451C8 /* Controls */ = {
 			isa = PBXGroup;
 			children = (
-				6EF3BB5A12481D140014316D /* Clipboard.h */,
-				6EF3BB5B12481D140014316D /* Controls.h */,
-				6EF3BB5C12481D140014316D /* DataFormatter.h */,
-				6EF3BB5D12481D140014316D /* DataQuery.h */,
-				6EF3BB5E12481D140014316D /* DataSource.h */,
-				6EF3BB5F12481D140014316D /* DataSourceListener.h */,
-				6EF3BB6012481D140014316D /* ElementDataGrid.h */,
-				6EF3BB6112481D140014316D /* ElementDataGridCell.h */,
-				6EF3BB6212481D140014316D /* ElementDataGridExpandButton.h */,
-				6EF3BB6312481D140014316D /* ElementDataGridRow.h */,
-				6EF3BB6412481D140014316D /* ElementForm.h */,
-				6EF3BB6512481D140014316D /* ElementFormControl.h */,
-				6EF3BB6612481D140014316D /* ElementFormControlDataSelect.h */,
-				6EF3BB6712481D140014316D /* ElementFormControlInput.h */,
-				6EF3BB6812481D140014316D /* ElementFormControlSelect.h */,
-				6EF3BB6912481D140014316D /* ElementFormControlTextArea.h */,
-				6EF3BB6A12481D140014316D /* ElementTabSet.h */,
-				6EF3BB6B12481D140014316D /* Header.h */,
-				6EF3BB6C12481D140014316D /* SelectOption.h */,
 				6E8B1C2D123AB0CC00C451C8 /* Clipboard.cpp */,
+				6EF3BB5A12481D140014316D /* Clipboard.h */,
 				6E8B1C2E123AB0CC00C451C8 /* Controls.cpp */,
+				6EF3BB5B12481D140014316D /* Controls.h */,
 				6E8B1C2F123AB0CC00C451C8 /* DataFormatter.cpp */,
+				6EF3BB5C12481D140014316D /* DataFormatter.h */,
 				6E8B1C30123AB0CC00C451C8 /* DataQuery.cpp */,
+				6EF3BB5D12481D140014316D /* DataQuery.h */,
 				6E8B1C31123AB0CC00C451C8 /* DataSource.cpp */,
+				6EF3BB5E12481D140014316D /* DataSource.h */,
 				6E8B1C32123AB0CC00C451C8 /* DataSourceListener.cpp */,
+				6EF3BB5F12481D140014316D /* DataSourceListener.h */,
 				6E8B1C33123AB0CC00C451C8 /* ElementDataGrid.cpp */,
+				6EF3BB6012481D140014316D /* ElementDataGrid.h */,
 				6E8B1C34123AB0CC00C451C8 /* ElementDataGridCell.cpp */,
+				6EF3BB6112481D140014316D /* ElementDataGridCell.h */,
 				6E8B1C35123AB0CC00C451C8 /* ElementDataGridExpandButton.cpp */,
+				6EF3BB6212481D140014316D /* ElementDataGridExpandButton.h */,
 				6E8B1C36123AB0CC00C451C8 /* ElementDataGridRow.cpp */,
+				6EF3BB6312481D140014316D /* ElementDataGridRow.h */,
 				6E8B1C37123AB0CC00C451C8 /* ElementForm.cpp */,
+				6EF3BB6412481D140014316D /* ElementForm.h */,
 				6E8B1C38123AB0CC00C451C8 /* ElementFormControl.cpp */,
+				6EF3BB6512481D140014316D /* ElementFormControl.h */,
 				6E8B1C39123AB0CC00C451C8 /* ElementFormControlDataSelect.cpp */,
+				6EF3BB6612481D140014316D /* ElementFormControlDataSelect.h */,
 				6E8B1C3A123AB0CC00C451C8 /* ElementFormControlInput.cpp */,
+				6EF3BB6712481D140014316D /* ElementFormControlInput.h */,
 				6E8B1C3B123AB0CC00C451C8 /* ElementFormControlSelect.cpp */,
+				6EF3BB6812481D140014316D /* ElementFormControlSelect.h */,
 				6E8B1C3C123AB0CC00C451C8 /* ElementFormControlTextArea.cpp */,
+				6EF3BB6912481D140014316D /* ElementFormControlTextArea.h */,
 				6E8B1C3D123AB0CC00C451C8 /* ElementTabSet.cpp */,
+				6EF3BB6A12481D140014316D /* ElementTabSet.h */,
 				6E8B1C3E123AB0CC00C451C8 /* ElementTextSelection.cpp */,
 				6E8B1C3F123AB0CC00C451C8 /* ElementTextSelection.h */,
+				6EF3BB6B12481D140014316D /* Header.h */,
 				6E8B1C40123AB0CC00C451C8 /* InputType.cpp */,
 				6E8B1C41123AB0CC00C451C8 /* InputType.h */,
 				6E8B1C42123AB0CC00C451C8 /* InputTypeButton.cpp */,
@@ -1138,6 +1149,7 @@
 				6E8B1C4C123AB0CC00C451C8 /* InputTypeText.cpp */,
 				6E8B1C4D123AB0CC00C451C8 /* InputTypeText.h */,
 				6E8B1C5D123AB0CC00C451C8 /* SelectOption.cpp */,
+				6EF3BB6C12481D140014316D /* SelectOption.h */,
 				6E8B1C5E123AB0CC00C451C8 /* WidgetDropDown.cpp */,
 				6E8B1C5F123AB0CC00C451C8 /* WidgetDropDown.h */,
 				6E8B1C60123AB0CC00C451C8 /* WidgetSlider.cpp */,
@@ -1289,6 +1301,8 @@
 				6EF3BCFE12481DD40014316D /* WString.h in Headers */,
 				6EF3BCFF12481DD40014316D /* XMLNodeHandler.h in Headers */,
 				6EF3BD0012481DD40014316D /* XMLParser.h in Headers */,
+				6E2C557716AA3EA9007E581B /* ElementStyle.h in Headers */,
+				6E2C557B16AA3EA9007E581B /* ElementStyleCache.h in Headers */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
@@ -1340,6 +1354,8 @@
 			isa = PBXHeadersBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
+				6E2C557616AA3EA9007E581B /* ElementStyle.h in Headers */,
+				6E2C557A16AA3EA9007E581B /* ElementStyleCache.h in Headers */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
@@ -1607,7 +1623,6 @@
 				6E8B1E03123ABCC200C451C8 /* ElementInstancer.cpp in Sources */,
 				6E8B1E04123ABCC200C451C8 /* ElementReference.cpp in Sources */,
 				6E8B1E05123ABCC200C451C8 /* ElementScroll.cpp in Sources */,
-				6E8B1E06123ABCC200C451C8 /* ElementStyle.cpp in Sources */,
 				6E8B1E07123ABCC200C451C8 /* ElementText.cpp in Sources */,
 				6E8B1E08123ABCC200C451C8 /* ElementTextDefault.cpp in Sources */,
 				6E8B1E09123ABCC200C451C8 /* ElementUtilities.cpp in Sources */,
@@ -1701,6 +1716,8 @@
 				6E8B1E63123ABCC200C451C8 /* XMLNodeHandlerTemplate.cpp in Sources */,
 				6E8B1E64123ABCC200C451C8 /* XMLParser.cpp in Sources */,
 				6E8B1E65123ABCC200C451C8 /* XMLParseTools.cpp in Sources */,
+				6E2C557516AA3EA9007E581B /* ElementStyle.cpp in Sources */,
+				6E2C557916AA3EA9007E581B /* ElementStyleCache.cpp in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
@@ -1812,7 +1829,6 @@
 				6EF28E6212058A45000FAF17 /* ElementInstancer.cpp in Sources */,
 				6EF28E6312058A45000FAF17 /* ElementReference.cpp in Sources */,
 				6EF28E6412058A45000FAF17 /* ElementScroll.cpp in Sources */,
-				6EF28E6512058A45000FAF17 /* ElementStyle.cpp in Sources */,
 				6EF28E6712058A45000FAF17 /* ElementText.cpp in Sources */,
 				6EF28E6812058A45000FAF17 /* ElementTextDefault.cpp in Sources */,
 				6EF28E6A12058A45000FAF17 /* ElementUtilities.cpp in Sources */,
@@ -1908,6 +1924,8 @@
 				6E9D09781209858B00099E1A /* Math.cpp in Sources */,
 				6E9D0988120986B600099E1A /* ReferenceCountable.cpp in Sources */,
 				6E9D099C1209878A00099E1A /* String.cpp in Sources */,
+				6E2C557416AA3EA9007E581B /* ElementStyle.cpp in Sources */,
+				6E2C557816AA3EA9007E581B /* ElementStyleCache.cpp in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
@@ -1955,7 +1973,6 @@
 					"\"$(SRCROOT)/../../support/lib\"",
 				);
 				PRODUCT_NAME = RocketCoreiOS;
-				VALID_ARCHS = armv6;
 			};
 			name = Debug;
 		};
@@ -2027,7 +2044,6 @@
 				GCC_PREFIX_HEADER = Rocket_Prefix.pch;
 				PREBINDING = NO;
 				PRODUCT_NAME = RocketControlsiOS;
-				VALID_ARCHS = armv6;
 			};
 			name = Debug;
 		};
@@ -2074,7 +2090,7 @@
 				);
 				PREBINDING = NO;
 				PRODUCT_NAME = RocketCoreOSX;
-				SDKROOT = macosx10.6;
+				SDKROOT = macosx;
 			};
 			name = Debug;
 		};
@@ -2106,7 +2122,7 @@
 				);
 				PREBINDING = NO;
 				PRODUCT_NAME = RocketCoreOSX;
-				SDKROOT = macosx10.6;
+				SDKROOT = macosx;
 				ZERO_LINK = NO;
 			};
 			name = Release;
@@ -2136,7 +2152,7 @@
 				);
 				PREBINDING = NO;
 				PRODUCT_NAME = RocketControlsOSX;
-				SDKROOT = macosx10.6;
+				SDKROOT = macosx;
 			};
 			name = Debug;
 		};
@@ -2164,7 +2180,7 @@
 				);
 				PREBINDING = NO;
 				PRODUCT_NAME = RocketControlsOSX;
-				SDKROOT = macosx10.6;
+				SDKROOT = macosx;
 				ZERO_LINK = NO;
 			};
 			name = Release;
@@ -2179,7 +2195,6 @@
 				GCC_PREFIX_HEADER = Rocket_Prefix.pch;
 				PREBINDING = NO;
 				PRODUCT_NAME = RocketDebuggeriOS;
-				VALID_ARCHS = armv6;
 			};
 			name = Debug;
 		};
@@ -2222,7 +2237,7 @@
 				);
 				PREBINDING = NO;
 				PRODUCT_NAME = RocketDebuggerOSX;
-				SDKROOT = macosx10.6;
+				SDKROOT = macosx;
 			};
 			name = Debug;
 		};
@@ -2250,7 +2265,7 @@
 				);
 				PREBINDING = NO;
 				PRODUCT_NAME = RocketDebuggerOSX;
-				SDKROOT = macosx10.6;
+				SDKROOT = macosx;
 				ZERO_LINK = NO;
 			};
 			name = Release;

+ 8 - 0
Build/RocketCore.vcproj

@@ -288,6 +288,14 @@
 				RelativePath="..\Source\Core\ElementStyle.h"
 				>
 			</File>
+			<File
+				RelativePath="..\Source\Core\ElementStyleCache.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\Source\Core\ElementStyleCache.h"
+				>
+			</File>			
 			<File
 				RelativePath="..\Source\Core\ElementUtilities.cpp"
 				>

+ 398 - 396
Build/cmake/FileList.cmake

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

+ 129 - 85
Build/cmake/SampleFileList.cmake

@@ -5,8 +5,8 @@ set(customlog_HDR_FILES
 )
 
 set(customlog_SRC_FILES
-    ${PROJECT_SOURCE_DIR}/Samples/basic/customlog/src/main.cpp
     ${PROJECT_SOURCE_DIR}/Samples/basic/customlog/src/SystemInterface.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/basic/customlog/src/main.cpp
 )
 
 set(directx_HDR_FILES
@@ -14,19 +14,19 @@ set(directx_HDR_FILES
 )
 
 set(directx_SRC_FILES
-    ${PROJECT_SOURCE_DIR}/Samples/basic/directx/src/main.cpp
     ${PROJECT_SOURCE_DIR}/Samples/basic/directx/src/RenderInterfaceDirectX.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/basic/directx/src/main.cpp
 )
 
 set(drag_HDR_FILES
-    ${PROJECT_SOURCE_DIR}/Samples/basic/drag/src/DragListener.h
     ${PROJECT_SOURCE_DIR}/Samples/basic/drag/src/Inventory.h
+    ${PROJECT_SOURCE_DIR}/Samples/basic/drag/src/DragListener.h
 )
 
 set(drag_SRC_FILES
+    ${PROJECT_SOURCE_DIR}/Samples/basic/drag/src/Inventory.cpp
     ${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
 )
 
 set(loaddocument_HDR_FILES
@@ -37,18 +37,18 @@ 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/SystemInterfaceOgre3D.h
     ${PROJECT_SOURCE_DIR}/Samples/basic/ogre3d/src/RocketFrameListener.h
+    ${PROJECT_SOURCE_DIR}/Samples/basic/ogre3d/src/SystemInterfaceOgre3D.h
+    ${PROJECT_SOURCE_DIR}/Samples/basic/ogre3d/src/RenderInterfaceOgre3D.h
+    ${PROJECT_SOURCE_DIR}/Samples/basic/ogre3d/src/RocketApplication.h
 )
 
 set(ogre3d_SRC_FILES
-    ${PROJECT_SOURCE_DIR}/Samples/basic/ogre3d/src/RocketFrameListener.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/RocketApplication.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/basic/ogre3d/src/SystemInterfaceOgre3D.cpp
     ${PROJECT_SOURCE_DIR}/Samples/basic/ogre3d/src/RenderInterfaceOgre3D.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/basic/ogre3d/src/RocketFrameListener.cpp
 )
 
 set(treeview_HDR_FILES
@@ -57,149 +57,193 @@ set(treeview_HDR_FILES
 )
 
 set(treeview_SRC_FILES
+    ${PROJECT_SOURCE_DIR}/Samples/basic/treeview/src/FileSystem.cpp
     ${PROJECT_SOURCE_DIR}/Samples/basic/treeview/src/main.cpp
     ${PROJECT_SOURCE_DIR}/Samples/basic/treeview/src/FileFormatter.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/basic/treeview/src/FileSystem.cpp
 )
 
 set(invaders_HDR_FILES
-    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/EventManager.h
-    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/EventInstancer.h
     ${PROJECT_SOURCE_DIR}/Samples/invaders/src/Shield.h
-    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/GameDetails.h
-    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/Game.h
-    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/EventHandlerOptions.h
     ${PROJECT_SOURCE_DIR}/Samples/invaders/src/HighScoresNameFormatter.h
-    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/HighScoresShipFormatter.h
     ${PROJECT_SOURCE_DIR}/Samples/invaders/src/Defender.h
-    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/ElementGame.h
+    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/EventHandlerHighScore.h
+    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/EventInstancer.h
     ${PROJECT_SOURCE_DIR}/Samples/invaders/src/EventHandler.h
     ${PROJECT_SOURCE_DIR}/Samples/invaders/src/DecoratorInstancerDefender.h
-    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/DecoratorDefender.h
-    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/Sprite.h
-    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/EventHandlerStartGame.h
-    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/EventHandlerHighScore.h
+    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/DecoratorStarfield.h
+    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/Game.h
+    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/GameDetails.h
     ${PROJECT_SOURCE_DIR}/Samples/invaders/src/Event.h
-    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/Invader.h
     ${PROJECT_SOURCE_DIR}/Samples/invaders/src/Mothership.h
-    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/DecoratorStarfield.h
-    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/HighScores.h
+    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/EventHandlerStartGame.h
     ${PROJECT_SOURCE_DIR}/Samples/invaders/src/DecoratorInstancerStarfield.h
+    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/HighScoresShipFormatter.h
+    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/DecoratorDefender.h
+    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/EventHandlerOptions.h
+    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/HighScores.h
+    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/EventManager.h
+    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/Sprite.h
+    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/Invader.h
+    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/ElementGame.h
 )
 
 set(invaders_SRC_FILES
-    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/EventInstancer.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/EventHandlerStartGame.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/DecoratorStarfield.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/DecoratorInstancerDefender.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/HighScoresNameFormatter.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/Defender.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/HighScores.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/DecoratorInstancerStarfield.cpp
     ${PROJECT_SOURCE_DIR}/Samples/invaders/src/GameDetails.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/main.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/ElementGame.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/Invader.cpp
     ${PROJECT_SOURCE_DIR}/Samples/invaders/src/Event.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/Game.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/HighScoresShipFormatter.cpp
     ${PROJECT_SOURCE_DIR}/Samples/invaders/src/Shield.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/EventHandlerHighScore.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/Sprite.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/DecoratorStarfield.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/Game.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/EventHandler.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/main.cpp
     ${PROJECT_SOURCE_DIR}/Samples/invaders/src/DecoratorDefender.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/DecoratorInstancerDefender.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/HighScoresNameFormatter.cpp
     ${PROJECT_SOURCE_DIR}/Samples/invaders/src/EventHandlerOptions.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/Defender.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/Mothership.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/EventHandler.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/Sprite.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/EventInstancer.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/HighScoresShipFormatter.cpp
     ${PROJECT_SOURCE_DIR}/Samples/invaders/src/EventManager.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/HighScores.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/DecoratorInstancerStarfield.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/Invader.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/Mothership.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/ElementGame.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/EventHandlerHighScore.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/invaders/src/EventHandlerStartGame.cpp
 )
 
 set(luainvaders_HDR_FILES
     ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/Shield.h
-    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/GameDetails.h
-    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/Game.h
-    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/ElementGameInstancer.h
     ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/Defender.h
-    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/ElementGame.h
     ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/DecoratorInstancerDefender.h
-    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/DecoratorDefender.h
-    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/Sprite.h
-    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/Invader.h
-    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/Mothership.h
     ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/DecoratorStarfield.h
-    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/HighScores.h
+    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/Game.h
+    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/GameDetails.h
+    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/Mothership.h
     ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/LuaInterface.h
     ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/DecoratorInstancerStarfield.h
+    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/ElementGameInstancer.h
+    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/DecoratorDefender.h
+    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/HighScores.h
+    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/Sprite.h
+    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/Invader.h
+    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/ElementGame.h
 )
 
 set(luainvaders_SRC_FILES
-    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/DecoratorStarfield.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/DecoratorInstancerDefender.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/Defender.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/HighScores.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/DecoratorInstancerStarfield.cpp
     ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/GameDetails.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/main.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/ElementGame.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/Invader.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/Game.cpp
     ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/Shield.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/Sprite.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/DecoratorStarfield.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/Game.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/main.cpp
     ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/DecoratorDefender.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/DecoratorInstancerDefender.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/LuaInterface.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/Sprite.cpp
     ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/ElementGameInstancer.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/Defender.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/Invader.cpp
     ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/Mothership.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/LuaInterface.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/HighScores.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/DecoratorInstancerStarfield.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/luainvaders/src/ElementGame.cpp
 )
 
 set(pyinvaders_HDR_FILES
     ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/Shield.h
-    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/GameDetails.h
-    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/Game.h
     ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/Defender.h
-    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/ElementGame.h
     ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/DecoratorInstancerDefender.h
+    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/DecoratorStarfield.h
+    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/Game.h
+    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/GameDetails.h
+    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/Mothership.h
+    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/DecoratorInstancerStarfield.h
     ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/DecoratorDefender.h
-    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/Sprite.h
     ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/PythonInterface.h
-    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/Invader.h
-    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/Mothership.h
-    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/DecoratorStarfield.h
     ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/HighScores.h
-    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/DecoratorInstancerStarfield.h
+    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/Sprite.h
+    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/Invader.h
+    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/ElementGame.h
 )
 
 set(pyinvaders_SRC_FILES
-    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/DecoratorStarfield.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/GameDetails.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/main.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/ElementGame.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/Invader.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/PythonInterface.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/Game.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/Shield.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/Sprite.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/DecoratorDefender.cpp
     ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/DecoratorInstancerDefender.cpp
     ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/Defender.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/Mothership.cpp
     ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/HighScores.cpp
     ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/DecoratorInstancerStarfield.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/GameDetails.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/Shield.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/DecoratorStarfield.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/Game.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/main.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/DecoratorDefender.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/Sprite.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/Invader.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/Mothership.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/PythonInterface.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/pyinvaders/src/ElementGame.cpp
 )
 
 set(shell_HDR_FILES
+    ${PROJECT_SOURCE_DIR}/Samples/shell/include/ShellOpenGL.h
     ${PROJECT_SOURCE_DIR}/Samples/shell/include/ShellSystemInterface.h
+    ${PROJECT_SOURCE_DIR}/Samples/shell/include/ShellFileInterface.h
+    ${PROJECT_SOURCE_DIR}/Samples/shell/include/Shell.h
     ${PROJECT_SOURCE_DIR}/Samples/shell/include/ShellRenderInterfaceOpenGL.h
     ${PROJECT_SOURCE_DIR}/Samples/shell/include/Input.h
-    ${PROJECT_SOURCE_DIR}/Samples/shell/include/ShellOpenGL.h
-    ${PROJECT_SOURCE_DIR}/Samples/shell/include/Shell.h
-    ${PROJECT_SOURCE_DIR}/Samples/shell/include/ShellFileInterface.h
 )
 
 set(shell_SRC_FILES
     ${PROJECT_SOURCE_DIR}/Samples/shell/src/ShellSystemInterface.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/shell/src/Input.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/shell/src/ShellRenderInterfaceOpenGL.cpp
     ${PROJECT_SOURCE_DIR}/Samples/shell/src/ShellFileInterface.cpp
     ${PROJECT_SOURCE_DIR}/Samples/shell/src/Shell.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/shell/src/ShellRenderInterfaceOpenGL.cpp
-    ${PROJECT_SOURCE_DIR}/Samples/shell/src/Input.cpp
+)
+
+set(template_HDR_FILES
+)
+
+set(template_SRC_FILES
+    ${PROJECT_SOURCE_DIR}/Samples/tutorial/template/src/main.cpp
+)
+
+set(datagrid_HDR_FILES
+    ${PROJECT_SOURCE_DIR}/Samples/tutorial/datagrid/src/DecoratorInstancerDefender.h
+    ${PROJECT_SOURCE_DIR}/Samples/tutorial/datagrid/src/DecoratorDefender.h
+    ${PROJECT_SOURCE_DIR}/Samples/tutorial/datagrid/src/HighScores.h
+)
+
+set(datagrid_SRC_FILES
+    ${PROJECT_SOURCE_DIR}/Samples/tutorial/datagrid/src/DecoratorInstancerDefender.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/tutorial/datagrid/src/HighScores.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/tutorial/datagrid/src/main.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/tutorial/datagrid/src/DecoratorDefender.cpp
+)
+
+set(datagrid_tree_HDR_FILES
+    ${PROJECT_SOURCE_DIR}/Samples/tutorial/datagrid_tree/src/DecoratorInstancerDefender.h
+    ${PROJECT_SOURCE_DIR}/Samples/tutorial/datagrid_tree/src/HighScoresShipFormatter.h
+    ${PROJECT_SOURCE_DIR}/Samples/tutorial/datagrid_tree/src/DecoratorDefender.h
+    ${PROJECT_SOURCE_DIR}/Samples/tutorial/datagrid_tree/src/HighScores.h
+)
+
+set(datagrid_tree_SRC_FILES
+    ${PROJECT_SOURCE_DIR}/Samples/tutorial/datagrid_tree/src/DecoratorInstancerDefender.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/tutorial/datagrid_tree/src/HighScores.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/tutorial/datagrid_tree/src/main.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/tutorial/datagrid_tree/src/DecoratorDefender.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/tutorial/datagrid_tree/src/HighScoresShipFormatter.cpp
+)
+
+set(tutorial_drag_HDR_FILES
+    ${PROJECT_SOURCE_DIR}/Samples/tutorial/tutorial_drag/src/Inventory.h
+)
+
+set(tutorial_drag_SRC_FILES
+    ${PROJECT_SOURCE_DIR}/Samples/tutorial/tutorial_drag/src/Inventory.cpp
+    ${PROJECT_SOURCE_DIR}/Samples/tutorial/tutorial_drag/src/main.cpp
 )
 
 # Deal with platform specific sources for sample shell

+ 3 - 1
Build/cmake/gen_samplelists.sh

@@ -9,11 +9,13 @@ srcdir='${PROJECT_SOURCE_DIR}'
 srcpath=Samples
 samples=('basic/customlog' 'basic/directx' 'basic/drag' 'basic/loaddocument'
         'basic/ogre3d' 'basic/treeview' 'invaders' 'luainvaders' 'pyinvaders' 'shell'
+	'tutorial/template' 'tutorial/datagrid' 'tutorial/datagrid_tree' 'tutorial/tutorial_drag'
 )
 
 printfiles() {
     # Print headers
-    name=${1/'basic/'/} #substitute basic/ for nothing
+    name=${1//basic\//} #substitute basic/ for nothing
+    name=${name//tutorial\/} #substitute tutorial/ for nothing
     echo ${hdr/sample/$name} >>$file
     find  $srcpath/$1/src -maxdepth 1 -iname "*.h" -exec echo '    '$srcdir/{} \; >>$file
     find  $srcpath/$1/include -maxdepth 1 -iname "*.h" -exec echo '    '$srcdir/{} \; >>$file 2>/dev/null

+ 6 - 0
Build/vc2010/.gitignore

@@ -0,0 +1,6 @@
+*.sdf
+*.ncb
+build/
+Debug/
+Release/
+ipch/

+ 32 - 0
Build/vc2010/README.txt

@@ -0,0 +1,32 @@
+Freetype 2.4.10 is required to compile this project.
+
+
+The project searches the ../../../support folder. (Create a folder called support, next to the LibRocket repository folder)
+
+Compile freetype v2.4.10 and copy the following files to the 'support/lib' folder:
+
+   freetype2410.lib
+   freetype2410_D.lib
+
+
+
+The lib search path (relative to project file) is: 
+   ../../../support/lib
+
+Also required is the freetype includes. Copy the 'include' folder in the freetype repository root folder and paste it in the following path:
+  support/freetype-2.4.10/
+
+
+The freetype library can be downloaded from
+   http://sourceforge.net/projects/freetype/files/
+
+Or navigated to via
+   http://www.freetype.org
+
+
+Two options in the project has to be updated if an older or newer version of freetype is desired to be used.
+RocketCore -> Properties -> C/C++ -> General -> Additional Include Directies:
+  update the path to ..\..\..\support\freetype-2.4.10\include to the new path, -same for all configurations-
+
+RocketCore -> Properties -> Linker -> Input -> Additional Dependencies:
+  update separately for debug and release build to the new freetype*.lib version.

+ 32 - 0
Build/vc2010/Rocket.sln

@@ -0,0 +1,32 @@
+
+Microsoft Visual Studio Solution File, Format Version 11.00
+# Visual C++ Express 2010
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "RocketCore", "RocketCore.vcxproj", "{1AAC0B29-AEB9-4E3F-8EDF-B46F8949C41B}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "RocketControls", "RocketControls.vcxproj", "{1AAC0B29-AEC9-4E3F-9EDF-B56F8949C41B}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "RocketDebugger", "RocketDebugger.vcxproj", "{1AAC0B29-AEC9-4E3F-9EDF-B56F8949C41A}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Win32 = Debug|Win32
+		Release|Win32 = Release|Win32
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{1AAC0B29-AEB9-4E3F-8EDF-B46F8949C41B}.Debug|Win32.ActiveCfg = Debug|Win32
+		{1AAC0B29-AEB9-4E3F-8EDF-B46F8949C41B}.Debug|Win32.Build.0 = Debug|Win32
+		{1AAC0B29-AEB9-4E3F-8EDF-B46F8949C41B}.Release|Win32.ActiveCfg = Release|Win32
+		{1AAC0B29-AEB9-4E3F-8EDF-B46F8949C41B}.Release|Win32.Build.0 = Release|Win32
+		{1AAC0B29-AEC9-4E3F-9EDF-B56F8949C41B}.Debug|Win32.ActiveCfg = Debug|Win32
+		{1AAC0B29-AEC9-4E3F-9EDF-B56F8949C41B}.Debug|Win32.Build.0 = Debug|Win32
+		{1AAC0B29-AEC9-4E3F-9EDF-B56F8949C41B}.Release|Win32.ActiveCfg = Release|Win32
+		{1AAC0B29-AEC9-4E3F-9EDF-B56F8949C41B}.Release|Win32.Build.0 = Release|Win32
+		{1AAC0B29-AEC9-4E3F-9EDF-B56F8949C41A}.Debug|Win32.ActiveCfg = Debug|Win32
+		{1AAC0B29-AEC9-4E3F-9EDF-B56F8949C41A}.Debug|Win32.Build.0 = Debug|Win32
+		{1AAC0B29-AEC9-4E3F-9EDF-B56F8949C41A}.Release|Win32.ActiveCfg = Release|Win32
+		{1AAC0B29-AEC9-4E3F-9EDF-B56F8949C41A}.Release|Win32.Build.0 = Release|Win32
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+EndGlobal

+ 505 - 0
Build/vc2010/RocketControls.vcproj

@@ -0,0 +1,505 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+	ProjectType="Visual C++"
+	Version="9.00"
+	Name="RocketControls"
+	ProjectGUID="{1AAC0B29-AEC9-4E3F-9EDF-B56F8949C41B}"
+	RootNamespace="controls"
+	Keyword="Win32Proj"
+	TargetFrameworkVersion="131072"
+	>
+	<Platforms>
+		<Platform
+			Name="Win32"
+		/>
+	</Platforms>
+	<ToolFiles>
+	</ToolFiles>
+	<Configurations>
+		<Configuration
+			Name="Debug|Win32"
+			OutputDirectory="$(IntDir)"
+			ConfigurationType="2"
+			InheritedPropertySheets=".\vsprops\BuildConfigurationDLLDebug.vsprops"
+			CharacterSet="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				AdditionalIncludeDirectories="..\..\Include"
+				PreprocessorDefinitions="_WIN32,_DEBUG,RocketControls_EXPORTS"
+				UsePrecompiledHeader="0"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="RocketCore_d.lib"
+				OutputFile="..\bin\$(ProjectName)_d.dll"
+				AdditionalLibraryDirectories="..\bin"
+				RandomizedBaseAddress="1"
+				DataExecutionPrevention="0"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release|Win32"
+			OutputDirectory="$(IntDir)"
+			ConfigurationType="2"
+			InheritedPropertySheets=".\vsprops\BuildConfigurationDLLRelease.vsprops"
+			CharacterSet="1"
+			WholeProgramOptimization="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				AdditionalIncludeDirectories="..\..\Include"
+				PreprocessorDefinitions="_WIN32,NDEBUG,RocketControls_EXPORTS"
+				UsePrecompiledHeader="0"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="RocketCore.lib"
+				OutputFile="..\bin\$(ProjectName).dll"
+				AdditionalLibraryDirectories="..\bin"
+				RandomizedBaseAddress="1"
+				DataExecutionPrevention="0"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+	</Configurations>
+	<References>
+	</References>
+	<Files>
+		<Filter
+			Name="Plugin"
+			>
+			<File
+				RelativePath="..\..\Source\Controls\Controls.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Include\Rocket\Controls\Controls.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Include\Rocket\Controls\Header.h"
+				>
+			</File>
+		</Filter>
+		<Filter
+			Name="Forms"
+			>
+			<File
+				RelativePath="..\..\Source\Controls\ElementForm.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Include\Rocket\Controls\ElementForm.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Source\Controls\ElementFormControl.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Include\Rocket\Controls\ElementFormControl.h"
+				>
+			</File>
+			<Filter
+				Name="Controls"
+				>
+				<File
+					RelativePath="..\..\Source\Controls\ElementFormControlDataSelect.cpp"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Include\Rocket\Controls\ElementFormControlDataSelect.h"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Source\Controls\ElementFormControlInput.cpp"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Include\Rocket\Controls\ElementFormControlInput.h"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Source\Controls\ElementFormControlSelect.cpp"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Include\Rocket\Controls\ElementFormControlSelect.h"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Source\Controls\ElementFormControlTextArea.cpp"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Include\Rocket\Controls\ElementFormControlTextArea.h"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Source\Controls\SelectOption.cpp"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Include\Rocket\Controls\SelectOption.h"
+					>
+				</File>
+				<Filter
+					Name="Widgets"
+					>
+					<File
+						RelativePath="..\..\Source\Controls\ElementTextSelection.cpp"
+						>
+					</File>
+					<File
+						RelativePath="..\..\Source\Controls\ElementTextSelection.h"
+						>
+					</File>
+					<File
+						RelativePath="..\..\Source\Controls\WidgetDropDown.cpp"
+						>
+					</File>
+					<File
+						RelativePath="..\..\Source\Controls\WidgetDropDown.h"
+						>
+					</File>
+					<File
+						RelativePath="..\..\Source\Controls\WidgetSlider.cpp"
+						>
+					</File>
+					<File
+						RelativePath="..\..\Source\Controls\WidgetSlider.h"
+						>
+					</File>
+					<File
+						RelativePath="..\..\Source\Controls\WidgetSliderInput.cpp"
+						>
+					</File>
+					<File
+						RelativePath="..\..\Source\Controls\WidgetSliderInput.h"
+						>
+					</File>
+					<File
+						RelativePath="..\..\Source\Controls\WidgetTextInput.cpp"
+						>
+					</File>
+					<File
+						RelativePath="..\..\Source\Controls\WidgetTextInput.h"
+						>
+					</File>
+					<File
+						RelativePath="..\..\Source\Controls\WidgetTextInputMultiLine.cpp"
+						>
+					</File>
+					<File
+						RelativePath="..\..\Source\Controls\WidgetTextInputMultiLine.h"
+						>
+					</File>
+					<File
+						RelativePath="..\..\Source\Controls\WidgetTextInputSingleLine.cpp"
+						>
+					</File>
+					<File
+						RelativePath="..\..\Source\Controls\WidgetTextInputSingleLine.h"
+						>
+					</File>
+					<File
+						RelativePath="..\..\Source\Controls\WidgetTextInputSingleLinePassword.cpp"
+						>
+					</File>
+					<File
+						RelativePath="..\..\Source\Controls\WidgetTextInputSingleLinePassword.h"
+						>
+					</File>
+				</Filter>
+				<Filter
+					Name="Input Types"
+					>
+					<File
+						RelativePath="..\..\Source\Controls\InputType.cpp"
+						>
+					</File>
+					<File
+						RelativePath="..\..\Source\Controls\InputType.h"
+						>
+					</File>
+					<File
+						RelativePath="..\..\Source\Controls\InputTypeButton.cpp"
+						>
+					</File>
+					<File
+						RelativePath="..\..\Source\Controls\InputTypeButton.h"
+						>
+					</File>
+					<File
+						RelativePath="..\..\Source\Controls\InputTypeCheckbox.cpp"
+						>
+					</File>
+					<File
+						RelativePath="..\..\Source\Controls\InputTypeCheckbox.h"
+						>
+					</File>
+					<File
+						RelativePath="..\..\Source\Controls\InputTypeRadio.cpp"
+						>
+					</File>
+					<File
+						RelativePath="..\..\Source\Controls\InputTypeRadio.h"
+						>
+					</File>
+					<File
+						RelativePath="..\..\Source\Controls\InputTypeRange.cpp"
+						>
+					</File>
+					<File
+						RelativePath="..\..\Source\Controls\InputTypeRange.h"
+						>
+					</File>
+					<File
+						RelativePath="..\..\Source\Controls\InputTypeSubmit.cpp"
+						>
+					</File>
+					<File
+						RelativePath="..\..\Source\Controls\InputTypeSubmit.h"
+						>
+					</File>
+					<File
+						RelativePath="..\..\Source\Controls\InputTypeText.cpp"
+						>
+					</File>
+					<File
+						RelativePath="..\..\Source\Controls\InputTypeText.h"
+						>
+					</File>
+				</Filter>
+			</Filter>
+			<Filter
+				Name="Parsers"
+				>
+				<File
+					RelativePath="..\..\Source\Controls\XMLNodeHandlerTextArea.cpp"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Source\Controls\XMLNodeHandlerTextArea.h"
+					>
+				</File>
+			</Filter>
+			<Filter
+				Name="Clipboard"
+				>
+				<File
+					RelativePath="..\..\Source\Controls\Clipboard.cpp"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Include\Rocket\Controls\Clipboard.h"
+					>
+				</File>
+			</Filter>
+		</Filter>
+		<Filter
+			Name="Tab Set"
+			>
+			<File
+				RelativePath="..\..\Source\Controls\ElementTabSet.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Include\Rocket\Controls\ElementTabSet.h"
+				>
+			</File>
+			<Filter
+				Name="Parser"
+				>
+				<File
+					RelativePath="..\..\Source\Controls\XMLNodeHandlerTabSet.cpp"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Source\Controls\XMLNodeHandlerTabSet.h"
+					>
+				</File>
+			</Filter>
+		</Filter>
+		<Filter
+			Name="Data Grid"
+			>
+			<File
+				RelativePath="..\..\Source\Controls\ElementDataGrid.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Include\Rocket\Controls\ElementDataGrid.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Source\Controls\ElementDataGridCell.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Include\Rocket\Controls\ElementDataGridCell.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Source\Controls\ElementDataGridExpandButton.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Include\Rocket\Controls\ElementDataGridExpandButton.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Source\Controls\ElementDataGridRow.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Include\Rocket\Controls\ElementDataGridRow.h"
+				>
+			</File>
+			<Filter
+				Name="Parser"
+				>
+				<File
+					RelativePath="..\..\Source\Controls\XMLNodeHandlerDataGrid.cpp"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Source\Controls\XMLNodeHandlerDataGrid.h"
+					>
+				</File>
+			</Filter>
+			<Filter
+				Name="Data Source"
+				>
+				<File
+					RelativePath="..\..\Source\Controls\DataFormatter.cpp"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Include\Rocket\Controls\DataFormatter.h"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Source\Controls\DataQuery.cpp"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Include\Rocket\Controls\DataQuery.h"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Source\Controls\DataSource.cpp"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Include\Rocket\Controls\DataSource.h"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Source\Controls\DataSourceListener.cpp"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Include\Rocket\Controls\DataSourceListener.h"
+					>
+				</File>
+			</Filter>
+		</Filter>
+		<File
+			RelativePath="..\..\Include\Rocket\Controls.h"
+			>
+		</File>
+	</Files>
+	<Globals>
+	</Globals>
+</VisualStudioProject>

+ 165 - 0
Build/vc2010/RocketControls.vcxproj

@@ -0,0 +1,165 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{1AAC0B29-AEC9-4E3F-9EDF-B56F8949C41B}</ProjectGuid>
+    <RootNamespace>controls</RootNamespace>
+    <Keyword>Win32Proj</Keyword>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <CharacterSet>Unicode</CharacterSet>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <CharacterSet>Unicode</CharacterSet>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="vsprops\BuildConfigurationDLLRelease.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="vsprops\BuildConfigurationDLLDebug.props" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+    <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\bin\</OutDir>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\bin\</OutDir>
+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectName)_d</TargetName>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <ClCompile>
+      <AdditionalIncludeDirectories>..\..\Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>_WIN32;_DEBUG;RocketControls_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <PrecompiledHeader>
+      </PrecompiledHeader>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>RocketCore_d.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>..\..\bin\$(ProjectName)_d.dll</OutputFile>
+      <AdditionalLibraryDirectories>..\..\bin;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention>
+      </DataExecutionPrevention>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <ClCompile>
+      <AdditionalIncludeDirectories>..\..\Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>_WIN32;NDEBUG;RocketControls_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <PrecompiledHeader>
+      </PrecompiledHeader>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>RocketCore.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>..\..\bin\$(ProjectName).dll</OutputFile>
+      <AdditionalLibraryDirectories>..\..\bin;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention>
+      </DataExecutionPrevention>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\Source\Controls\Controls.cpp" />
+    <ClCompile Include="..\..\Source\Controls\ElementForm.cpp" />
+    <ClCompile Include="..\..\Source\Controls\ElementFormControl.cpp" />
+    <ClCompile Include="..\..\Source\Controls\ElementFormControlDataSelect.cpp" />
+    <ClCompile Include="..\..\Source\Controls\ElementFormControlInput.cpp" />
+    <ClCompile Include="..\..\Source\Controls\ElementFormControlSelect.cpp" />
+    <ClCompile Include="..\..\Source\Controls\ElementFormControlTextArea.cpp" />
+    <ClCompile Include="..\..\Source\Controls\SelectOption.cpp" />
+    <ClCompile Include="..\..\Source\Controls\ElementTextSelection.cpp" />
+    <ClCompile Include="..\..\Source\Controls\WidgetDropDown.cpp" />
+    <ClCompile Include="..\..\Source\Controls\WidgetSlider.cpp" />
+    <ClCompile Include="..\..\Source\Controls\WidgetSliderInput.cpp" />
+    <ClCompile Include="..\..\Source\Controls\WidgetTextInput.cpp" />
+    <ClCompile Include="..\..\Source\Controls\WidgetTextInputMultiLine.cpp" />
+    <ClCompile Include="..\..\Source\Controls\WidgetTextInputSingleLine.cpp" />
+    <ClCompile Include="..\..\Source\Controls\WidgetTextInputSingleLinePassword.cpp" />
+    <ClCompile Include="..\..\Source\Controls\InputType.cpp" />
+    <ClCompile Include="..\..\Source\Controls\InputTypeButton.cpp" />
+    <ClCompile Include="..\..\Source\Controls\InputTypeCheckbox.cpp" />
+    <ClCompile Include="..\..\Source\Controls\InputTypeRadio.cpp" />
+    <ClCompile Include="..\..\Source\Controls\InputTypeRange.cpp" />
+    <ClCompile Include="..\..\Source\Controls\InputTypeSubmit.cpp" />
+    <ClCompile Include="..\..\Source\Controls\InputTypeText.cpp" />
+    <ClCompile Include="..\..\Source\Controls\XMLNodeHandlerTextArea.cpp" />
+    <ClCompile Include="..\..\Source\Controls\Clipboard.cpp" />
+    <ClCompile Include="..\..\Source\Controls\ElementTabSet.cpp" />
+    <ClCompile Include="..\..\Source\Controls\XMLNodeHandlerTabSet.cpp" />
+    <ClCompile Include="..\..\Source\Controls\ElementDataGrid.cpp" />
+    <ClCompile Include="..\..\Source\Controls\ElementDataGridCell.cpp" />
+    <ClCompile Include="..\..\Source\Controls\ElementDataGridExpandButton.cpp" />
+    <ClCompile Include="..\..\Source\Controls\ElementDataGridRow.cpp" />
+    <ClCompile Include="..\..\Source\Controls\XMLNodeHandlerDataGrid.cpp" />
+    <ClCompile Include="..\..\Source\Controls\DataFormatter.cpp" />
+    <ClCompile Include="..\..\Source\Controls\DataQuery.cpp" />
+    <ClCompile Include="..\..\Source\Controls\DataSource.cpp" />
+    <ClCompile Include="..\..\Source\Controls\DataSourceListener.cpp" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="..\..\Include\Rocket\Controls\Controls.h" />
+    <ClInclude Include="..\..\Include\Rocket\Controls\Header.h" />
+    <ClInclude Include="..\..\Include\Rocket\Controls\ElementForm.h" />
+    <ClInclude Include="..\..\Include\Rocket\Controls\ElementFormControl.h" />
+    <ClInclude Include="..\..\Include\Rocket\Controls\ElementFormControlDataSelect.h" />
+    <ClInclude Include="..\..\Include\Rocket\Controls\ElementFormControlInput.h" />
+    <ClInclude Include="..\..\Include\Rocket\Controls\ElementFormControlSelect.h" />
+    <ClInclude Include="..\..\Include\Rocket\Controls\ElementFormControlTextArea.h" />
+    <ClInclude Include="..\..\Include\Rocket\Controls\SelectOption.h" />
+    <ClInclude Include="..\..\Source\Controls\ElementTextSelection.h" />
+    <ClInclude Include="..\..\Source\Controls\WidgetDropDown.h" />
+    <ClInclude Include="..\..\Source\Controls\WidgetSlider.h" />
+    <ClInclude Include="..\..\Source\Controls\WidgetSliderInput.h" />
+    <ClInclude Include="..\..\Source\Controls\WidgetTextInput.h" />
+    <ClInclude Include="..\..\Source\Controls\WidgetTextInputMultiLine.h" />
+    <ClInclude Include="..\..\Source\Controls\WidgetTextInputSingleLine.h" />
+    <ClInclude Include="..\..\Source\Controls\WidgetTextInputSingleLinePassword.h" />
+    <ClInclude Include="..\..\Source\Controls\InputType.h" />
+    <ClInclude Include="..\..\Source\Controls\InputTypeButton.h" />
+    <ClInclude Include="..\..\Source\Controls\InputTypeCheckbox.h" />
+    <ClInclude Include="..\..\Source\Controls\InputTypeRadio.h" />
+    <ClInclude Include="..\..\Source\Controls\InputTypeRange.h" />
+    <ClInclude Include="..\..\Source\Controls\InputTypeSubmit.h" />
+    <ClInclude Include="..\..\Source\Controls\InputTypeText.h" />
+    <ClInclude Include="..\..\Source\Controls\XMLNodeHandlerTextArea.h" />
+    <ClInclude Include="..\..\Include\Rocket\Controls\Clipboard.h" />
+    <ClInclude Include="..\..\Include\Rocket\Controls\ElementTabSet.h" />
+    <ClInclude Include="..\..\Source\Controls\XMLNodeHandlerTabSet.h" />
+    <ClInclude Include="..\..\Include\Rocket\Controls\ElementDataGrid.h" />
+    <ClInclude Include="..\..\Include\Rocket\Controls\ElementDataGridCell.h" />
+    <ClInclude Include="..\..\Include\Rocket\Controls\ElementDataGridExpandButton.h" />
+    <ClInclude Include="..\..\Include\Rocket\Controls\ElementDataGridRow.h" />
+    <ClInclude Include="..\..\Source\Controls\XMLNodeHandlerDataGrid.h" />
+    <ClInclude Include="..\..\Include\Rocket\Controls\DataFormatter.h" />
+    <ClInclude Include="..\..\Include\Rocket\Controls\DataQuery.h" />
+    <ClInclude Include="..\..\Include\Rocket\Controls\DataSource.h" />
+    <ClInclude Include="..\..\Include\Rocket\Controls\DataSourceListener.h" />
+    <ClInclude Include="..\..\Include\Rocket\Controls.h" />
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="RocketCore.vcxproj">
+      <Project>{1aac0b29-aeb9-4e3f-8edf-b46f8949c41b}</Project>
+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+    </ProjectReference>
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>

+ 265 - 0
Build/vc2010/RocketControls.vcxproj.filters

@@ -0,0 +1,265 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup>
+    <Filter Include="Plugin">
+      <UniqueIdentifier>{a257d370-77f8-4519-a627-531247f174dc}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Forms">
+      <UniqueIdentifier>{d566402c-1afd-45d7-96c1-00a74102f1ad}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Forms\Controls">
+      <UniqueIdentifier>{52e05489-b4a3-49ad-b4ad-4779d6869123}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Forms\Controls\Widgets">
+      <UniqueIdentifier>{4dac7e37-cfde-490b-94b8-28a3223c4688}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Forms\Controls\Input Types">
+      <UniqueIdentifier>{75ffc4df-2b76-4d3e-a787-b627691eaf44}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Forms\Parsers">
+      <UniqueIdentifier>{972c47fd-502f-4d54-a117-b94429c2a1a4}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Forms\Clipboard">
+      <UniqueIdentifier>{3fef55e5-602b-426c-af75-669a6126929e}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Tab Set">
+      <UniqueIdentifier>{69c6752c-5c92-450a-b252-e12af0f88453}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Tab Set\Parser">
+      <UniqueIdentifier>{d37f48c9-d4db-48be-9068-4d8f01d3416e}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Data Grid">
+      <UniqueIdentifier>{4ca45f6f-6281-411c-bea4-724578aa5383}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Data Grid\Parser">
+      <UniqueIdentifier>{a370a145-0d90-4e98-9d78-4cf58495b497}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Data Grid\Data Source">
+      <UniqueIdentifier>{5ff99b87-e7c7-4fae-91dd-d79490e38f3b}</UniqueIdentifier>
+    </Filter>
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\Source\Controls\Controls.cpp">
+      <Filter>Plugin</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Controls\ElementForm.cpp">
+      <Filter>Forms</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Controls\ElementFormControl.cpp">
+      <Filter>Forms</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Controls\ElementFormControlDataSelect.cpp">
+      <Filter>Forms\Controls</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Controls\ElementFormControlInput.cpp">
+      <Filter>Forms\Controls</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Controls\ElementFormControlSelect.cpp">
+      <Filter>Forms\Controls</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Controls\ElementFormControlTextArea.cpp">
+      <Filter>Forms\Controls</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Controls\SelectOption.cpp">
+      <Filter>Forms\Controls</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Controls\ElementTextSelection.cpp">
+      <Filter>Forms\Controls\Widgets</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Controls\WidgetDropDown.cpp">
+      <Filter>Forms\Controls\Widgets</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Controls\WidgetSlider.cpp">
+      <Filter>Forms\Controls\Widgets</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Controls\WidgetSliderInput.cpp">
+      <Filter>Forms\Controls\Widgets</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Controls\WidgetTextInput.cpp">
+      <Filter>Forms\Controls\Widgets</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Controls\WidgetTextInputMultiLine.cpp">
+      <Filter>Forms\Controls\Widgets</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Controls\WidgetTextInputSingleLine.cpp">
+      <Filter>Forms\Controls\Widgets</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Controls\WidgetTextInputSingleLinePassword.cpp">
+      <Filter>Forms\Controls\Widgets</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Controls\InputType.cpp">
+      <Filter>Forms\Controls\Input Types</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Controls\InputTypeButton.cpp">
+      <Filter>Forms\Controls\Input Types</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Controls\InputTypeCheckbox.cpp">
+      <Filter>Forms\Controls\Input Types</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Controls\InputTypeRadio.cpp">
+      <Filter>Forms\Controls\Input Types</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Controls\InputTypeRange.cpp">
+      <Filter>Forms\Controls\Input Types</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Controls\InputTypeSubmit.cpp">
+      <Filter>Forms\Controls\Input Types</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Controls\InputTypeText.cpp">
+      <Filter>Forms\Controls\Input Types</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Controls\XMLNodeHandlerTextArea.cpp">
+      <Filter>Forms\Parsers</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Controls\Clipboard.cpp">
+      <Filter>Forms\Clipboard</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Controls\ElementTabSet.cpp">
+      <Filter>Tab Set</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Controls\XMLNodeHandlerTabSet.cpp">
+      <Filter>Tab Set\Parser</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Controls\ElementDataGrid.cpp">
+      <Filter>Data Grid</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Controls\ElementDataGridCell.cpp">
+      <Filter>Data Grid</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Controls\ElementDataGridExpandButton.cpp">
+      <Filter>Data Grid</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Controls\ElementDataGridRow.cpp">
+      <Filter>Data Grid</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Controls\XMLNodeHandlerDataGrid.cpp">
+      <Filter>Data Grid\Parser</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Controls\DataFormatter.cpp">
+      <Filter>Data Grid\Data Source</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Controls\DataQuery.cpp">
+      <Filter>Data Grid\Data Source</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Controls\DataSource.cpp">
+      <Filter>Data Grid\Data Source</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Controls\DataSourceListener.cpp">
+      <Filter>Data Grid\Data Source</Filter>
+    </ClCompile>
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="..\..\Include\Rocket\Controls\Controls.h">
+      <Filter>Plugin</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Controls\Header.h">
+      <Filter>Plugin</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Controls\ElementForm.h">
+      <Filter>Forms</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Controls\ElementFormControl.h">
+      <Filter>Forms</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Controls\ElementFormControlDataSelect.h">
+      <Filter>Forms\Controls</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Controls\ElementFormControlInput.h">
+      <Filter>Forms\Controls</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Controls\ElementFormControlSelect.h">
+      <Filter>Forms\Controls</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Controls\ElementFormControlTextArea.h">
+      <Filter>Forms\Controls</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Controls\SelectOption.h">
+      <Filter>Forms\Controls</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Controls\ElementTextSelection.h">
+      <Filter>Forms\Controls\Widgets</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Controls\WidgetDropDown.h">
+      <Filter>Forms\Controls\Widgets</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Controls\WidgetSlider.h">
+      <Filter>Forms\Controls\Widgets</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Controls\WidgetSliderInput.h">
+      <Filter>Forms\Controls\Widgets</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Controls\WidgetTextInput.h">
+      <Filter>Forms\Controls\Widgets</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Controls\WidgetTextInputMultiLine.h">
+      <Filter>Forms\Controls\Widgets</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Controls\WidgetTextInputSingleLine.h">
+      <Filter>Forms\Controls\Widgets</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Controls\WidgetTextInputSingleLinePassword.h">
+      <Filter>Forms\Controls\Widgets</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Controls\InputType.h">
+      <Filter>Forms\Controls\Input Types</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Controls\InputTypeButton.h">
+      <Filter>Forms\Controls\Input Types</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Controls\InputTypeCheckbox.h">
+      <Filter>Forms\Controls\Input Types</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Controls\InputTypeRadio.h">
+      <Filter>Forms\Controls\Input Types</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Controls\InputTypeRange.h">
+      <Filter>Forms\Controls\Input Types</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Controls\InputTypeSubmit.h">
+      <Filter>Forms\Controls\Input Types</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Controls\InputTypeText.h">
+      <Filter>Forms\Controls\Input Types</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Controls\XMLNodeHandlerTextArea.h">
+      <Filter>Forms\Parsers</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Controls\Clipboard.h">
+      <Filter>Forms\Clipboard</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Controls\ElementTabSet.h">
+      <Filter>Tab Set</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Controls\XMLNodeHandlerTabSet.h">
+      <Filter>Tab Set\Parser</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Controls\ElementDataGrid.h">
+      <Filter>Data Grid</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Controls\ElementDataGridCell.h">
+      <Filter>Data Grid</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Controls\ElementDataGridExpandButton.h">
+      <Filter>Data Grid</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Controls\ElementDataGridRow.h">
+      <Filter>Data Grid</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Controls\XMLNodeHandlerDataGrid.h">
+      <Filter>Data Grid\Parser</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Controls\DataFormatter.h">
+      <Filter>Data Grid\Data Source</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Controls\DataQuery.h">
+      <Filter>Data Grid\Data Source</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Controls\DataSource.h">
+      <Filter>Data Grid\Data Source</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Controls\DataSourceListener.h">
+      <Filter>Data Grid\Data Source</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Controls.h" />
+  </ItemGroup>
+</Project>

+ 3 - 0
Build/vc2010/RocketControls.vcxproj.user

@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+</Project>

+ 1506 - 0
Build/vc2010/RocketCore.vcproj

@@ -0,0 +1,1506 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+	ProjectType="Visual C++"
+	Version="9.00"
+	Name="RocketCore"
+	ProjectGUID="{1AAC0B29-AEB9-4E3F-8EDF-B46F8949C41B}"
+	RootNamespace="rocket"
+	Keyword="Win32Proj"
+	TargetFrameworkVersion="131072"
+	>
+	<Platforms>
+		<Platform
+			Name="Win32"
+		/>
+	</Platforms>
+	<ToolFiles>
+	</ToolFiles>
+	<Configurations>
+		<Configuration
+			Name="Debug|Win32"
+			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
+			ConfigurationType="2"
+			InheritedPropertySheets=".\vsprops\BuildConfigurationDLLDebug.vsprops"
+			CharacterSet="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				AdditionalIncludeDirectories="..\..\Include;..\..\support\freetype\include"
+				UsePrecompiledHeader="0"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="freetype243MT_D.lib"
+				OutputFile="..\bin\$(ProjectName)_d.dll"
+				AdditionalLibraryDirectories="..\..\support\lib"
+				RandomizedBaseAddress="1"
+				DataExecutionPrevention="0"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release|Win32"
+			ConfigurationType="2"
+			InheritedPropertySheets=".\vsprops\BuildConfigurationDLLRelease.vsprops"
+			CharacterSet="1"
+			WholeProgramOptimization="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				AdditionalIncludeDirectories="..\..\Include;..\..\support\freetype\include"
+				UsePrecompiledHeader="2"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="freetype243MT.lib"
+				OutputFile="..\bin\$(ProjectName).dll"
+				AdditionalLibraryDirectories="..\..\support\lib"
+				RandomizedBaseAddress="1"
+				DataExecutionPrevention="0"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+	</Configurations>
+	<References>
+	</References>
+	<Files>
+		<Filter
+			Name="Precompiled Header"
+			>
+			<File
+				RelativePath="..\..\Source\Core\precompiled.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						UsePrecompiledHeader="0"
+					/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Release|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						UsePrecompiledHeader="1"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\Source\Core\precompiled.h"
+				>
+			</File>
+		</Filter>
+		<Filter
+			Name="Texture"
+			>
+			<File
+				RelativePath="..\..\Source\Core\Texture.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Include\Rocket\Core\Texture.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Source\Core\TextureDatabase.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Source\Core\TextureDatabase.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Source\Core\TextureResource.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Source\Core\TextureResource.h"
+				>
+			</File>
+		</Filter>
+		<Filter
+			Name="Element"
+			>
+			<File
+				RelativePath="..\..\Source\Core\Box.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Include\Rocket\Core\Box.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Source\Core\DocumentHeader.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Source\Core\DocumentHeader.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Source\Core\Element.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Include\Rocket\Core\Element.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Include\Rocket\Core\Element.inl"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Source\Core\ElementBackground.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Source\Core\ElementBackground.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Source\Core\ElementBorder.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Source\Core\ElementBorder.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Source\Core\ElementDecoration.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Source\Core\ElementDecoration.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Source\Core\ElementReference.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Include\Rocket\Core\ElementReference.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Source\Core\ElementScroll.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Include\Rocket\Core\ElementScroll.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Source\Core\ElementStyle.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Source\Core\ElementStyle.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Source\Core\ElementStyleCache.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Source\Core\ElementStyleCache.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Source\Core\ElementUtilities.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Include\Rocket\Core\ElementUtilities.h"
+				>
+			</File>
+			<Filter
+				Name="Layout"
+				>
+				<File
+					RelativePath="..\..\Source\Core\LayoutBlockBox.cpp"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Source\Core\LayoutBlockBox.h"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Source\Core\LayoutBlockBoxSpace.cpp"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Source\Core\LayoutBlockBoxSpace.h"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Source\Core\LayoutEngine.cpp"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Source\Core\LayoutEngine.h"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Source\Core\LayoutInlineBox.cpp"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Source\Core\LayoutInlineBox.h"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Source\Core\LayoutInlineBoxText.cpp"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Source\Core\LayoutInlineBoxText.h"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Source\Core\LayoutLineBox.cpp"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Source\Core\LayoutLineBox.h"
+					>
+				</File>
+			</Filter>
+			<Filter
+				Name="Instancer"
+				>
+				<File
+					RelativePath="..\..\Source\Core\ElementInstancer.cpp"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Include\Rocket\Core\ElementInstancer.h"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Include\Rocket\Core\ElementInstancerGeneric.h"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Include\Rocket\Core\ElementInstancerGeneric.inl"
+					>
+				</File>
+			</Filter>
+			<Filter
+				Name="Parser"
+				>
+				<File
+					RelativePath="..\..\Source\Core\XMLNodeHandler.cpp"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Include\Rocket\Core\XMLNodeHandler.h"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Source\Core\XMLNodeHandlerBody.cpp"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Source\Core\XMLNodeHandlerBody.h"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Source\Core\XMLNodeHandlerDefault.cpp"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Source\Core\XMLNodeHandlerDefault.h"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Source\Core\XMLNodeHandlerHead.cpp"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Source\Core\XMLNodeHandlerHead.h"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Source\Core\XMLNodeHandlerTemplate.cpp"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Source\Core\XMLNodeHandlerTemplate.h"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Source\Core\XMLParser.cpp"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Include\Rocket\Core\XMLParser.h"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Source\Core\XMLParseTools.cpp"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Source\Core\XMLParseTools.h"
+					>
+				</File>
+			</Filter>
+			<Filter
+				Name="Definition"
+				>
+				<File
+					RelativePath="..\..\Source\Core\ElementDefinition.cpp"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Source\Core\ElementDefinition.h"
+					>
+				</File>
+			</Filter>
+			<Filter
+				Name="Text"
+				>
+				<File
+					RelativePath="..\..\Source\Core\ElementText.cpp"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Include\Rocket\Core\ElementText.h"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Source\Core\ElementTextDefault.cpp"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Source\Core\ElementTextDefault.h"
+					>
+				</File>
+			</Filter>
+			<Filter
+				Name="Handle"
+				>
+				<File
+					RelativePath="..\..\Source\Core\ElementHandle.cpp"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Source\Core\ElementHandle.h"
+					>
+				</File>
+			</Filter>
+			<Filter
+				Name="Widgets"
+				>
+				<File
+					RelativePath="..\..\Source\Core\WidgetSlider.cpp"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Source\Core\WidgetSlider.h"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Source\Core\WidgetSliderScroll.cpp"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Source\Core\WidgetSliderScroll.h"
+					>
+				</File>
+			</Filter>
+			<Filter
+				Name="Image"
+				>
+				<File
+					RelativePath="..\..\Source\Core\ElementImage.cpp"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Source\Core\ElementImage.h"
+					>
+				</File>
+			</Filter>
+			<Filter
+				Name="Document"
+				>
+				<File
+					RelativePath="..\..\Source\Core\ElementDocument.cpp"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Include\Rocket\Core\ElementDocument.h"
+					>
+				</File>
+			</Filter>
+		</Filter>
+		<Filter
+			Name="Geometry"
+			>
+			<File
+				RelativePath="..\..\Source\Core\Geometry.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Include\Rocket\Core\Geometry.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Source\Core\GeometryDatabase.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Source\Core\GeometryDatabase.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Source\Core\GeometryUtilities.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Include\Rocket\Core\GeometryUtilities.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Include\Rocket\Core\Vertex.h"
+				>
+			</File>
+		</Filter>
+		<Filter
+			Name="Decorator"
+			>
+			<File
+				RelativePath="..\..\Source\Core\Decorator.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Include\Rocket\Core\Decorator.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Source\Core\DecoratorInstancer.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Include\Rocket\Core\DecoratorInstancer.h"
+				>
+			</File>
+			<Filter
+				Name="Decorators"
+				>
+				<File
+					RelativePath="..\..\Source\Core\DecoratorNone.cpp"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Source\Core\DecoratorNone.h"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Source\Core\DecoratorNoneInstancer.cpp"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Source\Core\DecoratorNoneInstancer.h"
+					>
+				</File>
+				<Filter
+					Name="Tile"
+					>
+					<File
+						RelativePath="..\..\Source\Core\DecoratorTiled.cpp"
+						>
+					</File>
+					<File
+						RelativePath="..\..\Source\Core\DecoratorTiled.h"
+						>
+					</File>
+					<File
+						RelativePath="..\..\Source\Core\DecoratorTiledInstancer.cpp"
+						>
+					</File>
+					<File
+						RelativePath="..\..\Source\Core\DecoratorTiledInstancer.h"
+						>
+					</File>
+					<Filter
+						Name="Horizontal"
+						>
+						<File
+							RelativePath="..\..\Source\Core\DecoratorTiledHorizontal.cpp"
+							>
+						</File>
+						<File
+							RelativePath="..\..\Source\Core\DecoratorTiledHorizontal.h"
+							>
+						</File>
+						<File
+							RelativePath="..\..\Source\Core\DecoratorTiledHorizontalInstancer.cpp"
+							>
+						</File>
+						<File
+							RelativePath="..\..\Source\Core\DecoratorTiledHorizontalInstancer.h"
+							>
+						</File>
+					</Filter>
+					<Filter
+						Name="Box"
+						>
+						<File
+							RelativePath="..\..\Source\Core\DecoratorTiledBox.cpp"
+							>
+						</File>
+						<File
+							RelativePath="..\..\Source\Core\DecoratorTiledBox.h"
+							>
+						</File>
+						<File
+							RelativePath="..\..\Source\Core\DecoratorTiledBoxInstancer.cpp"
+							>
+						</File>
+						<File
+							RelativePath="..\..\Source\Core\DecoratorTiledBoxInstancer.h"
+							>
+						</File>
+					</Filter>
+					<Filter
+						Name="Image"
+						>
+						<File
+							RelativePath="..\..\Source\Core\DecoratorTiledImage.cpp"
+							>
+						</File>
+						<File
+							RelativePath="..\..\Source\Core\DecoratorTiledImage.h"
+							>
+						</File>
+						<File
+							RelativePath="..\..\Source\Core\DecoratorTiledImageInstancer.cpp"
+							>
+						</File>
+						<File
+							RelativePath="..\..\Source\Core\DecoratorTiledImageInstancer.h"
+							>
+						</File>
+					</Filter>
+					<Filter
+						Name="Vertical"
+						>
+						<File
+							RelativePath="..\..\Source\Core\DecoratorTiledVertical.cpp"
+							>
+						</File>
+						<File
+							RelativePath="..\..\Source\Core\DecoratorTiledVertical.h"
+							>
+						</File>
+						<File
+							RelativePath="..\..\Source\Core\DecoratorTiledVerticalInstancer.cpp"
+							>
+						</File>
+						<File
+							RelativePath="..\..\Source\Core\DecoratorTiledVerticalInstancer.h"
+							>
+						</File>
+					</Filter>
+				</Filter>
+			</Filter>
+		</Filter>
+		<Filter
+			Name="Style Sheet"
+			>
+			<File
+				RelativePath="..\..\Source\Core\StyleSheet.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Include\Rocket\Core\StyleSheet.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Source\Core\StyleSheetFactory.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Source\Core\StyleSheetFactory.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Include\Rocket\Core\StyleSheetKeywords.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Source\Core\StyleSheetNode.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Source\Core\StyleSheetNode.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Source\Core\StyleSheetParser.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Source\Core\StyleSheetParser.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Source\Core\StyleSheetSpecification.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Include\Rocket\Core\StyleSheetSpecification.h"
+				>
+			</File>
+			<Filter
+				Name="Property"
+				>
+				<File
+					RelativePath="..\..\Source\Core\Property.cpp"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Include\Rocket\Core\Property.h"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Source\Core\PropertyDictionary.cpp"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Include\Rocket\Core\PropertyDictionary.h"
+					>
+				</File>
+				<Filter
+					Name="Definition"
+					>
+					<File
+						RelativePath="..\..\Source\Core\PropertyDefinition.cpp"
+						>
+					</File>
+					<File
+						RelativePath="..\..\Include\Rocket\Core\PropertyDefinition.h"
+						>
+					</File>
+					<File
+						RelativePath="..\..\Source\Core\PropertyShorthandDefinition.h"
+						>
+					</File>
+					<File
+						RelativePath="..\..\Source\Core\PropertySpecification.cpp"
+						>
+					</File>
+					<File
+						RelativePath="..\..\Include\Rocket\Core\PropertySpecification.h"
+						>
+					</File>
+					<Filter
+						Name="Parser"
+						>
+						<File
+							RelativePath="..\..\Include\Rocket\Core\PropertyParser.h"
+							>
+						</File>
+						<File
+							RelativePath="..\..\Source\Core\PropertyParserColour.cpp"
+							>
+						</File>
+						<File
+							RelativePath="..\..\Source\Core\PropertyParserColour.h"
+							>
+						</File>
+						<File
+							RelativePath="..\..\Source\Core\PropertyParserKeyword.cpp"
+							>
+						</File>
+						<File
+							RelativePath="..\..\Source\Core\PropertyParserKeyword.h"
+							>
+						</File>
+						<File
+							RelativePath="..\..\Source\Core\PropertyParserNumber.cpp"
+							>
+						</File>
+						<File
+							RelativePath="..\..\Source\Core\PropertyParserNumber.h"
+							>
+						</File>
+						<File
+							RelativePath="..\..\Source\Core\PropertyParserString.cpp"
+							>
+						</File>
+						<File
+							RelativePath="..\..\Source\Core\PropertyParserString.h"
+							>
+						</File>
+					</Filter>
+				</Filter>
+			</Filter>
+			<Filter
+				Name="Selectors"
+				>
+				<File
+					RelativePath="..\..\Source\Core\StyleSheetNodeSelector.cpp"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Source\Core\StyleSheetNodeSelector.h"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Source\Core\StyleSheetNodeSelectorEmpty.cpp"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Source\Core\StyleSheetNodeSelectorEmpty.h"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Source\Core\StyleSheetNodeSelectorFirstChild.cpp"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Source\Core\StyleSheetNodeSelectorFirstChild.h"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Source\Core\StyleSheetNodeSelectorFirstOfType.cpp"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Source\Core\StyleSheetNodeSelectorFirstOfType.h"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Source\Core\StyleSheetNodeSelectorLastChild.cpp"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Source\Core\StyleSheetNodeSelectorLastChild.h"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Source\Core\StyleSheetNodeSelectorLastOfType.cpp"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Source\Core\StyleSheetNodeSelectorLastOfType.h"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Source\Core\StyleSheetNodeSelectorNthChild.cpp"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Source\Core\StyleSheetNodeSelectorNthChild.h"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Source\Core\StyleSheetNodeSelectorNthLastChild.cpp"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Source\Core\StyleSheetNodeSelectorNthLastChild.h"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Source\Core\StyleSheetNodeSelectorNthLastOfType.cpp"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Source\Core\StyleSheetNodeSelectorNthLastOfType.h"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Source\Core\StyleSheetNodeSelectorNthOfType.cpp"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Source\Core\StyleSheetNodeSelectorNthOfType.h"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Source\Core\StyleSheetNodeSelectorOnlyChild.cpp"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Source\Core\StyleSheetNodeSelectorOnlyChild.h"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Source\Core\StyleSheetNodeSelectorOnlyOfType.cpp"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Source\Core\StyleSheetNodeSelectorOnlyOfType.h"
+					>
+				</File>
+			</Filter>
+		</Filter>
+		<Filter
+			Name="Events"
+			>
+			<File
+				RelativePath="..\..\Source\Core\Event.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Include\Rocket\Core\Event.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Source\Core\EventDispatcher.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Source\Core\EventDispatcher.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Source\Core\EventInstancer.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Include\Rocket\Core\EventInstancer.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Source\Core\EventInstancerDefault.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Source\Core\EventInstancerDefault.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Source\Core\EventIterators.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Include\Rocket\Core\EventListener.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Source\Core\EventListenerInstancer.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Include\Rocket\Core\EventListenerInstancer.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Include\Rocket\Core\Input.h"
+				>
+			</File>
+		</Filter>
+		<Filter
+			Name="Fonts"
+			>
+			<File
+				RelativePath="..\..\Include\Rocket\Core\Font.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Source\Core\FontDatabase.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Include\Rocket\Core\FontDatabase.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Source\Core\FontFace.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Source\Core\FontFace.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Source\Core\FontFaceHandle.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Source\Core\FontFaceHandle.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Source\Core\FontFaceLayer.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Source\Core\FontFaceLayer.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Source\Core\FontFamily.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Source\Core\FontFamily.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Include\Rocket\Core\FontGlyph.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Source\Core\UnicodeRange.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Source\Core\UnicodeRange.h"
+				>
+			</File>
+			<Filter
+				Name="Texture Layout"
+				>
+				<File
+					RelativePath="..\..\Source\Core\TextureLayout.cpp"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Source\Core\TextureLayout.h"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Source\Core\TextureLayoutRectangle.cpp"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Source\Core\TextureLayoutRectangle.h"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Source\Core\TextureLayoutRow.cpp"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Source\Core\TextureLayoutRow.h"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Source\Core\TextureLayoutTexture.cpp"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Source\Core\TextureLayoutTexture.h"
+					>
+				</File>
+			</Filter>
+			<Filter
+				Name="Effect"
+				>
+				<File
+					RelativePath="..\..\Source\Core\FontEffect.cpp"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Include\Rocket\Core\FontEffect.h"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Source\Core\FontEffectInstancer.cpp"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Include\Rocket\Core\FontEffectInstancer.h"
+					>
+				</File>
+				<Filter
+					Name="Effects"
+					>
+					<Filter
+						Name="None"
+						>
+						<File
+							RelativePath="..\..\Source\Core\FontEffectNone.cpp"
+							>
+						</File>
+						<File
+							RelativePath="..\..\Source\Core\FontEffectNone.h"
+							>
+						</File>
+						<File
+							RelativePath="..\..\Source\Core\FontEffectNoneInstancer.cpp"
+							>
+						</File>
+						<File
+							RelativePath="..\..\Source\Core\FontEffectNoneInstancer.h"
+							>
+						</File>
+					</Filter>
+					<Filter
+						Name="Outline"
+						>
+						<File
+							RelativePath="..\..\Source\Core\FontEffectOutline.cpp"
+							>
+						</File>
+						<File
+							RelativePath="..\..\Source\Core\FontEffectOutline.h"
+							>
+						</File>
+						<File
+							RelativePath="..\..\Source\Core\FontEffectOutlineInstancer.cpp"
+							>
+						</File>
+						<File
+							RelativePath="..\..\Source\Core\FontEffectOutlineInstancer.h"
+							>
+						</File>
+					</Filter>
+					<Filter
+						Name="Shadow"
+						>
+						<File
+							RelativePath="..\..\Source\Core\FontEffectShadow.cpp"
+							>
+						</File>
+						<File
+							RelativePath="..\..\Source\Core\FontEffectShadow.h"
+							>
+						</File>
+						<File
+							RelativePath="..\..\Source\Core\FontEffectShadowInstancer.cpp"
+							>
+						</File>
+						<File
+							RelativePath="..\..\Source\Core\FontEffectShadowInstancer.h"
+							>
+						</File>
+					</Filter>
+					<Filter
+						Name="Convolution Filter"
+						>
+						<File
+							RelativePath="..\..\Source\Core\ConvolutionFilter.cpp"
+							>
+						</File>
+						<File
+							RelativePath="..\..\Include\Rocket\Core\ConvolutionFilter.h"
+							>
+						</File>
+					</Filter>
+				</Filter>
+			</Filter>
+		</Filter>
+		<Filter
+			Name="Templates"
+			>
+			<File
+				RelativePath="..\..\Source\Core\Template.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Source\Core\Template.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Source\Core\TemplateCache.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Source\Core\TemplateCache.h"
+				>
+			</File>
+		</Filter>
+		<Filter
+			Name="Core"
+			>
+			<File
+				RelativePath="..\..\Source\Core\Clock.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Source\Core\Clock.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Source\Core\Core.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Include\Rocket\Core\Core.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Source\Core\Factory.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Include\Rocket\Core\Factory.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Include\Rocket\Core\Header.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Source\Core\Log.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Include\Rocket\Core\Log.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Source\Core\Math.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Include\Rocket\Core\Types.h"
+				>
+			</File>
+			<Filter
+				Name="Interfaces"
+				>
+				<Filter
+					Name="Renderer"
+					>
+					<File
+						RelativePath="..\..\Source\Core\RenderInterface.cpp"
+						>
+					</File>
+					<File
+						RelativePath="..\..\Include\Rocket\Core\RenderInterface.h"
+						>
+					</File>
+				</Filter>
+				<Filter
+					Name="File"
+					>
+					<File
+						RelativePath="..\..\Source\Core\FileInterface.cpp"
+						>
+					</File>
+					<File
+						RelativePath="..\..\Include\Rocket\Core\FileInterface.h"
+						>
+					</File>
+					<File
+						RelativePath="..\..\Source\Core\FileInterfaceDefault.cpp"
+						>
+					</File>
+					<File
+						RelativePath="..\..\Source\Core\FileInterfaceDefault.h"
+						>
+					</File>
+					<File
+						RelativePath="..\..\Source\Core\StreamFile.cpp"
+						>
+					</File>
+					<File
+						RelativePath="..\..\Source\Core\StreamFile.h"
+						>
+					</File>
+				</Filter>
+				<Filter
+					Name="System"
+					>
+					<File
+						RelativePath="..\..\Source\Core\SystemInterface.cpp"
+						>
+					</File>
+					<File
+						RelativePath="..\..\Include\Rocket\Core\SystemInterface.h"
+						>
+					</File>
+				</Filter>
+			</Filter>
+			<Filter
+				Name="String"
+				>
+				<File
+					RelativePath="..\..\Source\Core\String.cpp"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Include\Rocket\Core\String.h"
+					>
+				</File>
+			</Filter>
+			<Filter
+				Name="Plugin"
+				>
+				<File
+					RelativePath="..\..\Source\Core\Plugin.cpp"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Include\Rocket\Core\Plugin.h"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Source\Core\PluginRegistry.cpp"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Source\Core\PluginRegistry.h"
+					>
+				</File>
+			</Filter>
+			<Filter
+				Name="Types"
+				>
+				<File
+					RelativePath="..\..\Source\Core\BaseXMLParser.cpp"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Include\Rocket\Core\BaseXMLParser.h"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Include\Rocket\Core\Colour.h"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Include\Rocket\Core\Colour.inl"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Include\Rocket\Core\Debug.h"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Source\Core\Dictionary.cpp"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Include\Rocket\Core\Dictionary.h"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Include\Rocket\Core\Dictionary.inl"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Source\Core\ReferenceCountable.cpp"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Include\Rocket\Core\ScriptInterface.h"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Source\Core\Stream.cpp"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Include\Rocket\Core\Stream.h"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Source\Core\StreamMemory.cpp"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Include\Rocket\Core\StreamMemory.h"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Include\Rocket\Core\StringBase.h"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Include\Rocket\Core\StringBase.inl"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Source\Core\StringUtilities.cpp"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Include\Rocket\Core\StringUtilities.h"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Source\Core\URL.cpp"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Include\Rocket\Core\URL.h"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Source\Core\Variant.cpp"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Include\Rocket\Core\Variant.h"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Include\Rocket\Core\Variant.inl"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Source\Core\Vector2.cpp"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Include\Rocket\Core\Vector2.h"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Include\Rocket\Core\Vector2.inl"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Source\Core\WString.cpp"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Include\Rocket\Core\WString.h"
+					>
+				</File>
+			</Filter>
+		</Filter>
+		<Filter
+			Name="Context"
+			>
+			<File
+				RelativePath="..\..\Source\Core\Context.cpp"
+				>
+				<FileConfiguration
+					Name="Debug|Win32"
+					>
+					<Tool
+						Name="VCCLCompilerTool"
+						ShowIncludes="false"
+					/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath="..\..\Include\Rocket\Core\Context.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Source\Core\ContextInstancer.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Include\Rocket\Core\ContextInstancer.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Source\Core\ContextInstancerDefault.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Source\Core\ContextInstancerDefault.h"
+				>
+			</File>
+		</Filter>
+		<Filter
+			Name="String Cache"
+			>
+			<File
+				RelativePath="..\..\Source\Core\StringCache.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Source\Core\StringCache.h"
+				>
+			</File>
+		</Filter>
+		<File
+			RelativePath="..\..\Include\Rocket\Core.h"
+			>
+		</File>
+	</Files>
+	<Globals>
+	</Globals>
+</VisualStudioProject>

+ 376 - 0
Build/vc2010/RocketCore.vcxproj

@@ -0,0 +1,376 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{1AAC0B29-AEB9-4E3F-8EDF-B46F8949C41B}</ProjectGuid>
+    <RootNamespace>rocket</RootNamespace>
+    <Keyword>Win32Proj</Keyword>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <CharacterSet>Unicode</CharacterSet>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <CharacterSet>Unicode</CharacterSet>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="vsprops\BuildConfigurationDLLRelease.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="vsprops\BuildConfigurationDLLDebug.props" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+    <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)..\..\bin\</OutDir>
+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectName)_d</TargetName>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)..\..\bin\</OutDir>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <ClCompile>
+      <AdditionalIncludeDirectories>..\..\Include;..\..\..\support\freetype-2.4.10\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PrecompiledHeader>
+      </PrecompiledHeader>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>freetype2410_D.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>..\..\bin\$(ProjectName)_d.dll</OutputFile>
+      <AdditionalLibraryDirectories>..\..\..\support\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention>
+      </DataExecutionPrevention>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <ClCompile>
+      <AdditionalIncludeDirectories>..\..\Include;..\..\..\support\freetype-2.4.10\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PrecompiledHeader>Use</PrecompiledHeader>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>freetype2410.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>..\..\bin\$(ProjectName).dll</OutputFile>
+      <AdditionalLibraryDirectories>..\..\..\support\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention>
+      </DataExecutionPrevention>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\Source\Core\precompiled.cpp">
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+      </PrecompiledHeader>
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\Texture.cpp" />
+    <ClCompile Include="..\..\Source\Core\TextureDatabase.cpp" />
+    <ClCompile Include="..\..\Source\Core\TextureResource.cpp" />
+    <ClCompile Include="..\..\Source\Core\Box.cpp" />
+    <ClCompile Include="..\..\Source\Core\DocumentHeader.cpp" />
+    <ClCompile Include="..\..\Source\Core\Element.cpp" />
+    <ClCompile Include="..\..\Source\Core\ElementBackground.cpp" />
+    <ClCompile Include="..\..\Source\Core\ElementBorder.cpp" />
+    <ClCompile Include="..\..\Source\Core\ElementDecoration.cpp" />
+    <ClCompile Include="..\..\Source\Core\ElementReference.cpp" />
+    <ClCompile Include="..\..\Source\Core\ElementScroll.cpp" />
+    <ClCompile Include="..\..\Source\Core\ElementStyle.cpp" />
+	<ClCompile Include="..\..\Source\Core\ElementStyleCache.cpp" />
+    <ClCompile Include="..\..\Source\Core\ElementUtilities.cpp" />
+    <ClCompile Include="..\..\Source\Core\LayoutBlockBox.cpp" />
+    <ClCompile Include="..\..\Source\Core\LayoutBlockBoxSpace.cpp" />
+    <ClCompile Include="..\..\Source\Core\LayoutEngine.cpp" />
+    <ClCompile Include="..\..\Source\Core\LayoutInlineBox.cpp" />
+    <ClCompile Include="..\..\Source\Core\LayoutInlineBoxText.cpp" />
+    <ClCompile Include="..\..\Source\Core\LayoutLineBox.cpp" />
+    <ClCompile Include="..\..\Source\Core\ElementInstancer.cpp" />
+    <ClCompile Include="..\..\Source\Core\XMLNodeHandler.cpp" />
+    <ClCompile Include="..\..\Source\Core\XMLNodeHandlerBody.cpp" />
+    <ClCompile Include="..\..\Source\Core\XMLNodeHandlerDefault.cpp" />
+    <ClCompile Include="..\..\Source\Core\XMLNodeHandlerHead.cpp" />
+    <ClCompile Include="..\..\Source\Core\XMLNodeHandlerTemplate.cpp" />
+    <ClCompile Include="..\..\Source\Core\XMLParser.cpp" />
+    <ClCompile Include="..\..\Source\Core\XMLParseTools.cpp" />
+    <ClCompile Include="..\..\Source\Core\ElementDefinition.cpp" />
+    <ClCompile Include="..\..\Source\Core\ElementText.cpp" />
+    <ClCompile Include="..\..\Source\Core\ElementTextDefault.cpp" />
+    <ClCompile Include="..\..\Source\Core\ElementHandle.cpp" />
+    <ClCompile Include="..\..\Source\Core\WidgetSlider.cpp" />
+    <ClCompile Include="..\..\Source\Core\WidgetSliderScroll.cpp" />
+    <ClCompile Include="..\..\Source\Core\ElementImage.cpp" />
+    <ClCompile Include="..\..\Source\Core\ElementDocument.cpp" />
+    <ClCompile Include="..\..\Source\Core\Geometry.cpp" />
+    <ClCompile Include="..\..\Source\Core\GeometryDatabase.cpp" />
+    <ClCompile Include="..\..\Source\Core\GeometryUtilities.cpp" />
+    <ClCompile Include="..\..\Source\Core\Decorator.cpp" />
+    <ClCompile Include="..\..\Source\Core\DecoratorInstancer.cpp" />
+    <ClCompile Include="..\..\Source\Core\DecoratorNone.cpp" />
+    <ClCompile Include="..\..\Source\Core\DecoratorNoneInstancer.cpp" />
+    <ClCompile Include="..\..\Source\Core\DecoratorTiled.cpp" />
+    <ClCompile Include="..\..\Source\Core\DecoratorTiledInstancer.cpp" />
+    <ClCompile Include="..\..\Source\Core\DecoratorTiledHorizontal.cpp" />
+    <ClCompile Include="..\..\Source\Core\DecoratorTiledHorizontalInstancer.cpp" />
+    <ClCompile Include="..\..\Source\Core\DecoratorTiledBox.cpp" />
+    <ClCompile Include="..\..\Source\Core\DecoratorTiledBoxInstancer.cpp" />
+    <ClCompile Include="..\..\Source\Core\DecoratorTiledImage.cpp" />
+    <ClCompile Include="..\..\Source\Core\DecoratorTiledImageInstancer.cpp" />
+    <ClCompile Include="..\..\Source\Core\DecoratorTiledVertical.cpp" />
+    <ClCompile Include="..\..\Source\Core\DecoratorTiledVerticalInstancer.cpp" />
+    <ClCompile Include="..\..\Source\Core\StyleSheet.cpp" />
+    <ClCompile Include="..\..\Source\Core\StyleSheetFactory.cpp" />
+    <ClCompile Include="..\..\Source\Core\StyleSheetNode.cpp" />
+    <ClCompile Include="..\..\Source\Core\StyleSheetParser.cpp" />
+    <ClCompile Include="..\..\Source\Core\StyleSheetSpecification.cpp" />
+    <ClCompile Include="..\..\Source\Core\Property.cpp" />
+    <ClCompile Include="..\..\Source\Core\PropertyDictionary.cpp" />
+    <ClCompile Include="..\..\Source\Core\PropertyDefinition.cpp" />
+    <ClCompile Include="..\..\Source\Core\PropertySpecification.cpp" />
+    <ClCompile Include="..\..\Source\Core\PropertyParserColour.cpp" />
+    <ClCompile Include="..\..\Source\Core\PropertyParserKeyword.cpp" />
+    <ClCompile Include="..\..\Source\Core\PropertyParserNumber.cpp" />
+    <ClCompile Include="..\..\Source\Core\PropertyParserString.cpp" />
+    <ClCompile Include="..\..\Source\Core\StyleSheetNodeSelector.cpp" />
+    <ClCompile Include="..\..\Source\Core\StyleSheetNodeSelectorEmpty.cpp" />
+    <ClCompile Include="..\..\Source\Core\StyleSheetNodeSelectorFirstChild.cpp" />
+    <ClCompile Include="..\..\Source\Core\StyleSheetNodeSelectorFirstOfType.cpp" />
+    <ClCompile Include="..\..\Source\Core\StyleSheetNodeSelectorLastChild.cpp" />
+    <ClCompile Include="..\..\Source\Core\StyleSheetNodeSelectorLastOfType.cpp" />
+    <ClCompile Include="..\..\Source\Core\StyleSheetNodeSelectorNthChild.cpp" />
+    <ClCompile Include="..\..\Source\Core\StyleSheetNodeSelectorNthLastChild.cpp" />
+    <ClCompile Include="..\..\Source\Core\StyleSheetNodeSelectorNthLastOfType.cpp" />
+    <ClCompile Include="..\..\Source\Core\StyleSheetNodeSelectorNthOfType.cpp" />
+    <ClCompile Include="..\..\Source\Core\StyleSheetNodeSelectorOnlyChild.cpp" />
+    <ClCompile Include="..\..\Source\Core\StyleSheetNodeSelectorOnlyOfType.cpp" />
+    <ClCompile Include="..\..\Source\Core\Event.cpp" />
+    <ClCompile Include="..\..\Source\Core\EventDispatcher.cpp" />
+    <ClCompile Include="..\..\Source\Core\EventInstancer.cpp" />
+    <ClCompile Include="..\..\Source\Core\EventInstancerDefault.cpp" />
+    <ClCompile Include="..\..\Source\Core\EventListenerInstancer.cpp" />
+    <ClCompile Include="..\..\Source\Core\FontDatabase.cpp" />
+    <ClCompile Include="..\..\Source\Core\FontFace.cpp" />
+    <ClCompile Include="..\..\Source\Core\FontFaceHandle.cpp" />
+    <ClCompile Include="..\..\Source\Core\FontFaceLayer.cpp" />
+    <ClCompile Include="..\..\Source\Core\FontFamily.cpp" />
+    <ClCompile Include="..\..\Source\Core\UnicodeRange.cpp" />
+    <ClCompile Include="..\..\Source\Core\TextureLayout.cpp" />
+    <ClCompile Include="..\..\Source\Core\TextureLayoutRectangle.cpp" />
+    <ClCompile Include="..\..\Source\Core\TextureLayoutRow.cpp" />
+    <ClCompile Include="..\..\Source\Core\TextureLayoutTexture.cpp" />
+    <ClCompile Include="..\..\Source\Core\FontEffect.cpp" />
+    <ClCompile Include="..\..\Source\Core\FontEffectInstancer.cpp" />
+    <ClCompile Include="..\..\Source\Core\FontEffectNone.cpp" />
+    <ClCompile Include="..\..\Source\Core\FontEffectNoneInstancer.cpp" />
+    <ClCompile Include="..\..\Source\Core\FontEffectOutline.cpp" />
+    <ClCompile Include="..\..\Source\Core\FontEffectOutlineInstancer.cpp" />
+    <ClCompile Include="..\..\Source\Core\FontEffectShadow.cpp" />
+    <ClCompile Include="..\..\Source\Core\FontEffectShadowInstancer.cpp" />
+    <ClCompile Include="..\..\Source\Core\ConvolutionFilter.cpp" />
+    <ClCompile Include="..\..\Source\Core\Template.cpp" />
+    <ClCompile Include="..\..\Source\Core\TemplateCache.cpp" />
+    <ClCompile Include="..\..\Source\Core\Clock.cpp" />
+    <ClCompile Include="..\..\Source\Core\Core.cpp" />
+    <ClCompile Include="..\..\Source\Core\Factory.cpp" />
+    <ClCompile Include="..\..\Source\Core\Log.cpp" />
+    <ClCompile Include="..\..\Source\Core\Math.cpp" />
+    <ClCompile Include="..\..\Source\Core\RenderInterface.cpp" />
+    <ClCompile Include="..\..\Source\Core\FileInterface.cpp" />
+    <ClCompile Include="..\..\Source\Core\FileInterfaceDefault.cpp" />
+    <ClCompile Include="..\..\Source\Core\StreamFile.cpp" />
+    <ClCompile Include="..\..\Source\Core\SystemInterface.cpp" />
+    <ClCompile Include="..\..\Source\Core\String.cpp" />
+    <ClCompile Include="..\..\Source\Core\Plugin.cpp" />
+    <ClCompile Include="..\..\Source\Core\PluginRegistry.cpp" />
+    <ClCompile Include="..\..\Source\Core\BaseXMLParser.cpp" />
+    <ClCompile Include="..\..\Source\Core\Dictionary.cpp" />
+    <ClCompile Include="..\..\Source\Core\ReferenceCountable.cpp" />
+    <ClCompile Include="..\..\Source\Core\Stream.cpp" />
+    <ClCompile Include="..\..\Source\Core\StreamMemory.cpp" />
+    <ClCompile Include="..\..\Source\Core\StringUtilities.cpp" />
+    <ClCompile Include="..\..\Source\Core\URL.cpp" />
+    <ClCompile Include="..\..\Source\Core\Variant.cpp" />
+    <ClCompile Include="..\..\Source\Core\Vector2.cpp" />
+    <ClCompile Include="..\..\Source\Core\WString.cpp" />
+    <ClCompile Include="..\..\Source\Core\Context.cpp">
+      <ShowIncludes Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</ShowIncludes>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\ContextInstancer.cpp" />
+    <ClCompile Include="..\..\Source\Core\ContextInstancerDefault.cpp" />
+    <ClCompile Include="..\..\Source\Core\StringCache.cpp" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="..\..\Source\Core\precompiled.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\Texture.h" />
+    <ClInclude Include="..\..\Source\Core\TextureDatabase.h" />
+    <ClInclude Include="..\..\Source\Core\TextureResource.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\Box.h" />
+    <ClInclude Include="..\..\Source\Core\DocumentHeader.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\Element.h" />
+    <ClInclude Include="..\..\Source\Core\ElementBackground.h" />
+    <ClInclude Include="..\..\Source\Core\ElementBorder.h" />
+    <ClInclude Include="..\..\Source\Core\ElementDecoration.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\ElementReference.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\ElementScroll.h" />
+    <ClInclude Include="..\..\Source\Core\ElementStyle.h" />
+	<ClInclude Include="..\..\Source\Core\ElementStyleCache.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\ElementUtilities.h" />
+    <ClInclude Include="..\..\Source\Core\LayoutBlockBox.h" />
+    <ClInclude Include="..\..\Source\Core\LayoutBlockBoxSpace.h" />
+    <ClInclude Include="..\..\Source\Core\LayoutEngine.h" />
+    <ClInclude Include="..\..\Source\Core\LayoutInlineBox.h" />
+    <ClInclude Include="..\..\Source\Core\LayoutInlineBoxText.h" />
+    <ClInclude Include="..\..\Source\Core\LayoutLineBox.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\ElementInstancer.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\ElementInstancerGeneric.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\XMLNodeHandler.h" />
+    <ClInclude Include="..\..\Source\Core\XMLNodeHandlerBody.h" />
+    <ClInclude Include="..\..\Source\Core\XMLNodeHandlerDefault.h" />
+    <ClInclude Include="..\..\Source\Core\XMLNodeHandlerHead.h" />
+    <ClInclude Include="..\..\Source\Core\XMLNodeHandlerTemplate.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\XMLParser.h" />
+    <ClInclude Include="..\..\Source\Core\XMLParseTools.h" />
+    <ClInclude Include="..\..\Source\Core\ElementDefinition.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\ElementText.h" />
+    <ClInclude Include="..\..\Source\Core\ElementTextDefault.h" />
+    <ClInclude Include="..\..\Source\Core\ElementHandle.h" />
+    <ClInclude Include="..\..\Source\Core\WidgetSlider.h" />
+    <ClInclude Include="..\..\Source\Core\WidgetSliderScroll.h" />
+    <ClInclude Include="..\..\Source\Core\ElementImage.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\ElementDocument.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\Geometry.h" />
+    <ClInclude Include="..\..\Source\Core\GeometryDatabase.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\GeometryUtilities.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\Vertex.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\Decorator.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\DecoratorInstancer.h" />
+    <ClInclude Include="..\..\Source\Core\DecoratorNone.h" />
+    <ClInclude Include="..\..\Source\Core\DecoratorNoneInstancer.h" />
+    <ClInclude Include="..\..\Source\Core\DecoratorTiled.h" />
+    <ClInclude Include="..\..\Source\Core\DecoratorTiledInstancer.h" />
+    <ClInclude Include="..\..\Source\Core\DecoratorTiledHorizontal.h" />
+    <ClInclude Include="..\..\Source\Core\DecoratorTiledHorizontalInstancer.h" />
+    <ClInclude Include="..\..\Source\Core\DecoratorTiledBox.h" />
+    <ClInclude Include="..\..\Source\Core\DecoratorTiledBoxInstancer.h" />
+    <ClInclude Include="..\..\Source\Core\DecoratorTiledImage.h" />
+    <ClInclude Include="..\..\Source\Core\DecoratorTiledImageInstancer.h" />
+    <ClInclude Include="..\..\Source\Core\DecoratorTiledVertical.h" />
+    <ClInclude Include="..\..\Source\Core\DecoratorTiledVerticalInstancer.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\StyleSheet.h" />
+    <ClInclude Include="..\..\Source\Core\StyleSheetFactory.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\StyleSheetKeywords.h" />
+    <ClInclude Include="..\..\Source\Core\StyleSheetNode.h" />
+    <ClInclude Include="..\..\Source\Core\StyleSheetParser.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\StyleSheetSpecification.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\Property.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\PropertyDictionary.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\PropertyDefinition.h" />
+    <ClInclude Include="..\..\Source\Core\PropertyShorthandDefinition.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\PropertySpecification.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\PropertyParser.h" />
+    <ClInclude Include="..\..\Source\Core\PropertyParserColour.h" />
+    <ClInclude Include="..\..\Source\Core\PropertyParserKeyword.h" />
+    <ClInclude Include="..\..\Source\Core\PropertyParserNumber.h" />
+    <ClInclude Include="..\..\Source\Core\PropertyParserString.h" />
+    <ClInclude Include="..\..\Source\Core\StyleSheetNodeSelector.h" />
+    <ClInclude Include="..\..\Source\Core\StyleSheetNodeSelectorEmpty.h" />
+    <ClInclude Include="..\..\Source\Core\StyleSheetNodeSelectorFirstChild.h" />
+    <ClInclude Include="..\..\Source\Core\StyleSheetNodeSelectorFirstOfType.h" />
+    <ClInclude Include="..\..\Source\Core\StyleSheetNodeSelectorLastChild.h" />
+    <ClInclude Include="..\..\Source\Core\StyleSheetNodeSelectorLastOfType.h" />
+    <ClInclude Include="..\..\Source\Core\StyleSheetNodeSelectorNthChild.h" />
+    <ClInclude Include="..\..\Source\Core\StyleSheetNodeSelectorNthLastChild.h" />
+    <ClInclude Include="..\..\Source\Core\StyleSheetNodeSelectorNthLastOfType.h" />
+    <ClInclude Include="..\..\Source\Core\StyleSheetNodeSelectorNthOfType.h" />
+    <ClInclude Include="..\..\Source\Core\StyleSheetNodeSelectorOnlyChild.h" />
+    <ClInclude Include="..\..\Source\Core\StyleSheetNodeSelectorOnlyOfType.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\Event.h" />
+    <ClInclude Include="..\..\Source\Core\EventDispatcher.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\EventInstancer.h" />
+    <ClInclude Include="..\..\Source\Core\EventInstancerDefault.h" />
+    <ClInclude Include="..\..\Source\Core\EventIterators.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\EventListener.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\EventListenerInstancer.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\Input.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\Font.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\FontDatabase.h" />
+    <ClInclude Include="..\..\Source\Core\FontFace.h" />
+    <ClInclude Include="..\..\Source\Core\FontFaceHandle.h" />
+    <ClInclude Include="..\..\Source\Core\FontFaceLayer.h" />
+    <ClInclude Include="..\..\Source\Core\FontFamily.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\FontGlyph.h" />
+    <ClInclude Include="..\..\Source\Core\UnicodeRange.h" />
+    <ClInclude Include="..\..\Source\Core\TextureLayout.h" />
+    <ClInclude Include="..\..\Source\Core\TextureLayoutRectangle.h" />
+    <ClInclude Include="..\..\Source\Core\TextureLayoutRow.h" />
+    <ClInclude Include="..\..\Source\Core\TextureLayoutTexture.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\FontEffect.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\FontEffectInstancer.h" />
+    <ClInclude Include="..\..\Source\Core\FontEffectNone.h" />
+    <ClInclude Include="..\..\Source\Core\FontEffectNoneInstancer.h" />
+    <ClInclude Include="..\..\Source\Core\FontEffectOutline.h" />
+    <ClInclude Include="..\..\Source\Core\FontEffectOutlineInstancer.h" />
+    <ClInclude Include="..\..\Source\Core\FontEffectShadow.h" />
+    <ClInclude Include="..\..\Source\Core\FontEffectShadowInstancer.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\ConvolutionFilter.h" />
+    <ClInclude Include="..\..\Source\Core\Template.h" />
+    <ClInclude Include="..\..\Source\Core\TemplateCache.h" />
+    <ClInclude Include="..\..\Source\Core\Clock.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\Core.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\Factory.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\Header.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\Log.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\Types.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\RenderInterface.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\FileInterface.h" />
+    <ClInclude Include="..\..\Source\Core\FileInterfaceDefault.h" />
+    <ClInclude Include="..\..\Source\Core\StreamFile.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\SystemInterface.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\String.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\Plugin.h" />
+    <ClInclude Include="..\..\Source\Core\PluginRegistry.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\BaseXMLParser.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\Colour.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\Debug.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\Dictionary.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\ScriptInterface.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\Stream.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\StreamMemory.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\StringBase.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\StringUtilities.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\URL.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\Variant.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\Vector2.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\WString.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\Context.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\ContextInstancer.h" />
+    <ClInclude Include="..\..\Source\Core\ContextInstancerDefault.h" />
+    <ClInclude Include="..\..\Source\Core\StringCache.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core.h" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="..\..\Include\Rocket\Core\Element.inl" />
+    <None Include="..\..\Include\Rocket\Core\ElementInstancerGeneric.inl" />
+    <None Include="..\..\Include\Rocket\Core\Colour.inl" />
+    <None Include="..\..\Include\Rocket\Core\Dictionary.inl" />
+    <None Include="..\..\Include\Rocket\Core\StringBase.inl" />
+    <None Include="..\..\Include\Rocket\Core\Variant.inl" />
+    <None Include="..\..\Include\Rocket\Core\Vector2.inl" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>

+ 996 - 0
Build/vc2010/RocketCore.vcxproj.filters

@@ -0,0 +1,996 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup>
+    <Filter Include="Precompiled Header">
+      <UniqueIdentifier>{5abee215-edb8-46c6-9bcd-c99783f54e1c}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Texture">
+      <UniqueIdentifier>{72909d59-3317-40d7-8c6c-ad1cfed211ae}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Element">
+      <UniqueIdentifier>{b943f96c-f5be-408e-b994-44cd6e34b451}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Element\Layout">
+      <UniqueIdentifier>{ca96dcb0-1c5a-4c49-aebd-d76139ab2289}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Element\Instancer">
+      <UniqueIdentifier>{3b418826-3c57-418e-a224-4431558b9bb4}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Element\Parser">
+      <UniqueIdentifier>{fe66c384-a191-41f7-91e4-7fb5cdd8e225}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Element\Definition">
+      <UniqueIdentifier>{f6d3bc79-e60a-450a-9f30-cf825c6aa7d6}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Element\Text">
+      <UniqueIdentifier>{7b1dccd4-6476-4129-8511-d18ba614dc02}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Element\Handle">
+      <UniqueIdentifier>{ab0d755a-402a-41b8-88de-b0e8b0a34877}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Element\Widgets">
+      <UniqueIdentifier>{f45ea0a5-6303-451d-b51c-8e1377fec727}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Element\Image">
+      <UniqueIdentifier>{064239a3-fee9-4c68-a063-886738d29ef6}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Element\Document">
+      <UniqueIdentifier>{d5450e51-a6b7-4bcf-97d1-b70e89b89a3e}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Geometry">
+      <UniqueIdentifier>{f5317c7b-ea74-4aaa-89d4-35d4e2fb7edd}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Decorator">
+      <UniqueIdentifier>{dfeeb201-f804-46db-981a-049474a888bd}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Decorator\Decorators">
+      <UniqueIdentifier>{2cd32bdc-73f3-4e6d-9e34-d3fc47d03d56}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Decorator\Decorators\Tile">
+      <UniqueIdentifier>{2ee97c72-53d0-4199-a50e-262e77af1a80}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Decorator\Decorators\Tile\Horizontal">
+      <UniqueIdentifier>{14747a90-6963-4e8f-812b-121e59a4eb12}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Decorator\Decorators\Tile\Box">
+      <UniqueIdentifier>{fdb7b321-7844-4db9-b2de-1eaf77607fc9}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Decorator\Decorators\Tile\Image">
+      <UniqueIdentifier>{179069cc-48c6-42e1-94c6-fa353a6c44a6}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Decorator\Decorators\Tile\Vertical">
+      <UniqueIdentifier>{fde42e3b-33a8-42c0-a2cf-fd3fe0ab4305}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Style Sheet">
+      <UniqueIdentifier>{cc9f2ca4-b15b-44a0-836f-c7ed8d510b3c}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Style Sheet\Property">
+      <UniqueIdentifier>{ac2f2cef-240b-4244-bb5b-de91fb265598}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Style Sheet\Property\Definition">
+      <UniqueIdentifier>{190f833a-58ae-44be-8f91-395188ddda18}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Style Sheet\Property\Definition\Parser">
+      <UniqueIdentifier>{8192d0f2-1139-4c0b-8cc5-50c3834a5e12}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Style Sheet\Selectors">
+      <UniqueIdentifier>{5ff3fdd9-37ec-4eb6-b33e-7da565529b06}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Events">
+      <UniqueIdentifier>{b2d26dfb-71a9-4187-8b89-4ee551f50876}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Fonts">
+      <UniqueIdentifier>{aa4f9f87-5339-42c8-adf5-f6a41177f80d}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Fonts\Texture Layout">
+      <UniqueIdentifier>{ec4fd972-4044-4257-8eb3-39b18ded182a}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Fonts\Effect">
+      <UniqueIdentifier>{9abae9d0-ecfc-4026-b0bc-de5cc3063ed8}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Fonts\Effect\Effects">
+      <UniqueIdentifier>{e9b7e163-ec28-4763-9f58-f478c65752cf}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Fonts\Effect\Effects\None">
+      <UniqueIdentifier>{9e5b6eee-b113-4489-a0fb-394d815f95df}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Fonts\Effect\Effects\Outline">
+      <UniqueIdentifier>{b6f966a8-4700-4533-84a9-14825b6ce1be}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Fonts\Effect\Effects\Shadow">
+      <UniqueIdentifier>{d2555dba-61ec-4584-bd71-256388bd9ccd}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Fonts\Effect\Effects\Convolution Filter">
+      <UniqueIdentifier>{2264df01-8327-4d4d-931c-3dee5093dc5d}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Templates">
+      <UniqueIdentifier>{8462d999-35a5-4237-9f09-49a5b34a53d3}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Core">
+      <UniqueIdentifier>{bf01ca0d-1dbd-413d-84cc-930173028daf}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Core\Interfaces">
+      <UniqueIdentifier>{8de96f6b-92fe-4252-a6f0-1225b61f01e5}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Core\Interfaces\Renderer">
+      <UniqueIdentifier>{0cb8eb62-cebc-4273-8805-53482edab17c}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Core\Interfaces\File">
+      <UniqueIdentifier>{399993e4-e1ac-48fc-b67d-4c67f1a4c909}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Core\Interfaces\System">
+      <UniqueIdentifier>{08cdcffa-7005-45a7-bf21-350689121093}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Core\String">
+      <UniqueIdentifier>{0fd008d9-c0ca-41b5-9ca1-adf8a4a61e5d}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Core\Plugin">
+      <UniqueIdentifier>{b14e6480-87b1-43e2-af3e-943d98cd766b}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Core\Types">
+      <UniqueIdentifier>{a07969c3-8567-4981-8c09-742621e14c2e}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Context">
+      <UniqueIdentifier>{f02f27ec-0f9a-451a-82ca-bedc746815dd}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="String Cache">
+      <UniqueIdentifier>{1d6c2b0b-8c04-45ce-b6dd-be0f4676a9d2}</UniqueIdentifier>
+    </Filter>
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\Source\Core\precompiled.cpp">
+      <Filter>Precompiled Header</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\Texture.cpp">
+      <Filter>Texture</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\TextureDatabase.cpp">
+      <Filter>Texture</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\TextureResource.cpp">
+      <Filter>Texture</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\Box.cpp">
+      <Filter>Element</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\DocumentHeader.cpp">
+      <Filter>Element</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\Element.cpp">
+      <Filter>Element</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\ElementBackground.cpp">
+      <Filter>Element</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\ElementBorder.cpp">
+      <Filter>Element</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\ElementDecoration.cpp">
+      <Filter>Element</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\ElementReference.cpp">
+      <Filter>Element</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\ElementScroll.cpp">
+      <Filter>Element</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\ElementStyle.cpp">
+      <Filter>Element</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\ElementUtilities.cpp">
+      <Filter>Element</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\LayoutBlockBox.cpp">
+      <Filter>Element\Layout</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\LayoutBlockBoxSpace.cpp">
+      <Filter>Element\Layout</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\LayoutEngine.cpp">
+      <Filter>Element\Layout</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\LayoutInlineBox.cpp">
+      <Filter>Element\Layout</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\LayoutInlineBoxText.cpp">
+      <Filter>Element\Layout</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\LayoutLineBox.cpp">
+      <Filter>Element\Layout</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\ElementInstancer.cpp">
+      <Filter>Element\Instancer</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\XMLNodeHandler.cpp">
+      <Filter>Element\Parser</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\XMLNodeHandlerBody.cpp">
+      <Filter>Element\Parser</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\XMLNodeHandlerDefault.cpp">
+      <Filter>Element\Parser</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\XMLNodeHandlerHead.cpp">
+      <Filter>Element\Parser</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\XMLNodeHandlerTemplate.cpp">
+      <Filter>Element\Parser</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\XMLParser.cpp">
+      <Filter>Element\Parser</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\XMLParseTools.cpp">
+      <Filter>Element\Parser</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\ElementDefinition.cpp">
+      <Filter>Element\Definition</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\ElementText.cpp">
+      <Filter>Element\Text</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\ElementTextDefault.cpp">
+      <Filter>Element\Text</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\ElementHandle.cpp">
+      <Filter>Element\Handle</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\WidgetSlider.cpp">
+      <Filter>Element\Widgets</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\WidgetSliderScroll.cpp">
+      <Filter>Element\Widgets</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\ElementImage.cpp">
+      <Filter>Element\Image</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\ElementDocument.cpp">
+      <Filter>Element\Document</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\Geometry.cpp">
+      <Filter>Geometry</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\GeometryDatabase.cpp">
+      <Filter>Geometry</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\GeometryUtilities.cpp">
+      <Filter>Geometry</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\Decorator.cpp">
+      <Filter>Decorator</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\DecoratorInstancer.cpp">
+      <Filter>Decorator</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\DecoratorNone.cpp">
+      <Filter>Decorator\Decorators</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\DecoratorNoneInstancer.cpp">
+      <Filter>Decorator\Decorators</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\DecoratorTiled.cpp">
+      <Filter>Decorator\Decorators\Tile</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\DecoratorTiledInstancer.cpp">
+      <Filter>Decorator\Decorators\Tile</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\DecoratorTiledHorizontal.cpp">
+      <Filter>Decorator\Decorators\Tile\Horizontal</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\DecoratorTiledHorizontalInstancer.cpp">
+      <Filter>Decorator\Decorators\Tile\Horizontal</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\DecoratorTiledBox.cpp">
+      <Filter>Decorator\Decorators\Tile\Box</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\DecoratorTiledBoxInstancer.cpp">
+      <Filter>Decorator\Decorators\Tile\Box</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\DecoratorTiledImage.cpp">
+      <Filter>Decorator\Decorators\Tile\Image</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\DecoratorTiledImageInstancer.cpp">
+      <Filter>Decorator\Decorators\Tile\Image</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\DecoratorTiledVertical.cpp">
+      <Filter>Decorator\Decorators\Tile\Vertical</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\DecoratorTiledVerticalInstancer.cpp">
+      <Filter>Decorator\Decorators\Tile\Vertical</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\StyleSheet.cpp">
+      <Filter>Style Sheet</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\StyleSheetFactory.cpp">
+      <Filter>Style Sheet</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\StyleSheetNode.cpp">
+      <Filter>Style Sheet</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\StyleSheetParser.cpp">
+      <Filter>Style Sheet</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\StyleSheetSpecification.cpp">
+      <Filter>Style Sheet</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\Property.cpp">
+      <Filter>Style Sheet\Property</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\PropertyDictionary.cpp">
+      <Filter>Style Sheet\Property</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\PropertyDefinition.cpp">
+      <Filter>Style Sheet\Property\Definition</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\PropertySpecification.cpp">
+      <Filter>Style Sheet\Property\Definition</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\PropertyParserColour.cpp">
+      <Filter>Style Sheet\Property\Definition\Parser</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\PropertyParserKeyword.cpp">
+      <Filter>Style Sheet\Property\Definition\Parser</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\PropertyParserNumber.cpp">
+      <Filter>Style Sheet\Property\Definition\Parser</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\PropertyParserString.cpp">
+      <Filter>Style Sheet\Property\Definition\Parser</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\StyleSheetNodeSelector.cpp">
+      <Filter>Style Sheet\Selectors</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\StyleSheetNodeSelectorEmpty.cpp">
+      <Filter>Style Sheet\Selectors</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\StyleSheetNodeSelectorFirstChild.cpp">
+      <Filter>Style Sheet\Selectors</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\StyleSheetNodeSelectorFirstOfType.cpp">
+      <Filter>Style Sheet\Selectors</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\StyleSheetNodeSelectorLastChild.cpp">
+      <Filter>Style Sheet\Selectors</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\StyleSheetNodeSelectorLastOfType.cpp">
+      <Filter>Style Sheet\Selectors</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\StyleSheetNodeSelectorNthChild.cpp">
+      <Filter>Style Sheet\Selectors</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\StyleSheetNodeSelectorNthLastChild.cpp">
+      <Filter>Style Sheet\Selectors</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\StyleSheetNodeSelectorNthLastOfType.cpp">
+      <Filter>Style Sheet\Selectors</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\StyleSheetNodeSelectorNthOfType.cpp">
+      <Filter>Style Sheet\Selectors</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\StyleSheetNodeSelectorOnlyChild.cpp">
+      <Filter>Style Sheet\Selectors</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\StyleSheetNodeSelectorOnlyOfType.cpp">
+      <Filter>Style Sheet\Selectors</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\Event.cpp">
+      <Filter>Events</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\EventDispatcher.cpp">
+      <Filter>Events</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\EventInstancer.cpp">
+      <Filter>Events</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\EventInstancerDefault.cpp">
+      <Filter>Events</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\EventListenerInstancer.cpp">
+      <Filter>Events</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\FontDatabase.cpp">
+      <Filter>Fonts</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\FontFace.cpp">
+      <Filter>Fonts</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\FontFaceHandle.cpp">
+      <Filter>Fonts</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\FontFaceLayer.cpp">
+      <Filter>Fonts</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\FontFamily.cpp">
+      <Filter>Fonts</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\UnicodeRange.cpp">
+      <Filter>Fonts</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\TextureLayout.cpp">
+      <Filter>Fonts\Texture Layout</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\TextureLayoutRectangle.cpp">
+      <Filter>Fonts\Texture Layout</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\TextureLayoutRow.cpp">
+      <Filter>Fonts\Texture Layout</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\TextureLayoutTexture.cpp">
+      <Filter>Fonts\Texture Layout</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\FontEffect.cpp">
+      <Filter>Fonts\Effect</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\FontEffectInstancer.cpp">
+      <Filter>Fonts\Effect</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\FontEffectNone.cpp">
+      <Filter>Fonts\Effect\Effects\None</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\FontEffectNoneInstancer.cpp">
+      <Filter>Fonts\Effect\Effects\None</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\FontEffectOutline.cpp">
+      <Filter>Fonts\Effect\Effects\Outline</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\FontEffectOutlineInstancer.cpp">
+      <Filter>Fonts\Effect\Effects\Outline</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\FontEffectShadow.cpp">
+      <Filter>Fonts\Effect\Effects\Shadow</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\FontEffectShadowInstancer.cpp">
+      <Filter>Fonts\Effect\Effects\Shadow</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\ConvolutionFilter.cpp">
+      <Filter>Fonts\Effect\Effects\Convolution Filter</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\Template.cpp">
+      <Filter>Templates</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\TemplateCache.cpp">
+      <Filter>Templates</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\Clock.cpp">
+      <Filter>Core</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\Core.cpp">
+      <Filter>Core</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\Factory.cpp">
+      <Filter>Core</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\Log.cpp">
+      <Filter>Core</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\Math.cpp">
+      <Filter>Core</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\RenderInterface.cpp">
+      <Filter>Core\Interfaces\Renderer</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\FileInterface.cpp">
+      <Filter>Core\Interfaces\File</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\FileInterfaceDefault.cpp">
+      <Filter>Core\Interfaces\File</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\StreamFile.cpp">
+      <Filter>Core\Interfaces\File</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\SystemInterface.cpp">
+      <Filter>Core\Interfaces\System</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\String.cpp">
+      <Filter>Core\String</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\Plugin.cpp">
+      <Filter>Core\Plugin</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\PluginRegistry.cpp">
+      <Filter>Core\Plugin</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\BaseXMLParser.cpp">
+      <Filter>Core\Types</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\Dictionary.cpp">
+      <Filter>Core\Types</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\ReferenceCountable.cpp">
+      <Filter>Core\Types</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\Stream.cpp">
+      <Filter>Core\Types</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\StreamMemory.cpp">
+      <Filter>Core\Types</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\StringUtilities.cpp">
+      <Filter>Core\Types</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\URL.cpp">
+      <Filter>Core\Types</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\Variant.cpp">
+      <Filter>Core\Types</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\Vector2.cpp">
+      <Filter>Core\Types</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\WString.cpp">
+      <Filter>Core\Types</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\Context.cpp">
+      <Filter>Context</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\ContextInstancer.cpp">
+      <Filter>Context</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\ContextInstancerDefault.cpp">
+      <Filter>Context</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\StringCache.cpp">
+      <Filter>String Cache</Filter>
+    </ClCompile>
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="..\..\Source\Core\precompiled.h">
+      <Filter>Precompiled Header</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\Texture.h">
+      <Filter>Texture</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\TextureDatabase.h">
+      <Filter>Texture</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\TextureResource.h">
+      <Filter>Texture</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\Box.h">
+      <Filter>Element</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\DocumentHeader.h">
+      <Filter>Element</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\Element.h">
+      <Filter>Element</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\ElementBackground.h">
+      <Filter>Element</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\ElementBorder.h">
+      <Filter>Element</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\ElementDecoration.h">
+      <Filter>Element</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\ElementReference.h">
+      <Filter>Element</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\ElementScroll.h">
+      <Filter>Element</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\ElementStyle.h">
+      <Filter>Element</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\ElementUtilities.h">
+      <Filter>Element</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\LayoutBlockBox.h">
+      <Filter>Element\Layout</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\LayoutBlockBoxSpace.h">
+      <Filter>Element\Layout</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\LayoutEngine.h">
+      <Filter>Element\Layout</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\LayoutInlineBox.h">
+      <Filter>Element\Layout</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\LayoutInlineBoxText.h">
+      <Filter>Element\Layout</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\LayoutLineBox.h">
+      <Filter>Element\Layout</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\ElementInstancer.h">
+      <Filter>Element\Instancer</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\ElementInstancerGeneric.h">
+      <Filter>Element\Instancer</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\XMLNodeHandler.h">
+      <Filter>Element\Parser</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\XMLNodeHandlerBody.h">
+      <Filter>Element\Parser</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\XMLNodeHandlerDefault.h">
+      <Filter>Element\Parser</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\XMLNodeHandlerHead.h">
+      <Filter>Element\Parser</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\XMLNodeHandlerTemplate.h">
+      <Filter>Element\Parser</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\XMLParser.h">
+      <Filter>Element\Parser</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\XMLParseTools.h">
+      <Filter>Element\Parser</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\ElementDefinition.h">
+      <Filter>Element\Definition</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\ElementText.h">
+      <Filter>Element\Text</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\ElementTextDefault.h">
+      <Filter>Element\Text</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\ElementHandle.h">
+      <Filter>Element\Handle</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\WidgetSlider.h">
+      <Filter>Element\Widgets</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\WidgetSliderScroll.h">
+      <Filter>Element\Widgets</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\ElementImage.h">
+      <Filter>Element\Image</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\ElementDocument.h">
+      <Filter>Element\Document</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\Geometry.h">
+      <Filter>Geometry</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\GeometryDatabase.h">
+      <Filter>Geometry</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\GeometryUtilities.h">
+      <Filter>Geometry</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\Vertex.h">
+      <Filter>Geometry</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\Decorator.h">
+      <Filter>Decorator</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\DecoratorInstancer.h">
+      <Filter>Decorator</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\DecoratorNone.h">
+      <Filter>Decorator\Decorators</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\DecoratorNoneInstancer.h">
+      <Filter>Decorator\Decorators</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\DecoratorTiled.h">
+      <Filter>Decorator\Decorators\Tile</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\DecoratorTiledInstancer.h">
+      <Filter>Decorator\Decorators\Tile</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\DecoratorTiledHorizontal.h">
+      <Filter>Decorator\Decorators\Tile\Horizontal</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\DecoratorTiledHorizontalInstancer.h">
+      <Filter>Decorator\Decorators\Tile\Horizontal</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\DecoratorTiledBox.h">
+      <Filter>Decorator\Decorators\Tile\Box</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\DecoratorTiledBoxInstancer.h">
+      <Filter>Decorator\Decorators\Tile\Box</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\DecoratorTiledImage.h">
+      <Filter>Decorator\Decorators\Tile\Image</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\DecoratorTiledImageInstancer.h">
+      <Filter>Decorator\Decorators\Tile\Image</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\DecoratorTiledVertical.h">
+      <Filter>Decorator\Decorators\Tile\Vertical</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\DecoratorTiledVerticalInstancer.h">
+      <Filter>Decorator\Decorators\Tile\Vertical</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\StyleSheet.h">
+      <Filter>Style Sheet</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\StyleSheetFactory.h">
+      <Filter>Style Sheet</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\StyleSheetKeywords.h">
+      <Filter>Style Sheet</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\StyleSheetNode.h">
+      <Filter>Style Sheet</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\StyleSheetParser.h">
+      <Filter>Style Sheet</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\StyleSheetSpecification.h">
+      <Filter>Style Sheet</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\Property.h">
+      <Filter>Style Sheet\Property</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\PropertyDictionary.h">
+      <Filter>Style Sheet\Property</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\PropertyDefinition.h">
+      <Filter>Style Sheet\Property\Definition</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\PropertyShorthandDefinition.h">
+      <Filter>Style Sheet\Property\Definition</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\PropertySpecification.h">
+      <Filter>Style Sheet\Property\Definition</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\PropertyParser.h">
+      <Filter>Style Sheet\Property\Definition\Parser</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\PropertyParserColour.h">
+      <Filter>Style Sheet\Property\Definition\Parser</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\PropertyParserKeyword.h">
+      <Filter>Style Sheet\Property\Definition\Parser</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\PropertyParserNumber.h">
+      <Filter>Style Sheet\Property\Definition\Parser</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\PropertyParserString.h">
+      <Filter>Style Sheet\Property\Definition\Parser</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\StyleSheetNodeSelector.h">
+      <Filter>Style Sheet\Selectors</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\StyleSheetNodeSelectorEmpty.h">
+      <Filter>Style Sheet\Selectors</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\StyleSheetNodeSelectorFirstChild.h">
+      <Filter>Style Sheet\Selectors</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\StyleSheetNodeSelectorFirstOfType.h">
+      <Filter>Style Sheet\Selectors</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\StyleSheetNodeSelectorLastChild.h">
+      <Filter>Style Sheet\Selectors</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\StyleSheetNodeSelectorLastOfType.h">
+      <Filter>Style Sheet\Selectors</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\StyleSheetNodeSelectorNthChild.h">
+      <Filter>Style Sheet\Selectors</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\StyleSheetNodeSelectorNthLastChild.h">
+      <Filter>Style Sheet\Selectors</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\StyleSheetNodeSelectorNthLastOfType.h">
+      <Filter>Style Sheet\Selectors</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\StyleSheetNodeSelectorNthOfType.h">
+      <Filter>Style Sheet\Selectors</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\StyleSheetNodeSelectorOnlyChild.h">
+      <Filter>Style Sheet\Selectors</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\StyleSheetNodeSelectorOnlyOfType.h">
+      <Filter>Style Sheet\Selectors</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\Event.h">
+      <Filter>Events</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\EventDispatcher.h">
+      <Filter>Events</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\EventInstancer.h">
+      <Filter>Events</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\EventInstancerDefault.h">
+      <Filter>Events</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\EventIterators.h">
+      <Filter>Events</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\EventListener.h">
+      <Filter>Events</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\EventListenerInstancer.h">
+      <Filter>Events</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\Input.h">
+      <Filter>Events</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\Font.h">
+      <Filter>Fonts</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\FontDatabase.h">
+      <Filter>Fonts</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\FontFace.h">
+      <Filter>Fonts</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\FontFaceHandle.h">
+      <Filter>Fonts</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\FontFaceLayer.h">
+      <Filter>Fonts</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\FontFamily.h">
+      <Filter>Fonts</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\FontGlyph.h">
+      <Filter>Fonts</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\UnicodeRange.h">
+      <Filter>Fonts</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\TextureLayout.h">
+      <Filter>Fonts\Texture Layout</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\TextureLayoutRectangle.h">
+      <Filter>Fonts\Texture Layout</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\TextureLayoutRow.h">
+      <Filter>Fonts\Texture Layout</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\TextureLayoutTexture.h">
+      <Filter>Fonts\Texture Layout</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\FontEffect.h">
+      <Filter>Fonts\Effect</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\FontEffectInstancer.h">
+      <Filter>Fonts\Effect</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\FontEffectNone.h">
+      <Filter>Fonts\Effect\Effects\None</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\FontEffectNoneInstancer.h">
+      <Filter>Fonts\Effect\Effects\None</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\FontEffectOutline.h">
+      <Filter>Fonts\Effect\Effects\Outline</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\FontEffectOutlineInstancer.h">
+      <Filter>Fonts\Effect\Effects\Outline</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\FontEffectShadow.h">
+      <Filter>Fonts\Effect\Effects\Shadow</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\FontEffectShadowInstancer.h">
+      <Filter>Fonts\Effect\Effects\Shadow</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\ConvolutionFilter.h">
+      <Filter>Fonts\Effect\Effects\Convolution Filter</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\Template.h">
+      <Filter>Templates</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\TemplateCache.h">
+      <Filter>Templates</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\Clock.h">
+      <Filter>Core</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\Core.h">
+      <Filter>Core</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\Factory.h">
+      <Filter>Core</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\Header.h">
+      <Filter>Core</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\Log.h">
+      <Filter>Core</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\Types.h">
+      <Filter>Core</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\RenderInterface.h">
+      <Filter>Core\Interfaces\Renderer</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\FileInterface.h">
+      <Filter>Core\Interfaces\File</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\FileInterfaceDefault.h">
+      <Filter>Core\Interfaces\File</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\StreamFile.h">
+      <Filter>Core\Interfaces\File</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\SystemInterface.h">
+      <Filter>Core\Interfaces\System</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\String.h">
+      <Filter>Core\String</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\Plugin.h">
+      <Filter>Core\Plugin</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\PluginRegistry.h">
+      <Filter>Core\Plugin</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\BaseXMLParser.h">
+      <Filter>Core\Types</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\Colour.h">
+      <Filter>Core\Types</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\Debug.h">
+      <Filter>Core\Types</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\Dictionary.h">
+      <Filter>Core\Types</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\ScriptInterface.h">
+      <Filter>Core\Types</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\Stream.h">
+      <Filter>Core\Types</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\StreamMemory.h">
+      <Filter>Core\Types</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\StringBase.h">
+      <Filter>Core\Types</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\StringUtilities.h">
+      <Filter>Core\Types</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\URL.h">
+      <Filter>Core\Types</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\Variant.h">
+      <Filter>Core\Types</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\Vector2.h">
+      <Filter>Core\Types</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\WString.h">
+      <Filter>Core\Types</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\Context.h">
+      <Filter>Context</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\ContextInstancer.h">
+      <Filter>Context</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\ContextInstancerDefault.h">
+      <Filter>Context</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\StringCache.h">
+      <Filter>String Cache</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core.h" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="..\..\Include\Rocket\Core\Element.inl">
+      <Filter>Element</Filter>
+    </None>
+    <None Include="..\..\Include\Rocket\Core\ElementInstancerGeneric.inl">
+      <Filter>Element\Instancer</Filter>
+    </None>
+    <None Include="..\..\Include\Rocket\Core\Colour.inl">
+      <Filter>Core\Types</Filter>
+    </None>
+    <None Include="..\..\Include\Rocket\Core\Dictionary.inl">
+      <Filter>Core\Types</Filter>
+    </None>
+    <None Include="..\..\Include\Rocket\Core\StringBase.inl">
+      <Filter>Core\Types</Filter>
+    </None>
+    <None Include="..\..\Include\Rocket\Core\Variant.inl">
+      <Filter>Core\Types</Filter>
+    </None>
+    <None Include="..\..\Include\Rocket\Core\Vector2.inl">
+      <Filter>Core\Types</Filter>
+    </None>
+  </ItemGroup>
+</Project>

+ 3 - 0
Build/vc2010/RocketCore.vcxproj.user

@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+</Project>

+ 267 - 0
Build/vc2010/RocketDebugger.vcproj

@@ -0,0 +1,267 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+	ProjectType="Visual C++"
+	Version="9.00"
+	Name="RocketDebugger"
+	ProjectGUID="{1AAC0B29-AEC9-4E3F-9EDF-B56F8949C41A}"
+	RootNamespace="debugger"
+	Keyword="Win32Proj"
+	TargetFrameworkVersion="131072"
+	>
+	<Platforms>
+		<Platform
+			Name="Win32"
+		/>
+	</Platforms>
+	<ToolFiles>
+	</ToolFiles>
+	<Configurations>
+		<Configuration
+			Name="Debug|Win32"
+			OutputDirectory="$(IntDir)"
+			ConfigurationType="2"
+			InheritedPropertySheets=".\vsprops\BuildConfigurationDLLDebug.vsprops"
+			CharacterSet="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				AdditionalIncludeDirectories="..\..\Include"
+				PreprocessorDefinitions="_WIN32,_DEBUG,RocketDebugger_EXPORTS"
+				RuntimeLibrary="3"
+				UsePrecompiledHeader="0"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="RocketCore_d.lib"
+				OutputFile="..\bin\$(ProjectName)_d.dll"
+				AdditionalLibraryDirectories="..\bin"
+				RandomizedBaseAddress="1"
+				DataExecutionPrevention="0"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release|Win32"
+			OutputDirectory="$(IntDir)"
+			ConfigurationType="2"
+			InheritedPropertySheets=".\vsprops\BuildConfigurationDLLRelease.vsprops"
+			CharacterSet="1"
+			WholeProgramOptimization="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				AdditionalIncludeDirectories="..\..\Include"
+				PreprocessorDefinitions="_WIN32,NDEBUG,RocketDebugger_EXPORTS"
+				RuntimeLibrary="2"
+				UsePrecompiledHeader="0"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="RocketCore.lib"
+				OutputFile="..\bin\$(ProjectName).dll"
+				AdditionalLibraryDirectories="..\bin"
+				RandomizedBaseAddress="1"
+				DataExecutionPrevention="0"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+	</Configurations>
+	<References>
+	</References>
+	<Files>
+		<Filter
+			Name="Plugin"
+			>
+			<File
+				RelativePath="..\..\Source\Debugger\Plugin.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Source\Debugger\Plugin.h"
+				>
+			</File>
+			<Filter
+				Name="Elements"
+				>
+				<File
+					RelativePath="..\..\Source\Debugger\ElementContextHook.cpp"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Source\Debugger\ElementContextHook.h"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Source\Debugger\ElementInfo.cpp"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Source\Debugger\ElementInfo.h"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Source\Debugger\ElementLog.cpp"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Source\Debugger\ElementLog.h"
+					>
+				</File>
+			</Filter>
+			<Filter
+				Name="Source"
+				>
+				<File
+					RelativePath="..\..\Source\Debugger\BeaconSource.h"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Source\Debugger\CommonSource.h"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Source\Debugger\FontSource.h"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Source\Debugger\InfoSource.h"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Source\Debugger\LogSource.h"
+					>
+				</File>
+				<File
+					RelativePath="..\..\Source\Debugger\MenuSource.h"
+					>
+				</File>
+			</Filter>
+		</Filter>
+		<Filter
+			Name="Debugger"
+			>
+			<File
+				RelativePath="..\..\Source\Debugger\Debugger.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Include\Rocket\Debugger\Debugger.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Source\Debugger\Geometry.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Source\Debugger\Geometry.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Include\Rocket\Debugger\Header.h"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Source\Debugger\SystemInterface.cpp"
+				>
+			</File>
+			<File
+				RelativePath="..\..\Source\Debugger\SystemInterface.h"
+				>
+			</File>
+		</Filter>
+		<File
+			RelativePath="..\..\Include\Rocket\Debugger.h"
+			>
+		</File>
+	</Files>
+	<Globals>
+	</Globals>
+</VisualStudioProject>

+ 115 - 0
Build/vc2010/RocketDebugger.vcxproj

@@ -0,0 +1,115 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{1AAC0B29-AEC9-4E3F-9EDF-B56F8949C41A}</ProjectGuid>
+    <RootNamespace>debugger</RootNamespace>
+    <Keyword>Win32Proj</Keyword>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <CharacterSet>Unicode</CharacterSet>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <CharacterSet>Unicode</CharacterSet>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="vsprops\BuildConfigurationDLLRelease.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="vsprops\BuildConfigurationDLLDebug.props" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+    <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\bin\</OutDir>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\bin\</OutDir>
+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectName)_d</TargetName>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <ClCompile>
+      <AdditionalIncludeDirectories>..\..\Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>_WIN32;_DEBUG;RocketDebugger_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+      <PrecompiledHeader>
+      </PrecompiledHeader>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>RocketCore_d.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>..\..\bin\$(ProjectName)_d.dll</OutputFile>
+      <AdditionalLibraryDirectories>..\..\bin;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention>
+      </DataExecutionPrevention>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <ClCompile>
+      <AdditionalIncludeDirectories>..\..\Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>_WIN32;NDEBUG;RocketDebugger_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <PrecompiledHeader>
+      </PrecompiledHeader>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>RocketCore.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>..\..\bin\$(ProjectName).dll</OutputFile>
+      <AdditionalLibraryDirectories>..\..\bin;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention>
+      </DataExecutionPrevention>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\Source\Debugger\Plugin.cpp" />
+    <ClCompile Include="..\..\Source\Debugger\ElementContextHook.cpp" />
+    <ClCompile Include="..\..\Source\Debugger\ElementInfo.cpp" />
+    <ClCompile Include="..\..\Source\Debugger\ElementLog.cpp" />
+    <ClCompile Include="..\..\Source\Debugger\Debugger.cpp" />
+    <ClCompile Include="..\..\Source\Debugger\Geometry.cpp" />
+    <ClCompile Include="..\..\Source\Debugger\SystemInterface.cpp" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="..\..\Source\Debugger\Plugin.h" />
+    <ClInclude Include="..\..\Source\Debugger\ElementContextHook.h" />
+    <ClInclude Include="..\..\Source\Debugger\ElementInfo.h" />
+    <ClInclude Include="..\..\Source\Debugger\ElementLog.h" />
+    <ClInclude Include="..\..\Source\Debugger\BeaconSource.h" />
+    <ClInclude Include="..\..\Source\Debugger\CommonSource.h" />
+    <ClInclude Include="..\..\Source\Debugger\FontSource.h" />
+    <ClInclude Include="..\..\Source\Debugger\InfoSource.h" />
+    <ClInclude Include="..\..\Source\Debugger\LogSource.h" />
+    <ClInclude Include="..\..\Source\Debugger\MenuSource.h" />
+    <ClInclude Include="..\..\Include\Rocket\Debugger\Debugger.h" />
+    <ClInclude Include="..\..\Source\Debugger\Geometry.h" />
+    <ClInclude Include="..\..\Include\Rocket\Debugger\Header.h" />
+    <ClInclude Include="..\..\Source\Debugger\SystemInterface.h" />
+    <ClInclude Include="..\..\Include\Rocket\Debugger.h" />
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="RocketCore.vcxproj">
+      <Project>{1aac0b29-aeb9-4e3f-8edf-b46f8949c41b}</Project>
+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+    </ProjectReference>
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>

+ 85 - 0
Build/vc2010/RocketDebugger.vcxproj.filters

@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup>
+    <Filter Include="Plugin">
+      <UniqueIdentifier>{a9230b3f-5560-4163-a7a0-997652e411e0}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Plugin\Elements">
+      <UniqueIdentifier>{2ebe37b4-744a-4053-b978-7a694024a0e0}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Plugin\Source">
+      <UniqueIdentifier>{a7d502ce-2abe-42c3-b813-72d042d2162e}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Debugger">
+      <UniqueIdentifier>{0e33cc32-574f-4b31-89e5-5a485482d2ab}</UniqueIdentifier>
+    </Filter>
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\Source\Debugger\Plugin.cpp">
+      <Filter>Plugin</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Debugger\ElementContextHook.cpp">
+      <Filter>Plugin\Elements</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Debugger\ElementInfo.cpp">
+      <Filter>Plugin\Elements</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Debugger\ElementLog.cpp">
+      <Filter>Plugin\Elements</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Debugger\Debugger.cpp">
+      <Filter>Debugger</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Debugger\Geometry.cpp">
+      <Filter>Debugger</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Debugger\SystemInterface.cpp">
+      <Filter>Debugger</Filter>
+    </ClCompile>
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="..\..\Source\Debugger\Plugin.h">
+      <Filter>Plugin</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Debugger\ElementContextHook.h">
+      <Filter>Plugin\Elements</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Debugger\ElementInfo.h">
+      <Filter>Plugin\Elements</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Debugger\ElementLog.h">
+      <Filter>Plugin\Elements</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Debugger\BeaconSource.h">
+      <Filter>Plugin\Source</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Debugger\CommonSource.h">
+      <Filter>Plugin\Source</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Debugger\FontSource.h">
+      <Filter>Plugin\Source</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Debugger\InfoSource.h">
+      <Filter>Plugin\Source</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Debugger\LogSource.h">
+      <Filter>Plugin\Source</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Debugger\MenuSource.h">
+      <Filter>Plugin\Source</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Debugger\Debugger.h">
+      <Filter>Debugger</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Debugger\Geometry.h">
+      <Filter>Debugger</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Debugger\Header.h">
+      <Filter>Debugger</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Debugger\SystemInterface.h">
+      <Filter>Debugger</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Debugger.h" />
+  </ItemGroup>
+</Project>

+ 3 - 0
Build/vc2010/RocketDebugger.vcxproj.user

@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+</Project>

+ 29 - 0
Build/vc2010/vsprops/BuildConfigurationBase.props

@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
+    <OutDir>$(IntDir)\</OutDir>
+    <IntDir>build\$(ProjectName)\$(Configuration)\</IntDir>
+  </PropertyGroup>
+  <ItemDefinitionGroup>
+    <ClCompile>
+      <PrecompiledHeader>Use</PrecompiledHeader>
+      <PrecompiledHeaderFile>precompiled.h</PrecompiledHeaderFile>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)vc80.pdb</ProgramDataBaseFileName>
+      <XMLDocumentationFileName>$(IntDir)</XMLDocumentationFileName>
+      <WarningLevel>Level4</WarningLevel>
+    </ClCompile>
+    <ProjectReference>
+      <LinkLibraryDependencies>false</LinkLibraryDependencies>
+    </ProjectReference>
+    <Link>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <SubSystem>Windows</SubSystem>
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <PropertyGroup Label="Configuration">
+    <BuildLogFile>$(IntDir)BuildLog.htm</BuildLogFile>
+  </PropertyGroup>
+</Project>

+ 70 - 0
Build/vc2010/vsprops/BuildConfigurationBase.vsprops

@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioPropertySheet
+	ProjectType="Visual C++"
+	Version="8.00"
+	Name="BuildConfigurationBase"
+	OutputDirectory="$(IntDir)"
+	IntermediateDirectory="build\$(ProjectName)\$(ConfigurationName)"
+	CharacterSet="2"
+	BuildLogFile="$(IntDir)\BuildLog.htm"
+	>
+	<Tool
+		Name="VCPreBuildEventTool"
+	/>
+	<Tool
+		Name="VCCustomBuildTool"
+	/>
+	<Tool
+		Name="VCXMLDataGeneratorTool"
+	/>
+	<Tool
+		Name="VCWebServiceProxyGeneratorTool"
+	/>
+	<Tool
+		Name="VCMIDLTool"
+	/>
+	<Tool
+		Name="VCCLCompilerTool"
+		UsePrecompiledHeader="2"
+		PrecompiledHeaderThrough="precompiled.h"
+		ObjectFile="$(IntDir)\"
+		ProgramDataBaseFileName="$(IntDir)\vc80.pdb"
+		XMLDocumentationFileName="$(IntDir)\"
+		WarningLevel="4"
+		Detect64BitPortabilityProblems="false"
+	/>
+	<Tool
+		Name="VCManagedResourceCompilerTool"
+	/>
+	<Tool
+		Name="VCResourceCompilerTool"
+	/>
+	<Tool
+		Name="VCPreLinkEventTool"
+	/>
+	<Tool
+		Name="VCLibrarianTool"
+	/>
+	<Tool
+		Name="VCLinkerTool"
+		LinkLibraryDependencies="false"
+		GenerateDebugInformation="true"
+		SubSystem="2"
+		TargetMachine="1"
+	/>
+	<Tool
+		Name="VCALinkTool"
+	/>
+	<Tool
+		Name="VCXDCMakeTool"
+	/>
+	<Tool
+		Name="VCBscMakeTool"
+	/>
+	<Tool
+		Name="VCFxCopTool"
+	/>
+	<Tool
+		Name="VCPostBuildEventTool"
+	/>
+</VisualStudioPropertySheet>

+ 7 - 0
Build/vc2010/vsprops/BuildConfigurationDLL.props

@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
+    <_PropertySheetDisplayName>EMPBuildConfigurationDLL</_PropertySheetDisplayName>
+  </PropertyGroup>
+</Project>

+ 7 - 0
Build/vc2010/vsprops/BuildConfigurationDLL.vsprops

@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioPropertySheet
+	ProjectType="Visual C++"
+	Version="8.00"
+	Name="EMPBuildConfigurationDLL"
+	>
+</VisualStudioPropertySheet>

+ 19 - 0
Build/vc2010/vsprops/BuildConfigurationDLLDebug.props

@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ImportGroup Label="PropertySheets">
+    <Import Project="BuildConfigurationDebug.props" />
+    <Import Project="BuildConfigurationDLL.props" />
+  </ImportGroup>
+  <PropertyGroup>
+    <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
+  </PropertyGroup>
+  <ItemDefinitionGroup>
+    <ClCompile>
+      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+      <PreprocessorDefinitions>WIN32;_DEBUG;_USRDLL;$(ProjectName)_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ClCompile>
+    <Link>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+    </Link>
+  </ItemDefinitionGroup>
+</Project>

+ 17 - 0
Build/vc2010/vsprops/BuildConfigurationDLLDebug.vsprops

@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioPropertySheet
+	ProjectType="Visual C++"
+	Version="8.00"
+	Name="BuildConfigurationDLLDebug"
+	InheritedPropertySheets="BuildConfigurationDebug.vsprops;BuildConfigurationDLL.vsprops"
+	>
+	<Tool
+		Name="VCCLCompilerTool"
+		RuntimeLibrary="3"
+		PreprocessorDefinitions="WIN32;_DEBUG;_USRDLL;$(ProjectName)_EXPORTS"
+	/>
+	<Tool
+		Name="VCLinkerTool"
+		ProgramDatabaseFile="$(IntDir)\$(TargetName).pdb"
+	/>
+</VisualStudioPropertySheet>

+ 19 - 0
Build/vc2010/vsprops/BuildConfigurationDLLRelease.props

@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ImportGroup Label="PropertySheets">
+    <Import Project="BuildConfigurationRelease.props" />
+    <Import Project="BuildConfigurationDLL.props" />
+  </ImportGroup>
+  <PropertyGroup>
+    <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
+  </PropertyGroup>
+  <ItemDefinitionGroup>
+    <ClCompile>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_USRDLL;$(ProjectName)_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ClCompile>
+    <Link>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+    </Link>
+  </ItemDefinitionGroup>
+</Project>

+ 17 - 0
Build/vc2010/vsprops/BuildConfigurationDLLRelease.vsprops

@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioPropertySheet
+	ProjectType="Visual C++"
+	Version="8.00"
+	Name="BuildConfigurationDLLRelease"
+	InheritedPropertySheets="BuildConfigurationRelease.vsprops;BuildConfigurationDLL.vsprops"
+	>
+	<Tool
+		Name="VCCLCompilerTool"
+		RuntimeLibrary="2"
+		PreprocessorDefinitions="WIN32;NDEBUG;_USRDLL;$(ProjectName)_EXPORTS"
+	/>
+	<Tool
+		Name="VCLinkerTool"
+		ProgramDatabaseFile="$(IntDir)\$(TargetName).pdb"
+	/>
+</VisualStudioPropertySheet>

+ 20 - 0
Build/vc2010/vsprops/BuildConfigurationDebug.props

@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ImportGroup Label="PropertySheets">
+    <Import Project="BuildConfigurationBase.props" />
+  </ImportGroup>
+  <PropertyGroup>
+    <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <ItemDefinitionGroup>
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <MinimalRebuild>true</MinimalRebuild>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+      <BufferSecurityCheck>true</BufferSecurityCheck>
+    </ClCompile>
+  </ItemDefinitionGroup>
+</Project>

+ 21 - 0
Build/vc2010/vsprops/BuildConfigurationDebug.vsprops

@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioPropertySheet
+	ProjectType="Visual C++"
+	Version="8.00"
+	Name="BuildConfigurationDebug"
+	InheritedPropertySheets="BuildConfigurationBase.vsprops"
+	>
+	<Tool
+		Name="VCCLCompilerTool"
+		Optimization="0"
+		MinimalRebuild="true"
+		BasicRuntimeChecks="3"
+		RuntimeLibrary="3"
+		DebugInformationFormat="3"
+		BufferSecurityCheck="true"
+	/>
+	<Tool
+		Name="VCLinkerTool"
+		LinkIncremental="2"
+	/>
+</VisualStudioPropertySheet>

+ 21 - 0
Build/vc2010/vsprops/BuildConfigurationRelease.props

@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ImportGroup Label="PropertySheets">
+    <Import Project="BuildConfigurationBase.props" />
+  </ImportGroup>
+  <PropertyGroup>
+    <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <ItemDefinitionGroup>
+    <ClCompile>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+    </ClCompile>
+    <Link>
+      <OptimizeReferences>true</OptimizeReferences>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
+    </Link>
+  </ItemDefinitionGroup>
+</Project>

+ 20 - 0
Build/vc2010/vsprops/BuildConfigurationRelease.vsprops

@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioPropertySheet
+	ProjectType="Visual C++"
+	Version="8.00"
+	Name="BuildConfigurationRelease"
+	InheritedPropertySheets="BuildConfigurationBase.vsprops"
+	>
+	<Tool
+		Name="VCCLCompilerTool"
+		RuntimeLibrary="2"
+		DebugInformationFormat="3"
+	/>
+	<Tool
+		Name="VCLinkerTool"
+		LinkIncremental="1"
+		OptimizeReferences="2"
+		EnableCOMDATFolding="2"
+		LinkTimeCodeGeneration="1"
+	/>
+</VisualStudioPropertySheet>

+ 6 - 0
Build/vc2012/.gitignore

@@ -0,0 +1,6 @@
+*.sdf
+*.ncb
+build/
+Debug/
+Release/
+ipch/

+ 32 - 0
Build/vc2012/README.txt

@@ -0,0 +1,32 @@
+Freetype 2.4.10 is required to compile this project.
+
+
+The project searches the ../../../support folder. (Create a folder called support, next to the LibRocket repository folder)
+
+Compile freetype v2.4.10 and copy the following files to the 'support/lib' folder:
+
+   freetype2410.lib
+   freetype2410_D.lib
+
+
+
+The lib search path (relative to project file) is: 
+   ../../../support/lib
+
+Also required is the freetype includes. Copy the 'include' folder in the freetype repository root folder and paste it in the following path:
+  support/freetype-2.4.10/
+
+
+The freetype library can be downloaded from
+   http://sourceforge.net/projects/freetype/files/
+
+Or navigated to via
+   http://www.freetype.org
+
+
+Two options in the project has to be updated if an older or newer version of freetype is desired to be used.
+RocketCore -> Properties -> C/C++ -> General -> Additional Include Directies:
+  update the path to ..\..\..\support\freetype-2.4.10\include to the new path, -same for all configurations-
+
+RocketCore -> Properties -> Linker -> Input -> Additional Dependencies:
+  update separately for debug and release build to the new freetype*.lib version.

+ 32 - 0
Build/vc2012/Rocket.sln

@@ -0,0 +1,32 @@
+
+Microsoft Visual Studio Solution File, Format Version 11.00
+# Visual C++ Express 2010
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "RocketCore", "RocketCore.vcxproj", "{1AAC0B29-AEB9-4E3F-8EDF-B46F8949C41B}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "RocketControls", "RocketControls.vcxproj", "{1AAC0B29-AEC9-4E3F-9EDF-B56F8949C41B}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "RocketDebugger", "RocketDebugger.vcxproj", "{1AAC0B29-AEC9-4E3F-9EDF-B56F8949C41A}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Win32 = Debug|Win32
+		Release|Win32 = Release|Win32
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{1AAC0B29-AEB9-4E3F-8EDF-B46F8949C41B}.Debug|Win32.ActiveCfg = Debug|Win32
+		{1AAC0B29-AEB9-4E3F-8EDF-B46F8949C41B}.Debug|Win32.Build.0 = Debug|Win32
+		{1AAC0B29-AEB9-4E3F-8EDF-B46F8949C41B}.Release|Win32.ActiveCfg = Release|Win32
+		{1AAC0B29-AEB9-4E3F-8EDF-B46F8949C41B}.Release|Win32.Build.0 = Release|Win32
+		{1AAC0B29-AEC9-4E3F-9EDF-B56F8949C41B}.Debug|Win32.ActiveCfg = Debug|Win32
+		{1AAC0B29-AEC9-4E3F-9EDF-B56F8949C41B}.Debug|Win32.Build.0 = Debug|Win32
+		{1AAC0B29-AEC9-4E3F-9EDF-B56F8949C41B}.Release|Win32.ActiveCfg = Release|Win32
+		{1AAC0B29-AEC9-4E3F-9EDF-B56F8949C41B}.Release|Win32.Build.0 = Release|Win32
+		{1AAC0B29-AEC9-4E3F-9EDF-B56F8949C41A}.Debug|Win32.ActiveCfg = Debug|Win32
+		{1AAC0B29-AEC9-4E3F-9EDF-B56F8949C41A}.Debug|Win32.Build.0 = Debug|Win32
+		{1AAC0B29-AEC9-4E3F-9EDF-B56F8949C41A}.Release|Win32.ActiveCfg = Release|Win32
+		{1AAC0B29-AEC9-4E3F-9EDF-B56F8949C41A}.Release|Win32.Build.0 = Release|Win32
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+EndGlobal

+ 167 - 0
Build/vc2012/RocketControls.vcxproj

@@ -0,0 +1,167 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{1AAC0B29-AEC9-4E3F-9EDF-B56F8949C41B}</ProjectGuid>
+    <RootNamespace>controls</RootNamespace>
+    <Keyword>Win32Proj</Keyword>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <CharacterSet>Unicode</CharacterSet>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+    <PlatformToolset>v110</PlatformToolset>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <CharacterSet>Unicode</CharacterSet>
+    <PlatformToolset>v110</PlatformToolset>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="vsprops\BuildConfigurationDLLRelease.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="vsprops\BuildConfigurationDLLDebug.props" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+    <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\bin\</OutDir>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\bin\</OutDir>
+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectName)_d</TargetName>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <ClCompile>
+      <AdditionalIncludeDirectories>..\..\Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>_WIN32;_DEBUG;RocketControls_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <PrecompiledHeader>
+      </PrecompiledHeader>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>RocketCore_d.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>..\..\bin\$(ProjectName)_d.dll</OutputFile>
+      <AdditionalLibraryDirectories>..\..\bin;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention>
+      </DataExecutionPrevention>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <ClCompile>
+      <AdditionalIncludeDirectories>..\..\Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>_WIN32;NDEBUG;RocketControls_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <PrecompiledHeader>
+      </PrecompiledHeader>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>RocketCore.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>..\..\bin\$(ProjectName).dll</OutputFile>
+      <AdditionalLibraryDirectories>..\..\bin;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention>
+      </DataExecutionPrevention>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\Source\Controls\Controls.cpp" />
+    <ClCompile Include="..\..\Source\Controls\ElementForm.cpp" />
+    <ClCompile Include="..\..\Source\Controls\ElementFormControl.cpp" />
+    <ClCompile Include="..\..\Source\Controls\ElementFormControlDataSelect.cpp" />
+    <ClCompile Include="..\..\Source\Controls\ElementFormControlInput.cpp" />
+    <ClCompile Include="..\..\Source\Controls\ElementFormControlSelect.cpp" />
+    <ClCompile Include="..\..\Source\Controls\ElementFormControlTextArea.cpp" />
+    <ClCompile Include="..\..\Source\Controls\SelectOption.cpp" />
+    <ClCompile Include="..\..\Source\Controls\ElementTextSelection.cpp" />
+    <ClCompile Include="..\..\Source\Controls\WidgetDropDown.cpp" />
+    <ClCompile Include="..\..\Source\Controls\WidgetSlider.cpp" />
+    <ClCompile Include="..\..\Source\Controls\WidgetSliderInput.cpp" />
+    <ClCompile Include="..\..\Source\Controls\WidgetTextInput.cpp" />
+    <ClCompile Include="..\..\Source\Controls\WidgetTextInputMultiLine.cpp" />
+    <ClCompile Include="..\..\Source\Controls\WidgetTextInputSingleLine.cpp" />
+    <ClCompile Include="..\..\Source\Controls\WidgetTextInputSingleLinePassword.cpp" />
+    <ClCompile Include="..\..\Source\Controls\InputType.cpp" />
+    <ClCompile Include="..\..\Source\Controls\InputTypeButton.cpp" />
+    <ClCompile Include="..\..\Source\Controls\InputTypeCheckbox.cpp" />
+    <ClCompile Include="..\..\Source\Controls\InputTypeRadio.cpp" />
+    <ClCompile Include="..\..\Source\Controls\InputTypeRange.cpp" />
+    <ClCompile Include="..\..\Source\Controls\InputTypeSubmit.cpp" />
+    <ClCompile Include="..\..\Source\Controls\InputTypeText.cpp" />
+    <ClCompile Include="..\..\Source\Controls\XMLNodeHandlerTextArea.cpp" />
+    <ClCompile Include="..\..\Source\Controls\Clipboard.cpp" />
+    <ClCompile Include="..\..\Source\Controls\ElementTabSet.cpp" />
+    <ClCompile Include="..\..\Source\Controls\XMLNodeHandlerTabSet.cpp" />
+    <ClCompile Include="..\..\Source\Controls\ElementDataGrid.cpp" />
+    <ClCompile Include="..\..\Source\Controls\ElementDataGridCell.cpp" />
+    <ClCompile Include="..\..\Source\Controls\ElementDataGridExpandButton.cpp" />
+    <ClCompile Include="..\..\Source\Controls\ElementDataGridRow.cpp" />
+    <ClCompile Include="..\..\Source\Controls\XMLNodeHandlerDataGrid.cpp" />
+    <ClCompile Include="..\..\Source\Controls\DataFormatter.cpp" />
+    <ClCompile Include="..\..\Source\Controls\DataQuery.cpp" />
+    <ClCompile Include="..\..\Source\Controls\DataSource.cpp" />
+    <ClCompile Include="..\..\Source\Controls\DataSourceListener.cpp" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="..\..\Include\Rocket\Controls\Controls.h" />
+    <ClInclude Include="..\..\Include\Rocket\Controls\Header.h" />
+    <ClInclude Include="..\..\Include\Rocket\Controls\ElementForm.h" />
+    <ClInclude Include="..\..\Include\Rocket\Controls\ElementFormControl.h" />
+    <ClInclude Include="..\..\Include\Rocket\Controls\ElementFormControlDataSelect.h" />
+    <ClInclude Include="..\..\Include\Rocket\Controls\ElementFormControlInput.h" />
+    <ClInclude Include="..\..\Include\Rocket\Controls\ElementFormControlSelect.h" />
+    <ClInclude Include="..\..\Include\Rocket\Controls\ElementFormControlTextArea.h" />
+    <ClInclude Include="..\..\Include\Rocket\Controls\SelectOption.h" />
+    <ClInclude Include="..\..\Source\Controls\ElementTextSelection.h" />
+    <ClInclude Include="..\..\Source\Controls\WidgetDropDown.h" />
+    <ClInclude Include="..\..\Source\Controls\WidgetSlider.h" />
+    <ClInclude Include="..\..\Source\Controls\WidgetSliderInput.h" />
+    <ClInclude Include="..\..\Source\Controls\WidgetTextInput.h" />
+    <ClInclude Include="..\..\Source\Controls\WidgetTextInputMultiLine.h" />
+    <ClInclude Include="..\..\Source\Controls\WidgetTextInputSingleLine.h" />
+    <ClInclude Include="..\..\Source\Controls\WidgetTextInputSingleLinePassword.h" />
+    <ClInclude Include="..\..\Source\Controls\InputType.h" />
+    <ClInclude Include="..\..\Source\Controls\InputTypeButton.h" />
+    <ClInclude Include="..\..\Source\Controls\InputTypeCheckbox.h" />
+    <ClInclude Include="..\..\Source\Controls\InputTypeRadio.h" />
+    <ClInclude Include="..\..\Source\Controls\InputTypeRange.h" />
+    <ClInclude Include="..\..\Source\Controls\InputTypeSubmit.h" />
+    <ClInclude Include="..\..\Source\Controls\InputTypeText.h" />
+    <ClInclude Include="..\..\Source\Controls\XMLNodeHandlerTextArea.h" />
+    <ClInclude Include="..\..\Include\Rocket\Controls\Clipboard.h" />
+    <ClInclude Include="..\..\Include\Rocket\Controls\ElementTabSet.h" />
+    <ClInclude Include="..\..\Source\Controls\XMLNodeHandlerTabSet.h" />
+    <ClInclude Include="..\..\Include\Rocket\Controls\ElementDataGrid.h" />
+    <ClInclude Include="..\..\Include\Rocket\Controls\ElementDataGridCell.h" />
+    <ClInclude Include="..\..\Include\Rocket\Controls\ElementDataGridExpandButton.h" />
+    <ClInclude Include="..\..\Include\Rocket\Controls\ElementDataGridRow.h" />
+    <ClInclude Include="..\..\Source\Controls\XMLNodeHandlerDataGrid.h" />
+    <ClInclude Include="..\..\Include\Rocket\Controls\DataFormatter.h" />
+    <ClInclude Include="..\..\Include\Rocket\Controls\DataQuery.h" />
+    <ClInclude Include="..\..\Include\Rocket\Controls\DataSource.h" />
+    <ClInclude Include="..\..\Include\Rocket\Controls\DataSourceListener.h" />
+    <ClInclude Include="..\..\Include\Rocket\Controls.h" />
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="RocketCore.vcxproj">
+      <Project>{1aac0b29-aeb9-4e3f-8edf-b46f8949c41b}</Project>
+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+    </ProjectReference>
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>

+ 265 - 0
Build/vc2012/RocketControls.vcxproj.filters

@@ -0,0 +1,265 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup>
+    <Filter Include="Plugin">
+      <UniqueIdentifier>{a257d370-77f8-4519-a627-531247f174dc}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Forms">
+      <UniqueIdentifier>{d566402c-1afd-45d7-96c1-00a74102f1ad}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Forms\Controls">
+      <UniqueIdentifier>{52e05489-b4a3-49ad-b4ad-4779d6869123}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Forms\Controls\Widgets">
+      <UniqueIdentifier>{4dac7e37-cfde-490b-94b8-28a3223c4688}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Forms\Controls\Input Types">
+      <UniqueIdentifier>{75ffc4df-2b76-4d3e-a787-b627691eaf44}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Forms\Parsers">
+      <UniqueIdentifier>{972c47fd-502f-4d54-a117-b94429c2a1a4}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Forms\Clipboard">
+      <UniqueIdentifier>{3fef55e5-602b-426c-af75-669a6126929e}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Tab Set">
+      <UniqueIdentifier>{69c6752c-5c92-450a-b252-e12af0f88453}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Tab Set\Parser">
+      <UniqueIdentifier>{d37f48c9-d4db-48be-9068-4d8f01d3416e}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Data Grid">
+      <UniqueIdentifier>{4ca45f6f-6281-411c-bea4-724578aa5383}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Data Grid\Parser">
+      <UniqueIdentifier>{a370a145-0d90-4e98-9d78-4cf58495b497}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Data Grid\Data Source">
+      <UniqueIdentifier>{5ff99b87-e7c7-4fae-91dd-d79490e38f3b}</UniqueIdentifier>
+    </Filter>
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\Source\Controls\Controls.cpp">
+      <Filter>Plugin</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Controls\ElementForm.cpp">
+      <Filter>Forms</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Controls\ElementFormControl.cpp">
+      <Filter>Forms</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Controls\ElementFormControlDataSelect.cpp">
+      <Filter>Forms\Controls</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Controls\ElementFormControlInput.cpp">
+      <Filter>Forms\Controls</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Controls\ElementFormControlSelect.cpp">
+      <Filter>Forms\Controls</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Controls\ElementFormControlTextArea.cpp">
+      <Filter>Forms\Controls</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Controls\SelectOption.cpp">
+      <Filter>Forms\Controls</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Controls\ElementTextSelection.cpp">
+      <Filter>Forms\Controls\Widgets</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Controls\WidgetDropDown.cpp">
+      <Filter>Forms\Controls\Widgets</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Controls\WidgetSlider.cpp">
+      <Filter>Forms\Controls\Widgets</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Controls\WidgetSliderInput.cpp">
+      <Filter>Forms\Controls\Widgets</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Controls\WidgetTextInput.cpp">
+      <Filter>Forms\Controls\Widgets</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Controls\WidgetTextInputMultiLine.cpp">
+      <Filter>Forms\Controls\Widgets</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Controls\WidgetTextInputSingleLine.cpp">
+      <Filter>Forms\Controls\Widgets</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Controls\WidgetTextInputSingleLinePassword.cpp">
+      <Filter>Forms\Controls\Widgets</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Controls\InputType.cpp">
+      <Filter>Forms\Controls\Input Types</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Controls\InputTypeButton.cpp">
+      <Filter>Forms\Controls\Input Types</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Controls\InputTypeCheckbox.cpp">
+      <Filter>Forms\Controls\Input Types</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Controls\InputTypeRadio.cpp">
+      <Filter>Forms\Controls\Input Types</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Controls\InputTypeRange.cpp">
+      <Filter>Forms\Controls\Input Types</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Controls\InputTypeSubmit.cpp">
+      <Filter>Forms\Controls\Input Types</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Controls\InputTypeText.cpp">
+      <Filter>Forms\Controls\Input Types</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Controls\XMLNodeHandlerTextArea.cpp">
+      <Filter>Forms\Parsers</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Controls\Clipboard.cpp">
+      <Filter>Forms\Clipboard</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Controls\ElementTabSet.cpp">
+      <Filter>Tab Set</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Controls\XMLNodeHandlerTabSet.cpp">
+      <Filter>Tab Set\Parser</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Controls\ElementDataGrid.cpp">
+      <Filter>Data Grid</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Controls\ElementDataGridCell.cpp">
+      <Filter>Data Grid</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Controls\ElementDataGridExpandButton.cpp">
+      <Filter>Data Grid</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Controls\ElementDataGridRow.cpp">
+      <Filter>Data Grid</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Controls\XMLNodeHandlerDataGrid.cpp">
+      <Filter>Data Grid\Parser</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Controls\DataFormatter.cpp">
+      <Filter>Data Grid\Data Source</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Controls\DataQuery.cpp">
+      <Filter>Data Grid\Data Source</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Controls\DataSource.cpp">
+      <Filter>Data Grid\Data Source</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Controls\DataSourceListener.cpp">
+      <Filter>Data Grid\Data Source</Filter>
+    </ClCompile>
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="..\..\Include\Rocket\Controls\Controls.h">
+      <Filter>Plugin</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Controls\Header.h">
+      <Filter>Plugin</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Controls\ElementForm.h">
+      <Filter>Forms</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Controls\ElementFormControl.h">
+      <Filter>Forms</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Controls\ElementFormControlDataSelect.h">
+      <Filter>Forms\Controls</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Controls\ElementFormControlInput.h">
+      <Filter>Forms\Controls</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Controls\ElementFormControlSelect.h">
+      <Filter>Forms\Controls</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Controls\ElementFormControlTextArea.h">
+      <Filter>Forms\Controls</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Controls\SelectOption.h">
+      <Filter>Forms\Controls</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Controls\ElementTextSelection.h">
+      <Filter>Forms\Controls\Widgets</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Controls\WidgetDropDown.h">
+      <Filter>Forms\Controls\Widgets</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Controls\WidgetSlider.h">
+      <Filter>Forms\Controls\Widgets</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Controls\WidgetSliderInput.h">
+      <Filter>Forms\Controls\Widgets</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Controls\WidgetTextInput.h">
+      <Filter>Forms\Controls\Widgets</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Controls\WidgetTextInputMultiLine.h">
+      <Filter>Forms\Controls\Widgets</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Controls\WidgetTextInputSingleLine.h">
+      <Filter>Forms\Controls\Widgets</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Controls\WidgetTextInputSingleLinePassword.h">
+      <Filter>Forms\Controls\Widgets</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Controls\InputType.h">
+      <Filter>Forms\Controls\Input Types</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Controls\InputTypeButton.h">
+      <Filter>Forms\Controls\Input Types</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Controls\InputTypeCheckbox.h">
+      <Filter>Forms\Controls\Input Types</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Controls\InputTypeRadio.h">
+      <Filter>Forms\Controls\Input Types</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Controls\InputTypeRange.h">
+      <Filter>Forms\Controls\Input Types</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Controls\InputTypeSubmit.h">
+      <Filter>Forms\Controls\Input Types</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Controls\InputTypeText.h">
+      <Filter>Forms\Controls\Input Types</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Controls\XMLNodeHandlerTextArea.h">
+      <Filter>Forms\Parsers</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Controls\Clipboard.h">
+      <Filter>Forms\Clipboard</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Controls\ElementTabSet.h">
+      <Filter>Tab Set</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Controls\XMLNodeHandlerTabSet.h">
+      <Filter>Tab Set\Parser</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Controls\ElementDataGrid.h">
+      <Filter>Data Grid</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Controls\ElementDataGridCell.h">
+      <Filter>Data Grid</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Controls\ElementDataGridExpandButton.h">
+      <Filter>Data Grid</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Controls\ElementDataGridRow.h">
+      <Filter>Data Grid</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Controls\XMLNodeHandlerDataGrid.h">
+      <Filter>Data Grid\Parser</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Controls\DataFormatter.h">
+      <Filter>Data Grid\Data Source</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Controls\DataQuery.h">
+      <Filter>Data Grid\Data Source</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Controls\DataSource.h">
+      <Filter>Data Grid\Data Source</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Controls\DataSourceListener.h">
+      <Filter>Data Grid\Data Source</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Controls.h" />
+  </ItemGroup>
+</Project>

+ 378 - 0
Build/vc2012/RocketCore.vcxproj

@@ -0,0 +1,378 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{1AAC0B29-AEB9-4E3F-8EDF-B46F8949C41B}</ProjectGuid>
+    <RootNamespace>rocket</RootNamespace>
+    <Keyword>Win32Proj</Keyword>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <CharacterSet>Unicode</CharacterSet>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+    <PlatformToolset>v110</PlatformToolset>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <CharacterSet>Unicode</CharacterSet>
+    <PlatformToolset>v110</PlatformToolset>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="vsprops\BuildConfigurationDLLRelease.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="vsprops\BuildConfigurationDLLDebug.props" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+    <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)..\..\bin\</OutDir>
+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectName)_d</TargetName>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)..\..\bin\</OutDir>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <ClCompile>
+      <AdditionalIncludeDirectories>..\..\Include;..\..\..\support\freetype-2.4.10\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PrecompiledHeader>
+      </PrecompiledHeader>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>freetype2410_D.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>..\..\bin\$(ProjectName)_d.dll</OutputFile>
+      <AdditionalLibraryDirectories>..\..\..\support\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention>
+      </DataExecutionPrevention>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <ClCompile>
+      <AdditionalIncludeDirectories>..\..\Include;..\..\..\support\freetype-2.4.10\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PrecompiledHeader>Use</PrecompiledHeader>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>freetype2410.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>..\..\bin\$(ProjectName).dll</OutputFile>
+      <AdditionalLibraryDirectories>..\..\..\support\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention>
+      </DataExecutionPrevention>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\Source\Core\precompiled.cpp">
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+      </PrecompiledHeader>
+      <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\Texture.cpp" />
+    <ClCompile Include="..\..\Source\Core\TextureDatabase.cpp" />
+    <ClCompile Include="..\..\Source\Core\TextureResource.cpp" />
+    <ClCompile Include="..\..\Source\Core\Box.cpp" />
+    <ClCompile Include="..\..\Source\Core\DocumentHeader.cpp" />
+    <ClCompile Include="..\..\Source\Core\Element.cpp" />
+    <ClCompile Include="..\..\Source\Core\ElementBackground.cpp" />
+    <ClCompile Include="..\..\Source\Core\ElementBorder.cpp" />
+    <ClCompile Include="..\..\Source\Core\ElementDecoration.cpp" />
+    <ClCompile Include="..\..\Source\Core\ElementReference.cpp" />
+    <ClCompile Include="..\..\Source\Core\ElementScroll.cpp" />
+    <ClCompile Include="..\..\Source\Core\ElementStyle.cpp" />
+	<ClCompile Include="..\..\Source\Core\ElementStyleCache.cpp" />
+    <ClCompile Include="..\..\Source\Core\ElementUtilities.cpp" />
+    <ClCompile Include="..\..\Source\Core\LayoutBlockBox.cpp" />
+    <ClCompile Include="..\..\Source\Core\LayoutBlockBoxSpace.cpp" />
+    <ClCompile Include="..\..\Source\Core\LayoutEngine.cpp" />
+    <ClCompile Include="..\..\Source\Core\LayoutInlineBox.cpp" />
+    <ClCompile Include="..\..\Source\Core\LayoutInlineBoxText.cpp" />
+    <ClCompile Include="..\..\Source\Core\LayoutLineBox.cpp" />
+    <ClCompile Include="..\..\Source\Core\ElementInstancer.cpp" />
+    <ClCompile Include="..\..\Source\Core\XMLNodeHandler.cpp" />
+    <ClCompile Include="..\..\Source\Core\XMLNodeHandlerBody.cpp" />
+    <ClCompile Include="..\..\Source\Core\XMLNodeHandlerDefault.cpp" />
+    <ClCompile Include="..\..\Source\Core\XMLNodeHandlerHead.cpp" />
+    <ClCompile Include="..\..\Source\Core\XMLNodeHandlerTemplate.cpp" />
+    <ClCompile Include="..\..\Source\Core\XMLParser.cpp" />
+    <ClCompile Include="..\..\Source\Core\XMLParseTools.cpp" />
+    <ClCompile Include="..\..\Source\Core\ElementDefinition.cpp" />
+    <ClCompile Include="..\..\Source\Core\ElementText.cpp" />
+    <ClCompile Include="..\..\Source\Core\ElementTextDefault.cpp" />
+    <ClCompile Include="..\..\Source\Core\ElementHandle.cpp" />
+    <ClCompile Include="..\..\Source\Core\WidgetSlider.cpp" />
+    <ClCompile Include="..\..\Source\Core\WidgetSliderScroll.cpp" />
+    <ClCompile Include="..\..\Source\Core\ElementImage.cpp" />
+    <ClCompile Include="..\..\Source\Core\ElementDocument.cpp" />
+    <ClCompile Include="..\..\Source\Core\Geometry.cpp" />
+    <ClCompile Include="..\..\Source\Core\GeometryDatabase.cpp" />
+    <ClCompile Include="..\..\Source\Core\GeometryUtilities.cpp" />
+    <ClCompile Include="..\..\Source\Core\Decorator.cpp" />
+    <ClCompile Include="..\..\Source\Core\DecoratorInstancer.cpp" />
+    <ClCompile Include="..\..\Source\Core\DecoratorNone.cpp" />
+    <ClCompile Include="..\..\Source\Core\DecoratorNoneInstancer.cpp" />
+    <ClCompile Include="..\..\Source\Core\DecoratorTiled.cpp" />
+    <ClCompile Include="..\..\Source\Core\DecoratorTiledInstancer.cpp" />
+    <ClCompile Include="..\..\Source\Core\DecoratorTiledHorizontal.cpp" />
+    <ClCompile Include="..\..\Source\Core\DecoratorTiledHorizontalInstancer.cpp" />
+    <ClCompile Include="..\..\Source\Core\DecoratorTiledBox.cpp" />
+    <ClCompile Include="..\..\Source\Core\DecoratorTiledBoxInstancer.cpp" />
+    <ClCompile Include="..\..\Source\Core\DecoratorTiledImage.cpp" />
+    <ClCompile Include="..\..\Source\Core\DecoratorTiledImageInstancer.cpp" />
+    <ClCompile Include="..\..\Source\Core\DecoratorTiledVertical.cpp" />
+    <ClCompile Include="..\..\Source\Core\DecoratorTiledVerticalInstancer.cpp" />
+    <ClCompile Include="..\..\Source\Core\StyleSheet.cpp" />
+    <ClCompile Include="..\..\Source\Core\StyleSheetFactory.cpp" />
+    <ClCompile Include="..\..\Source\Core\StyleSheetNode.cpp" />
+    <ClCompile Include="..\..\Source\Core\StyleSheetParser.cpp" />
+    <ClCompile Include="..\..\Source\Core\StyleSheetSpecification.cpp" />
+    <ClCompile Include="..\..\Source\Core\Property.cpp" />
+    <ClCompile Include="..\..\Source\Core\PropertyDictionary.cpp" />
+    <ClCompile Include="..\..\Source\Core\PropertyDefinition.cpp" />
+    <ClCompile Include="..\..\Source\Core\PropertySpecification.cpp" />
+    <ClCompile Include="..\..\Source\Core\PropertyParserColour.cpp" />
+    <ClCompile Include="..\..\Source\Core\PropertyParserKeyword.cpp" />
+    <ClCompile Include="..\..\Source\Core\PropertyParserNumber.cpp" />
+    <ClCompile Include="..\..\Source\Core\PropertyParserString.cpp" />
+    <ClCompile Include="..\..\Source\Core\StyleSheetNodeSelector.cpp" />
+    <ClCompile Include="..\..\Source\Core\StyleSheetNodeSelectorEmpty.cpp" />
+    <ClCompile Include="..\..\Source\Core\StyleSheetNodeSelectorFirstChild.cpp" />
+    <ClCompile Include="..\..\Source\Core\StyleSheetNodeSelectorFirstOfType.cpp" />
+    <ClCompile Include="..\..\Source\Core\StyleSheetNodeSelectorLastChild.cpp" />
+    <ClCompile Include="..\..\Source\Core\StyleSheetNodeSelectorLastOfType.cpp" />
+    <ClCompile Include="..\..\Source\Core\StyleSheetNodeSelectorNthChild.cpp" />
+    <ClCompile Include="..\..\Source\Core\StyleSheetNodeSelectorNthLastChild.cpp" />
+    <ClCompile Include="..\..\Source\Core\StyleSheetNodeSelectorNthLastOfType.cpp" />
+    <ClCompile Include="..\..\Source\Core\StyleSheetNodeSelectorNthOfType.cpp" />
+    <ClCompile Include="..\..\Source\Core\StyleSheetNodeSelectorOnlyChild.cpp" />
+    <ClCompile Include="..\..\Source\Core\StyleSheetNodeSelectorOnlyOfType.cpp" />
+    <ClCompile Include="..\..\Source\Core\Event.cpp" />
+    <ClCompile Include="..\..\Source\Core\EventDispatcher.cpp" />
+    <ClCompile Include="..\..\Source\Core\EventInstancer.cpp" />
+    <ClCompile Include="..\..\Source\Core\EventInstancerDefault.cpp" />
+    <ClCompile Include="..\..\Source\Core\EventListenerInstancer.cpp" />
+    <ClCompile Include="..\..\Source\Core\FontDatabase.cpp" />
+    <ClCompile Include="..\..\Source\Core\FontFace.cpp" />
+    <ClCompile Include="..\..\Source\Core\FontFaceHandle.cpp" />
+    <ClCompile Include="..\..\Source\Core\FontFaceLayer.cpp" />
+    <ClCompile Include="..\..\Source\Core\FontFamily.cpp" />
+    <ClCompile Include="..\..\Source\Core\UnicodeRange.cpp" />
+    <ClCompile Include="..\..\Source\Core\TextureLayout.cpp" />
+    <ClCompile Include="..\..\Source\Core\TextureLayoutRectangle.cpp" />
+    <ClCompile Include="..\..\Source\Core\TextureLayoutRow.cpp" />
+    <ClCompile Include="..\..\Source\Core\TextureLayoutTexture.cpp" />
+    <ClCompile Include="..\..\Source\Core\FontEffect.cpp" />
+    <ClCompile Include="..\..\Source\Core\FontEffectInstancer.cpp" />
+    <ClCompile Include="..\..\Source\Core\FontEffectNone.cpp" />
+    <ClCompile Include="..\..\Source\Core\FontEffectNoneInstancer.cpp" />
+    <ClCompile Include="..\..\Source\Core\FontEffectOutline.cpp" />
+    <ClCompile Include="..\..\Source\Core\FontEffectOutlineInstancer.cpp" />
+    <ClCompile Include="..\..\Source\Core\FontEffectShadow.cpp" />
+    <ClCompile Include="..\..\Source\Core\FontEffectShadowInstancer.cpp" />
+    <ClCompile Include="..\..\Source\Core\ConvolutionFilter.cpp" />
+    <ClCompile Include="..\..\Source\Core\Template.cpp" />
+    <ClCompile Include="..\..\Source\Core\TemplateCache.cpp" />
+    <ClCompile Include="..\..\Source\Core\Clock.cpp" />
+    <ClCompile Include="..\..\Source\Core\Core.cpp" />
+    <ClCompile Include="..\..\Source\Core\Factory.cpp" />
+    <ClCompile Include="..\..\Source\Core\Log.cpp" />
+    <ClCompile Include="..\..\Source\Core\Math.cpp" />
+    <ClCompile Include="..\..\Source\Core\RenderInterface.cpp" />
+    <ClCompile Include="..\..\Source\Core\FileInterface.cpp" />
+    <ClCompile Include="..\..\Source\Core\FileInterfaceDefault.cpp" />
+    <ClCompile Include="..\..\Source\Core\StreamFile.cpp" />
+    <ClCompile Include="..\..\Source\Core\SystemInterface.cpp" />
+    <ClCompile Include="..\..\Source\Core\String.cpp" />
+    <ClCompile Include="..\..\Source\Core\Plugin.cpp" />
+    <ClCompile Include="..\..\Source\Core\PluginRegistry.cpp" />
+    <ClCompile Include="..\..\Source\Core\BaseXMLParser.cpp" />
+    <ClCompile Include="..\..\Source\Core\Dictionary.cpp" />
+    <ClCompile Include="..\..\Source\Core\ReferenceCountable.cpp" />
+    <ClCompile Include="..\..\Source\Core\Stream.cpp" />
+    <ClCompile Include="..\..\Source\Core\StreamMemory.cpp" />
+    <ClCompile Include="..\..\Source\Core\StringUtilities.cpp" />
+    <ClCompile Include="..\..\Source\Core\URL.cpp" />
+    <ClCompile Include="..\..\Source\Core\Variant.cpp" />
+    <ClCompile Include="..\..\Source\Core\Vector2.cpp" />
+    <ClCompile Include="..\..\Source\Core\WString.cpp" />
+    <ClCompile Include="..\..\Source\Core\Context.cpp">
+      <ShowIncludes Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">false</ShowIncludes>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\ContextInstancer.cpp" />
+    <ClCompile Include="..\..\Source\Core\ContextInstancerDefault.cpp" />
+    <ClCompile Include="..\..\Source\Core\StringCache.cpp" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="..\..\Source\Core\precompiled.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\Texture.h" />
+    <ClInclude Include="..\..\Source\Core\TextureDatabase.h" />
+    <ClInclude Include="..\..\Source\Core\TextureResource.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\Box.h" />
+    <ClInclude Include="..\..\Source\Core\DocumentHeader.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\Element.h" />
+    <ClInclude Include="..\..\Source\Core\ElementBackground.h" />
+    <ClInclude Include="..\..\Source\Core\ElementBorder.h" />
+    <ClInclude Include="..\..\Source\Core\ElementDecoration.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\ElementReference.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\ElementScroll.h" />
+    <ClInclude Include="..\..\Source\Core\ElementStyle.h" />
+	<ClInclude Include="..\..\Source\Core\ElementStyleCache.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\ElementUtilities.h" />
+    <ClInclude Include="..\..\Source\Core\LayoutBlockBox.h" />
+    <ClInclude Include="..\..\Source\Core\LayoutBlockBoxSpace.h" />
+    <ClInclude Include="..\..\Source\Core\LayoutEngine.h" />
+    <ClInclude Include="..\..\Source\Core\LayoutInlineBox.h" />
+    <ClInclude Include="..\..\Source\Core\LayoutInlineBoxText.h" />
+    <ClInclude Include="..\..\Source\Core\LayoutLineBox.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\ElementInstancer.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\ElementInstancerGeneric.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\XMLNodeHandler.h" />
+    <ClInclude Include="..\..\Source\Core\XMLNodeHandlerBody.h" />
+    <ClInclude Include="..\..\Source\Core\XMLNodeHandlerDefault.h" />
+    <ClInclude Include="..\..\Source\Core\XMLNodeHandlerHead.h" />
+    <ClInclude Include="..\..\Source\Core\XMLNodeHandlerTemplate.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\XMLParser.h" />
+    <ClInclude Include="..\..\Source\Core\XMLParseTools.h" />
+    <ClInclude Include="..\..\Source\Core\ElementDefinition.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\ElementText.h" />
+    <ClInclude Include="..\..\Source\Core\ElementTextDefault.h" />
+    <ClInclude Include="..\..\Source\Core\ElementHandle.h" />
+    <ClInclude Include="..\..\Source\Core\WidgetSlider.h" />
+    <ClInclude Include="..\..\Source\Core\WidgetSliderScroll.h" />
+    <ClInclude Include="..\..\Source\Core\ElementImage.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\ElementDocument.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\Geometry.h" />
+    <ClInclude Include="..\..\Source\Core\GeometryDatabase.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\GeometryUtilities.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\Vertex.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\Decorator.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\DecoratorInstancer.h" />
+    <ClInclude Include="..\..\Source\Core\DecoratorNone.h" />
+    <ClInclude Include="..\..\Source\Core\DecoratorNoneInstancer.h" />
+    <ClInclude Include="..\..\Source\Core\DecoratorTiled.h" />
+    <ClInclude Include="..\..\Source\Core\DecoratorTiledInstancer.h" />
+    <ClInclude Include="..\..\Source\Core\DecoratorTiledHorizontal.h" />
+    <ClInclude Include="..\..\Source\Core\DecoratorTiledHorizontalInstancer.h" />
+    <ClInclude Include="..\..\Source\Core\DecoratorTiledBox.h" />
+    <ClInclude Include="..\..\Source\Core\DecoratorTiledBoxInstancer.h" />
+    <ClInclude Include="..\..\Source\Core\DecoratorTiledImage.h" />
+    <ClInclude Include="..\..\Source\Core\DecoratorTiledImageInstancer.h" />
+    <ClInclude Include="..\..\Source\Core\DecoratorTiledVertical.h" />
+    <ClInclude Include="..\..\Source\Core\DecoratorTiledVerticalInstancer.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\StyleSheet.h" />
+    <ClInclude Include="..\..\Source\Core\StyleSheetFactory.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\StyleSheetKeywords.h" />
+    <ClInclude Include="..\..\Source\Core\StyleSheetNode.h" />
+    <ClInclude Include="..\..\Source\Core\StyleSheetParser.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\StyleSheetSpecification.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\Property.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\PropertyDictionary.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\PropertyDefinition.h" />
+    <ClInclude Include="..\..\Source\Core\PropertyShorthandDefinition.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\PropertySpecification.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\PropertyParser.h" />
+    <ClInclude Include="..\..\Source\Core\PropertyParserColour.h" />
+    <ClInclude Include="..\..\Source\Core\PropertyParserKeyword.h" />
+    <ClInclude Include="..\..\Source\Core\PropertyParserNumber.h" />
+    <ClInclude Include="..\..\Source\Core\PropertyParserString.h" />
+    <ClInclude Include="..\..\Source\Core\StyleSheetNodeSelector.h" />
+    <ClInclude Include="..\..\Source\Core\StyleSheetNodeSelectorEmpty.h" />
+    <ClInclude Include="..\..\Source\Core\StyleSheetNodeSelectorFirstChild.h" />
+    <ClInclude Include="..\..\Source\Core\StyleSheetNodeSelectorFirstOfType.h" />
+    <ClInclude Include="..\..\Source\Core\StyleSheetNodeSelectorLastChild.h" />
+    <ClInclude Include="..\..\Source\Core\StyleSheetNodeSelectorLastOfType.h" />
+    <ClInclude Include="..\..\Source\Core\StyleSheetNodeSelectorNthChild.h" />
+    <ClInclude Include="..\..\Source\Core\StyleSheetNodeSelectorNthLastChild.h" />
+    <ClInclude Include="..\..\Source\Core\StyleSheetNodeSelectorNthLastOfType.h" />
+    <ClInclude Include="..\..\Source\Core\StyleSheetNodeSelectorNthOfType.h" />
+    <ClInclude Include="..\..\Source\Core\StyleSheetNodeSelectorOnlyChild.h" />
+    <ClInclude Include="..\..\Source\Core\StyleSheetNodeSelectorOnlyOfType.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\Event.h" />
+    <ClInclude Include="..\..\Source\Core\EventDispatcher.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\EventInstancer.h" />
+    <ClInclude Include="..\..\Source\Core\EventInstancerDefault.h" />
+    <ClInclude Include="..\..\Source\Core\EventIterators.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\EventListener.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\EventListenerInstancer.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\Input.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\Font.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\FontDatabase.h" />
+    <ClInclude Include="..\..\Source\Core\FontFace.h" />
+    <ClInclude Include="..\..\Source\Core\FontFaceHandle.h" />
+    <ClInclude Include="..\..\Source\Core\FontFaceLayer.h" />
+    <ClInclude Include="..\..\Source\Core\FontFamily.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\FontGlyph.h" />
+    <ClInclude Include="..\..\Source\Core\UnicodeRange.h" />
+    <ClInclude Include="..\..\Source\Core\TextureLayout.h" />
+    <ClInclude Include="..\..\Source\Core\TextureLayoutRectangle.h" />
+    <ClInclude Include="..\..\Source\Core\TextureLayoutRow.h" />
+    <ClInclude Include="..\..\Source\Core\TextureLayoutTexture.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\FontEffect.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\FontEffectInstancer.h" />
+    <ClInclude Include="..\..\Source\Core\FontEffectNone.h" />
+    <ClInclude Include="..\..\Source\Core\FontEffectNoneInstancer.h" />
+    <ClInclude Include="..\..\Source\Core\FontEffectOutline.h" />
+    <ClInclude Include="..\..\Source\Core\FontEffectOutlineInstancer.h" />
+    <ClInclude Include="..\..\Source\Core\FontEffectShadow.h" />
+    <ClInclude Include="..\..\Source\Core\FontEffectShadowInstancer.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\ConvolutionFilter.h" />
+    <ClInclude Include="..\..\Source\Core\Template.h" />
+    <ClInclude Include="..\..\Source\Core\TemplateCache.h" />
+    <ClInclude Include="..\..\Source\Core\Clock.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\Core.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\Factory.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\Header.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\Log.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\Types.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\RenderInterface.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\FileInterface.h" />
+    <ClInclude Include="..\..\Source\Core\FileInterfaceDefault.h" />
+    <ClInclude Include="..\..\Source\Core\StreamFile.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\SystemInterface.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\String.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\Plugin.h" />
+    <ClInclude Include="..\..\Source\Core\PluginRegistry.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\BaseXMLParser.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\Colour.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\Debug.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\Dictionary.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\ScriptInterface.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\Stream.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\StreamMemory.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\StringBase.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\StringUtilities.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\URL.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\Variant.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\Vector2.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\WString.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\Context.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core\ContextInstancer.h" />
+    <ClInclude Include="..\..\Source\Core\ContextInstancerDefault.h" />
+    <ClInclude Include="..\..\Source\Core\StringCache.h" />
+    <ClInclude Include="..\..\Include\Rocket\Core.h" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="..\..\Include\Rocket\Core\Element.inl" />
+    <None Include="..\..\Include\Rocket\Core\ElementInstancerGeneric.inl" />
+    <None Include="..\..\Include\Rocket\Core\Colour.inl" />
+    <None Include="..\..\Include\Rocket\Core\Dictionary.inl" />
+    <None Include="..\..\Include\Rocket\Core\StringBase.inl" />
+    <None Include="..\..\Include\Rocket\Core\Variant.inl" />
+    <None Include="..\..\Include\Rocket\Core\Vector2.inl" />
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>

+ 996 - 0
Build/vc2012/RocketCore.vcxproj.filters

@@ -0,0 +1,996 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup>
+    <Filter Include="Precompiled Header">
+      <UniqueIdentifier>{5abee215-edb8-46c6-9bcd-c99783f54e1c}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Texture">
+      <UniqueIdentifier>{72909d59-3317-40d7-8c6c-ad1cfed211ae}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Element">
+      <UniqueIdentifier>{b943f96c-f5be-408e-b994-44cd6e34b451}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Element\Layout">
+      <UniqueIdentifier>{ca96dcb0-1c5a-4c49-aebd-d76139ab2289}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Element\Instancer">
+      <UniqueIdentifier>{3b418826-3c57-418e-a224-4431558b9bb4}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Element\Parser">
+      <UniqueIdentifier>{fe66c384-a191-41f7-91e4-7fb5cdd8e225}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Element\Definition">
+      <UniqueIdentifier>{f6d3bc79-e60a-450a-9f30-cf825c6aa7d6}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Element\Text">
+      <UniqueIdentifier>{7b1dccd4-6476-4129-8511-d18ba614dc02}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Element\Handle">
+      <UniqueIdentifier>{ab0d755a-402a-41b8-88de-b0e8b0a34877}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Element\Widgets">
+      <UniqueIdentifier>{f45ea0a5-6303-451d-b51c-8e1377fec727}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Element\Image">
+      <UniqueIdentifier>{064239a3-fee9-4c68-a063-886738d29ef6}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Element\Document">
+      <UniqueIdentifier>{d5450e51-a6b7-4bcf-97d1-b70e89b89a3e}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Geometry">
+      <UniqueIdentifier>{f5317c7b-ea74-4aaa-89d4-35d4e2fb7edd}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Decorator">
+      <UniqueIdentifier>{dfeeb201-f804-46db-981a-049474a888bd}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Decorator\Decorators">
+      <UniqueIdentifier>{2cd32bdc-73f3-4e6d-9e34-d3fc47d03d56}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Decorator\Decorators\Tile">
+      <UniqueIdentifier>{2ee97c72-53d0-4199-a50e-262e77af1a80}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Decorator\Decorators\Tile\Horizontal">
+      <UniqueIdentifier>{14747a90-6963-4e8f-812b-121e59a4eb12}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Decorator\Decorators\Tile\Box">
+      <UniqueIdentifier>{fdb7b321-7844-4db9-b2de-1eaf77607fc9}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Decorator\Decorators\Tile\Image">
+      <UniqueIdentifier>{179069cc-48c6-42e1-94c6-fa353a6c44a6}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Decorator\Decorators\Tile\Vertical">
+      <UniqueIdentifier>{fde42e3b-33a8-42c0-a2cf-fd3fe0ab4305}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Style Sheet">
+      <UniqueIdentifier>{cc9f2ca4-b15b-44a0-836f-c7ed8d510b3c}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Style Sheet\Property">
+      <UniqueIdentifier>{ac2f2cef-240b-4244-bb5b-de91fb265598}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Style Sheet\Property\Definition">
+      <UniqueIdentifier>{190f833a-58ae-44be-8f91-395188ddda18}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Style Sheet\Property\Definition\Parser">
+      <UniqueIdentifier>{8192d0f2-1139-4c0b-8cc5-50c3834a5e12}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Style Sheet\Selectors">
+      <UniqueIdentifier>{5ff3fdd9-37ec-4eb6-b33e-7da565529b06}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Events">
+      <UniqueIdentifier>{b2d26dfb-71a9-4187-8b89-4ee551f50876}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Fonts">
+      <UniqueIdentifier>{aa4f9f87-5339-42c8-adf5-f6a41177f80d}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Fonts\Texture Layout">
+      <UniqueIdentifier>{ec4fd972-4044-4257-8eb3-39b18ded182a}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Fonts\Effect">
+      <UniqueIdentifier>{9abae9d0-ecfc-4026-b0bc-de5cc3063ed8}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Fonts\Effect\Effects">
+      <UniqueIdentifier>{e9b7e163-ec28-4763-9f58-f478c65752cf}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Fonts\Effect\Effects\None">
+      <UniqueIdentifier>{9e5b6eee-b113-4489-a0fb-394d815f95df}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Fonts\Effect\Effects\Outline">
+      <UniqueIdentifier>{b6f966a8-4700-4533-84a9-14825b6ce1be}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Fonts\Effect\Effects\Shadow">
+      <UniqueIdentifier>{d2555dba-61ec-4584-bd71-256388bd9ccd}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Fonts\Effect\Effects\Convolution Filter">
+      <UniqueIdentifier>{2264df01-8327-4d4d-931c-3dee5093dc5d}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Templates">
+      <UniqueIdentifier>{8462d999-35a5-4237-9f09-49a5b34a53d3}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Core">
+      <UniqueIdentifier>{bf01ca0d-1dbd-413d-84cc-930173028daf}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Core\Interfaces">
+      <UniqueIdentifier>{8de96f6b-92fe-4252-a6f0-1225b61f01e5}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Core\Interfaces\Renderer">
+      <UniqueIdentifier>{0cb8eb62-cebc-4273-8805-53482edab17c}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Core\Interfaces\File">
+      <UniqueIdentifier>{399993e4-e1ac-48fc-b67d-4c67f1a4c909}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Core\Interfaces\System">
+      <UniqueIdentifier>{08cdcffa-7005-45a7-bf21-350689121093}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Core\String">
+      <UniqueIdentifier>{0fd008d9-c0ca-41b5-9ca1-adf8a4a61e5d}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Core\Plugin">
+      <UniqueIdentifier>{b14e6480-87b1-43e2-af3e-943d98cd766b}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Core\Types">
+      <UniqueIdentifier>{a07969c3-8567-4981-8c09-742621e14c2e}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Context">
+      <UniqueIdentifier>{f02f27ec-0f9a-451a-82ca-bedc746815dd}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="String Cache">
+      <UniqueIdentifier>{1d6c2b0b-8c04-45ce-b6dd-be0f4676a9d2}</UniqueIdentifier>
+    </Filter>
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\Source\Core\precompiled.cpp">
+      <Filter>Precompiled Header</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\Texture.cpp">
+      <Filter>Texture</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\TextureDatabase.cpp">
+      <Filter>Texture</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\TextureResource.cpp">
+      <Filter>Texture</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\Box.cpp">
+      <Filter>Element</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\DocumentHeader.cpp">
+      <Filter>Element</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\Element.cpp">
+      <Filter>Element</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\ElementBackground.cpp">
+      <Filter>Element</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\ElementBorder.cpp">
+      <Filter>Element</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\ElementDecoration.cpp">
+      <Filter>Element</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\ElementReference.cpp">
+      <Filter>Element</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\ElementScroll.cpp">
+      <Filter>Element</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\ElementStyle.cpp">
+      <Filter>Element</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\ElementUtilities.cpp">
+      <Filter>Element</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\LayoutBlockBox.cpp">
+      <Filter>Element\Layout</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\LayoutBlockBoxSpace.cpp">
+      <Filter>Element\Layout</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\LayoutEngine.cpp">
+      <Filter>Element\Layout</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\LayoutInlineBox.cpp">
+      <Filter>Element\Layout</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\LayoutInlineBoxText.cpp">
+      <Filter>Element\Layout</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\LayoutLineBox.cpp">
+      <Filter>Element\Layout</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\ElementInstancer.cpp">
+      <Filter>Element\Instancer</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\XMLNodeHandler.cpp">
+      <Filter>Element\Parser</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\XMLNodeHandlerBody.cpp">
+      <Filter>Element\Parser</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\XMLNodeHandlerDefault.cpp">
+      <Filter>Element\Parser</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\XMLNodeHandlerHead.cpp">
+      <Filter>Element\Parser</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\XMLNodeHandlerTemplate.cpp">
+      <Filter>Element\Parser</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\XMLParser.cpp">
+      <Filter>Element\Parser</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\XMLParseTools.cpp">
+      <Filter>Element\Parser</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\ElementDefinition.cpp">
+      <Filter>Element\Definition</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\ElementText.cpp">
+      <Filter>Element\Text</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\ElementTextDefault.cpp">
+      <Filter>Element\Text</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\ElementHandle.cpp">
+      <Filter>Element\Handle</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\WidgetSlider.cpp">
+      <Filter>Element\Widgets</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\WidgetSliderScroll.cpp">
+      <Filter>Element\Widgets</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\ElementImage.cpp">
+      <Filter>Element\Image</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\ElementDocument.cpp">
+      <Filter>Element\Document</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\Geometry.cpp">
+      <Filter>Geometry</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\GeometryDatabase.cpp">
+      <Filter>Geometry</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\GeometryUtilities.cpp">
+      <Filter>Geometry</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\Decorator.cpp">
+      <Filter>Decorator</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\DecoratorInstancer.cpp">
+      <Filter>Decorator</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\DecoratorNone.cpp">
+      <Filter>Decorator\Decorators</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\DecoratorNoneInstancer.cpp">
+      <Filter>Decorator\Decorators</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\DecoratorTiled.cpp">
+      <Filter>Decorator\Decorators\Tile</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\DecoratorTiledInstancer.cpp">
+      <Filter>Decorator\Decorators\Tile</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\DecoratorTiledHorizontal.cpp">
+      <Filter>Decorator\Decorators\Tile\Horizontal</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\DecoratorTiledHorizontalInstancer.cpp">
+      <Filter>Decorator\Decorators\Tile\Horizontal</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\DecoratorTiledBox.cpp">
+      <Filter>Decorator\Decorators\Tile\Box</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\DecoratorTiledBoxInstancer.cpp">
+      <Filter>Decorator\Decorators\Tile\Box</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\DecoratorTiledImage.cpp">
+      <Filter>Decorator\Decorators\Tile\Image</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\DecoratorTiledImageInstancer.cpp">
+      <Filter>Decorator\Decorators\Tile\Image</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\DecoratorTiledVertical.cpp">
+      <Filter>Decorator\Decorators\Tile\Vertical</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\DecoratorTiledVerticalInstancer.cpp">
+      <Filter>Decorator\Decorators\Tile\Vertical</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\StyleSheet.cpp">
+      <Filter>Style Sheet</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\StyleSheetFactory.cpp">
+      <Filter>Style Sheet</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\StyleSheetNode.cpp">
+      <Filter>Style Sheet</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\StyleSheetParser.cpp">
+      <Filter>Style Sheet</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\StyleSheetSpecification.cpp">
+      <Filter>Style Sheet</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\Property.cpp">
+      <Filter>Style Sheet\Property</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\PropertyDictionary.cpp">
+      <Filter>Style Sheet\Property</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\PropertyDefinition.cpp">
+      <Filter>Style Sheet\Property\Definition</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\PropertySpecification.cpp">
+      <Filter>Style Sheet\Property\Definition</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\PropertyParserColour.cpp">
+      <Filter>Style Sheet\Property\Definition\Parser</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\PropertyParserKeyword.cpp">
+      <Filter>Style Sheet\Property\Definition\Parser</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\PropertyParserNumber.cpp">
+      <Filter>Style Sheet\Property\Definition\Parser</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\PropertyParserString.cpp">
+      <Filter>Style Sheet\Property\Definition\Parser</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\StyleSheetNodeSelector.cpp">
+      <Filter>Style Sheet\Selectors</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\StyleSheetNodeSelectorEmpty.cpp">
+      <Filter>Style Sheet\Selectors</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\StyleSheetNodeSelectorFirstChild.cpp">
+      <Filter>Style Sheet\Selectors</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\StyleSheetNodeSelectorFirstOfType.cpp">
+      <Filter>Style Sheet\Selectors</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\StyleSheetNodeSelectorLastChild.cpp">
+      <Filter>Style Sheet\Selectors</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\StyleSheetNodeSelectorLastOfType.cpp">
+      <Filter>Style Sheet\Selectors</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\StyleSheetNodeSelectorNthChild.cpp">
+      <Filter>Style Sheet\Selectors</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\StyleSheetNodeSelectorNthLastChild.cpp">
+      <Filter>Style Sheet\Selectors</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\StyleSheetNodeSelectorNthLastOfType.cpp">
+      <Filter>Style Sheet\Selectors</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\StyleSheetNodeSelectorNthOfType.cpp">
+      <Filter>Style Sheet\Selectors</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\StyleSheetNodeSelectorOnlyChild.cpp">
+      <Filter>Style Sheet\Selectors</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\StyleSheetNodeSelectorOnlyOfType.cpp">
+      <Filter>Style Sheet\Selectors</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\Event.cpp">
+      <Filter>Events</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\EventDispatcher.cpp">
+      <Filter>Events</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\EventInstancer.cpp">
+      <Filter>Events</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\EventInstancerDefault.cpp">
+      <Filter>Events</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\EventListenerInstancer.cpp">
+      <Filter>Events</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\FontDatabase.cpp">
+      <Filter>Fonts</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\FontFace.cpp">
+      <Filter>Fonts</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\FontFaceHandle.cpp">
+      <Filter>Fonts</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\FontFaceLayer.cpp">
+      <Filter>Fonts</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\FontFamily.cpp">
+      <Filter>Fonts</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\UnicodeRange.cpp">
+      <Filter>Fonts</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\TextureLayout.cpp">
+      <Filter>Fonts\Texture Layout</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\TextureLayoutRectangle.cpp">
+      <Filter>Fonts\Texture Layout</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\TextureLayoutRow.cpp">
+      <Filter>Fonts\Texture Layout</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\TextureLayoutTexture.cpp">
+      <Filter>Fonts\Texture Layout</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\FontEffect.cpp">
+      <Filter>Fonts\Effect</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\FontEffectInstancer.cpp">
+      <Filter>Fonts\Effect</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\FontEffectNone.cpp">
+      <Filter>Fonts\Effect\Effects\None</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\FontEffectNoneInstancer.cpp">
+      <Filter>Fonts\Effect\Effects\None</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\FontEffectOutline.cpp">
+      <Filter>Fonts\Effect\Effects\Outline</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\FontEffectOutlineInstancer.cpp">
+      <Filter>Fonts\Effect\Effects\Outline</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\FontEffectShadow.cpp">
+      <Filter>Fonts\Effect\Effects\Shadow</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\FontEffectShadowInstancer.cpp">
+      <Filter>Fonts\Effect\Effects\Shadow</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\ConvolutionFilter.cpp">
+      <Filter>Fonts\Effect\Effects\Convolution Filter</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\Template.cpp">
+      <Filter>Templates</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\TemplateCache.cpp">
+      <Filter>Templates</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\Clock.cpp">
+      <Filter>Core</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\Core.cpp">
+      <Filter>Core</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\Factory.cpp">
+      <Filter>Core</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\Log.cpp">
+      <Filter>Core</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\Math.cpp">
+      <Filter>Core</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\RenderInterface.cpp">
+      <Filter>Core\Interfaces\Renderer</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\FileInterface.cpp">
+      <Filter>Core\Interfaces\File</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\FileInterfaceDefault.cpp">
+      <Filter>Core\Interfaces\File</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\StreamFile.cpp">
+      <Filter>Core\Interfaces\File</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\SystemInterface.cpp">
+      <Filter>Core\Interfaces\System</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\String.cpp">
+      <Filter>Core\String</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\Plugin.cpp">
+      <Filter>Core\Plugin</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\PluginRegistry.cpp">
+      <Filter>Core\Plugin</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\BaseXMLParser.cpp">
+      <Filter>Core\Types</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\Dictionary.cpp">
+      <Filter>Core\Types</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\ReferenceCountable.cpp">
+      <Filter>Core\Types</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\Stream.cpp">
+      <Filter>Core\Types</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\StreamMemory.cpp">
+      <Filter>Core\Types</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\StringUtilities.cpp">
+      <Filter>Core\Types</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\URL.cpp">
+      <Filter>Core\Types</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\Variant.cpp">
+      <Filter>Core\Types</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\Vector2.cpp">
+      <Filter>Core\Types</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\WString.cpp">
+      <Filter>Core\Types</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\Context.cpp">
+      <Filter>Context</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\ContextInstancer.cpp">
+      <Filter>Context</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\ContextInstancerDefault.cpp">
+      <Filter>Context</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Core\StringCache.cpp">
+      <Filter>String Cache</Filter>
+    </ClCompile>
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="..\..\Source\Core\precompiled.h">
+      <Filter>Precompiled Header</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\Texture.h">
+      <Filter>Texture</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\TextureDatabase.h">
+      <Filter>Texture</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\TextureResource.h">
+      <Filter>Texture</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\Box.h">
+      <Filter>Element</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\DocumentHeader.h">
+      <Filter>Element</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\Element.h">
+      <Filter>Element</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\ElementBackground.h">
+      <Filter>Element</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\ElementBorder.h">
+      <Filter>Element</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\ElementDecoration.h">
+      <Filter>Element</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\ElementReference.h">
+      <Filter>Element</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\ElementScroll.h">
+      <Filter>Element</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\ElementStyle.h">
+      <Filter>Element</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\ElementUtilities.h">
+      <Filter>Element</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\LayoutBlockBox.h">
+      <Filter>Element\Layout</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\LayoutBlockBoxSpace.h">
+      <Filter>Element\Layout</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\LayoutEngine.h">
+      <Filter>Element\Layout</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\LayoutInlineBox.h">
+      <Filter>Element\Layout</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\LayoutInlineBoxText.h">
+      <Filter>Element\Layout</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\LayoutLineBox.h">
+      <Filter>Element\Layout</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\ElementInstancer.h">
+      <Filter>Element\Instancer</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\ElementInstancerGeneric.h">
+      <Filter>Element\Instancer</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\XMLNodeHandler.h">
+      <Filter>Element\Parser</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\XMLNodeHandlerBody.h">
+      <Filter>Element\Parser</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\XMLNodeHandlerDefault.h">
+      <Filter>Element\Parser</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\XMLNodeHandlerHead.h">
+      <Filter>Element\Parser</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\XMLNodeHandlerTemplate.h">
+      <Filter>Element\Parser</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\XMLParser.h">
+      <Filter>Element\Parser</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\XMLParseTools.h">
+      <Filter>Element\Parser</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\ElementDefinition.h">
+      <Filter>Element\Definition</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\ElementText.h">
+      <Filter>Element\Text</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\ElementTextDefault.h">
+      <Filter>Element\Text</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\ElementHandle.h">
+      <Filter>Element\Handle</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\WidgetSlider.h">
+      <Filter>Element\Widgets</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\WidgetSliderScroll.h">
+      <Filter>Element\Widgets</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\ElementImage.h">
+      <Filter>Element\Image</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\ElementDocument.h">
+      <Filter>Element\Document</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\Geometry.h">
+      <Filter>Geometry</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\GeometryDatabase.h">
+      <Filter>Geometry</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\GeometryUtilities.h">
+      <Filter>Geometry</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\Vertex.h">
+      <Filter>Geometry</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\Decorator.h">
+      <Filter>Decorator</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\DecoratorInstancer.h">
+      <Filter>Decorator</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\DecoratorNone.h">
+      <Filter>Decorator\Decorators</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\DecoratorNoneInstancer.h">
+      <Filter>Decorator\Decorators</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\DecoratorTiled.h">
+      <Filter>Decorator\Decorators\Tile</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\DecoratorTiledInstancer.h">
+      <Filter>Decorator\Decorators\Tile</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\DecoratorTiledHorizontal.h">
+      <Filter>Decorator\Decorators\Tile\Horizontal</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\DecoratorTiledHorizontalInstancer.h">
+      <Filter>Decorator\Decorators\Tile\Horizontal</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\DecoratorTiledBox.h">
+      <Filter>Decorator\Decorators\Tile\Box</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\DecoratorTiledBoxInstancer.h">
+      <Filter>Decorator\Decorators\Tile\Box</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\DecoratorTiledImage.h">
+      <Filter>Decorator\Decorators\Tile\Image</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\DecoratorTiledImageInstancer.h">
+      <Filter>Decorator\Decorators\Tile\Image</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\DecoratorTiledVertical.h">
+      <Filter>Decorator\Decorators\Tile\Vertical</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\DecoratorTiledVerticalInstancer.h">
+      <Filter>Decorator\Decorators\Tile\Vertical</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\StyleSheet.h">
+      <Filter>Style Sheet</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\StyleSheetFactory.h">
+      <Filter>Style Sheet</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\StyleSheetKeywords.h">
+      <Filter>Style Sheet</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\StyleSheetNode.h">
+      <Filter>Style Sheet</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\StyleSheetParser.h">
+      <Filter>Style Sheet</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\StyleSheetSpecification.h">
+      <Filter>Style Sheet</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\Property.h">
+      <Filter>Style Sheet\Property</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\PropertyDictionary.h">
+      <Filter>Style Sheet\Property</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\PropertyDefinition.h">
+      <Filter>Style Sheet\Property\Definition</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\PropertyShorthandDefinition.h">
+      <Filter>Style Sheet\Property\Definition</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\PropertySpecification.h">
+      <Filter>Style Sheet\Property\Definition</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\PropertyParser.h">
+      <Filter>Style Sheet\Property\Definition\Parser</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\PropertyParserColour.h">
+      <Filter>Style Sheet\Property\Definition\Parser</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\PropertyParserKeyword.h">
+      <Filter>Style Sheet\Property\Definition\Parser</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\PropertyParserNumber.h">
+      <Filter>Style Sheet\Property\Definition\Parser</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\PropertyParserString.h">
+      <Filter>Style Sheet\Property\Definition\Parser</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\StyleSheetNodeSelector.h">
+      <Filter>Style Sheet\Selectors</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\StyleSheetNodeSelectorEmpty.h">
+      <Filter>Style Sheet\Selectors</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\StyleSheetNodeSelectorFirstChild.h">
+      <Filter>Style Sheet\Selectors</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\StyleSheetNodeSelectorFirstOfType.h">
+      <Filter>Style Sheet\Selectors</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\StyleSheetNodeSelectorLastChild.h">
+      <Filter>Style Sheet\Selectors</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\StyleSheetNodeSelectorLastOfType.h">
+      <Filter>Style Sheet\Selectors</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\StyleSheetNodeSelectorNthChild.h">
+      <Filter>Style Sheet\Selectors</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\StyleSheetNodeSelectorNthLastChild.h">
+      <Filter>Style Sheet\Selectors</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\StyleSheetNodeSelectorNthLastOfType.h">
+      <Filter>Style Sheet\Selectors</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\StyleSheetNodeSelectorNthOfType.h">
+      <Filter>Style Sheet\Selectors</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\StyleSheetNodeSelectorOnlyChild.h">
+      <Filter>Style Sheet\Selectors</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\StyleSheetNodeSelectorOnlyOfType.h">
+      <Filter>Style Sheet\Selectors</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\Event.h">
+      <Filter>Events</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\EventDispatcher.h">
+      <Filter>Events</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\EventInstancer.h">
+      <Filter>Events</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\EventInstancerDefault.h">
+      <Filter>Events</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\EventIterators.h">
+      <Filter>Events</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\EventListener.h">
+      <Filter>Events</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\EventListenerInstancer.h">
+      <Filter>Events</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\Input.h">
+      <Filter>Events</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\Font.h">
+      <Filter>Fonts</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\FontDatabase.h">
+      <Filter>Fonts</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\FontFace.h">
+      <Filter>Fonts</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\FontFaceHandle.h">
+      <Filter>Fonts</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\FontFaceLayer.h">
+      <Filter>Fonts</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\FontFamily.h">
+      <Filter>Fonts</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\FontGlyph.h">
+      <Filter>Fonts</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\UnicodeRange.h">
+      <Filter>Fonts</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\TextureLayout.h">
+      <Filter>Fonts\Texture Layout</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\TextureLayoutRectangle.h">
+      <Filter>Fonts\Texture Layout</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\TextureLayoutRow.h">
+      <Filter>Fonts\Texture Layout</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\TextureLayoutTexture.h">
+      <Filter>Fonts\Texture Layout</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\FontEffect.h">
+      <Filter>Fonts\Effect</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\FontEffectInstancer.h">
+      <Filter>Fonts\Effect</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\FontEffectNone.h">
+      <Filter>Fonts\Effect\Effects\None</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\FontEffectNoneInstancer.h">
+      <Filter>Fonts\Effect\Effects\None</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\FontEffectOutline.h">
+      <Filter>Fonts\Effect\Effects\Outline</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\FontEffectOutlineInstancer.h">
+      <Filter>Fonts\Effect\Effects\Outline</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\FontEffectShadow.h">
+      <Filter>Fonts\Effect\Effects\Shadow</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\FontEffectShadowInstancer.h">
+      <Filter>Fonts\Effect\Effects\Shadow</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\ConvolutionFilter.h">
+      <Filter>Fonts\Effect\Effects\Convolution Filter</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\Template.h">
+      <Filter>Templates</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\TemplateCache.h">
+      <Filter>Templates</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\Clock.h">
+      <Filter>Core</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\Core.h">
+      <Filter>Core</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\Factory.h">
+      <Filter>Core</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\Header.h">
+      <Filter>Core</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\Log.h">
+      <Filter>Core</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\Types.h">
+      <Filter>Core</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\RenderInterface.h">
+      <Filter>Core\Interfaces\Renderer</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\FileInterface.h">
+      <Filter>Core\Interfaces\File</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\FileInterfaceDefault.h">
+      <Filter>Core\Interfaces\File</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\StreamFile.h">
+      <Filter>Core\Interfaces\File</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\SystemInterface.h">
+      <Filter>Core\Interfaces\System</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\String.h">
+      <Filter>Core\String</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\Plugin.h">
+      <Filter>Core\Plugin</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\PluginRegistry.h">
+      <Filter>Core\Plugin</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\BaseXMLParser.h">
+      <Filter>Core\Types</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\Colour.h">
+      <Filter>Core\Types</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\Debug.h">
+      <Filter>Core\Types</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\Dictionary.h">
+      <Filter>Core\Types</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\ScriptInterface.h">
+      <Filter>Core\Types</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\Stream.h">
+      <Filter>Core\Types</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\StreamMemory.h">
+      <Filter>Core\Types</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\StringBase.h">
+      <Filter>Core\Types</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\StringUtilities.h">
+      <Filter>Core\Types</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\URL.h">
+      <Filter>Core\Types</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\Variant.h">
+      <Filter>Core\Types</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\Vector2.h">
+      <Filter>Core\Types</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\WString.h">
+      <Filter>Core\Types</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\Context.h">
+      <Filter>Context</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core\ContextInstancer.h">
+      <Filter>Context</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\ContextInstancerDefault.h">
+      <Filter>Context</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Core\StringCache.h">
+      <Filter>String Cache</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Core.h" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="..\..\Include\Rocket\Core\Element.inl">
+      <Filter>Element</Filter>
+    </None>
+    <None Include="..\..\Include\Rocket\Core\ElementInstancerGeneric.inl">
+      <Filter>Element\Instancer</Filter>
+    </None>
+    <None Include="..\..\Include\Rocket\Core\Colour.inl">
+      <Filter>Core\Types</Filter>
+    </None>
+    <None Include="..\..\Include\Rocket\Core\Dictionary.inl">
+      <Filter>Core\Types</Filter>
+    </None>
+    <None Include="..\..\Include\Rocket\Core\StringBase.inl">
+      <Filter>Core\Types</Filter>
+    </None>
+    <None Include="..\..\Include\Rocket\Core\Variant.inl">
+      <Filter>Core\Types</Filter>
+    </None>
+    <None Include="..\..\Include\Rocket\Core\Vector2.inl">
+      <Filter>Core\Types</Filter>
+    </None>
+  </ItemGroup>
+</Project>

+ 117 - 0
Build/vc2012/RocketDebugger.vcxproj

@@ -0,0 +1,117 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectGuid>{1AAC0B29-AEC9-4E3F-9EDF-B56F8949C41A}</ProjectGuid>
+    <RootNamespace>debugger</RootNamespace>
+    <Keyword>Win32Proj</Keyword>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <CharacterSet>Unicode</CharacterSet>
+    <WholeProgramOptimization>true</WholeProgramOptimization>
+    <PlatformToolset>v110</PlatformToolset>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <CharacterSet>Unicode</CharacterSet>
+    <PlatformToolset>v110</PlatformToolset>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="vsprops\BuildConfigurationDLLRelease.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="vsprops\BuildConfigurationDLLDebug.props" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+    <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\bin\</OutDir>
+    <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\bin\</OutDir>
+    <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectName)_d</TargetName>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <ClCompile>
+      <AdditionalIncludeDirectories>..\..\Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>_WIN32;_DEBUG;RocketDebugger_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+      <PrecompiledHeader>
+      </PrecompiledHeader>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>RocketCore_d.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>..\..\bin\$(ProjectName)_d.dll</OutputFile>
+      <AdditionalLibraryDirectories>..\..\bin;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention>
+      </DataExecutionPrevention>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <ClCompile>
+      <AdditionalIncludeDirectories>..\..\Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>_WIN32;NDEBUG;RocketDebugger_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <PrecompiledHeader>
+      </PrecompiledHeader>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>RocketCore.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <OutputFile>..\..\bin\$(ProjectName).dll</OutputFile>
+      <AdditionalLibraryDirectories>..\..\bin;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention>
+      </DataExecutionPrevention>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\Source\Debugger\Plugin.cpp" />
+    <ClCompile Include="..\..\Source\Debugger\ElementContextHook.cpp" />
+    <ClCompile Include="..\..\Source\Debugger\ElementInfo.cpp" />
+    <ClCompile Include="..\..\Source\Debugger\ElementLog.cpp" />
+    <ClCompile Include="..\..\Source\Debugger\Debugger.cpp" />
+    <ClCompile Include="..\..\Source\Debugger\Geometry.cpp" />
+    <ClCompile Include="..\..\Source\Debugger\SystemInterface.cpp" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="..\..\Source\Debugger\Plugin.h" />
+    <ClInclude Include="..\..\Source\Debugger\ElementContextHook.h" />
+    <ClInclude Include="..\..\Source\Debugger\ElementInfo.h" />
+    <ClInclude Include="..\..\Source\Debugger\ElementLog.h" />
+    <ClInclude Include="..\..\Source\Debugger\BeaconSource.h" />
+    <ClInclude Include="..\..\Source\Debugger\CommonSource.h" />
+    <ClInclude Include="..\..\Source\Debugger\FontSource.h" />
+    <ClInclude Include="..\..\Source\Debugger\InfoSource.h" />
+    <ClInclude Include="..\..\Source\Debugger\LogSource.h" />
+    <ClInclude Include="..\..\Source\Debugger\MenuSource.h" />
+    <ClInclude Include="..\..\Include\Rocket\Debugger\Debugger.h" />
+    <ClInclude Include="..\..\Source\Debugger\Geometry.h" />
+    <ClInclude Include="..\..\Include\Rocket\Debugger\Header.h" />
+    <ClInclude Include="..\..\Source\Debugger\SystemInterface.h" />
+    <ClInclude Include="..\..\Include\Rocket\Debugger.h" />
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="RocketCore.vcxproj">
+      <Project>{1aac0b29-aeb9-4e3f-8edf-b46f8949c41b}</Project>
+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+    </ProjectReference>
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>

+ 85 - 0
Build/vc2012/RocketDebugger.vcxproj.filters

@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup>
+    <Filter Include="Plugin">
+      <UniqueIdentifier>{a9230b3f-5560-4163-a7a0-997652e411e0}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Plugin\Elements">
+      <UniqueIdentifier>{2ebe37b4-744a-4053-b978-7a694024a0e0}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Plugin\Source">
+      <UniqueIdentifier>{a7d502ce-2abe-42c3-b813-72d042d2162e}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Debugger">
+      <UniqueIdentifier>{0e33cc32-574f-4b31-89e5-5a485482d2ab}</UniqueIdentifier>
+    </Filter>
+  </ItemGroup>
+  <ItemGroup>
+    <ClCompile Include="..\..\Source\Debugger\Plugin.cpp">
+      <Filter>Plugin</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Debugger\ElementContextHook.cpp">
+      <Filter>Plugin\Elements</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Debugger\ElementInfo.cpp">
+      <Filter>Plugin\Elements</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Debugger\ElementLog.cpp">
+      <Filter>Plugin\Elements</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Debugger\Debugger.cpp">
+      <Filter>Debugger</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Debugger\Geometry.cpp">
+      <Filter>Debugger</Filter>
+    </ClCompile>
+    <ClCompile Include="..\..\Source\Debugger\SystemInterface.cpp">
+      <Filter>Debugger</Filter>
+    </ClCompile>
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="..\..\Source\Debugger\Plugin.h">
+      <Filter>Plugin</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Debugger\ElementContextHook.h">
+      <Filter>Plugin\Elements</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Debugger\ElementInfo.h">
+      <Filter>Plugin\Elements</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Debugger\ElementLog.h">
+      <Filter>Plugin\Elements</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Debugger\BeaconSource.h">
+      <Filter>Plugin\Source</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Debugger\CommonSource.h">
+      <Filter>Plugin\Source</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Debugger\FontSource.h">
+      <Filter>Plugin\Source</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Debugger\InfoSource.h">
+      <Filter>Plugin\Source</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Debugger\LogSource.h">
+      <Filter>Plugin\Source</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Debugger\MenuSource.h">
+      <Filter>Plugin\Source</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Debugger\Debugger.h">
+      <Filter>Debugger</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Debugger\Geometry.h">
+      <Filter>Debugger</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Debugger\Header.h">
+      <Filter>Debugger</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Source\Debugger\SystemInterface.h">
+      <Filter>Debugger</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\Include\Rocket\Debugger.h" />
+  </ItemGroup>
+</Project>

+ 29 - 0
Build/vc2012/vsprops/BuildConfigurationBase.props

@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
+    <OutDir>$(IntDir)\</OutDir>
+    <IntDir>build\$(ProjectName)\$(Configuration)\</IntDir>
+  </PropertyGroup>
+  <ItemDefinitionGroup>
+    <ClCompile>
+      <PrecompiledHeader>Use</PrecompiledHeader>
+      <PrecompiledHeaderFile>precompiled.h</PrecompiledHeaderFile>
+      <ObjectFileName>$(IntDir)</ObjectFileName>
+      <ProgramDataBaseFileName>$(IntDir)vc80.pdb</ProgramDataBaseFileName>
+      <XMLDocumentationFileName>$(IntDir)</XMLDocumentationFileName>
+      <WarningLevel>Level4</WarningLevel>
+    </ClCompile>
+    <ProjectReference>
+      <LinkLibraryDependencies>false</LinkLibraryDependencies>
+    </ProjectReference>
+    <Link>
+      <GenerateDebugInformation>true</GenerateDebugInformation>
+      <SubSystem>Windows</SubSystem>
+      <TargetMachine>MachineX86</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <PropertyGroup Label="Configuration">
+    <BuildLogFile>$(IntDir)BuildLog.htm</BuildLogFile>
+  </PropertyGroup>
+</Project>

+ 7 - 0
Build/vc2012/vsprops/BuildConfigurationDLL.props

@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
+    <_PropertySheetDisplayName>EMPBuildConfigurationDLL</_PropertySheetDisplayName>
+  </PropertyGroup>
+</Project>

+ 19 - 0
Build/vc2012/vsprops/BuildConfigurationDLLDebug.props

@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ImportGroup Label="PropertySheets">
+    <Import Project="BuildConfigurationDebug.props" />
+    <Import Project="BuildConfigurationDLL.props" />
+  </ImportGroup>
+  <PropertyGroup>
+    <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
+  </PropertyGroup>
+  <ItemDefinitionGroup>
+    <ClCompile>
+      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+      <PreprocessorDefinitions>WIN32;_DEBUG;_USRDLL;$(ProjectName)_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ClCompile>
+    <Link>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+    </Link>
+  </ItemDefinitionGroup>
+</Project>

+ 19 - 0
Build/vc2012/vsprops/BuildConfigurationDLLRelease.props

@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ImportGroup Label="PropertySheets">
+    <Import Project="BuildConfigurationRelease.props" />
+    <Import Project="BuildConfigurationDLL.props" />
+  </ImportGroup>
+  <PropertyGroup>
+    <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
+  </PropertyGroup>
+  <ItemDefinitionGroup>
+    <ClCompile>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <PreprocessorDefinitions>WIN32;NDEBUG;_USRDLL;$(ProjectName)_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+    </ClCompile>
+    <Link>
+      <ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
+    </Link>
+  </ItemDefinitionGroup>
+</Project>

+ 20 - 0
Build/vc2012/vsprops/BuildConfigurationDebug.props

@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ImportGroup Label="PropertySheets">
+    <Import Project="BuildConfigurationBase.props" />
+  </ImportGroup>
+  <PropertyGroup>
+    <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
+    <LinkIncremental>true</LinkIncremental>
+  </PropertyGroup>
+  <ItemDefinitionGroup>
+    <ClCompile>
+      <Optimization>Disabled</Optimization>
+      <MinimalRebuild>true</MinimalRebuild>
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
+      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+      <BufferSecurityCheck>true</BufferSecurityCheck>
+    </ClCompile>
+  </ItemDefinitionGroup>
+</Project>

+ 21 - 0
Build/vc2012/vsprops/BuildConfigurationRelease.props

@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ImportGroup Label="PropertySheets">
+    <Import Project="BuildConfigurationBase.props" />
+  </ImportGroup>
+  <PropertyGroup>
+    <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
+    <LinkIncremental>false</LinkIncremental>
+  </PropertyGroup>
+  <ItemDefinitionGroup>
+    <ClCompile>
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+    </ClCompile>
+    <Link>
+      <OptimizeReferences>true</OptimizeReferences>
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>
+      <LinkTimeCodeGeneration>UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
+    </Link>
+  </ItemDefinitionGroup>
+</Project>

+ 3 - 1
Include/Rocket/Controls/ElementDataGridCell.h

@@ -47,12 +47,14 @@ public:
 	ElementDataGridCell(const Rocket::Core::String& tag);
 	virtual ~ElementDataGridCell();
 
-	void Initialise(Core::Element* header);
+	void Initialise(int column, Core::Element* header);
+	int GetColumn();
 
 protected:
 	virtual void ProcessEvent(Core::Event& event);
 
 private:
+	int column;
 	Core::Element* header;
 };
 

+ 2 - 0
Include/Rocket/Controls/ElementDataGridRow.h

@@ -121,6 +121,8 @@ private:
 	// If the num_rows_removed parameter is left as the -1 default, it'll
 	// default to the rest of the children after the first row.
 	void RemoveChildren(int first_row_removed = 0, int num_rows_removed = -1);
+	// Marks children as dirty and dispatches the event.
+	void ChangeChildren(int first_row_changed = 0, int num_rows_changed = -1);
 	// Returns the number of rows under this row (children, grandchildren, etc)
 	int GetNumDescendants();
 

+ 6 - 0
Include/Rocket/Controls/ElementTabSet.h

@@ -84,6 +84,12 @@ public:
 	/// Process the incoming event.
 	void ProcessEvent(Core::Event& event);
 
+	/// Called when the listener has been attached to a new Element
+	void OnAttach(Element* ROCKET_UNUSED(element));
+
+	/// Called when the listener has been detached from a Element
+	void OnDetach(Element* ROCKET_UNUSED(element));
+
 protected:
 	// Catch child add/removes so we can correctly set up their events.
 	virtual void OnChildAdd(Core::Element* child);

+ 43 - 0
Include/Rocket/Core/Element.h

@@ -220,6 +220,43 @@ public:
 	/// @param[in] base_value The value that is scaled by the percentage value, if it is a percentage.
 	/// @return The value of this property for this element.
 	float ResolveProperty(const String& name, float base_value);
+	/// Resolves one of this element's non-inherited properties. If the value is a number or px, this is returned. If it's a 
+	/// percentage then it is resolved based on the second argument (the base value).
+	/// @param[in] name The property to resolve the value for.
+	/// @param[in] base_value The value that is scaled by the percentage value, if it is a percentage.
+	/// @return The value of this property for this element.
+	float ResolveProperty(const Property *property, float base_value);
+
+	/// Returns 'border-width' properties from element's style or local cache.
+	void GetBorderWidthProperties(const Property **border_top_width, const Property **border_bottom_width, const Property **border_left_width, const Property **border_right_width);
+	/// Returns 'margin' properties from element's style or local cache.
+	void GetMarginProperties(const Property **margin_top, const Property **margin_bottom, const Property **margin_left, const Property **margin_right);
+	/// Returns 'padding' properties from element's style or local cache.
+	void GetPaddingProperties(const Property **padding_top, const Property **padding_bottom, const Property **padding_left, const Property **padding_right);
+	/// Returns 'width' and 'height' properties from element's style or local cache.
+	void GetDimensionProperties(const Property **width, const Property **height);
+	/// Returns local 'width' and 'height' properties from element's style or local cache,
+	/// ignoring default values.
+	void GetLocalDimensionProperties(const Property **width, const Property **height);
+	/// Returns 'overflow' properties' values from element's style or local cache.
+	void GetOverflow(int *overflow_x, int *overflow_y);
+	/// Returns 'position' property value from element's style or local cache.
+	int GetPosition();
+	/// Returns 'float' property value from element's style or local cache.
+	int GetFloat();
+	/// Returns 'display' property value from element's style or local cache.
+	int GetDisplay();
+	/// Returns 'white-space' property value from element's style or local cache.
+	int GetWhitespace();
+
+	/// Returns 'line-height' property value from element's style or local cache.
+	const Property *GetLineHeightProperty();
+	/// Returns 'text-align' property value from element's style or local cache.
+	int GetTextAlign();
+	/// Returns 'text-transform' property value from element's style or local cache.
+	int GetTextTransform();
+	/// Returns 'vertical-align' property value from element's style or local cache.
+	const Property *GetVerticalAlignProperty();
 
 	/// Iterates over the properties defined on this element.
 	/// @param[inout] index Index of the property to fetch. This is incremented to the next valid index after the fetch. Indices are not necessarily incremental.
@@ -571,6 +608,12 @@ protected:
 	/// Forces a re-layout of this element, and any other elements required.
 	virtual void DirtyLayout();
 
+	/// Returns true if the element has been marked as needing a re-layout.
+	virtual bool IsLayoutDirty();
+
+	/// Increment/Decrement the layout lock
+	virtual void LockLayout(bool lock);
+
 	/// Forces a reevaluation of applicable font effects.
 	virtual void DirtyFont();
 

+ 3 - 0
Include/Rocket/Core/ElementDocument.h

@@ -144,6 +144,9 @@ protected:
 	/// Sets the dirty flag on the layout so the document will format its children before the next render.
 	virtual void DirtyLayout();
 
+	/// Returns true if the document has been marked as needing a re-layout.
+	virtual bool IsLayoutDirty();
+
 	/// Processes the 'onpropertychange' event, checking for a change in position or size.
 	virtual void ProcessEvent(Event& event);
 

+ 5 - 0
Include/Rocket/Core/FontDatabase.h

@@ -63,6 +63,11 @@ public:
 	/// @param[in] weight The weight of the face (normal or bold).
 	/// @return True if the face was loaded successfully, false otherwise.
 	static bool LoadFontFace(const String& file_name, const String& family, Font::Style style, Font::Weight weight);
+	/// Adds a new font face to the database, loading from memory. The face's family, style and weight will be determined from the face itself.
+	/// @param[in] data The font data.
+	/// @param[in] data_length Length of the data.
+	/// @return True if the face was loaded successfully, false otherwise.
+	static bool LoadFontFace(const byte* data, int data_length);
 	/// Adds a new font face to the database, loading from memory.
 	/// @param[in] data The font data.
 	/// @param[in] data_length Length of the data.

+ 7 - 2
Include/Rocket/Core/FontGlyph.h

@@ -28,7 +28,7 @@
 #ifndef ROCKETCOREFONTGLYPH_H
 #define ROCKETCOREFONTGLYPH_H
 
-#include <map>
+#include <vector>
 
 namespace Rocket {
 namespace Core {
@@ -42,6 +42,11 @@ namespace Core {
 class FontGlyph
 {
 public:
+	FontGlyph() : character(0), dimensions(0,0), bearing(0,0), advance(0), bitmap_data(NULL),
+		bitmap_dimensions(0,0)
+	{
+	}
+
 	/// The unicode code point for this glyph.
 	word character;
 
@@ -61,7 +66,7 @@ public:
 	Vector2i bitmap_dimensions;
 };
 
-typedef std::map< word, FontGlyph > FontGlyphMap;
+typedef std::vector< FontGlyph > FontGlyphList;
 
 }
 }

+ 9 - 1
Include/Rocket/Core/Property.h

@@ -60,7 +60,15 @@ public:
 		// Relative values.
 		EM = 1 << 6,				// number suffixed by 'em'; fetch as < float >
 		PERCENT = 1 << 7,			// number suffixed by '%'; fetch as < float >
-		RELATIVE_UNIT = EM | PERCENT
+		RELATIVE_UNIT = EM | PERCENT,
+
+		// Values based on pixels-per-inch.
+		INCH = 1 << 8,				// number suffixed by 'in'; fetch as < float >
+		CM = 1 << 9,				// number suffixed by 'cm'; fetch as < float >
+		MM = 1 << 10,				// number suffixed by 'mm'; fetch as < float >
+		PT = 1 << 11,				// number suffixed by 'pt'; fetch as < float >
+		PC = 1 << 12,				// number suffixed by 'pc'; fetch as < float >
+		PPI_UNIT = INCH | CM | MM | PT | PC
 	};
 
 	Property();

+ 9 - 3
Include/Rocket/Core/PropertySpecification.h

@@ -75,9 +75,13 @@ public:
 	/// @return The appropriate property definition if it could be found, NULL otherwise.
 	const PropertyDefinition* GetProperty(const String& property_name) const;
 
-	/// Fetches a list of the names of all registered property definitions.
-	/// @param properties[in] The list to store the property names.
-	void GetRegisteredProperties(PropertyNameList& properties) const;
+	/// Returns the list of the names of all registered property definitions.
+	/// @return The list with stored property names.
+	const PropertyNameList& GetRegisteredProperties() const;
+
+	/// Returns the list of the names of all registered inherited property definitions.
+	/// @return The list with stored property names.
+	const PropertyNameList& GetRegisteredInheritedProperties() const;
 
 	/// Registers a shorthand property definition.
 	/// @param[in] shorthand_name The name to register the new shorthand property under.
@@ -106,6 +110,8 @@ private:
 
 	PropertyMap properties;
 	ShorthandMap shorthands;
+	PropertyNameList property_names;
+	PropertyNameList inherited_property_names;
 
 	bool ParsePropertyValues(StringList& values_list, const String& values, bool split_values) const;
 };

+ 4 - 0
Include/Rocket/Core/Python/Header.h

@@ -30,6 +30,7 @@
 
 #include <Rocket/Core/Platform.h>
 
+#if !defined STATIC_LIB
 #if defined ROCKET_PLATFORM_WIN32
 	#if defined RocketCorePython_EXPORTS
 		#define ROCKETCOREPYTHON_API __declspec(dllexport)
@@ -39,5 +40,8 @@
 #else
 	#define ROCKETCOREPYTHON_API __attribute__((visibility("default")))
 #endif
+#else
+	#define ROCKETCOREPYTHON_API
+#endif
 
 #endif

+ 4 - 0
Include/Rocket/Core/RenderInterface.h

@@ -112,6 +112,10 @@ public:
 	/// @return The renderer's vertical texel offset. The default implementation returns 0.
 	virtual float GetVerticalTexelOffset();
 
+	/// Returns the number of pixels per inch.
+	/// @returns The number of pixels per inch. The default implementation returns 100.
+	virtual float GetPixelsPerInch();
+
 	/// Called when this render interface is released.
 	virtual void Release();
 

+ 19 - 0
Include/Rocket/Core/String.h

@@ -49,6 +49,25 @@ ROCKETCORE_API int StringBase<char>::FormatString(StringBase<char>::size_type ma
 // Global operators for adding C strings to strings.
 ROCKETCORE_API String operator+(const char* cstring, const String& string);
 
+// partial specialization follows
+template<>
+ROCKETCORE_API inline bool StringBase< char >::operator<(const char * compare) const
+{
+	return strcmp( value, compare ) < 0;
+}
+
+template<>
+ROCKETCORE_API inline bool StringBase< char >::operator==(const char * compare) const
+{
+	return strcmp( value, compare ) == 0;
+}
+
+template<>
+ROCKETCORE_API inline bool StringBase< char >::operator!=(const char * compare) const
+{
+	return strcmp( value, compare ) != 0;
+}
+
 // Redefine Windows APIs as their STDC counterparts.
 #ifdef ROCKET_PLATFORM_WIN32
 	#define strcasecmp stricmp

+ 4 - 2
Include/Rocket/Core/StringBase.inl

@@ -357,7 +357,7 @@ StringBase< T > StringBase< T >::ToLower() const
 template< typename T >
 StringBase< T > StringBase< T >::ToUpper() const
 {
-	// Loop through the string, looking for an uppercase character
+	// Loop through the string, looking for an lowercase character
 	size_t copy_index = npos;
 	for (size_t i = 0; i < length; i++)
 	{
@@ -466,7 +466,9 @@ StringBase< T >& StringBase< T >::operator=(const T* assign)
 template< typename T >
 StringBase< T >& StringBase< T >::operator=(const StringBase< T >& assign)
 {	
-	return Assign(assign);
+	StringBase< T >&out = Assign(assign);
+	out.hash = assign.hash;
+	return out;
 }
 
 template< typename T >

+ 1 - 1
Include/Rocket/Core/StyleSheet.h

@@ -47,7 +47,7 @@ class StyleSheetNode;
 	@author Lloyd Weehuizen
  */
 
-class StyleSheet : public ReferenceCountable
+class ROCKETCORE_API StyleSheet : public ReferenceCountable
 {
 public:
 	typedef std::set< StyleSheetNode* > NodeList;

+ 7 - 3
Include/Rocket/Core/StyleSheetSpecification.h

@@ -72,9 +72,13 @@ public:
 	/// @return The appropriate property definition if it could be found, NULL otherwise.
 	static const PropertyDefinition* GetProperty(const String& property_name);
 
-	/// Fetches a list of the names of all registered property definitions.
-	/// @param properties[in] The list to store the property names.
-	static void GetRegisteredProperties(PropertyNameList& properties);
+	/// Returns the list of the names of all registered property definitions.
+	/// @return The list with stored property names.
+	static const PropertyNameList & GetRegisteredProperties();
+
+	/// Returns the list of the names of all registered inherited property definitions.
+	/// @return The list with stored property names.
+	static const PropertyNameList & GetRegisteredInheritedProperties();
 
 	/// Registers a shorthand property definition.
 	/// @param[in] shorthand_name The name to register the new shorthand property under.

+ 11 - 0
Include/Rocket/Core/URL.h

@@ -115,9 +115,20 @@ public:
 	/// Less-than operator for use as a key in STL containers.
 	bool operator<(const URL& rhs) const;
 
+	/// Since URLs often contain characters outside the ASCII set, 
+	/// the URL has to be converted into a valid ASCII format and back.
+	static String UrlEncode(const String &value);
+	static String UrlDecode(const String &value);
+
 private:
 	void ConstructURL() const;
 
+	/// Portable character check (remember EBCDIC). Do not use isalnum() because
+	/// its behavior is altered by the current locale.
+	/// See http://tools.ietf.org/html/rfc3986#section-2.3
+	/// (copied from libcurl sources)
+	static bool IsUnreservedChar(const char c);
+
 	mutable String url;
 	String protocol;
 	String login;

+ 4 - 0
Include/Rocket/Core/Variant.inl

@@ -81,6 +81,10 @@ bool Variant::GetInto(T& value) const
 		case VOIDPTR:
 			return TypeConverter< void*, T >::Convert((void*)data, value);
 		break;
+
+		case NONE:
+		break;
+
 	}
 
 	return false;

BIN
Samples/assets/high_scores_alien_1.tga


BIN
Samples/assets/high_scores_alien_2.tga


BIN
Samples/assets/high_scores_alien_3.tga


BIN
Samples/assets/high_scores_defender.tga


+ 2 - 0
Samples/basic/customlog/src/main.cpp

@@ -61,6 +61,8 @@ int main(int ROCKET_UNUSED(argc), char** ROCKET_UNUSED(argv))
 	// Rocket initialisation.
 	ShellRenderInterfaceOpenGL opengl_renderer;
 	Rocket::Core::SetRenderInterface(&opengl_renderer);
+    opengl_renderer.SetViewport(1024,768);
+
 
 	// Initialise our system interface to write the log messages to file.
 	SystemInterface system_interface;

+ 1 - 0
Samples/basic/drag/src/main.cpp

@@ -61,6 +61,7 @@ int main(int ROCKET_UNUSED(argc), char** ROCKET_UNUSED(argv))
 	// Rocket initialisation.
 	ShellRenderInterfaceOpenGL opengl_renderer;
 	Rocket::Core::SetRenderInterface(&opengl_renderer);
+    opengl_renderer.SetViewport(1024,768);
 
 	ShellSystemInterface system_interface;
 	Rocket::Core::SetSystemInterface(&system_interface);

+ 1 - 0
Samples/basic/loaddocument/src/main.cpp

@@ -60,6 +60,7 @@ int main(int ROCKET_UNUSED(argc), char** ROCKET_UNUSED(argv))
 	// Rocket initialisation.
 	ShellRenderInterfaceOpenGL opengl_renderer;
 	Rocket::Core::SetRenderInterface(&opengl_renderer);
+    opengl_renderer.SetViewport(1024,768);
 
 	ShellSystemInterface system_interface;
 	Rocket::Core::SetSystemInterface(&system_interface);

+ 2 - 0
Samples/basic/treeview/src/main.cpp

@@ -62,6 +62,8 @@ int main(int ROCKET_UNUSED(argc), char** ROCKET_UNUSED(argv))
 
 	// Rocket initialisation.
 	ShellRenderInterfaceOpenGL opengl_renderer;
+    opengl_renderer.SetViewport(1024,768);
+
 	Rocket::Core::SetRenderInterface(&opengl_renderer);
 
 	ShellSystemInterface system_interface;

+ 2 - 0
Samples/invaders/src/main.cpp

@@ -71,6 +71,8 @@ int main(int, char**)
 	// Rocket initialisation.
 	ShellRenderInterfaceOpenGL opengl_renderer;
 	Rocket::Core::SetRenderInterface(&opengl_renderer);
+    opengl_renderer.SetViewport(1024,768);
+
 	ShellSystemInterface system_interface;
 	Rocket::Core::SetSystemInterface(&system_interface);
 

+ 10 - 0
Samples/shell/include/ShellRenderInterfaceOpenGL.h

@@ -41,6 +41,12 @@ class ShellRenderInterfaceOpenGL : public Rocket::Core::RenderInterface
 public:
 	ShellRenderInterfaceOpenGL();
 
+    /**
+     * @p width width of viewport
+     * @p height height of viewport
+     */
+    void SetViewport(int width, int height);
+
 	/// Called by Rocket when it wants to render geometry that it does not wish to optimise.
 	virtual void RenderGeometry(Rocket::Core::Vertex* vertices, int num_vertices, int* indices, int num_indices, Rocket::Core::TextureHandle texture, const Rocket::Core::Vector2f& translation);
 
@@ -63,6 +69,10 @@ public:
 	virtual bool GenerateTexture(Rocket::Core::TextureHandle& texture_handle, const Rocket::Core::byte* source, const Rocket::Core::Vector2i& source_dimensions);
 	/// Called by Rocket when a loaded texture is no longer required.
 	virtual void ReleaseTexture(Rocket::Core::TextureHandle texture_handle);
+
+private:
+	int m_width;
+	int m_height;
 };
 
 #endif

+ 8 - 1
Samples/shell/src/ShellRenderInterfaceOpenGL.cpp

@@ -34,6 +34,13 @@ ShellRenderInterfaceOpenGL::ShellRenderInterfaceOpenGL()
 {
 }
 
+void ShellRenderInterfaceOpenGL::SetViewport(int width, int height)
+{
+    m_width = width;
+    m_height = height;
+}
+
+
 // Called by Rocket when it wants to render geometry that it does not wish to optimise.
 void ShellRenderInterfaceOpenGL::RenderGeometry(Rocket::Core::Vertex* vertices, int ROCKET_UNUSED(num_vertices), int* indices, int num_indices, const Rocket::Core::TextureHandle texture, const Rocket::Core::Vector2f& translation)
 {
@@ -90,7 +97,7 @@ void ShellRenderInterfaceOpenGL::EnableScissorRegion(bool enable)
 // Called by Rocket when it wants to change the scissor region.		
 void ShellRenderInterfaceOpenGL::SetScissorRegion(int x, int y, int width, int height)
 {
-	glScissor(x, 768 - (y + height), width, height);
+	glScissor(x, m_height - (y + height), width, height);
 }
 
 // Set to byte packing, or the compiler will expand our struct, which means it won't read correctly from file

+ 29 - 0
Samples/tutorial/datagrid/Datagrid.sln

@@ -0,0 +1,29 @@
+
+Microsoft Visual Studio Solution File, Format Version 10.00
+# Visual C++ Express 2008
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Datagrid", "datagrid.vcproj", "{3C58D3B5-9478-4221-954A-01E3C4F1FA89}"
+	ProjectSection(ProjectDependencies) = postProject
+		{AF4FF882-AFD9-457B-979E-A5B482388D46} = {AF4FF882-AFD9-457B-979E-A5B482388D46}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Shell", "..\..\shell\shell.vcproj", "{AF4FF882-AFD9-457B-979E-A5B482388D46}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Win32 = Debug|Win32
+		Release|Win32 = Release|Win32
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{3C58D3B5-9478-4221-954A-01E3C4F1FA89}.Debug|Win32.ActiveCfg = Debug|Win32
+		{3C58D3B5-9478-4221-954A-01E3C4F1FA89}.Debug|Win32.Build.0 = Debug|Win32
+		{3C58D3B5-9478-4221-954A-01E3C4F1FA89}.Release|Win32.ActiveCfg = Release|Win32
+		{3C58D3B5-9478-4221-954A-01E3C4F1FA89}.Release|Win32.Build.0 = Release|Win32
+		{AF4FF882-AFD9-457B-979E-A5B482388D46}.Debug|Win32.ActiveCfg = Debug|Win32
+		{AF4FF882-AFD9-457B-979E-A5B482388D46}.Debug|Win32.Build.0 = Debug|Win32
+		{AF4FF882-AFD9-457B-979E-A5B482388D46}.Release|Win32.ActiveCfg = Release|Win32
+		{AF4FF882-AFD9-457B-979E-A5B482388D46}.Release|Win32.Build.0 = Release|Win32
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+EndGlobal

+ 191 - 0
Samples/tutorial/datagrid/Datagrid.vcproj

@@ -0,0 +1,191 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+	ProjectType="Visual C++"
+	Version="9.00"
+	Name="Datagrid"
+	ProjectGUID="{3C58D3B5-9478-4221-954A-01E3C4F1FA89}"
+	TargetFrameworkVersion="131072"
+	>
+	<Platforms>
+		<Platform
+			Name="Win32"
+		/>
+	</Platforms>
+	<ToolFiles>
+	</ToolFiles>
+	<Configurations>
+		<Configuration
+			Name="Debug|Win32"
+			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
+			IntermediateDirectory="$(ConfigurationName)"
+			ConfigurationType="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				AdditionalIncludeDirectories="..\..\shell\include;..\..\..\..\..\packages\include"
+				PreprocessorDefinitions="WIN32"
+				RuntimeLibrary="3"
+				WarningLevel="4"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="RocketCore_d.lib RocketControls_d.lib RocketDebugger_d.lib libpng_d.lib zlib_d.lib opengl32.lib"
+				OutputFile="..\..\..\..\..\packages\bin\$(ProjectName)_d.exe"
+				AdditionalLibraryDirectories="..\..\shell\libpng;..\..\..\..\..\packages\bin"
+				GenerateDebugInformation="true"
+				SubSystem="2"
+				RandomizedBaseAddress="1"
+				DataExecutionPrevention="0"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release|Win32"
+			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
+			IntermediateDirectory="$(ConfigurationName)"
+			ConfigurationType="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				AdditionalIncludeDirectories="..\..\shell\include;..\..\..\..\..\packages\include"
+				PreprocessorDefinitions="WIN32"
+				RuntimeLibrary="2"
+				WarningLevel="4"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="RocketCore.lib RocketControls.lib RocketDebugger.lib libpng.lib zlib.lib opengl32.lib"
+				OutputFile="..\..\..\..\..\packages\bin\$(ProjectName).exe"
+				AdditionalLibraryDirectories="..\..\shell\libpng;..\..\..\..\..\packages\bin"
+				SubSystem="2"
+				RandomizedBaseAddress="1"
+				DataExecutionPrevention="0"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+	</Configurations>
+	<References>
+	</References>
+	<Files>
+		<File
+			RelativePath=".\src\DecoratorDefender.cpp"
+			>
+		</File>
+		<File
+			RelativePath=".\src\DecoratorDefender.h"
+			>
+		</File>
+		<File
+			RelativePath=".\src\DecoratorInstancerDefender.cpp"
+			>
+		</File>
+		<File
+			RelativePath=".\src\DecoratorInstancerDefender.h"
+			>
+		</File>
+		<File
+			RelativePath=".\src\HighScores.cpp"
+			>
+		</File>
+		<File
+			RelativePath=".\src\HighScores.h"
+			>
+		</File>
+		<File
+			RelativePath=".\src\main.cpp"
+			>
+		</File>
+	</Files>
+	<Globals>
+	</Globals>
+</VisualStudioProject>

+ 65 - 0
Samples/tutorial/datagrid/Datagrid.vcproj.user

@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioUserFile
+	ProjectType="Visual C++"
+	Version="8.00"
+	ShowAllFiles="false"
+	>
+	<Configurations>
+		<Configuration
+			Name="Debug|Win32"
+			>
+			<DebugSettings
+				Command="$(TargetPath)"
+				WorkingDirectory="..\..\..\..\..\packages\bin"
+				CommandArguments=""
+				Attach="false"
+				DebuggerType="3"
+				Remote="1"
+				RemoteMachine=""
+				RemoteCommand=""
+				HttpUrl=""
+				PDBPath=""
+				SQLDebugging=""
+				Environment=""
+				EnvironmentMerge="true"
+				DebuggerFlavor="0"
+				MPIRunCommand=""
+				MPIRunArguments=""
+				MPIRunWorkingDirectory=""
+				ApplicationCommand=""
+				ApplicationArguments=""
+				ShimCommand=""
+				MPIAcceptMode=""
+				MPIAcceptFilter=""
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release|Win32"
+			>
+			<DebugSettings
+				Command="$(TargetPath)"
+				WorkingDirectory="..\..\..\..\..\packages\bin"
+				CommandArguments=""
+				Attach="false"
+				DebuggerType="3"
+				Remote="1"
+				RemoteMachine=""
+				RemoteCommand=""
+				HttpUrl=""
+				PDBPath=""
+				SQLDebugging=""
+				Environment=""
+				EnvironmentMerge="true"
+				DebuggerFlavor="0"
+				MPIRunCommand=""
+				MPIRunArguments=""
+				MPIRunWorkingDirectory=""
+				ApplicationCommand=""
+				ApplicationArguments=""
+				ShimCommand=""
+				MPIAcceptMode=""
+				MPIAcceptFilter=""
+			/>
+		</Configuration>
+	</Configurations>
+</VisualStudioUserFile>

+ 63 - 0
Samples/tutorial/datagrid/SConstruct

@@ -0,0 +1,63 @@
+#
+# DataGrid Construction File
+# 
+import os
+import sys
+sys.path += [ "../../../../../build" ]
+import wmsconstruct
+
+FILES = Split( """
+	src/
+	""" )
+
+INCLUDE = Split( """
+	../../../../../packages/include/
+	../../shell/include/
+	""" )
+
+LIBS = Split( """
+	RocketControls
+	RocketDebugger
+	RocketCore
+	Shell
+	""" )
+
+LIBPATHS = Split( """
+	../../../../../packages/bin
+	""" )
+
+DEPENDENCIES = []
+
+if sys.platform == "win32":
+	LIBS += Split( """
+		opengl32
+		user32
+		gdi32
+		libpng
+		zlib
+		""" )
+	LIBPATHS += Split( """
+		../../shell/libpng
+		""" )
+elif sys.platform == "darwin":
+	LIBS += Split( """
+		png
+		z
+		""" )
+	LIBPATHS += Split( """
+		../../shell/libpng
+		""" )
+	DEPENDENCIES += ["AGL", "Carbon", "OpenGL"]
+elif sys.platform == "linux2":
+	LIBS += Split( """
+		GL
+		png
+		""" )
+
+wmsconstruct.Program("Rocket Datagrid Tutorial",
+	"../../../../../packages/bin/datagrid",
+	FILES,
+	INCLUDE,
+	LIBS,
+	LIBPATHS,
+	DEPENDENCIES)

+ 15 - 0
Samples/tutorial/datagrid/data/template.rml

@@ -0,0 +1,15 @@
+<template name="window" content="content">
+<head>
+	<link type="text/css" href="../../../assets/rkt.rcss"/>
+	<link type="text/css" href="tutorial.rcss"/>
+</head>
+<body class="window">
+	<div id="title-bar">
+		<handle move_target="#document">
+			<span id="title">Dummy Title</span>
+		</handle>
+	</div>
+	<div id="content">
+	</div>
+</body>
+</template>

+ 128 - 0
Samples/tutorial/datagrid/data/tutorial.rcss

@@ -0,0 +1,128 @@
+body
+{
+	font-family: Delicious;
+	font-weight: normal;
+	font-style: normal;
+	font-size: 15;
+	color: white;
+}
+
+body.window
+{
+	background-decorator: tiled-box;
+	background-top-left-image: ../../../assets/invader.tga 0px 0px 133px 140px;
+	background-top-right-image: ../../../assets/invader.tga 136px 0px 146px 140px;
+	background-top-image: ../../../assets/invader.tga stretch 134px 0px 135px 140px;
+	background-bottom-left-image: ../../../assets/invader.tga 0px 140px 11px 151px;
+	background-bottom-right-image: ../../../assets/invader.tga 136px 140px 146px 151px;
+	background-bottom-image: ../../../assets/invader.tga stretch 11px 140px 12px 151px;
+	background-left-image: ../../../assets/invader.tga stretch 0px 139px 10px 140px;
+	background-center-image: ../../../assets/invader.tga stretch 11px 139px 12px 140px;
+	
+	padding: 10px 15px;
+}
+
+div#title-bar
+{
+	position: absolute;
+	top: -43px;
+}
+
+div#title-bar span
+{
+	padding-left: 85px;
+	padding-right: 25px;
+	padding-top: 17px;
+	padding-bottom: 48px;
+
+	font-size: 22;
+	font-weight: bold;
+
+	text-shadow: 2px 2px black;
+
+	background-decorator: tiled-horizontal;
+	background-left-image: ../../../assets/invader.tga 147px 0px 229px 85px;
+	background-center-image: ../../../assets/invader.tga stretch 229px 0px 230px 85px;
+	background-right-image: ../../../assets/invader.tga 231px 0px 246px 85px;
+}
+
+div#content
+{
+	height: 100%;
+	overflow: auto;
+
+	z-index: 1;
+}
+
+scrollbarvertical
+{
+	width: 27px;
+	margin-top: -6px;
+	margin-bottom: -6px;
+	margin-right: -11px;
+}
+
+scrollbarvertical slidertrack
+{
+	background-decorator: tiled-vertical;
+	background-top-image: ../../../assets/invader.tga 56px 199px 83px 201px;
+	background-center-image: ../../../assets/invader.tga stretch 56px 201px 83px 202px;
+	background-bottom-image: ../../../assets/invader.tga 56px 203px 83px 204px;
+}
+
+scrollbarvertical sliderbar
+{
+	margin-left: 4px;
+	width: 23px;
+	min-height: 46px;
+
+	background-decorator: tiled-vertical;
+	background-top-image: ../../../assets/invader.tga 56px 152px 79px 175px;
+	background-center-image: ../../../assets/invader.tga stretch 56px 175px 79px 175px;
+	background-bottom-image: ../../../assets/invader.tga 56px 176px 79px 198px;
+}
+
+scrollbarvertical sliderbar:hover
+{
+	background-top-image-s: 80px 103px;
+	background-center-image-s: 80px 103px;
+	background-bottom-image-s: 80px 103px;
+}
+
+scrollbarvertical sliderbar:active
+{
+	background-top-image-s: 104px 127px;
+	background-center-image-s: 104px 127px;
+	background-bottom-image-s: 104px 127px;
+}
+
+scrollbarvertical sliderarrowdec,
+scrollbarvertical sliderarrowinc
+{
+	width: 27px;
+	height: 24px;
+}
+
+scrollbarvertical sliderarrowdec
+{
+	icon-decorator: image;
+	icon-image: ../../../assets/invader.tga 0px 152px 27px 176px;
+}
+
+scrollbarvertical sliderarrowinc
+{
+	icon-decorator: image;
+	icon-image: ../../../assets/invader.tga 28px 152px 55px 176px;
+}
+
+scrollbarvertical sliderarrowdec:hover,
+scrollbarvertical sliderarrowinc:hover
+{
+	icon-image-t: 177px 201px;
+}
+
+scrollbarvertical sliderarrowdec:active,
+scrollbarvertical sliderarrowinc:active
+{
+	icon-image-t: 202px 226px;
+}

+ 28 - 0
Samples/tutorial/datagrid/data/tutorial.rml

@@ -0,0 +1,28 @@
+<rml>
+<head>
+	<link type="text/template" href="template.rml"/>
+	<title>Datagrid Tutorial</title>
+	<style>
+		body
+		{
+			width: 400px;
+			height: 300px;
+
+			margin: auto;
+		}
+        
+        defender
+        {
+            display: block;
+            width: 64px;
+            height: 16px;
+
+            defender-decorator: defender;
+            defender-image-src: ../../../assets/high_scores_defender.tga;
+        }
+	</style>
+</head>
+<body template="window">
+	Insert high scores here.
+</body>
+</rml>

+ 10 - 0
Samples/tutorial/datagrid/high_score.txt

@@ -0,0 +1,10 @@
+Rocket	233, 116, 81, 255	1	1000
+UI	127, 255, 0, 255	1	900
+middleware	21, 96, 189, 255	1	800
+for	246, 74, 138, 255	1	700
+all	255, 0, 255, 255	1	600
+your	218, 165, 32, 255	1	500
+game	255, 255, 240, 255	1	400
+interface	233, 116, 81, 255	1	300
+needs	127, 255, 0, 255	1	200
+:)	21, 96, 189, 255	1	100

+ 70 - 0
Samples/tutorial/datagrid/src/DecoratorDefender.cpp

@@ -0,0 +1,70 @@
+/*
+ * Copyright (c) 2006 - 2008
+ * Wandering Monster Studios Limited
+ *
+ * Any use of this program is governed by the terms of Wandering Monster
+ * Studios Limited's Licence Agreement included with this program, a copy
+ * of which can be obtained by contacting Wandering Monster Studios
+ * Limited at [email protected].
+ *
+ */
+
+#include "DecoratorDefender.h"
+#include <Rocket/Core/Math.h>
+#include <Rocket/Core/Element.h>
+#include <Rocket/Core/Texture.h>
+#include <ShellOpenGL.h>
+
+DecoratorDefender::~DecoratorDefender()
+{
+}
+
+bool DecoratorDefender::Initialise(const Rocket::Core::String& image_source, const Rocket::Core::String& image_path)
+{
+	image_index = LoadTexture(image_source, image_path);
+	if (image_index == -1)
+	{
+		return false;
+	}
+
+	return true;
+}
+
+/// Called on a decorator to generate any required per-element data for a newly decorated element.
+Rocket::Core::DecoratorDataHandle DecoratorDefender::GenerateElementData(Rocket::Core::Element* ROCKET_UNUSED(element))
+{
+	return NULL;
+}
+
+// Called to release element data generated by this decorator.
+void DecoratorDefender::ReleaseElementData(Rocket::Core::DecoratorDataHandle ROCKET_UNUSED(element_data))
+{
+}
+
+// Called to render the decorator on an element.
+void DecoratorDefender::RenderElement(Rocket::Core::Element* element, Rocket::Core::DecoratorDataHandle ROCKET_UNUSED(element_data))
+{
+	Rocket::Core::Vector2f position = element->GetAbsoluteOffset(Rocket::Core::Box::PADDING);
+	Rocket::Core::Vector2f size = element->GetBox().GetSize(Rocket::Core::Box::PADDING);
+
+	glEnable(GL_TEXTURE_2D);
+	glBindTexture(GL_TEXTURE_2D, (GLuint) GetTexture(image_index)->GetHandle(element->GetRenderInterface()));
+	Rocket::Core::Colourb colour = element->GetProperty< Rocket::Core::Colourb >("color");
+	glColor4ubv(element->GetProperty< Rocket::Core::Colourb >("color"));
+	glBegin(GL_QUADS);
+
+		glVertex2f(position.x, position.y);
+		glTexCoord2f(0, 1);
+
+		glVertex2f(position.x, position.y + size.y);
+		glTexCoord2f(1, 1);
+
+		glVertex2f(position.x + size.x, position.y + size.y);
+		glTexCoord2f(1, 0);
+
+		glVertex2f(position.x + size.x, position.y);
+		glTexCoord2f(0, 0);
+
+	glEnd();
+	glColor4ub(255, 255, 255, 255);
+}

+ 46 - 0
Samples/tutorial/datagrid/src/DecoratorDefender.h

@@ -0,0 +1,46 @@
+/*
+ * Copyright (c) 2006 - 2008
+ * Wandering Monster Studios Limited
+ *
+ * Any use of this program is governed by the terms of Wandering Monster
+ * Studios Limited's Licence Agreement included with this program, a copy
+ * of which can be obtained by contacting Wandering Monster Studios
+ * Limited at [email protected].
+ *
+ */
+
+#ifndef DECORATORDEFENDER_H
+#define DECORATORDEFENDER_H
+
+#include <Rocket/Core/Decorator.h>
+
+/**
+	A decorator that displays the defender in the colour of its "colour" property.
+	@author Robert Curry
+ */
+
+class DecoratorDefender : public Rocket::Core::Decorator
+{
+public:
+	virtual ~DecoratorDefender();
+
+	bool Initialise(const Rocket::Core::String& image_source, const Rocket::Core::String& image_path);
+
+	/// Called on a decorator to generate any required per-element data for a newly decorated element.
+	/// @param element[in] The newly decorated element.
+	/// @return A handle to a decorator-defined data handle, or NULL if none is needed for the element.
+	virtual Rocket::Core::DecoratorDataHandle GenerateElementData(Rocket::Core::Element* element);
+	/// Called to release element data generated by this decorator.
+	/// @param element_data[in] The element data handle to release.
+	virtual void ReleaseElementData(Rocket::Core::DecoratorDataHandle element_data);
+
+	/// Called to render the decorator on an element.
+	/// @param element[in] The element to render the decorator on.
+	/// @param element_data[in] The handle to the data generated by the decorator for the element.
+	virtual void RenderElement(Rocket::Core::Element* element, Rocket::Core::DecoratorDataHandle element_data);
+
+private:
+	int image_index;
+};
+
+#endif

+ 51 - 0
Samples/tutorial/datagrid/src/DecoratorInstancerDefender.cpp

@@ -0,0 +1,51 @@
+/*
+ * Copyright (c) 2006 - 2008
+ * Wandering Monster Studios Limited
+ *
+ * Any use of this program is governed by the terms of Wandering Monster
+ * Studios Limited's Licence Agreement included with this program, a copy
+ * of which can be obtained by contacting Wandering Monster Studios
+ * Limited at [email protected].
+ *
+ */
+
+#include "DecoratorInstancerDefender.h"
+#include <Rocket/Core/Math.h>
+#include <Rocket/Core/String.h>
+#include "DecoratorDefender.h"
+
+DecoratorInstancerDefender::DecoratorInstancerDefender()
+{
+	RegisterProperty("image-src", "").AddParser("string");
+}
+
+DecoratorInstancerDefender::~DecoratorInstancerDefender()
+{
+}
+
+// Instances a decorator given the property tag and attributes from the RCSS file.
+Rocket::Core::Decorator* DecoratorInstancerDefender::InstanceDecorator(const Rocket::Core::String& ROCKET_UNUSED(name), const Rocket::Core::PropertyDictionary& properties)
+{
+	const Rocket::Core::Property* image_source_property = properties.GetProperty("image-src");
+	Rocket::Core::String image_source = image_source_property->Get< Rocket::Core::String >();
+
+	DecoratorDefender* decorator = new DecoratorDefender();
+	if (decorator->Initialise(image_source, image_source_property->source))
+		return decorator;
+
+	decorator->RemoveReference();
+	ReleaseDecorator(decorator);
+	return NULL;
+}
+
+// Releases the given decorator.
+void DecoratorInstancerDefender::ReleaseDecorator(Rocket::Core::Decorator* decorator)
+{
+	delete decorator;
+}
+
+// Releases the instancer.
+void DecoratorInstancerDefender::Release()
+{
+	delete this;
+}

+ 41 - 0
Samples/tutorial/datagrid/src/DecoratorInstancerDefender.h

@@ -0,0 +1,41 @@
+/*
+ * Copyright (c) 2006 - 2008
+ * Wandering Monster Studios Limited
+ *
+ * Any use of this program is governed by the terms of Wandering Monster
+ * Studios Limited's Licence Agreement included with this program, a copy
+ * of which can be obtained by contacting Wandering Monster Studios
+ * Limited at [email protected].
+ *
+ */
+
+#ifndef DECORATORINSTANCERDEFENDER_H
+#define DECORATORINSTANCERDEFENDER_H
+
+#include <Rocket/Core/DecoratorInstancer.h>
+
+/**
+	Decorator instancer for the Defender decorator.
+	@author Robert Curry
+ */
+
+class DecoratorInstancerDefender : public Rocket::Core::DecoratorInstancer
+{
+public:
+	DecoratorInstancerDefender();
+	virtual ~DecoratorInstancerDefender();
+
+	/// Instances a decorator given the property tag and attributes from the RCSS file.
+	/// @param name The type of decorator desired. For example, "background-decorator: simple;" is declared as type "simple".
+	/// @param properties All RCSS properties associated with the decorator.
+	/// @return The decorator if it was instanced successful, NULL if an error occured.
+	Rocket::Core::Decorator* InstanceDecorator(const Rocket::Core::String& name, const Rocket::Core::PropertyDictionary& properties);
+	/// Releases the given decorator.
+	/// @param decorator Decorator to release. This is guaranteed to have been constructed by this instancer.
+	void ReleaseDecorator(Rocket::Core::Decorator* decorator);
+
+	/// Releases the instancer.
+	void Release();
+};
+
+#endif

+ 115 - 0
Samples/tutorial/datagrid/src/HighScores.cpp

@@ -0,0 +1,115 @@
+/*
+ * Copyright (c) 2006 - 2008
+ * Wandering Monster Studios Limited
+ *
+ * Any use of this program is governed by the terms of Wandering Monster
+ * Studios Limited's Licence Agreement included with this program, a copy
+ * of which can be obtained by contacting Wandering Monster Studios
+ * Limited at [email protected].
+ *
+ */
+
+#include "HighScores.h"
+#include <Rocket/Core/StringUtilities.h>
+#include <Rocket/Core/TypeConverter.h>
+#include <Rocket/Core.h>
+#include <stdio.h>
+
+HighScores* HighScores::instance = NULL;
+
+HighScores::HighScores()
+{
+	ROCKET_ASSERT(instance == NULL);
+	instance = this;
+
+	for (int i = 0; i < NUM_SCORES; i++)
+	{
+		scores[i].score = -1;
+	}
+
+	LoadScores();
+}
+
+HighScores::~HighScores()
+{
+	ROCKET_ASSERT(instance == this);
+	instance = NULL;
+}
+
+void HighScores::Initialise()
+{
+	new HighScores();
+}
+
+void HighScores::Shutdown()
+{
+	delete instance;
+}
+
+void HighScores::SubmitScore(const Rocket::Core::String& name, const Rocket::Core::Colourb& colour, int wave, int score)
+{
+	for (size_t i = 0; i < NUM_SCORES; i++)
+	{
+		if (score > scores[i].score)
+		{
+			// Push down all the other scores.
+			for (size_t j = NUM_SCORES - 1; j > i; j--)
+			{
+				scores[j] = scores[j - 1];
+			}
+
+			// Insert our new score.
+			scores[i].name = name;
+			scores[i].colour = colour;
+			scores[i].wave = wave;
+			scores[i].score = score;
+
+			return;
+		}
+	}
+}
+
+void HighScores::LoadScores()
+{
+	// Open and read the high score file.
+	Rocket::Core::FileInterface* file_interface = Rocket::Core::GetFileInterface();
+	Rocket::Core::FileHandle scores_file = file_interface->Open("high_score.txt");
+	
+	if (scores_file)
+	{
+		file_interface->Seek(scores_file, 0, SEEK_END);
+		size_t scores_length = file_interface->Tell(scores_file);
+		file_interface->Seek(scores_file, 0, SEEK_SET);
+
+		if (scores_length > 0)
+		{
+			char* buffer = new char[scores_length + 1];
+			file_interface->Read(buffer, scores_length, scores_file);
+			file_interface->Close(scores_file);
+			buffer[scores_length] = 0;
+
+			Rocket::Core::StringList score_lines;
+			Rocket::Core::StringUtilities::ExpandString(score_lines, buffer, '\n');
+			delete[] buffer;
+			
+			for (size_t i = 0; i < score_lines.size(); i++)
+			{
+				Rocket::Core::StringList score_parts;
+				Rocket::Core::StringUtilities::ExpandString(score_parts, score_lines[i], '\t');
+				if (score_parts.size() == 4)
+				{
+					Rocket::Core::Colourb colour;
+					int wave;
+					int score;
+
+					if (Rocket::Core::TypeConverter< Rocket::Core::String , Rocket::Core::Colourb >::Convert(score_parts[1], colour) &&
+						Rocket::Core::TypeConverter< Rocket::Core::String, int >::Convert(score_parts[2], wave) &&
+						Rocket::Core::TypeConverter< Rocket::Core::String, int >::Convert(score_parts[3], score))
+					{
+						SubmitScore(score_parts[0], colour, wave, score);
+					}
+				}
+			}
+		}
+	}
+}

+ 50 - 0
Samples/tutorial/datagrid/src/HighScores.h

@@ -0,0 +1,50 @@
+/*
+ * Copyright (c) 2006 - 2008
+ * Wandering Monster Studios Limited
+ *
+ * Any use of this program is governed by the terms of Wandering Monster
+ * Studios Limited's Licence Agreement included with this program, a copy
+ * of which can be obtained by contacting Wandering Monster Studios
+ * Limited at [email protected].
+ *
+ */
+
+#ifndef HIGHSCORES_H
+#define HIGHSCORES_H
+
+#include <Rocket/Core/Types.h>
+
+const int NUM_SCORES = 10;
+
+/**
+	This class stores a list of high scores, and loads the high scores list from a file upon initialisation.
+	@author Robert Curry
+ */
+
+class HighScores
+{
+public:
+	static void Initialise();
+	static void Shutdown();
+
+private:
+	HighScores();
+	~HighScores();
+
+	static HighScores* instance;
+
+	void SubmitScore(const Rocket::Core::String& name, const Rocket::Core::Colourb& colour, int wave, int score);
+	void LoadScores();
+
+	struct Score
+	{
+		Rocket::Core::String name;
+		Rocket::Core::Colourb colour;
+		int score;
+		int wave;
+	};
+
+	Score scores[NUM_SCORES];
+};
+
+#endif

+ 102 - 0
Samples/tutorial/datagrid/src/main.cpp

@@ -0,0 +1,102 @@
+/*
+ * Copyright (c) 2006 - 2008
+ * Wandering Monster Studios Limited
+ *
+ * Any use of this program is governed by the terms of Wandering Monster
+ * Studios Limited's Licence Agreement included with this program, a copy
+ * of which can be obtained by contacting Wandering Monster Studios
+ * Limited at [email protected].
+ *
+ */
+
+#include <Rocket/Core.h>
+#include <Rocket/Controls.h>
+#include <Rocket/Debugger.h>
+#include <Input.h>
+#include <Shell.h>
+#include "DecoratorInstancerDefender.h"
+#include "HighScores.h"
+
+Rocket::Core::Context* context = NULL;
+
+void GameLoop()
+{
+	glClear(GL_COLOR_BUFFER_BIT);
+
+	context->Update();
+	context->Render();
+
+	Shell::FlipBuffers();
+}
+
+#if defined ROCKET_PLATFORM_WIN32
+#include <windows.h>
+int APIENTRY WinMain(HINSTANCE ROCKET_UNUSED(instance_handle), HINSTANCE ROCKET_UNUSED(previous_instance_handle), char* ROCKET_UNUSED(command_line), int ROCKET_UNUSED(command_show))
+#else
+int main(int ROCKET_UNUSED(argc), char** ROCKET_UNUSED(argv))
+#endif
+{
+	// Generic OS initialisation, creates a window and attaches OpenGL.
+	if (!Shell::Initialise("../Samples/tutorial/datagrid/") ||
+		!Shell::OpenWindow("Datagrid Tutorial", true))
+	{
+		Shell::Shutdown();
+		return -1;
+	}
+
+	// Rocket initialisation.
+	ShellRenderInterfaceOpenGL opengl_renderer;
+	Rocket::Core::SetRenderInterface(&opengl_renderer);
+    opengl_renderer.SetViewport(1024,768);
+
+	ShellSystemInterface system_interface;
+	Rocket::Core::SetSystemInterface(&system_interface);
+
+	Rocket::Core::Initialise();
+	Rocket::Controls::Initialise();
+
+	// Create the main Rocket context and set it on the shell's input layer.
+	context = Rocket::Core::CreateContext("main", Rocket::Core::Vector2i(1024, 768));
+	if (context == NULL)
+	{
+		Rocket::Core::Shutdown();
+		Shell::Shutdown();
+		return -1;
+	}
+
+	Rocket::Debugger::Initialise(context);
+	Input::SetContext(context);
+
+	Shell::LoadFonts("../../assets/");
+
+	// Load the defender decorator.
+	Rocket::Core::DecoratorInstancer* decorator_instancer = Rocket::Core::Factory::RegisterDecoratorInstancer("defender", new DecoratorInstancerDefender());
+	if (decorator_instancer != NULL)
+		decorator_instancer->RemoveReference();
+
+	// Construct the high scores.
+	HighScores::Initialise();
+
+	// Load and show the tutorial document.
+	Rocket::Core::ElementDocument* document = context->LoadDocument("data/tutorial.rml");
+	document->GetElementById("title")->SetInnerRML(document->GetTitle());
+	if (document != NULL)
+	{
+		document->Show();
+		document->RemoveReference();
+	}
+
+	Shell::EventLoop(GameLoop);
+
+	// Shut down the high scores.
+	HighScores::Shutdown();
+
+	// Shutdown Rocket.
+	context->RemoveReference();
+	Rocket::Core::Shutdown();
+
+	Shell::CloseWindow();
+	Shell::Shutdown();
+
+	return 0;
+}

+ 28 - 0
Samples/tutorial/datagrid_tree/DatagridTree.sln

@@ -0,0 +1,28 @@
+Microsoft Visual Studio Solution File, Format Version 10.00
+# Visual C++ Express 2008
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Shell", "..\..\shell\shell.vcproj", "{AF4FF882-AFD9-457B-979E-A5B482388D46}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DatagridTree", "DatagridTree.vcproj", "{3C58D3B5-9478-4221-954A-01E3C4F1FA89}"
+	ProjectSection(ProjectDependencies) = postProject
+		{AF4FF882-AFD9-457B-979E-A5B482388D46} = {AF4FF882-AFD9-457B-979E-A5B482388D46}
+	EndProjectSection
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Win32 = Debug|Win32
+		Release|Win32 = Release|Win32
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{AF4FF882-AFD9-457B-979E-A5B482388D46}.Debug|Win32.ActiveCfg = Debug|Win32
+		{AF4FF882-AFD9-457B-979E-A5B482388D46}.Debug|Win32.Build.0 = Debug|Win32
+		{AF4FF882-AFD9-457B-979E-A5B482388D46}.Release|Win32.ActiveCfg = Release|Win32
+		{AF4FF882-AFD9-457B-979E-A5B482388D46}.Release|Win32.Build.0 = Release|Win32
+		{3C58D3B5-9478-4221-954A-01E3C4F1FA89}.Debug|Win32.ActiveCfg = Debug|Win32
+		{3C58D3B5-9478-4221-954A-01E3C4F1FA89}.Debug|Win32.Build.0 = Debug|Win32
+		{3C58D3B5-9478-4221-954A-01E3C4F1FA89}.Release|Win32.ActiveCfg = Release|Win32
+		{3C58D3B5-9478-4221-954A-01E3C4F1FA89}.Release|Win32.Build.0 = Release|Win32
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+EndGlobal

+ 199 - 0
Samples/tutorial/datagrid_tree/DatagridTree.vcproj

@@ -0,0 +1,199 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+	ProjectType="Visual C++"
+	Version="9.00"
+	Name="DatagridTree"
+	ProjectGUID="{3C58D3B5-9478-4221-954A-01E3C4F1FA89}"
+	TargetFrameworkVersion="131072"
+	>
+	<Platforms>
+		<Platform
+			Name="Win32"
+		/>
+	</Platforms>
+	<ToolFiles>
+	</ToolFiles>
+	<Configurations>
+		<Configuration
+			Name="Debug|Win32"
+			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
+			IntermediateDirectory="$(ConfigurationName)"
+			ConfigurationType="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				AdditionalIncludeDirectories="..\..\shell\include;..\..\..\..\..\packages\include"
+				PreprocessorDefinitions="WIN32"
+				RuntimeLibrary="3"
+				WarningLevel="4"
+				DebugInformationFormat="3"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="RocketCore_d.lib RocketControls_d.lib RocketDebugger_d.lib libpng_d.lib zlib_d.lib opengl32.lib"
+				OutputFile="..\..\..\..\..\packages\bin\$(ProjectName)_d.exe"
+				AdditionalLibraryDirectories="..\..\shell\libpng;..\..\..\..\..\packages\bin"
+				GenerateDebugInformation="true"
+				SubSystem="2"
+				RandomizedBaseAddress="1"
+				DataExecutionPrevention="0"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release|Win32"
+			OutputDirectory="$(SolutionDir)$(ConfigurationName)"
+			IntermediateDirectory="$(ConfigurationName)"
+			ConfigurationType="1"
+			>
+			<Tool
+				Name="VCPreBuildEventTool"
+			/>
+			<Tool
+				Name="VCCustomBuildTool"
+			/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"
+			/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"
+			/>
+			<Tool
+				Name="VCMIDLTool"
+			/>
+			<Tool
+				Name="VCCLCompilerTool"
+				AdditionalIncludeDirectories="..\..\shell\include;..\..\..\..\..\packages\include"
+				PreprocessorDefinitions="WIN32"
+				RuntimeLibrary="2"
+				WarningLevel="4"
+			/>
+			<Tool
+				Name="VCManagedResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCResourceCompilerTool"
+			/>
+			<Tool
+				Name="VCPreLinkEventTool"
+			/>
+			<Tool
+				Name="VCLinkerTool"
+				AdditionalDependencies="RocketCore.lib RocketControls.lib RocketDebugger.lib libpng.lib zlib.lib opengl32.lib"
+				OutputFile="..\..\..\..\..\packages\bin\$(ProjectName).exe"
+				AdditionalLibraryDirectories="..\..\shell\libpng;..\..\..\..\..\packages\bin"
+				SubSystem="2"
+				RandomizedBaseAddress="1"
+				DataExecutionPrevention="0"
+			/>
+			<Tool
+				Name="VCALinkTool"
+			/>
+			<Tool
+				Name="VCManifestTool"
+			/>
+			<Tool
+				Name="VCXDCMakeTool"
+			/>
+			<Tool
+				Name="VCBscMakeTool"
+			/>
+			<Tool
+				Name="VCFxCopTool"
+			/>
+			<Tool
+				Name="VCAppVerifierTool"
+			/>
+			<Tool
+				Name="VCPostBuildEventTool"
+			/>
+		</Configuration>
+	</Configurations>
+	<References>
+	</References>
+	<Files>
+		<File
+			RelativePath=".\src\DecoratorDefender.cpp"
+			>
+		</File>
+		<File
+			RelativePath=".\src\DecoratorDefender.h"
+			>
+		</File>
+		<File
+			RelativePath=".\src\DecoratorInstancerDefender.cpp"
+			>
+		</File>
+		<File
+			RelativePath=".\src\DecoratorInstancerDefender.h"
+			>
+		</File>
+		<File
+			RelativePath=".\src\HighScores.cpp"
+			>
+		</File>
+		<File
+			RelativePath=".\src\HighScores.h"
+			>
+		</File>
+		<File
+			RelativePath=".\src\HighScoresShipFormatter.cpp"
+			>
+		</File>
+		<File
+			RelativePath=".\src\HighScoresShipFormatter.h"
+			>
+		</File>
+		<File
+			RelativePath=".\src\main.cpp"
+			>
+		</File>
+	</Files>
+	<Globals>
+	</Globals>
+</VisualStudioProject>

+ 65 - 0
Samples/tutorial/datagrid_tree/DatagridTree.vcproj.user

@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioUserFile
+	ProjectType="Visual C++"
+	Version="8.00"
+	ShowAllFiles="false"
+	>
+	<Configurations>
+		<Configuration
+			Name="Debug|Win32"
+			>
+			<DebugSettings
+				Command="$(TargetPath)"
+				WorkingDirectory="..\..\..\..\..\packages\bin"
+				CommandArguments=""
+				Attach="false"
+				DebuggerType="3"
+				Remote="1"
+				RemoteMachine=""
+				RemoteCommand=""
+				HttpUrl=""
+				PDBPath=""
+				SQLDebugging=""
+				Environment=""
+				EnvironmentMerge="true"
+				DebuggerFlavor="0"
+				MPIRunCommand=""
+				MPIRunArguments=""
+				MPIRunWorkingDirectory=""
+				ApplicationCommand=""
+				ApplicationArguments=""
+				ShimCommand=""
+				MPIAcceptMode=""
+				MPIAcceptFilter=""
+			/>
+		</Configuration>
+		<Configuration
+			Name="Release|Win32"
+			>
+			<DebugSettings
+				Command="$(TargetPath)"
+				WorkingDirectory="..\..\..\..\..\packages\bin"
+				CommandArguments=""
+				Attach="false"
+				DebuggerType="3"
+				Remote="1"
+				RemoteMachine=""
+				RemoteCommand=""
+				HttpUrl=""
+				PDBPath=""
+				SQLDebugging=""
+				Environment=""
+				EnvironmentMerge="true"
+				DebuggerFlavor="0"
+				MPIRunCommand=""
+				MPIRunArguments=""
+				MPIRunWorkingDirectory=""
+				ApplicationCommand=""
+				ApplicationArguments=""
+				ShimCommand=""
+				MPIAcceptMode=""
+				MPIAcceptFilter=""
+			/>
+		</Configuration>
+	</Configurations>
+</VisualStudioUserFile>

+ 63 - 0
Samples/tutorial/datagrid_tree/SConstruct

@@ -0,0 +1,63 @@
+#
+# DataGrid Tree Construction File
+# 
+import os
+import sys
+sys.path += [ "../../../../../build" ]
+import wmsconstruct
+
+FILES = Split( """
+	src/
+	""" )
+
+INCLUDE = Split( """
+	../../../../../packages/include/
+	../../shell/include/
+	""" )
+
+LIBS = Split( """
+	RocketControls
+	RocketDebugger
+	RocketCore
+	Shell
+	""" )
+
+LIBPATHS = Split( """
+	../../../../../packages/bin
+	""" )
+
+DEPENDENCIES = []
+
+if sys.platform == "win32":
+	LIBS += Split( """
+		opengl32
+		user32
+		gdi32
+		libpng
+		zlib
+		""" )
+	LIBPATHS += Split( """
+		../../shell/libpng
+		""" )
+elif sys.platform == "darwin":
+	LIBS += Split( """
+		png
+		z
+		""" )
+	LIBPATHS += Split( """
+		../../shell/libpng
+		""" )
+	DEPENDENCIES += ["AGL", "Carbon", "OpenGL"]
+elif sys.platform == "linux2":
+	LIBS += Split( """
+		GL
+		png
+		""" )
+
+wmsconstruct.Program("Rocket Datagrid Tree Tutorial",
+	"../../../../../packages/bin/datagridtree",
+	FILES,
+	INCLUDE,
+	LIBS,
+	LIBPATHS,
+	DEPENDENCIES)

+ 15 - 0
Samples/tutorial/datagrid_tree/data/template.rml

@@ -0,0 +1,15 @@
+<template name="window" content="content">
+<head>
+	<link type="text/css" href="../../../assets/rkt.rcss"/>
+	<link type="text/css" href="tutorial.rcss"/>
+</head>
+<body class="window">
+	<div id="title-bar">
+		<handle move_target="#document">
+			<span id="title">Dummy Title</span>
+		</handle>
+	</div>
+	<div id="content">
+	</div>
+</body>
+</template>

+ 128 - 0
Samples/tutorial/datagrid_tree/data/tutorial.rcss

@@ -0,0 +1,128 @@
+body
+{
+	font-family: Delicious;
+	font-weight: normal;
+	font-style: normal;
+	font-size: 15;
+	color: white;
+}
+
+body.window
+{
+	background-decorator: tiled-box;
+	background-top-left-image: ../../../assets/invader.tga 0px 0px 133px 140px;
+	background-top-right-image: ../../../assets/invader.tga 136px 0px 146px 140px;
+	background-top-image: ../../../assets/invader.tga stretch 134px 0px 135px 140px;
+	background-bottom-left-image: ../../../assets/invader.tga 0px 140px 11px 151px;
+	background-bottom-right-image: ../../../assets/invader.tga 136px 140px 146px 151px;
+	background-bottom-image: ../../../assets/invader.tga stretch 11px 140px 12px 151px;
+	background-left-image: ../../../assets/invader.tga stretch 0px 139px 10px 140px;
+	background-center-image: ../../../assets/invader.tga stretch 11px 139px 12px 140px;
+	
+	padding: 10px 15px;
+}
+
+div#title-bar
+{
+	position: absolute;
+	top: -43px;
+}
+
+div#title-bar span
+{
+	padding-left: 85px;
+	padding-right: 25px;
+	padding-top: 17px;
+	padding-bottom: 48px;
+
+	font-size: 22;
+	font-weight: bold;
+
+	text-shadow: 2px 2px black;
+
+	background-decorator: tiled-horizontal;
+	background-left-image: ../../../assets/invader.tga 147px 0px 229px 85px;
+	background-center-image: ../../../assets/invader.tga stretch 229px 0px 230px 85px;
+	background-right-image: ../../../assets/invader.tga 231px 0px 246px 85px;
+}
+
+div#content
+{
+	height: 100%;
+	overflow: auto;
+
+	z-index: 1;
+}
+
+scrollbarvertical
+{
+	width: 27px;
+	margin-top: -6px;
+	margin-bottom: -6px;
+	margin-right: -11px;
+}
+
+scrollbarvertical slidertrack
+{
+	background-decorator: tiled-vertical;
+	background-top-image: ../../../assets/invader.tga 56px 199px 83px 201px;
+	background-center-image: ../../../assets/invader.tga stretch 56px 201px 83px 202px;
+	background-bottom-image: ../../../assets/invader.tga 56px 203px 83px 204px;
+}
+
+scrollbarvertical sliderbar
+{
+	margin-left: 4px;
+	width: 23px;
+	min-height: 46px;
+
+	background-decorator: tiled-vertical;
+	background-top-image: ../../../assets/invader.tga 56px 152px 79px 175px;
+	background-center-image: ../../../assets/invader.tga stretch 56px 175px 79px 175px;
+	background-bottom-image: ../../../assets/invader.tga 56px 176px 79px 198px;
+}
+
+scrollbarvertical sliderbar:hover
+{
+	background-top-image-s: 80px 103px;
+	background-center-image-s: 80px 103px;
+	background-bottom-image-s: 80px 103px;
+}
+
+scrollbarvertical sliderbar:active
+{
+	background-top-image-s: 104px 127px;
+	background-center-image-s: 104px 127px;
+	background-bottom-image-s: 104px 127px;
+}
+
+scrollbarvertical sliderarrowdec,
+scrollbarvertical sliderarrowinc
+{
+	width: 27px;
+	height: 24px;
+}
+
+scrollbarvertical sliderarrowdec
+{
+	icon-decorator: image;
+	icon-image: ../../../assets/invader.tga 0px 152px 27px 176px;
+}
+
+scrollbarvertical sliderarrowinc
+{
+	icon-decorator: image;
+	icon-image: ../../../assets/invader.tga 28px 152px 55px 176px;
+}
+
+scrollbarvertical sliderarrowdec:hover,
+scrollbarvertical sliderarrowinc:hover
+{
+	icon-image-t: 177px 201px;
+}
+
+scrollbarvertical sliderarrowdec:active,
+scrollbarvertical sliderarrowinc:active
+{
+	icon-image-t: 202px 226px;
+}

+ 112 - 0
Samples/tutorial/datagrid_tree/data/tutorial.rml

@@ -0,0 +1,112 @@
+<rml>
+<head>
+	<link type="text/template" href="template.rml"/>
+	<title>Datagrid Tutorial</title>
+	<style>
+		body
+		{
+			width: 400px;
+			height: 300px;
+
+			margin: auto;
+		}
+		
+		defender
+		{
+			display: block;
+			width: 64px;
+			height: 16px;
+			
+			defender-decorator: defender;
+			defender-image-src: ../../../assets/high_scores_defender.tga;
+		}
+		
+		defender.alien_1
+		{
+			defender-image-src: ../../../assets/high_scores_alien_1.tga;
+		}
+		
+		defender.alien_2
+		{
+			defender-image-src: ../../../assets/high_scores_alien_2.tga;
+		}
+		
+		defender.alien_3
+		{
+			defender-image-src: ../../../assets/high_scores_alien_3.tga;
+		}
+		
+		datagridheader
+		{
+			width: auto;
+			height: 25px;
+			padding: 5px 10px 0px 10px;
+		
+			background-decorator: tiled-horizontal;
+			background-left-image: ../../../assets/invader.tga 127px 192px 143px 223px;
+			background-center-image: ../../../assets/invader.tga stretch 143px 192px 145px 223px;
+			background-right-image: ../../../assets/invader.tga 145px 192px 160px 223px;
+		}
+		
+		datagridbody
+		{
+			color: black;
+			text-align: center;
+			
+			margin-left: 4px;
+			margin-right: 3px;
+			padding: 0px 4px 4px 4px;
+			
+			background-decorator: tiled-box;
+			background-top-left-image: ../../../assets/invader.tga 281px 275px 292px 284px;
+			background-top-right-image: ../../../assets/invader.tga 294px 275px 305px 284px;
+			background-top-image: ../../../assets/invader.tga stretch 292px 275px 293px 284px;
+			background-bottom-left-image: ../../../assets/invader.tga 281px 285px 292px 296px;
+			background-bottom-right-image: ../../../assets/invader.tga 294px 285px 305px 296px;
+			background-bottom-image: ../../../assets/invader.tga stretch 292px 285px 293px 296px;
+			background-left-image: ../../../assets/invader.tga stretch 281px 283px 292px 284px;
+			background-center-image: ../../../assets/invader.tga stretch 292px 283px 293px 284px;
+		}
+		
+		datagrid datagridrow:nth-child(even)
+		{
+			background: #FFFFFFA0;
+		}
+		
+		datagridexpand
+		{
+			display: block;
+			
+			margin: 1px 0px 1px 5px;
+			height: 17px;
+			width: 17px;
+			
+			icon-decorator: image;
+			icon-image: ../../../assets/invader.tga 3px 232px 20px 249px;
+		}
+		
+		datagridexpand:hover
+		{
+			icon-image-s: 21px 38px;
+		}
+		
+		datagridexpand:active
+		{
+			icon-image-s: 39px 56px;
+		}
+		
+		datagridexpand.collapsed
+		{
+			icon-image-t: 250px 267px;
+		}
+	</style>
+</head>
+<body template="window">
+	<datagrid source="high_scores.scores">
+		<col fields="name" width="40%">Pilot:</col>
+		<col fields="colour" formatter="ship" width="20%">Ship:</col>
+		<col fields="wave" width="20%">Wave:</col>
+		<col fields="score" width="20%">Score:</col>
+	</datagrid>
+</body>
+</rml>

Some files were not shown because too many files changed in this diff