| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- #include "BsScriptCodeEditor.h"
- #include "BsScriptMeta.h"
- #include "BsMonoField.h"
- #include "BsMonoClass.h"
- #include "BsMonoMethod.h"
- #include "BsMonoManager.h"
- #include "BsMonoUtil.h"
- #include "BsCodeEditor.h"
- using namespace std::placeholders;
- namespace BansheeEngine
- {
- ScriptCodeEditor::ScriptCodeEditor(MonoObject* instance)
- :ScriptObject(instance)
- { }
- void ScriptCodeEditor::initRuntimeData()
- {
- metaData.scriptClass->addInternalCall("Internal_SetActiveEditor", &ScriptCodeEditor::internal_SetActiveEditor);
- metaData.scriptClass->addInternalCall("Internal_GetAvailableEditors", &ScriptCodeEditor::internal_GetAvailableEditors);
- metaData.scriptClass->addInternalCall("Internal_OpenFile", &ScriptCodeEditor::internal_OpenFile);
- metaData.scriptClass->addInternalCall("Internal_SyncSolution", &ScriptCodeEditor::internal_SyncSolution);
- }
- void ScriptCodeEditor::internal_SetActiveEditor(CodeEditorType type)
- {
- CodeEditorManager::instance().setActive(type);
- }
- MonoArray* ScriptCodeEditor::internal_GetAvailableEditors()
- {
- Vector<CodeEditorType> availableEditors = CodeEditorManager::instance().getAvailableEditors();
- ScriptArray outArray = ScriptArray::create<UINT32>((UINT32)availableEditors.size());
- UINT32 idx = 0;
- for (auto& entry : availableEditors)
- outArray.set(idx, (UINT32)entry);
- return outArray.getInternal();
- }
- void ScriptCodeEditor::internal_OpenFile(MonoString* path, UINT32 line)
- {
- Path filePath = MonoUtil::monoToWString(path);
- CodeEditorManager::instance().openFile(filePath, line);
- }
- void ScriptCodeEditor::internal_SyncSolution()
- {
- CodeEditorManager::instance().syncSolution();
- }
- }
|