/// <summary> /// Returns the value of a named property in the portfolio to the parent property. /// </summary> /// <returns>The `KimonoProperty`'s value if found, else raises an error.</returns> /// <param name="name">Name.</param> /// <param name="userData">The `ScriptEngine` executing the script.</param> public static void Property(string name, object userData) { var property = ObiScriptPortfolio.FindProperty(name); // Found? if (property == null) { // No, set error state EvaluationResult.Successful = false; EvaluationResult.ErrorMessage = $"Error: Property '{name}' not defined in portfolio."; EvaluationResult.Value = null; } else { // Save result EvaluationResult.Successful = true; EvaluationResult.ErrorMessage = ""; // Execute any scripts on the property property.Evaluate(); // Successful? if (EvaluationResult.Successful) { // Yes, take action based on the property type if (property is KimonoPropertyBoolean) { EvaluationResult.Value = ((KimonoPropertyBoolean)property).Value; } else if (property is KimonoPropertyColor) { EvaluationResult.Value = ((KimonoPropertyColor)property).Value; } else if (property is KimonoPropertyGradient) { EvaluationResult.Value = ((KimonoPropertyGradient)property).Value; } else if (property is KimonoPropertyNumber) { EvaluationResult.Value = ((KimonoPropertyNumber)property).Value; } else if (property is KimonoPropertyNumber) { EvaluationResult.Value = ((KimonoPropertyNumber)property).Value; } else if (property is KimonoPropertyRect) { EvaluationResult.Value = ((KimonoPropertyRect)property).Value; } else if (property is KimonoPropertyStyle) { EvaluationResult.Value = ((KimonoPropertyStyle)property).Value; } else if (property is KimonoPropertyText) { EvaluationResult.Value = ((KimonoPropertyText)property).Value; } } } }
/// <summary> /// Returns a named style saved in the portfolio to the parent property. /// </summary> /// <returns>The name `KimonoStyle` if found, else raises an error.</returns> /// <param name="name">The name of the style to return.</param> /// <param name="userData">The `ScriptEngine` executing the script.</param> public static void Style(string name, object userData) { // Find the requested style object var style = ObiScriptPortfolio.FindGradient(name); // Found? if (style == null) { // No, set error state EvaluationResult.Successful = false; EvaluationResult.ErrorMessage = $"Error: Style '{name}' not defined in portfolio."; EvaluationResult.Value = null; } else { // Save result EvaluationResult.Successful = true; EvaluationResult.ErrorMessage = ""; EvaluationResult.Value = style; } }
/// <summary> /// Returns a named color saved in the portfolio to the parent property. /// </summary> /// <returns>The named `KimonoColor` if found, or raises an error.</returns> /// <param name="name">The name of the color to return.</param> /// <param name="userData">The `ScriptEngine` executing the script.</param> public static void Color(string name, object userData) { // Find the requested color object var color = ObiScriptPortfolio.FindColor(name); // Found? if (color == null) { // No, set error state EvaluationResult.Successful = false; EvaluationResult.ErrorMessage = $"Error: Color '{name}' not defined in portfolio."; EvaluationResult.Value = null; } else { // Save result EvaluationResult.Successful = true; EvaluationResult.ErrorMessage = ""; EvaluationResult.Value = color; } }