BsEditorPrerequisites.h 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  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. #if (BS_PLATFORM == BS_PLATFORM_WIN32) && !defined(__MINGW32__)
  6. # ifdef BS_ED_EXPORTS
  7. # define BS_ED_EXPORT __declspec(dllexport)
  8. # else
  9. # if defined( __MINGW32__ )
  10. # define BS_ED_EXPORT
  11. # else
  12. # define BS_ED_EXPORT __declspec(dllimport)
  13. # endif
  14. # endif
  15. #elif defined ( BS_GCC_VISIBILITY )
  16. # define BS_ED_EXPORT __attribute__ ((visibility("default")))
  17. #else
  18. # define BS_ED_EXPORT
  19. #endif
  20. namespace BansheeEngine
  21. {
  22. class EditorWindowBase;
  23. class EditorWindow;
  24. class EditorWidgetBase;
  25. class EditorWidgetContainer;
  26. class EditorWidgetManager;
  27. class EditorWidgetLayout;
  28. class ModalWindow;
  29. class GUITabbedTitleBar;
  30. class GUITabButton;
  31. class GUIWindowFrame;
  32. class GUIIntField;
  33. class GUIFloatField;
  34. class GUITextField;
  35. class GUIToggleField;
  36. class GUIVector2Field;
  37. class GUIVector3Field;
  38. class GUIVector4Field;
  39. class GUIColorField;
  40. class GUIListBoxField;
  41. class GUISliderField;
  42. class GUIColor;
  43. class GUIStatusBar;
  44. class GUIDropButton;
  45. class GUIHoverHitBox;
  46. class EditorWindowManager;
  47. class DockManager;
  48. class DockManagerLayout;
  49. class MainEditorWindow;
  50. class WindowFrameWidget;
  51. class GUIMenuBar;
  52. class GUIDockSlider;
  53. class GUISceneTreeView;
  54. class GUIResourceTreeView;
  55. class GUITreeViewEditBox;
  56. class EditorCommand;
  57. class ProjectFileMeta;
  58. class ProjectResourceMeta;
  59. class SceneGrid;
  60. class HandleSlider;
  61. class HandleSliderLine;
  62. class HandleSliderPlane;
  63. class HandleSliderDisc;
  64. class HandleSliderManager;
  65. class HandleDrawManager;
  66. class SceneCameraController;
  67. class EditorSettings;
  68. class SceneViewHandler;
  69. class SelectionRenderer;
  70. class DropDownWindow;
  71. class ProjectSettings;
  72. typedef std::shared_ptr<ProjectFileMeta> ProjectFileMetaPtr;
  73. typedef std::shared_ptr<ProjectResourceMeta> ProjectResourceMetaPtr;
  74. typedef std::shared_ptr<DockManagerLayout> DockManagerLayoutPtr;
  75. typedef std::shared_ptr<EditorWidgetLayout> EditorWidgetLayoutPtr;
  76. typedef std::shared_ptr<EditorSettings> EditorSettingsPtr;
  77. typedef std::shared_ptr<ProjectSettings> ProjectSettingsPtr;
  78. static const char* EDITOR_ASSEMBLY = "MBansheeEditor";
  79. static const char* SCRIPT_EDITOR_ASSEMBLY = "MScriptEditor";
  80. static const Path PROJECT_INTERNAL_DIR = L"Internal\\";
  81. static const Path INTERNAL_ASSEMBLY_PATH = PROJECT_INTERNAL_DIR + "Assemblies\\";
  82. /** Types of drag and drop operations. Different types specify different types of dragged data. */
  83. enum class DragAndDropType
  84. {
  85. EditorWidget = 10000,
  86. SceneObject = 10001,
  87. Resources = 10002
  88. };
  89. /**
  90. * Recognized types of external code editors.
  91. *
  92. * @see CodeEditorManager
  93. */
  94. enum class CodeEditorType
  95. {
  96. VS2008,
  97. VS2010,
  98. VS2012,
  99. VS2013,
  100. VS2015,
  101. None
  102. };
  103. /** Type IDs used by the RTTI system for the editor library. */
  104. enum TypeID_BansheeEditor
  105. {
  106. TID_ProjectFileMeta = 40000,
  107. TID_ProjectLibraryEntries = 40001,
  108. TID_ProjectLibraryResEntry = 40002,
  109. TID_ProjectLibraryDirEntry = 40003,
  110. TID_DockManagerLayout = 40004,
  111. TID_DockManagerLayoutEntry = 40005,
  112. TID_EditorWidgetLayout = 40006,
  113. TID_EditorWidgetLayoutEntry = 40007,
  114. TID_TestComponentA = 40008,
  115. TID_TestComponentB = 40009,
  116. TID_PlatformInfo = 40010,
  117. TID_WinPlatformInfo = 40011,
  118. TID_BuildData = 40012,
  119. TID_TestObjectA = 40013,
  120. TID_TestObjectB = 40014,
  121. TID_TestComponentC = 40015,
  122. TID_TestComponentD = 40016,
  123. TID_EditorSettings = 40017,
  124. TID_RecentProject = 40018,
  125. TID_Settings = 40019,
  126. TID_ProjectSettings = 40020,
  127. TID_WindowFrameWidget = 40021,
  128. TID_ProjectResourceMeta = 40022
  129. };
  130. }