Pārlūkot izejas kodu

Some very basic work for the editor

Marko Pintera 13 gadi atpakaļ
vecāks
revīzija
8db5a0be7a

+ 44 - 38
CamelotEditor/CamelotEditor.vcxproj

@@ -77,7 +77,7 @@
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
     <ClCompile>
     <ClCompile>
       <PreprocessorDefinitions>UNICODE;WIN32;QT_LARGEFILE_SUPPORT;QT_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <PreprocessorDefinitions>UNICODE;WIN32;QT_LARGEFILE_SUPPORT;QT_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <AdditionalIncludeDirectories>.\GeneratedFiles;.\Include;.\Dependencies\Include;.\GeneratedFiles\$(ConfigurationName);..\CamelotRenderer\Include;..\CamelotUtility\Include;..\Dependencies\Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>.\GeneratedFiles;.\Include;.\Dependencies\Include;.\GeneratedFiles\$(ConfigurationName);..\CamelotCore\Include;..\CamelotUtility\Include;..\Dependencies\Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <Optimization>Disabled</Optimization>
       <Optimization>Disabled</Optimization>
       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
       <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
       <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -88,13 +88,13 @@
       <OutputFile>$(OutDir)\$(ProjectName).exe</OutputFile>
       <OutputFile>$(OutDir)\$(ProjectName).exe</OutputFile>
       <AdditionalLibraryDirectories>.\Dependencies\lib\Debug;..\lib\$(Configuration);..\Dependencies\lib\Debug;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
       <AdditionalLibraryDirectories>.\Dependencies\lib\Debug;..\lib\$(Configuration);..\Dependencies\lib\Debug;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
       <GenerateDebugInformation>true</GenerateDebugInformation>
       <GenerateDebugInformation>true</GenerateDebugInformation>
-      <AdditionalDependencies>Qt5Cored.lib;Qt5Guid.lib;Qt5Widgetsd.lib;CamelotRenderer.lib;CamelotUtility.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalDependencies>Qt5Cored.lib;Qt5Guid.lib;Qt5Widgetsd.lib;CamelotCore.lib;CamelotUtility.lib;%(AdditionalDependencies)</AdditionalDependencies>
     </Link>
     </Link>
   </ItemDefinitionGroup>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
     <ClCompile>
     <ClCompile>
       <PreprocessorDefinitions>UNICODE;WIN32;QT_LARGEFILE_SUPPORT;QT_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <PreprocessorDefinitions>UNICODE;WIN32;QT_LARGEFILE_SUPPORT;QT_DLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <AdditionalIncludeDirectories>.\GeneratedFiles;.\Include;.\Dependencies\Include;.\GeneratedFiles\$(ConfigurationName);..\CamelotRenderer\Include;..\CamelotUtility\Include;..\Dependencies\Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>.\GeneratedFiles;.\Include;.\Dependencies\Include;.\GeneratedFiles\$(ConfigurationName);..\CamelotCore\Include;..\CamelotUtility\Include;..\Dependencies\Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <Optimization>Disabled</Optimization>
       <Optimization>Disabled</Optimization>
       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
       <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
       <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@@ -105,13 +105,13 @@
       <OutputFile>$(OutDir)\$(ProjectName).exe</OutputFile>
       <OutputFile>$(OutDir)\$(ProjectName).exe</OutputFile>
       <AdditionalLibraryDirectories>.\Dependencies\lib\x64\Debug;..\lib\$(Platform)\$(Configuration);..\Dependencies\lib\x64\Debug;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
       <AdditionalLibraryDirectories>.\Dependencies\lib\x64\Debug;..\lib\$(Platform)\$(Configuration);..\Dependencies\lib\x64\Debug;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
       <GenerateDebugInformation>true</GenerateDebugInformation>
       <GenerateDebugInformation>true</GenerateDebugInformation>
-      <AdditionalDependencies>Qt5Cored.lib;Qt5Guid.lib;Qt5Widgetsd.lib;CamelotRenderer.lib;CamelotUtility.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalDependencies>Qt5Cored.lib;Qt5Guid.lib;Qt5Widgetsd.lib;CamelotCore.lib;CamelotUtility.lib;%(AdditionalDependencies)</AdditionalDependencies>
     </Link>
     </Link>
   </ItemDefinitionGroup>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
     <ClCompile>
     <ClCompile>
       <PreprocessorDefinitions>UNICODE;WIN32;QT_LARGEFILE_SUPPORT;QT_DLL;QT_NO_DEBUG;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <PreprocessorDefinitions>UNICODE;WIN32;QT_LARGEFILE_SUPPORT;QT_DLL;QT_NO_DEBUG;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <AdditionalIncludeDirectories>.\GeneratedFiles;.\Include;.\Dependencies\Include;.\GeneratedFiles\$(ConfigurationName);..\CamelotRenderer\Include;..\CamelotUtility\Include;..\Dependencies\Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>.\GeneratedFiles;.\Include;.\Dependencies\Include;.\GeneratedFiles\$(ConfigurationName);..\CamelotCore\Include;..\CamelotUtility\Include;..\Dependencies\Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <DebugInformationFormat />
       <DebugInformationFormat />
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
       <TreatWChar_tAsBuiltInType>false</TreatWChar_tAsBuiltInType>
       <TreatWChar_tAsBuiltInType>false</TreatWChar_tAsBuiltInType>
