static ScriptParm ScriptObjectToMeta(ScriptObject meta) { ScriptParm scriptParm; if (meta.ScriptObjectProxy != null) { scriptParm = new ScriptParm { Category = (int)ScriptParmCategory.ScriptObject, Type = "ScriptObject", Value = meta.ScriptObjectProxy.Handle } } ; else { scriptParm = new ScriptParm { Category = (int)ScriptParmCategory.ScriptObject, Type = meta.GetType().ToString(), Value = meta } }; return(scriptParm); }
static ScriptParm ParmToMetaData(object parm, ConvertEnum enumConversionType = ConvertEnum.Default) { ScriptParm scriptParm; // Let's handle null parameters // example of this is BrowserWindow.SetMenu(null) so the menu does not show if (parm == null) { scriptParm = new ScriptParm { Category = (int)ScriptParmCategory.ScriptValue, Type = "null", Value = parm } } ; else if (IsScriptObject(parm)) { scriptParm = ScriptObjectToMeta((ScriptObject)parm); } else if (IsScriptableType(parm)) { scriptParm = ScriptableTypeToMeta(parm); } else if (IsCallback(parm)) { scriptParm = CallBackToMeta(parm); } else if (IsArrayOfScriptableType(parm)) { scriptParm = ScriptableTypeArrayToMeta(parm); } else if (parm.GetType().IsEnum) { scriptParm = EnumToMeta(parm, enumConversionType); } else { scriptParm = new ScriptParm { Category = (int)ScriptParmCategory.ScriptValue, Type = parm.GetType().ToString(), Value = parm } }; return(scriptParm); }