BsEditorPrerequisites.h 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202
  1. //********************************** Banshee Engine (www.banshee3d.com) **************************************************//
  2. //**************** Copyright (c) 2016 Marko Pintera ([email protected]). All rights reserved. **********************//
  3. #pragma once
  4. #include "BsPrerequisites.h"
  5. /** @addtogroup Layers
  6. * @{
  7. */
  8. /** @defgroup Editor Editor
  9. * Provides functionality specific to the Banshee Editor.
  10. * @{
  11. */
  12. /** @defgroup EditorWindow EditorWindow
  13. * Functionality for creating, managing and interacting with editor windows.
  14. */
  15. /** @defgroup Utility-Editor Utility
  16. * Various utility methods and types used by the editor layer.
  17. */
  18. /** @defgroup GUI-Editor GUI
  19. * Editor specific GUI elements.
  20. */
  21. /** @defgroup Build Build
  22. * Functionality for building (publishing) the game from within the editor.
  23. */
  24. /** @defgroup CodeEditor CodeEditor
  25. * Functionality for integrating the Banshee Editor with external code editors (for example Visual Studio).
  26. */
  27. /** @defgroup Handles Handles
  28. * Functionality creating and interacting with handles (for example move/rotate/scale and custom tools).
  29. */
  30. /** @defgroup Library Library
  31. * Management of all resources (assets) within a project.
  32. */
  33. /** @defgroup RTTI-Impl-Editor RTTI types
  34. * Types containing RTTI for specific classes.
  35. */
  36. /** @defgroup Scene-Editor Scene
  37. * Functionality for rendering/interacting with the scene view in editor.
  38. */
  39. /** @defgroup Settings Settings
  40. * Persistent settings for editor and project.
  41. */
  42. /** @defgroup Testing-Editor Testing
  43. * Contains editor unit tests.
  44. */
  45. /** @defgroup UndoRedo UndoRedo
  46. * Provides functionality for undoing and redoing actions within the editor.
  47. */
  48. /** @defgroup Application-Editor Application
  49. * Entry point into the editor application.
  50. */
  51. /** @} */
  52. /** @} */
  53. #if (BS_PLATFORM == BS_PLATFORM_WIN32) && !defined(__MINGW32__)
  54. # ifdef BS_ED_EXPORTS
  55. # define BS_ED_EXPORT __declspec(dllexport)
  56. # else
  57. # if defined( __MINGW32__ )
  58. # define BS_ED_EXPORT
  59. # else
  60. # define BS_ED_EXPORT __declspec(dllimport)
  61. # endif
  62. # endif
  63. #elif defined ( BS_GCC_VISIBILITY )
  64. # define BS_ED_EXPORT __attribute__ ((visibility("default")))
  65. #else
  66. # define BS_ED_EXPORT
  67. #endif
  68. namespace BansheeEngine
  69. {
  70. class EditorWindowBase;
  71. class EditorWindow;
  72. class EditorWidgetBase;
  73. class EditorWidgetContainer;
  74. class EditorWidgetManager;
  75. class EditorWidgetLayout;
  76. class ModalWindow;
  77. class GUITabbedTitleBar;
  78. class GUITabButton;
  79. class GUIWindowFrame;
  80. class GUIIntField;
  81. class GUIFloatField;
  82. class GUITextField;
  83. class GUIToggleField;
  84. class GUIVector2Field;
  85. class GUIVector3Field;
  86. class GUIVector4Field;
  87. class GUIColorField;
  88. class GUIListBoxField;
  89. class GUISliderField;
  90. class GUIColor;
  91. class GUIStatusBar;
  92. class GUIDropButton;
  93. class GUIHoverHitBox;
  94. class EditorWindowManager;
  95. class DockManager;
  96. class DockManagerLayout;
  97. class MainEditorWindow;
  98. class WindowFrameWidget;
  99. class GUIMenuBar;
  100. class GUIDockSlider;
  101. class GUISceneTreeView;
  102. class GUIResourceTreeView;
  103. class GUITreeViewEditBox;
  104. class EditorCommand;
  105. class ProjectFileMeta;
  106. class ProjectResourceMeta;
  107. class SceneGrid;
  108. class HandleSlider;
  109. class HandleSliderLine;
  110. class HandleSliderPlane;
  111. class HandleSliderDisc;
  112. class HandleSliderManager;
  113. class HandleDrawManager;
  114. class SceneCameraController;
  115. class EditorSettings;
  116. class SceneViewHandler;
  117. class SelectionRenderer;
  118. class DropDownWindow;
  119. class ProjectSettings;
  120. typedef std::shared_ptr<ProjectFileMeta> ProjectFileMetaPtr;
  121. typedef std::shared_ptr<ProjectResourceMeta> ProjectResourceMetaPtr;
  122. typedef std::shared_ptr<DockManagerLayout> DockManagerLayoutPtr;
  123. typedef std::shared_ptr<EditorWidgetLayout> EditorWidgetLayoutPtr;
  124. typedef std::shared_ptr<EditorSettings> EditorSettingsPtr;
  125. typedef std::shared_ptr<ProjectSettings> ProjectSettingsPtr;
  126. static const char* EDITOR_ASSEMBLY = "MBansheeEditor";
  127. static const char* SCRIPT_EDITOR_ASSEMBLY = "MScriptEditor";
  128. static const Path PROJECT_INTERNAL_DIR = L"Internal\\";
  129. static const Path INTERNAL_ASSEMBLY_PATH = PROJECT_INTERNAL_DIR + "Assemblies\\";
  130. /** Types of drag and drop operations. Different types specify different types of dragged data. */
  131. enum class DragAndDropType
  132. {
  133. EditorWidget = 10000,
  134. SceneObject = 10001,
  135. Resources = 10002
  136. };
  137. /**
  138. * Recognized types of external code editors.
  139. *
  140. * @see CodeEditorManager
  141. */
  142. enum class CodeEditorType
  143. {
  144. VS2008,
  145. VS2010,
  146. VS2012,
  147. VS2013,
  148. VS2015,
  149. None
  150. };
  151. /** Type IDs used by the RTTI system for the editor library. */
  152. enum TypeID_BansheeEditor
  153. {
  154. TID_ProjectFileMeta = 40000,
  155. TID_ProjectLibraryEntries = 40001,
  156. TID_ProjectLibraryResEntry = 40002,
  157. TID_ProjectLibraryDirEntry = 40003,
  158. TID_DockManagerLayout = 40004,
  159. TID_DockManagerLayoutEntry = 40005,
  160. TID_EditorWidgetLayout = 40006,
  161. TID_EditorWidgetLayoutEntry = 40007,
  162. TID_TestComponentA = 40008,
  163. TID_TestComponentB = 40009,
  164. TID_PlatformInfo = 40010,
  165. TID_WinPlatformInfo = 40011,
  166. TID_BuildData = 40012,
  167. TID_TestObjectA = 40013,
  168. TID_TestObjectB = 40014,
  169. TID_TestComponentC = 40015,
  170. TID_TestComponentD = 40016,
  171. TID_EditorSettings = 40017,
  172. TID_RecentProject = 40018,
  173. TID_Settings = 40019,
  174. TID_ProjectSettings = 40020,
  175. TID_WindowFrameWidget = 40021,
  176. TID_ProjectResourceMeta = 40022
  177. };
  178. }