@@ -121,13 +121,13 @@
       <OutputFile>$(OutDir)\$(ProjectName).exe</OutputFile>
       <OutputFile>$(OutDir)\$(ProjectName).exe</OutputFile>
       <AdditionalLibraryDirectories>.\Dependencies\lib\Release;..\lib\$(Configuration);..\Dependencies\lib\Release;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
       <AdditionalLibraryDirectories>.\Dependencies\lib\Release;..\lib\$(Configuration);..\Dependencies\lib\Release;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
       <GenerateDebugInformation>false</GenerateDebugInformation>
       <GenerateDebugInformation>false</GenerateDebugInformation>
-      <AdditionalDependencies>Qt5Core.lib;Qt5Gui.lib;Qt5Widgets.lib;CamelotRenderer.lib;CamelotUtility.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalDependencies>Qt5Core.lib;Qt5Gui.lib;Qt5Widgets.lib;CamelotCore.lib;CamelotUtility.lib;%(AdditionalDependencies)</AdditionalDependencies>
     </Link>
     </Link>
   </ItemDefinitionGroup>
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
     <ClCompile>
     <ClCompile>
       <PreprocessorDefinitions>UNICODE;WIN32;QT_LARGEFILE_SUPPORT;QT_DLL;QT_NO_DEBUG;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <PreprocessorDefinitions>UNICODE;WIN32;QT_LARGEFILE_SUPPORT;QT_DLL;QT_NO_DEBUG;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <AdditionalIncludeDirectories>.\GeneratedFiles;.\Include;.\Dependencies\Include;.\GeneratedFiles\$(ConfigurationName);..\CamelotRenderer\Include;..\CamelotUtility\Include;..\Dependencies\Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>.\GeneratedFiles;.\Include;.\Dependencies\Include;.\GeneratedFiles\$(ConfigurationName);..\CamelotCore\Include;..\CamelotUtility\Include;..\Dependencies\Include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <DebugInformationFormat>
       <DebugInformationFormat>
       </DebugInformationFormat>
       </DebugInformationFormat>
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
@@ -138,11 +138,12 @@
       <OutputFile>$(OutDir)\$(ProjectName).exe</OutputFile>
       <OutputFile>$(OutDir)\$(ProjectName).exe</OutputFile>
       <AdditionalLibraryDirectories>.\Dependencies\lib\x64\Release;..\lib\$(Platform)\$(Configuration);..\Dependencies\lib\x64\Release;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
       <AdditionalLibraryDirectories>.\Dependencies\lib\x64\Release;..\lib\$(Platform)\$(Configuration);..\Dependencies\lib\x64\Release;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
       <GenerateDebugInformation>false</GenerateDebugInformation>
       <GenerateDebugInformation>false</GenerateDebugInformation>
-      <AdditionalDependencies>Qt5Core.lib;Qt5Gui.lib;Qt5Widgets.lib;CamelotRenderer.lib;CamelotUtility.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalDependencies>Qt5Core.lib;Qt5Gui.lib;Qt5Widgets.lib;CamelotCore.lib;CamelotUtility.lib;%(AdditionalDependencies)</AdditionalDependencies>
     </Link>
     </Link>
   </ItemDefinitionGroup>
   </ItemDefinitionGroup>
   <ItemGroup>
   <ItemGroup>
-    <ClCompile Include="GeneratedFiles\Debug\moc_CmQtEditor.cpp" />
+    <ClCompile Include="GeneratedFiles\moc_CmQtEditor.cpp" />
+    <ClCompile Include="GeneratedFiles\moc_CmQtProjectSelection.cpp" />
     <ClCompile Include="GeneratedFiles\qrc_CmEditor.cpp">
     <ClCompile Include="GeneratedFiles\qrc_CmEditor.cpp">
       <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
       <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
       </PrecompiledHeader>
       </PrecompiledHeader>
@@ -153,48 +154,29 @@
       <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
       <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
       </PrecompiledHeader>
       </PrecompiledHeader>
     </ClCompile>
     </ClCompile>
