AEEditorJS.cpp 1003 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. #include <AtomicJS/Javascript/JSVM.h>
  2. #include "../Application/AEPreferences.h"
  3. #include "../EditorMode/AEEditorMode.h"
  4. using namespace Atomic;
  5. namespace Atomic
  6. {
  7. extern void jsb_package_editor_init(JSVM* vm);
  8. }
  9. namespace AtomicEditor
  10. {
  11. static int Editor_GetPreferences(duk_context* ctx)
  12. {
  13. JSVM* vm = JSVM::GetJSVM(ctx);
  14. js_push_class_object_instance(ctx, vm->GetSubsystem<AEPreferences>(), "AEPreferences");
  15. return 1;
  16. }
  17. void jsapi_init_editor(JSVM* vm)
  18. {
  19. duk_context* ctx = vm->GetJSContext();
  20. duk_push_object(ctx);
  21. duk_push_c_function(ctx, Editor_GetPreferences, 0);
  22. duk_put_prop_string(ctx, -2, "getPreferences");
  23. duk_put_global_string(ctx, "Editor");
  24. jsb_package_editor_init(vm);
  25. duk_get_global_string(ctx, "Atomic");
  26. if (vm->GetContext()->GetEditorContext()) {
  27. js_push_class_object_instance(ctx, vm->GetSubsystem<EditorMode>(), "EditorMode");
  28. duk_put_prop_string(ctx, -2, "editorMode");
  29. }
  30. duk_pop(ctx);
  31. }
  32. }