BsEditorPrerequisites.h 5.2 KB

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