+    <ClCompile Include="Source\CmEditorApplication.cpp" />
     <ClCompile Include="Source\CmQtEditor.cpp" />
     <ClCompile Include="Source\CmQtEditor.cpp" />
+    <ClCompile Include="Source\CmQtProjectSelection.cpp" />
     <ClCompile Include="Source\main.cpp" />
     <ClCompile Include="Source\main.cpp" />
   </ItemGroup>
   </ItemGroup>
   <ItemGroup>
   <ItemGroup>
-    <CustomBuild Include="CmEditor.ui">
-      <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(QTDIR)\bin\uic.exe;%(AdditionalInputs)</AdditionalInputs>
-      <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(QTDIR)\bin\uic.exe;%(AdditionalInputs)</AdditionalInputs>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Uic%27ing %(Identity)...</Message>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Uic%27ing %(Identity)...</Message>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">.\GeneratedFiles\ui_%(Filename).h;%(Outputs)</Outputs>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\GeneratedFiles\ui_%(Filename).h;%(Outputs)</Outputs>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">"$(QTDIR)\bin\uic.exe" -o ".\GeneratedFiles\ui_%(Filename).h" "%(FullPath)"</Command>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">"$(QTDIR)\bin\uic.exe" -o ".\GeneratedFiles\ui_%(Filename).h" "%(FullPath)"</Command>
-      <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(QTDIR)\bin\uic.exe;%(AdditionalInputs)</AdditionalInputs>
-      <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(QTDIR)\bin\uic.exe;%(AdditionalInputs)</AdditionalInputs>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Uic%27ing %(Identity)...</Message>
-      <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Uic%27ing %(Identity)...</Message>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">.\GeneratedFiles\ui_%(Filename).h;%(Outputs)</Outputs>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\GeneratedFiles\ui_%(Filename).h;%(Outputs)</Outputs>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">"$(QTDIR)\bin\uic.exe" -o ".\GeneratedFiles\ui_%(Filename).h" "%(FullPath)"</Command>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">"$(QTDIR)\bin\uic.exe" -o ".\GeneratedFiles\ui_%(Filename).h" "%(FullPath)"</Command>
-    </CustomBuild>
-  </ItemGroup>
-  <ItemGroup>
-    <ClInclude Include="GeneratedFiles\ui_CmEditor.h" />
     <CustomBuild Include="Include\CmQtEditor.h">
     <CustomBuild Include="Include\CmQtEditor.h">
       <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
       <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
       <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
       <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
       <Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Moc%27ing %(Filename)...</Message>
       <Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Moc%27ing %(Filename)...</Message>
       <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Moc%27ing %(Filename)...</Message>
       <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Moc%27ing %(Filename)...</Message>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">.\GeneratedFiles\$(Platform)\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\GeneratedFiles\$(Platform)\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">"$(QTDIR)\bin\moc.exe"  "%(FullPath)" -o ".\GeneratedFiles\$(Platform)\$(ConfigurationName)\moc_%(Filename).cpp"  -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_DLL  "-I.\GeneratedFiles" "-I.\Include" "-I.\Dependencies\Include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\CamelotRenderer\Include" "-I.\..\CamelotUtility\Include" "-I.\..\Dependencies\Include"</Command>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">"$(QTDIR)\bin\moc.exe"  "%(FullPath)" -o ".\GeneratedFiles\$(Platform)\$(ConfigurationName)\moc_%(Filename).cpp"  -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_DLL  "-I.\GeneratedFiles" "-I.\Include" "-I.\Dependencies\Include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\CamelotRenderer\Include" "-I.\..\CamelotUtility\Include" "-I.\..\Dependencies\Include"</Command>
+      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">.\GeneratedFiles\moc_%(Filename).cpp</Outputs>
+      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\GeneratedFiles\moc_%(Filename).cpp</Outputs>
+      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">"$(QTDIR)\bin\moc.exe"  "%(FullPath)" -o ".\GeneratedFiles\moc_%(Filename).cpp"  -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_DLL  "-I.\GeneratedFiles" "-I.\Include" "-I.\Dependencies\Include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\CamelotCore\Include" "-I.\..\CamelotUtility\Include" "-I.\..\Dependencies\Include"</Command>
+      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">"$(QTDIR)\bin\moc.exe"  "%(FullPath)" -o ".\GeneratedFiles\moc_%(Filename).cpp"  -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_DLL  "-I.\GeneratedFiles" "-I.\Include" "-I.\Dependencies\Include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\CamelotCore\Include" "-I.\..\CamelotUtility\Include" "-I.\..\Dependencies\Include"</Command>
       <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
       <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
       <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
       <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
       <Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Moc%27ing %(Filename)...</Message>
       <Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Moc%27ing %(Filename)...</Message>
       <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Moc%27ing %(Filename)...</Message>
       <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Moc%27ing %(Filename)...</Message>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">.\GeneratedFiles\$(Platform)\$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
