BsEditorPrerequisites.h 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255
  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. * Functionality specific to the Banshee Editor.
  10. * @{
  11. */
  12. /** @defgroup Application-Editor Application
  13. * Entry point into the editor application.
  14. */
  15. /** @defgroup Build Build
  16. * Building (publishing) the game from within the editor.
  17. */
  18. /** @defgroup CodeEditor CodeEditor
  19. * Integration of the Banshee Editor with external code editors.
  20. */
  21. /** @defgroup EditorWindow EditorWindow
  22. * Creating, managing and interacting with editor windows.
  23. */
  24. /** @defgroup GUI-Editor GUI
  25. * Editor specific GUI elements.
  26. */
  27. /** @defgroup Handles Handles
  28. * Creating and interacting with handles (scene tools).
  29. */
  30. /** @defgroup Library Library
  31. * Management of all resources (assets) within a project.
  32. */
  33. /** @cond RTTI */
  34. /** @defgroup RTTI-Impl-Editor RTTI types
  35. * Types containing RTTI for specific classes.
  36. */
  37. /** @endcond */
  38. /** @defgroup Scene-Editor Scene
  39. * Rendering/interacting with the scene view in editor.
  40. */
  41. /** @defgroup Settings Settings
  42. * Persistent settings for editor and project.
  43. */
  44. /** @defgroup Testing-Editor Testing
  45. * Contains editor unit tests.
  46. */
  47. /** @defgroup UndoRedo UndoRedo
  48. * Undoing and redoing actions within the editor.
  49. */
  50. /** @defgroup Utility-Editor Utility
  51. * Various utility methods and types used by the editor layer.
  52. */
  53. /** @} */
  54. /** @} */
  55. /** @addtogroup Internals
  56. * @{
  57. */
  58. /** @defgroup Internal-Editor Editor
  59. * Functionality specific to the Banshee Editor.
  60. * @{
  61. */
  62. /** @defgroup CodeEditor-Internal CodeEditor
  63. * Integration of the Banshee Editor with external code editors.
  64. */
  65. /** @defgroup EditorWindow-Internal EditorWindow
  66. * Creating, managing and interacting with editor windows.
  67. */
  68. /** @defgroup GUI-Editor-Internal GUI
  69. * Editor specific GUI elements.
  70. */
  71. /** @defgroup Handles-Internal Handles
  72. * Creating and interacting with handles (scene tools).
  73. */
  74. /** @defgroup Library-Internal Library
  75. * Management of all resources (assets) within a project.
  76. */
  77. /** @defgroup Scene-Editor-Internal Scene
  78. * Rendering/interacting with the scene view in editor.
  79. */
  80. /** @} */
  81. /** @} */
  82. // DLL export
  83. #if BS_PLATFORM == BS_PLATFORM_WIN32 // Windows
  84. # if BS_COMPILER == BS_COMPILER_MSVC
  85. # if defined(BS_STATIC_LIB)
  86. # define BS_ED_EXPORT
  87. # else
  88. # if defined(BS_ED_EXPORTS)
  89. # define BS_ED_EXPORT __declspec(dllexport)
  90. # else
  91. # define BS_ED_EXPORT __declspec(dllimport)
  92. # endif
  93. # endif
  94. # else
  95. # if defined(BS_STATIC_LIB)
  96. # define BS_ED_EXPORT
  97. # else
  98. # if defined(BS_ED_EXPORTS)
  99. # define BS_ED_EXPORT __attribute__ ((dllexport))
  100. # else
  101. # define BS_ED_EXPORT __attribute__ ((dllimport))
  102. # endif
  103. # endif
  104. # endif
  105. # define BS_ED_HIDDEN
  106. #else // Linux/Mac settings
  107. # define BS_ED_EXPORT __attribute__ ((visibility ("default")))
  108. # define BS_ED_HIDDEN __attribute__ ((visibility ("hidden")))
  109. #endif
  110. namespace bs
  111. {
  112. class EditorWindowBase;
  113. class EditorWindow;
  114. class EditorWidgetBase;
  115. class EditorWidgetContainer;
  116. class EditorWidgetManager;
  117. class EditorWidgetLayout;
  118. class ModalWindow;
  119. class GUITabbedTitleBar;
  120. class GUITabButton;
  121. class GUIWindowFrame;
  122. class GUIIntField;
  123. class GUIFloatField;
  124. class GUITextField;
  125. class GUIToggleField;
  126. class GUIVector2Field;
  127. class GUIVector3Field;
  128. class GUIVector4Field;
  129. class GUIColorField;
  130. class GUIListBoxField;
  131. class GUISliderField;
  132. class GUIColor;
  133. class GUIStatusBar;
  134. class GUIDropButton;
  135. class GUIHoverHitBox;
  136. class EditorWindowManager;
  137. class DockManager;
  138. class DockManagerLayout;
  139. class MainEditorWindow;
  140. class WindowFrameWidget;
  141. class GUIMenuBar;
  142. class GUIDockSlider;
  143. class GUISceneTreeView;
  144. class GUIResourceTreeView;
  145. class GUITreeViewEditBox;
  146. class EditorCommand;
  147. class ProjectFileMeta;
  148. class ProjectResourceMeta;
  149. class SceneGrid;
  150. class HandleSlider;
  151. class HandleSliderLine;
  152. class HandleSliderPlane;
  153. class HandleSliderDisc;
  154. class HandleSliderManager;
  155. class HandleDrawManager;
  156. class SceneCameraController;
  157. class EditorSettings;
  158. class SceneViewHandler;
  159. class SelectionRenderer;
  160. class DropDownWindow;
  161. class ProjectSettings;
  162. class GUIColorGradient;
  163. class GUIColorGradientField;
  164. static constexpr const char* EDITOR_ASSEMBLY = "MBansheeEditor";
  165. static constexpr const char* SCRIPT_EDITOR_ASSEMBLY = "MScriptEditor";
  166. static constexpr const char* EDITOR_NS = "bs.Editor";
  167. static const Path PROJECT_INTERNAL_DIR = u8"Internal/";
  168. static const Path INTERNAL_ASSEMBLY_PATH = PROJECT_INTERNAL_DIR + "Assemblies/";
  169. /** Types of drag and drop operations. Different types specify different types of dragged data. */
  170. enum class DragAndDropType
  171. {
  172. EditorWidget = 10000,
  173. SceneObject = 10001,
  174. Resources = 10002
  175. };
  176. /**
  177. * Recognized types of external code editors.
  178. *
  179. * @see CodeEditorManager
  180. */
  181. enum class CodeEditorType
  182. {
  183. VS2008,
  184. VS2010,
  185. VS2012,
  186. VS2013,
  187. VS2015,
  188. VS2017,
  189. MonoDevelop,
  190. None
  191. };
  192. /** Type IDs used by the RTTI system for the editor library. */
  193. enum TypeID_BansheeEditor
  194. {
  195. TID_ProjectFileMeta = 40000,
  196. TID_ProjectLibraryEntries = 40001,
  197. TID_ProjectLibraryResEntry = 40002,
  198. TID_ProjectLibraryDirEntry = 40003,
  199. TID_DockManagerLayout = 40004,
  200. TID_DockManagerLayoutEntry = 40005,
  201. TID_EditorWidgetLayout = 40006,
  202. TID_EditorWidgetLayoutEntry = 40007,
  203. TID_TestComponentA = 40008,
  204. TID_TestComponentB = 40009,
  205. TID_PlatformInfo = 40010,
  206. TID_WinPlatformInfo = 40011,
  207. TID_BuildData = 40012,
  208. TID_TestObjectA = 40013,
  209. TID_TestObjectB = 40014,
  210. TID_TestComponentC = 40015,
  211. TID_TestComponentD = 40016,
  212. TID_EditorSettings = 40017,
  213. TID_RecentProject = 40018,
  214. TID_Settings = 40019,
  215. TID_ProjectSettings = 40020,
  216. TID_WindowFrameWidget = 40021,
  217. TID_ProjectResourceMeta = 40022,
  218. TID_SettingsValue = 40023,
  219. TID_SettingsObjectValue = 40024
  220. };
  221. BS_LOG_CATEGORY(Editor, 60)
  222. }