void ScriptGUIToggle::internal_createInstance(MonoObject* instance, MonoObject* content, MonoObject* monoToggleGroup, MonoString* style, MonoArray* guiOptions) { GUIOptions options; ScriptArray scriptArray(guiOptions); UINT32 arrayLen = scriptArray.size(); for (UINT32 i = 0; i < arrayLen; i++) options.addOption(scriptArray.get<GUIOption>(i)); ScriptGUIToggleGroup* scriptToggleGroup = nullptr; SPtr<GUIToggleGroup> toggleGroup; if (monoToggleGroup != nullptr) { scriptToggleGroup = ScriptGUIToggleGroup::toNative(monoToggleGroup); toggleGroup = scriptToggleGroup->getInternalValue(); } GUIContent nativeContent(ScriptGUIContent::getText(content), ScriptGUIContent::getImage(content), ScriptGUIContent::getTooltip(content)); GUIToggle* guiToggle = GUIToggle::create(nativeContent, toggleGroup, options, toString(MonoUtil::monoToWString(style))); guiToggle->onClick.connect(std::bind(&ScriptGUIToggle::onClick, instance)); guiToggle->onHover.connect(std::bind(&ScriptGUIToggle::onHover, instance)); guiToggle->onOut.connect(std::bind(&ScriptGUIToggle::onOut, instance)); guiToggle->onToggled.connect(std::bind(&ScriptGUIToggle::onToggled, instance, std::placeholders::_1)); guiToggle->onDoubleClick.connect(std::bind(&ScriptGUIToggle::onDoubleClick, instance)); new (bs_alloc<ScriptGUIToggle>()) ScriptGUIToggle(instance, guiToggle); }
void ScriptGUIToggleField::internal_createInstance(MonoObject* instance, MonoObject* title, UINT32 titleWidth, MonoString* style, MonoArray* guiOptions, bool withTitle) { GUIOptions options; ScriptArray scriptArray(guiOptions); UINT32 arrayLen = scriptArray.size(); for (UINT32 i = 0; i < arrayLen; i++) options.addOption(scriptArray.get<GUIOption>(i)); String styleName = toString(MonoUtil::monoToWString(style)); GUIToggleField* guiField = nullptr; if (withTitle) { GUIContent nativeContent(ScriptGUIContent::getText(title), ScriptGUIContent::getImage(title), ScriptGUIContent::getTooltip(title)); guiField = GUIToggleField::create(nativeContent, titleWidth, options, styleName); } else { guiField = GUIToggleField::create(options, styleName); } guiField->onValueChanged.connect(std::bind(&ScriptGUIToggleField::onChanged, instance, _1)); new (bs_alloc<ScriptGUIToggleField>()) ScriptGUIToggleField(instance, guiField); }
void ScriptGUIResourceField::internal_createInstance(MonoObject* instance, MonoReflectionType* type, __GUIContentInterop* title, UINT32 titleWidth, MonoString* style, MonoArray* guiOptions, bool withTitle) { GUIOptions options; ScriptArray scriptArray(guiOptions); UINT32 arrayLen = scriptArray.size(); for (UINT32 i = 0; i < arrayLen; i++) options.addOption(scriptArray.get<GUIOption>(i)); String styleName = MonoUtil::monoToString(style); ::MonoClass* monoClass = MonoUtil::getClass(type); String typeNamespace; String typeName; MonoUtil::getClassName(monoClass, typeNamespace, typeName); GUIResourceField* guiResourceField = nullptr; if (withTitle) { GUIContent nativeContent = ScriptGUIContent::fromInterop(*title); guiResourceField = GUIResourceField::create(typeNamespace, typeName, nativeContent, titleWidth, options, styleName); } else { guiResourceField = GUIResourceField::create(typeNamespace, typeName, options, styleName); } auto nativeInstance = new (bs_alloc<ScriptGUIResourceField>()) ScriptGUIResourceField(instance, guiResourceField); guiResourceField->onValueChanged.connect(std::bind(&ScriptGUIResourceField::onChanged, nativeInstance, _1)); }
MonoObject* ScriptSerializableProperty::internal_createManagedArrayInstance(ScriptSerializableProperty* nativeInstance, MonoArray* sizes) { ScriptArray scriptArray(sizes); Vector<UINT32> nativeSizes; UINT32 arrayLen = scriptArray.size(); for (UINT32 i = 0; i < arrayLen; i++) nativeSizes.push_back(scriptArray.get<UINT32>(i)); SPtr<ManagedSerializableTypeInfoArray> arrayTypeInfo = std::static_pointer_cast<ManagedSerializableTypeInfoArray>(nativeInstance->mTypeInfo); return ManagedSerializableArray::createManagedInstance(arrayTypeInfo, nativeSizes); }
void ScriptGUIProgressBar::internal_createInstance(MonoObject* instance, MonoString* style, MonoArray* guiOptions) { GUIOptions options; ScriptArray scriptArray(guiOptions); UINT32 arrayLen = scriptArray.size(); for (UINT32 i = 0; i < arrayLen; i++) options.addOption(scriptArray.get<GUIOption>(i)); GUIProgressBar* progressBar = GUIProgressBar::create(options, MonoUtil::monoToString(style)); new (bs_alloc<ScriptGUIProgressBar>()) ScriptGUIProgressBar(instance, progressBar); }
void ScriptGUICanvas::internal_createInstance(MonoObject* instance, MonoString* style, MonoArray* guiOptions) { GUIOptions options; ScriptArray scriptArray(guiOptions); UINT32 arrayLen = scriptArray.size(); for (UINT32 i = 0; i < arrayLen; i++) options.addOption(scriptArray.get<GUIOption>(i)); GUICanvas* guiCanvas = GUICanvas::create(options, toString(MonoUtil::monoToWString(style))); new (bs_alloc<ScriptGUICanvas>()) ScriptGUICanvas(instance, guiCanvas); }
void ScriptGUILabel::internal_createInstance(MonoObject* instance, MonoObject* content, MonoString* style, MonoArray* guiOptions) { GUIOptions options; ScriptArray scriptArray(guiOptions); UINT32 arrayLen = scriptArray.size(); for (UINT32 i = 0; i < arrayLen; i++) options.addOption(scriptArray.get<GUIOption>(i)); GUIContent nativeContent(ScriptGUIContent::getText(content), ScriptGUIContent::getImage(content), ScriptGUIContent::getTooltip(content)); GUILabel* guiLabel = GUILabel::create(nativeContent, options, toString(MonoUtil::monoToWString(style))); new (bs_alloc<ScriptGUILabel>()) ScriptGUILabel(instance, guiLabel); }
void ScriptGUISceneTreeView::internal_createInstance(MonoObject* instance, MonoString* style, MonoArray* guiOptions) { GUIOptions options; ScriptArray scriptArray(guiOptions); UINT32 arrayLen = scriptArray.size(); for (UINT32 i = 0; i < arrayLen; i++) options.addOption(scriptArray.get<GUIOption>(i)); String styleName = toString(MonoUtil::monoToWString(style)); GUISceneTreeView* treeView = GUISceneTreeView::create(options); new (bs_alloc<ScriptGUISceneTreeView>()) ScriptGUISceneTreeView(instance, treeView); }
void ScriptEditorUtility::internal_CalculateArrayCenter(MonoArray* objects, Vector3* center) { Vector<HSceneObject> sceneObjects; ScriptArray scriptArray(objects); UINT32 arrayLen = scriptArray.size(); for (UINT32 i = 0; i < arrayLen; i++) { MonoObject* curObject = scriptArray.get<MonoObject*>(i); ScriptSceneObject* scriptSO = ScriptSceneObject::toNative(curObject); if (scriptSO != nullptr) sceneObjects.push_back(static_object_cast<SceneObject>(scriptSO->getNativeHandle())); } *center = EditorUtility::calculateCenter(sceneObjects); }
void ScriptGUITexture::internal_createInstance(MonoObject* instance, MonoObject* texture, GUIImageScaleMode scale, bool transparent, MonoString* style, MonoArray* guiOptions) { GUIOptions options; ScriptArray scriptArray(guiOptions); UINT32 arrayLen = scriptArray.size(); for (UINT32 i = 0; i < arrayLen; i++) options.addOption(scriptArray.get<GUIOption>(i)); HSpriteTexture nativeTexture; if(texture != nullptr) nativeTexture = ScriptSpriteTexture::toNative(texture)->getHandle(); GUITexture* guiTexture = GUITexture::create(nativeTexture, scale, transparent, options, toString(MonoUtil::monoToWString(style))); new (bs_alloc<ScriptGUITexture>()) ScriptGUITexture(instance, guiTexture); }
void ScriptSelection::internal_SetSceneObjectSelection(MonoArray* selection) { Vector<HSceneObject> sceneObjects; if (selection != nullptr) { ScriptArray scriptArray(selection); UINT32 arrayLen = scriptArray.size(); for (UINT32 i = 0; i < arrayLen; i++) { MonoObject* monoSO = scriptArray.get<MonoObject*>(i); ScriptSceneObject* scriptSO = ScriptSceneObject::toNative(monoSO); if (scriptSO == nullptr) continue; HSceneObject so = static_object_cast<SceneObject>(scriptSO->getNativeHandle()); sceneObjects.push_back(so); } } Selection::instance().setSceneObjects(sceneObjects); }