-      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\GeneratedFiles\\$(Platform)$(ConfigurationName)\moc_%(Filename).cpp</Outputs>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">"$(QTDIR)\bin\moc.exe"  "%(FullPath)" -o ".\GeneratedFiles\$(Platform)\$(ConfigurationName)\moc_%(Filename).cpp"  -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DNDEBUG  "-I.\GeneratedFiles" "-I.\Include" "-I.\Dependencies\Include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\CamelotRenderer\Include" "-I.\..\CamelotUtility\Include" "-I.\..\Dependencies\Include"</Command>
-      <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">"$(QTDIR)\bin\moc.exe"  "%(FullPath)" -o ".\GeneratedFiles\$(Platform)\$(ConfigurationName)\moc_%(Filename).cpp"  -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DNDEBUG  "-I.\GeneratedFiles" "-I.\Include" "-I.\Dependencies\Include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\CamelotRenderer\Include" "-I.\..\CamelotUtility\Include" "-I.\..\Dependencies\Include"</Command>
+      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">.\GeneratedFiles\moc_%(Filename).cpp</Outputs>
+      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\GeneratedFiles\moc_%(Filename).cpp</Outputs>
+      <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">"$(QTDIR)\bin\moc.exe"  "%(FullPath)" -o ".\GeneratedFiles\moc_%(Filename).cpp"  -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_DLL  "-I.\GeneratedFiles" "-I.\Include" "-I.\Dependencies\Include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\CamelotCore\Include" "-I.\..\CamelotUtility\Include" "-I.\..\Dependencies\Include"</Command>
+      <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">"$(QTDIR)\bin\moc.exe"  "%(FullPath)" -o ".\GeneratedFiles\moc_%(Filename).cpp"  -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_DLL  "-I.\GeneratedFiles" "-I.\Include" "-I.\Dependencies\Include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\CamelotCore\Include" "-I.\..\CamelotUtility\Include" "-I.\..\Dependencies\Include"</Command>
     </CustomBuild>
     </CustomBuild>
   </ItemGroup>
   </ItemGroup>
   <ItemGroup>
   <ItemGroup>
@@ -217,6 +199,30 @@
       <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">"$(QTDIR)\bin\rcc.exe" -name "%(Filename)" -no-compress "%(FullPath)" -o .\GeneratedFiles\qrc_%(Filename).cpp</Command>
       <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">"$(QTDIR)\bin\rcc.exe" -name "%(Filename)" -no-compress "%(FullPath)" -o .\GeneratedFiles\qrc_%(Filename).cpp</Command>
     </CustomBuild>
     </CustomBuild>
   </ItemGroup>
   </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="Include\CmEditorApplication.h" />
+    <ClInclude Include="Include\CmEditorPrefs.h" />
+    <ClInclude Include="Include\CmEditorPrerequisites.h" />
+    <ClInclude Include="Include\CmLayoutManager.h" />
+    <CustomBuild Include="Include\CmQtProjectSelection.h">
+      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">"$(QTDIR)\bin\moc.exe"  "%(FullPath)" -o ".\GeneratedFiles\moc_%(Filename).cpp"  -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_DLL  "-I.\GeneratedFiles" "-I.\Include" "-I.\Dependencies\Include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\CamelotCore\Include" "-I.\..\CamelotUtility\Include" "-I.\..\Dependencies\Include"</Command>
+      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Moc%27ing %(Filename)...</Message>
+      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">.\GeneratedFiles\moc_%(Filename).cpp</Outputs>
+      <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
+      <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">"$(QTDIR)\bin\moc.exe"  "%(FullPath)" -o ".\GeneratedFiles\moc_%(Filename).cpp"  -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_DLL  "-I.\GeneratedFiles" "-I.\Include" "-I.\Dependencies\Include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\CamelotCore\Include" "-I.\..\CamelotUtility\Include" "-I.\..\Dependencies\Include"</Command>
+      <Message Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Moc%27ing %(Filename)...</Message>
+      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">.\GeneratedFiles\moc_%(Filename).cpp</Outputs>
+      <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
+      <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">"$(QTDIR)\bin\moc.exe"  "%(FullPath)" -o ".\GeneratedFiles\moc_%(Filename).cpp"  -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_DLL  "-I.\GeneratedFiles" "-I.\Include" "-I.\Dependencies\Include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\CamelotCore\Include" "-I.\..\CamelotUtility\Include" "-I.\..\Dependencies\Include"</Command>
+      <Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Moc%27ing %(Filename)...</Message>
+      <Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">.\GeneratedFiles\moc_%(Filename).cpp</Outputs>
+      <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
+      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">"$(QTDIR)\bin\moc.exe"  "%(FullPath)" -o ".\GeneratedFiles\moc_%(Filename).cpp"  -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_DLL  "-I.\GeneratedFiles" "-I.\Include" "-I.\Dependencies\Include" "-I.\GeneratedFiles\$(ConfigurationName)\." "-I.\..\CamelotCore\Include" "-I.\..\CamelotUtility\Include" "-I.\..\Dependencies\Include"</Command>
+      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Moc%27ing %(Filename)...</Message>
+      <Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">.\GeneratedFiles\moc_%(Filename).cpp</Outputs>
+      <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(QTDIR)\bin\moc.exe;%(FullPath)</AdditionalInputs>
+    </CustomBuild>
+  </ItemGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   <ImportGroup Label="ExtensionTargets">
   <ImportGroup Label="ExtensionTargets">
   </ImportGroup>
   </ImportGroup>

