Browse Source

Can access ToolEnv from JS

Josh Engebretson 10 years ago
parent
commit
4cbd52013d

+ 4 - 0
Data/AtomicEditor/Resources/EditorData/AtomicEditor/javascript/main.js

@@ -1,6 +1,10 @@
 
 var ui = require("./ui/ui");
 
+var env = Atomic.getToolEnvironment();
+
+print(env.rootSourceDir);
+
 
 ( function() {
 

+ 7 - 0
Source/AtomicEditorWork/Application/AEEditorApp.cpp

@@ -19,6 +19,11 @@
 
 using namespace ToolCore;
 
+namespace ToolCore
+{
+    extern void jsapi_init_toolcore(JSVM* vm);
+}
+
 namespace AtomicEditor
 {
 
@@ -50,6 +55,8 @@ void AEEditorApp::Start()
     vm_->InitJSContext();
     vm_->SetModuleSearchPaths("AtomicEditor/javascript");
 
+    jsapi_init_toolcore(vm_);
+
     SharedPtr<File> file (GetSubsystem<ResourceCache>()->GetFile("AtomicEditor/javascript/main.js"));
 
     if (file.Null())

+ 1 - 1
Source/AtomicEditorWork/CMakeLists.txt

@@ -28,7 +28,7 @@ endif(APPLE)
 
 add_executable(AtomicEditorWork ${EXE_TYPE} ${SOURCE_FILES} ${ATOMIC_EDITOR_ICON})
 
-target_link_libraries(AtomicEditorWork ToolCore AtomicJS Poco nativefiledialog ${ATOMIC_LINK_LIBRARIES})
+target_link_libraries(AtomicEditorWork ToolCore AtomicJS ToolCoreJS Poco nativefiledialog ${ATOMIC_LINK_LIBRARIES})
 
 if (APPLE)
     set (TARGET_PROPERTIES MACOSX_BUNDLE_INFO_PLIST MacOSXBundleInfo.plist.template)

+ 0 - 2
Source/ToolCore/ToolEnvironment.h

@@ -42,8 +42,6 @@ public:
 
     const String& GetDeploymentDataDir() { return toolBinary_; }
 
-    const String& GetMacPlayerDeploymentBinary();
-
     const String& GetExamplesDir() { return examplesDir_; }
 
     const String& GetDevConfigFilename();

+ 3 - 1
Source/ToolCoreJS/CMakeLists.txt

@@ -17,6 +17,8 @@ endforeach()
 
 file (GLOB JAVASCRIPT_BINDINGS_SOURCE ${CMAKE_SOURCE_DIR}/Build/Source/Generated/${JAVASCRIPT_BINDINGS_PLATFORM}/Javascript/Packages/ToolCore/*.cpp)
 
-add_library(ToolCoreJS ${SOURCE_FILES} ${JAVASCRIPT_BINDINGS_SOURCE})
+set (SOURCE_FILES ${SOURCE_FILES} ${JAVASCRIPT_BINDINGS_SOURCE} )
+
+add_library(ToolCoreJS ${SOURCE_FILES})
 
 target_link_libraries(ToolCoreJS ToolCore)

+ 41 - 0
Source/ToolCoreJS/ToolCoreJS.cpp

@@ -0,0 +1,41 @@
+
+#include <AtomicJS/Javascript/JSVM.h>
+#include <ToolCore/ToolEnvironment.h>
+
+using namespace Atomic;
+
+namespace Atomic
+{
+
+    extern void jsb_package_toolcore_init(JSVM* vm);
+
+}
+
+namespace ToolCore
+{
+
+static int js_atomic_GetToolEnvironment(duk_context* ctx)
+{
+    JSVM* vm = JSVM::GetJSVM(ctx);
+    js_push_class_object_instance(ctx, vm->GetSubsystem<ToolEnvironment>());
+    return 1;
+}
+
+void jsapi_init_toolcore(JSVM* vm)
+{
+    jsb_package_toolcore_init(vm);
+
+    duk_context* ctx = vm->GetJSContext();
+
+    duk_get_global_string(ctx, "Atomic");
+
+    duk_push_c_function(ctx, js_atomic_GetToolEnvironment, 0);
+    duk_put_prop_string(ctx, -2, "getToolEnvironment");
+
+    duk_pop(ctx);
+
+}
+
+}
+
+