BsScriptEditorSettings.cpp 9.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237
  1. #include "BsScriptEditorSettings.h"
  2. #include "BsMonoManager.h"
  3. #include "BsMonoClass.h"
  4. #include "BsMonoMethod.h"
  5. #include "BsMonoUtil.h"
  6. #include "BsEditorApplication.h"
  7. #include "BsEditorSettings.h"
  8. namespace BansheeEngine
  9. {
  10. ScriptEditorSettings::ScriptEditorSettings(MonoObject* instance)
  11. :ScriptObject(instance)
  12. { }
  13. void ScriptEditorSettings::initRuntimeData()
  14. {
  15. metaData.scriptClass->addInternalCall("Internal_GetMoveHandleSnapActive", &ScriptEditorSettings::internal_GetMoveHandleSnapActive);
  16. metaData.scriptClass->addInternalCall("Internal_SetMoveHandleSnapActive", &ScriptEditorSettings::internal_SetMoveHandleSnapActive);
  17. metaData.scriptClass->addInternalCall("Internal_GetRotateHandleSnapActive", &ScriptEditorSettings::internal_GetRotateHandleSnapActive);
  18. metaData.scriptClass->addInternalCall("Internal_SetRotateHandleSnapActive", &ScriptEditorSettings::internal_SetRotateHandleSnapActive);
  19. metaData.scriptClass->addInternalCall("Internal_GetMoveHandleSnapAmount", &ScriptEditorSettings::internal_GetMoveHandleSnapAmount);
  20. metaData.scriptClass->addInternalCall("Internal_SetMoveHandleSnapAmount", &ScriptEditorSettings::internal_SetMoveHandleSnapAmount);
  21. metaData.scriptClass->addInternalCall("Internal_GetRotateHandleSnapAmount", &ScriptEditorSettings::internal_GetRotateHandleSnapAmount);
  22. metaData.scriptClass->addInternalCall("Internal_SetRotateHandleSnapAmount", &ScriptEditorSettings::internal_SetRotateHandleSnapAmount);
  23. metaData.scriptClass->addInternalCall("Internal_GetDefaultHandleSize", &ScriptEditorSettings::internal_GetDefaultHandleSize);
  24. metaData.scriptClass->addInternalCall("Internal_SetDefaultHandleSize", &ScriptEditorSettings::internal_SetDefaultHandleSize);
  25. metaData.scriptClass->addInternalCall("Internal_GetActiveSceneTool", &ScriptEditorSettings::internal_GetActiveSceneTool);
  26. metaData.scriptClass->addInternalCall("Internal_SetActiveSceneTool", &ScriptEditorSettings::internal_SetActiveSceneTool);
  27. metaData.scriptClass->addInternalCall("Internal_GetActiveCoordinateMode", &ScriptEditorSettings::internal_GetActiveCoordinateMode);
  28. metaData.scriptClass->addInternalCall("Internal_SetActiveCoordinateMode", &ScriptEditorSettings::internal_SetActiveCoordinateMode);
  29. metaData.scriptClass->addInternalCall("Internal_GetActivePivotMode", &ScriptEditorSettings::internal_GetActivePivotMode);
  30. metaData.scriptClass->addInternalCall("Internal_SetActivePivotMode", &ScriptEditorSettings::internal_SetActivePivotMode);
  31. metaData.scriptClass->addInternalCall("Internal_SetFloat", &ScriptEditorSettings::internal_SetFloat);
  32. metaData.scriptClass->addInternalCall("Internal_SetInt", &ScriptEditorSettings::internal_SetInt);
  33. metaData.scriptClass->addInternalCall("Internal_SetBool", &ScriptEditorSettings::internal_SetBool);
  34. metaData.scriptClass->addInternalCall("Internal_SetString", &ScriptEditorSettings::internal_SetString);
  35. metaData.scriptClass->addInternalCall("Internal_GetFloat", &ScriptEditorSettings::internal_GetFloat);
  36. metaData.scriptClass->addInternalCall("Internal_GetInt", &ScriptEditorSettings::internal_GetInt);
  37. metaData.scriptClass->addInternalCall("Internal_GetBool", &ScriptEditorSettings::internal_GetBool);
  38. metaData.scriptClass->addInternalCall("Internal_GetString", &ScriptEditorSettings::internal_GetString);
  39. metaData.scriptClass->addInternalCall("Internal_HasKey", &ScriptEditorSettings::internal_HasKey);
  40. metaData.scriptClass->addInternalCall("Internal_DeleteKey", &ScriptEditorSettings::internal_DeleteKey);
  41. metaData.scriptClass->addInternalCall("Internal_DeleteAllKeys", &ScriptEditorSettings::internal_DeleteAllKeys);
  42. metaData.scriptClass->addInternalCall("Internal_GetHash", &ScriptEditorSettings::internal_GetHash);
  43. }
  44. bool ScriptEditorSettings::internal_GetMoveHandleSnapActive()
  45. {
  46. EditorSettingsPtr settings = gEditorApplication().getEditorSettings();
  47. return settings->getMoveHandleSnapActive();
  48. }
  49. void ScriptEditorSettings::internal_SetMoveHandleSnapActive(bool value)
  50. {
  51. EditorSettingsPtr settings = gEditorApplication().getEditorSettings();
  52. settings->setMoveHandleSnapActive(value);
  53. }
  54. bool ScriptEditorSettings::internal_GetRotateHandleSnapActive()
  55. {
  56. EditorSettingsPtr settings = gEditorApplication().getEditorSettings();
  57. return settings->getRotateHandleSnapActive();
  58. }
  59. void ScriptEditorSettings::internal_SetRotateHandleSnapActive(bool value)
  60. {
  61. EditorSettingsPtr settings = gEditorApplication().getEditorSettings();
  62. settings->setRotateHandleSnapActive(value);
  63. }
  64. float ScriptEditorSettings::internal_GetMoveHandleSnapAmount()
  65. {
  66. EditorSettingsPtr settings = gEditorApplication().getEditorSettings();
  67. return settings->getMoveHandleSnap();
  68. }
  69. void ScriptEditorSettings::internal_SetMoveHandleSnapAmount(float value)
  70. {
  71. EditorSettingsPtr settings = gEditorApplication().getEditorSettings();
  72. settings->setMoveHandleSnap(value);
  73. }
  74. float ScriptEditorSettings::internal_GetRotateHandleSnapAmount()
  75. {
  76. EditorSettingsPtr settings = gEditorApplication().getEditorSettings();
  77. return settings->getRotationHandleSnap().valueDegrees();
  78. }
  79. void ScriptEditorSettings::internal_SetRotateHandleSnapAmount(float value)
  80. {
  81. EditorSettingsPtr settings = gEditorApplication().getEditorSettings();
  82. settings->setRotationHandleSnap(Degree(value));
  83. }
  84. float ScriptEditorSettings::internal_GetDefaultHandleSize()
  85. {
  86. EditorSettingsPtr settings = gEditorApplication().getEditorSettings();
  87. return settings->getHandleSize();
  88. }
  89. void ScriptEditorSettings::internal_SetDefaultHandleSize(float value)
  90. {
  91. EditorSettingsPtr settings = gEditorApplication().getEditorSettings();
  92. settings->setHandleSize(value);
  93. }
  94. UINT32 ScriptEditorSettings::internal_GetActiveSceneTool()
  95. {
  96. EditorSettingsPtr settings = gEditorApplication().getEditorSettings();
  97. return settings->getActiveSceneTool();
  98. }
  99. void ScriptEditorSettings::internal_SetActiveSceneTool(UINT32 value)
  100. {
  101. EditorSettingsPtr settings = gEditorApplication().getEditorSettings();
  102. settings->setActiveSceneTool(value);
  103. }
  104. UINT32 ScriptEditorSettings::internal_GetActiveCoordinateMode()
  105. {
  106. EditorSettingsPtr settings = gEditorApplication().getEditorSettings();
  107. return settings->getActiveCoordinateMode();
  108. }
  109. void ScriptEditorSettings::internal_SetActiveCoordinateMode(UINT32 value)
  110. {
  111. EditorSettingsPtr settings = gEditorApplication().getEditorSettings();
  112. settings->setActiveCoordinateMode(value);
  113. }
  114. UINT32 ScriptEditorSettings::internal_GetActivePivotMode()
  115. {
  116. EditorSettingsPtr settings = gEditorApplication().getEditorSettings();
  117. return settings->getActivePivotMode();
  118. }
  119. void ScriptEditorSettings::internal_SetActivePivotMode(UINT32 value)
  120. {
  121. EditorSettingsPtr settings = gEditorApplication().getEditorSettings();
  122. settings->setActivePivotMode(value);
  123. }
  124. void ScriptEditorSettings::internal_SetFloat(MonoString* name, float value)
  125. {
  126. String nativeName = MonoUtil::monoToString(name);
  127. EditorSettingsPtr settings = gEditorApplication().getEditorSettings();
  128. settings->setFloat(nativeName, value);
  129. }
  130. void ScriptEditorSettings::internal_SetInt(MonoString* name, int value)
  131. {
  132. String nativeName = MonoUtil::monoToString(name);
  133. EditorSettingsPtr settings = gEditorApplication().getEditorSettings();
  134. settings->setInt(nativeName, value);
  135. }
  136. void ScriptEditorSettings::internal_SetBool(MonoString* name, bool value)
  137. {
  138. String nativeName = MonoUtil::monoToString(name);
  139. EditorSettingsPtr settings = gEditorApplication().getEditorSettings();
  140. settings->setBool(nativeName, value);
  141. }
  142. void ScriptEditorSettings::internal_SetString(MonoString* name, MonoString* value)
  143. {
  144. String nativeName = MonoUtil::monoToString(name);
  145. WString nativeValue = MonoUtil::monoToWString(value);
  146. EditorSettingsPtr settings = gEditorApplication().getEditorSettings();
  147. settings->setString(nativeName, nativeValue);
  148. }
  149. float ScriptEditorSettings::internal_GetFloat(MonoString* name, float defaultValue)
  150. {
  151. String nativeName = MonoUtil::monoToString(name);
  152. EditorSettingsPtr settings = gEditorApplication().getEditorSettings();
  153. return settings->getFloat(nativeName);
  154. }
  155. int ScriptEditorSettings::internal_GetInt(MonoString* name, int defaultValue)
  156. {
  157. String nativeName = MonoUtil::monoToString(name);
  158. EditorSettingsPtr settings = gEditorApplication().getEditorSettings();
  159. return settings->getInt(nativeName);
  160. }
  161. bool ScriptEditorSettings::internal_GetBool(MonoString* name, bool defaultValue)
  162. {
  163. String nativeName = MonoUtil::monoToString(name);
  164. EditorSettingsPtr settings = gEditorApplication().getEditorSettings();
  165. return settings->getBool(nativeName);
  166. }
  167. MonoString* ScriptEditorSettings::internal_GetString(MonoString* name, MonoString* defaultValue)
  168. {
  169. String nativeName = MonoUtil::monoToString(name);
  170. EditorSettingsPtr settings = gEditorApplication().getEditorSettings();
  171. WString nativeValue = settings->getString(nativeName);
  172. return MonoUtil::wstringToMono(MonoManager::instance().getDomain(), nativeValue);
  173. }
  174. bool ScriptEditorSettings::internal_HasKey(MonoString* name)
  175. {
  176. String nativeName = MonoUtil::monoToString(name);
  177. EditorSettingsPtr settings = gEditorApplication().getEditorSettings();
  178. return settings->hasKey(nativeName);
  179. }
  180. void ScriptEditorSettings::internal_DeleteKey(MonoString* name)
  181. {
  182. String nativeName = MonoUtil::monoToString(name);
  183. EditorSettingsPtr settings = gEditorApplication().getEditorSettings();
  184. settings->deleteKey(nativeName);
  185. }
  186. void ScriptEditorSettings::internal_DeleteAllKeys()
  187. {
  188. EditorSettingsPtr settings = gEditorApplication().getEditorSettings();
  189. settings->deleteAllKeys();
  190. }
  191. UINT32 ScriptEditorSettings::internal_GetHash()
  192. {
  193. EditorSettingsPtr settings = gEditorApplication().getEditorSettings();
  194. return settings->getHash();
  195. }
  196. }