+ 30 - 20
CamelotEditor/CamelotEditor.vcxproj.filters

@@ -9,10 +9,6 @@
       <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
       <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
       <Extensions>h</Extensions>
       <Extensions>h</Extensions>
     </Filter>
     </Filter>
-    <Filter Include="Form Files">
-      <UniqueIdentifier>{99349809-55BA-4b9d-BF79-8FDBB0286EB3}</UniqueIdentifier>
-      <Extensions>ui</Extensions>
-    </Filter>
     <Filter Include="Resource Files">
     <Filter Include="Resource Files">
       <UniqueIdentifier>{D9D6E242-F8AF-46E4-B9FD-80ECBC20BA3E}</UniqueIdentifier>
       <UniqueIdentifier>{D9D6E242-F8AF-46E4-B9FD-80ECBC20BA3E}</UniqueIdentifier>
       <Extensions>qrc;*</Extensions>
       <Extensions>qrc;*</Extensions>
@@ -23,15 +19,11 @@
       <Extensions>moc;h;cpp</Extensions>
       <Extensions>moc;h;cpp</Extensions>
       <SourceControlFiles>False</SourceControlFiles>
       <SourceControlFiles>False</SourceControlFiles>
     </Filter>
     </Filter>
-    <Filter Include="Generated Files\Debug">
-      <UniqueIdentifier>{65c0862c-e1b9-4a60-83bf-db64d90b8997}</UniqueIdentifier>
-      <Extensions>cpp;moc</Extensions>
-      <SourceControlFiles>False</SourceControlFiles>
+    <Filter Include="Header Files\Qt">
+      <UniqueIdentifier>{7e9abf8f-864a-43dd-85f4-8d3a270ac9c7}</UniqueIdentifier>
     </Filter>
     </Filter>
-    <Filter Include="Generated Files\Release">
-      <UniqueIdentifier>{a291b962-5a93-48d7-9fd5-36f4b0f096bd}</UniqueIdentifier>
-      <Extensions>cpp;moc</Extensions>
-      <SourceControlFiles>False</SourceControlFiles>
+    <Filter Include="Source Files\Qt">
+      <UniqueIdentifier>{7e192458-3c20-4536-878e-d4e95e2ac4c7}</UniqueIdentifier>
     </Filter>
     </Filter>
   </ItemGroup>
   </ItemGroup>
   <ItemGroup>
   <ItemGroup>
@@ -42,26 +34,44 @@
       <Filter>Source Files</Filter>
       <Filter>Source Files</Filter>
     </ClCompile>
     </ClCompile>
     <ClCompile Include="Source\CmQtEditor.cpp">
     <ClCompile Include="Source\CmQtEditor.cpp">
+      <Filter>Source Files\Qt</Filter>
+    </ClCompile>
+    <ClCompile Include="GeneratedFiles\moc_CmQtEditor.cpp">
+      <Filter>Generated Files</Filter>
+    </ClCompile>
+    <ClCompile Include="Source\CmEditorApplication.cpp">
       <Filter>Source Files</Filter>
       <Filter>Source Files</Filter>
     </ClCompile>
     </ClCompile>
-    <ClCompile Include="GeneratedFiles\Debug\moc_CmQtEditor.cpp">
-      <Filter>Generated Files\Debug</Filter>
+    <ClCompile Include="Source\CmQtProjectSelection.cpp">
+      <Filter>Source Files\Qt</Filter>
+    </ClCompile>
+    <ClCompile Include="GeneratedFiles\moc_CmQtProjectSelection.cpp">
+      <Filter>Generated Files</Filter>
     </ClCompile>
     </ClCompile>
   </ItemGroup>
   </ItemGroup>
   <ItemGroup>
   <ItemGroup>
-    <CustomBuild Include="CmEditor.ui">
-      <Filter>Form Files</Filter>
-    </CustomBuild>
     <CustomBuild Include="CmEditor.qrc">
     <CustomBuild Include="CmEditor.qrc">
       <Filter>Resource Files</Filter>
       <Filter>Resource Files</Filter>
     </CustomBuild>
     </CustomBuild>
     <CustomBuild Include="Include\CmQtEditor.h">
     <CustomBuild Include="Include\CmQtEditor.h">
-      <Filter>Header Files</Filter>
+      <Filter>Header Files\Qt</Filter>
+    </CustomBuild>
+    <CustomBuild Include="Include\CmQtProjectSelection.h">
+      <Filter>Header Files\Qt</Filter>
     </CustomBuild>
     </CustomBuild>
   </ItemGroup>
   </ItemGroup>
   <ItemGroup>
   <ItemGroup>
-    <ClInclude Include="GeneratedFiles\ui_CmEditor.h">
-      <Filter>Generated Files</Filter>
+    <ClInclude Include="Include\CmEditorPrefs.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="Include\CmLayoutManager.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="Include\CmEditorApplication.h">
+      <Filter>Header Files</Filter>
+    </ClInclude>
+    <ClInclude Include="Include\CmEditorPrerequisites.h">
+      <Filter>Header Files</Filter>
     </ClInclude>
     </ClInclude>
   </ItemGroup>
   </ItemGroup>
 </Project>
 </Project>

+ 0 - 29
CamelotEditor/CmEditor.ui

@@ -1,29 +0,0 @@
-<UI version="4.0" >
- <class>CamelotEditorClass</class>
- <widget class="QMainWindow" name="CamelotEditorClass" >
-  <property name="objectName" >
-   <string notr="true">CamelotEditorClass</string>
-  </property>
-  <property name="geometry" >
-   <rect>
-	<x>0</x>
-	<y>0</y>
-	<width>600</width>
-	<height>400</height>
-   </rect>
-  </property>
-  <property name="windowTitle" >
-   <string>CamelotEditor</string>
-  </property>
-  <widget class="QMenuBar" name="menuBar" />
-  <widget class="QToolBar" name="mainToolBar" />
-  <widget class="QWidget" name="centralWidget" />
-  <widget class="QStatusBar" name="statusBar" />
- </widget>
- <layoutDefault spacing="6" margin="11" />
- <pixmapfunction></pixmapfunction>
- <resources>
-   <include location="CmEditor.qrc"/>
- </resources>
- <connections/>
-</UI>

+ 14 - 0
CamelotEditor/Include/CmEditorApplication.h

@@ -0,0 +1,14 @@
+#pragma once
+
+#include "CmEditorPrerequisites.h"
+
+namespace CamelotEditor
+{
+	class EditorApplication
+	{
+	public:
+		void startUp();
+		void run();
+		void shutDown();
+	};
+}

+ 12 - 0
CamelotEditor/Include/CmEditorPrefs.h

@@ -0,0 +1,12 @@
+#pragma once
+
+#include "CmEditorPrerequisites.h"
+#include "CmModule.h"
+
+namespace CamelotEditor
+{
+	class EditorPrefs : public CamelotEngine::Module<EditorPrefs>
+	{
+
+	};
+}

+ 10 - 0
CamelotEditor/Include/CmEditorPrerequisites.h

@@ -0,0 +1,10 @@
+#pragma once
+
+#include "CmPrerequisites.h"
+
+namespace CamelotEditor
+{
+	class LayoutManager;
+	class EditorPrefs;
+	class EditorApplication;
+}

+ 12 - 0
CamelotEditor/Include/CmLayoutManager.h

@@ -0,0 +1,12 @@
+#pragma  once
+
+#include "CmEditorPrerequisites.h"
+#include "CmModule.h"
+
+namespace CamelotEditor
+{
+	class LayoutManager : public CamelotEngine::Module<LayoutManager>
+	{
+
+	};
+}

+ 27 - 0
CamelotEditor/Include/CmQtEditor.h

@@ -0,0 +1,27 @@
+#pragma once
+
+#include <QtWidgets/QMainWindow>
+
+namespace CamelotEditor
+{
+	class QtEditor : public QMainWindow
+	{
+		Q_OBJECT
+
+	public:
+		QtEditor(QWidget *parent = 0);
+		~QtEditor();
+
+	private:
+		QMenuBar* mMenuBar;
+		QToolBar* mMainToolBar;
+		QWidget* mCentralWidget;
+		QStatusBar* mStatusBar;
+
+		QMenu* mFileMenu;
+		QMenu* mWindowMenu;
+
+		void setupUi();
+		void retranslateUi();
+	};
+}

+ 19 - 0
CamelotEditor/Include/CmQtProjectSelection.h

@@ -0,0 +1,19 @@
+#pragma once
+
+#include <QtWidgets/QWidget>
+
+namespace CamelotEditor
+{
+	class QtProjectSelection : public QWidget
+	{
+		Q_OBJECT
+
+	public:
+		QtProjectSelection(QWidget *parent = 0);
+		~QtProjectSelection();
+
+	private:
+		void setupUi();
+		void retranslateUi();
+	};
+}

+ 32 - 0
CamelotEditor/Source/CmEditorApplication.cpp

@@ -0,0 +1,32 @@
+#include "CmEditorApplication.h"
+#include "CmLayoutManager.h"
+#include "CmEditorPrefs.h"
+#include "CmQtEditor.h"
+#include "CmQtProjectSelection.h"
+#include <QtWidgets/QApplication>
+
+using namespace CamelotEngine;
+
+namespace CamelotEditor
+{
+	void EditorApplication::startUp()
+	{
+		EditorPrefs::startUp(new EditorPrefs());
+		LayoutManager::startUp(new LayoutManager());
+	}
+
+	void EditorApplication::run()
+	{
+		int argc = 0;
+		QApplication a(argc, nullptr);
+		QtEditor w;
+		w.show();
+		a.exec();
+	}
+
+	void EditorApplication::shutDown()
+	{
+		LayoutManager::shutDown();
+		EditorPrefs::shutDown();
+	}
+}

+ 59 - 6
CamelotEditor/Source/CmQtEditor.cpp

@@ -1,12 +1,65 @@
 #include "CmQtEditor.h"
 #include "CmQtEditor.h"
+#include <QtWidgets/QMenuBar>
+#include <QtWidgets/QToolBar>
+#include <QtWidgets/QStatusBar>
+#include <QtCore/QLocale>
+#include <QtWidgets/QApplication>
 
 
-CamelotEditor::CamelotEditor(QWidget *parent)
-	: QMainWindow(parent)
+namespace CamelotEditor
 {
 {
-	ui.setupUi(this);
-}
+	QtEditor::QtEditor(QWidget *parent)
+		: QMainWindow(parent)
+	{
+		setupUi();
+	}
 
 
-CamelotEditor::~CamelotEditor()
-{
+	QtEditor::~QtEditor()
+	{
+
+	}
+
+	void QtEditor::setupUi()
+	{
+		if (objectName().isEmpty())
+			setObjectName(QStringLiteral("CamelotEditorClass"));
+
+		resize(600, 400);
+
+		mMenuBar = new QMenuBar(this);
+		mMenuBar->setObjectName(QStringLiteral("menuBar"));
+
+		setMenuBar(mMenuBar);
+		mMainToolBar = new QToolBar(this);
+		mMainToolBar->setObjectName(QStringLiteral("mainToolBar"));
 
 
+		addToolBar(mMainToolBar);
+		mCentralWidget = new QWidget(this);
+		mCentralWidget->setObjectName(QStringLiteral("centralWidget"));
+		setCentralWidget(mCentralWidget);
+
+		mStatusBar = new QStatusBar(this);
+		mStatusBar->setObjectName(QStringLiteral("statusBar"));
+		setStatusBar(mStatusBar);
+		
+		mFileMenu = new QMenu(mMenuBar);
+		mFileMenu->setObjectName(QString::fromUtf8("fileMenu"));
+
+		mWindowMenu = new QMenu(mMenuBar);
+		mWindowMenu->setObjectName(QString::fromUtf8("windowMenu"));
+
+		mMenuBar->addAction(mFileMenu->menuAction());
+		mMenuBar->addAction(mWindowMenu->menuAction());
+
+		retranslateUi();
+
+		QMetaObject::connectSlotsByName(this);
+	}
+
+	void QtEditor::retranslateUi()
+	{
+		setWindowTitle(QApplication::translate("CmQtEditor", "Camelot Editor"));
+		mFileMenu->setTitle(QApplication::translate("QtEditorTestClass", "File"));
+		mWindowMenu->setTitle(QApplication::translate("QtEditorTestClass", "Windows"));
+	}
 }
 }
+

+ 25 - 0
CamelotEditor/Source/CmQtProjectSelection.cpp

@@ -0,0 +1,25 @@
+#include "CmQtProjectSelection.h"
+
+namespace CamelotEditor
+{
+	QtProjectSelection::QtProjectSelection(QWidget *parent)
+		:QWidget(parent)
+	{
+		setupUi();
+	}
+
+	QtProjectSelection::~QtProjectSelection()
+	{
+
+	}
+
+	void QtProjectSelection::setupUi()
+	{
+		retranslateUi();
+	}
+
+	void QtProjectSelection::retranslateUi()
+	{
+
+	}
+}

+ 8 - 11
CamelotEditor/Source/main.cpp

@@ -1,7 +1,7 @@
-#include "CmQtEditor.h"
-#include <string>
-#include <QtWidgets/QApplication>
 #include <windows.h>
 #include <windows.h>
+#include "CmEditorApplication.h"
+
+using namespace CamelotEditor;
 
 
 int CALLBACK WinMain(
 int CALLBACK WinMain(
 	_In_  HINSTANCE hInstance,
 	_In_  HINSTANCE hInstance,
@@ -10,13 +10,10 @@ int CALLBACK WinMain(
 	_In_  int nCmdShow
 	_In_  int nCmdShow
 	)
 	)
 {
 {
-	int argc = 1;
-	char** argv = new char*[1];
-	argv[0] = "CamelotEditor.exe";
+	EditorApplication app;
+	app.startUp();
 
 
-	QApplication a(argc, argv);
-	CamelotEditor w;
-	w.show();
-	return a.exec();
-}
+	app.run();
 
 
+	app.shutDown();
+}

+ 2 - 2
Dependencies.txt

@@ -80,8 +80,8 @@ Compiling Qt using MSVC2012 compiler:
   1. Each header starting with CmQt* (or, more generally, each file containing Q_OBJECT) needs to be
   1. Each header starting with CmQt* (or, more generally, each file containing Q_OBJECT) needs to be
      preprocessed by MOC, and MOC output needs to be compiled with the project
      preprocessed by MOC, and MOC output needs to be compiled with the project
   2. Example command line for preprocessing a single file: 
   2. Example command line for preprocessing a single file: 
-    "$(QTDIR)\bin\moc.exe"  ".\Include\CmQtEditor.h" -o ".\GeneratedFiles\x64\Debug\moc_CmQtEditor.cpp"  
-	-DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_DLL  "-I.\GeneratedFiles" "-I.\Include" "-I.\Dependencies\Include" "-I.\GeneratedFiles\$(ConfigurationName)\." 
+    "$(QTDIR)\bin\moc.exe"  ".\Include\CmQtEditor.h" -o ".\GeneratedFiles\moc_CmQtEditor.cpp"  
+	-DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_DLL  "-I.\GeneratedFiles" "-I.\Include" "-I.\Dependencies\Include"
 	"-I.\..\CamelotRenderer\Include" "-I.\..\CamelotUtility\Include" "-I.\..\Dependencies\Include"
 	"-I.\..\CamelotRenderer\Include" "-I.\..\CamelotUtility\Include" "-I.\..\Dependencies\Include"
   3. (Optional step) With Visual Studio you can set up a custom build set so this is done automatically
   3. (Optional step) With Visual Studio you can set up a custom build set so this is done automatically
   4. (Optional step) Qt also provides a Visual Studio Add-In that handles MOC for your, although it is currently very buggy with VS2012 so I do not use it.
   4. (Optional step) Qt also provides a Visual Studio Add-In that handles MOC for your, although it is currently very buggy with VS2012 so I do not use it.

+ 24 - 1
TODOEditor.txt

@@ -1 +1,24 @@
-Get rid of the .ui file
+TODO for next few days:
+ - Layout manager that saves/restores user layout
+   - Keeps position, size ands possibly docking information for every window
+     (Main window probably needs to be handled specially)
+   - At startup all windows register with it
+   - Calling restore() will place all windows in proper positions
+   - It will also set up hooks to those windows so it gets updates when they get moved/sized/docked
+ - Project create/Project open window
+   - Shows at the start of the editor
+   - Also has hooks directly from File menu (Create project, Open project)
+ - EditorPrefs class
+   - Stores all of editor preferences, including layout information
+   - Also keeps a list of all known projects
+ - Menu bar:
+   - File->Create project, File->Open project
+   - Windows menu with a list of all windows
+     - List gets populated easily so people can write plugin windows
+	  - Plugin windows should possibly also be able to assign themselves to other Menu item than Windows
+ - Docking system
+   - All open windows can be docked/unocked
+   - Their layout data gets saved
+   - The way I handle editor windows at the moment is pretty weird with alot of custom handling for resize/move
+     - Attempt to get rid of that or at least dont use it until I have window look more fleshed out
+ - Make sure entire interface is skinnable