private static YogaValue ToYogaValue(JValue value) { if (value == null || value.Type == JTokenType.Null || value.Type == JTokenType.Undefined) { return(YogaValue.Undefined()); } if (value.Type == JTokenType.String) { var s = value.Value <string>(); if (s == "auto") { return(YogaValue.Auto()); } if (s.EndsWith("%")) { return(YogaValue.Percent(float.Parse(s.Substring(0, s.Length - 1)))); } throw new InvalidOperationException( Invariant($"Unknown value: '{s}'")); } return(YogaValue.Point(value.Value <float>())); }
internal static YogaValue ToYogaValue(this StyleLength styleValue) { if (styleValue.keyword == StyleKeyword.Auto) { return(YogaValue.Auto()); } // For max-width and max-height if (styleValue.keyword == StyleKeyword.None) { return(float.NaN); } var length = styleValue.value; switch (length.unit) { case LengthUnit.Pixel: return(YogaValue.Point(length.value)); case LengthUnit.Percent: return(YogaValue.Percent(length.value)); default: Debug.LogAssertion($"Unexpected unit '{length.unit}'"); return(float.NaN); } }
internal static YogaValue ToYogaValue(this Length length) { if (length.IsAuto()) { return(YogaValue.Auto()); } // For max-width and max-height if (length.IsNone()) { return(float.NaN); } switch (length.unit) { case LengthUnit.Pixel: return(YogaValue.Point(length.value)); case LengthUnit.Percent: return(YogaValue.Percent(length.value)); default: Debug.LogAssertion($"Unexpected unit '{length.unit}'"); return(float.NaN); } }
private object ParseFromPositioningLiteral(string str) { float x, y; if (str.Contains("top")) { x = 0.5f; y = 1; if (str.Contains("left")) { x = 0; } if (str.Contains("right")) { x = 1; } } else if (str.Contains("bottom")) { x = 0.5f; y = 0; if (str.Contains("left")) { x = 0; } if (str.Contains("right")) { x = 1; } } else if (str.Contains("left")) { x = 0; y = 0.5f; } else if (str.Contains("right")) { x = 1; y = 0.5f; } else if (str.Contains("center")) { x = 0.5f; y = 0.5f; } else { return(SpecialNames.CantParse); } return(new YogaValue2(YogaValue.Percent(x * 100), YogaValue.Percent(y * 100))); }
YogaValue DrawYogaValue(YogaValue value, GUIStyle style = null, params GUILayoutOption[] options) { var str = ""; var valueStr = IsNegativeZero(value.Value) ? "-0" : $"{value.Value}"; if (value.Unit == YogaUnit.Auto) { str = "auto"; } else if (value.Unit == YogaUnit.Percent) { str = $"{valueStr}%"; } else if (value.Unit == YogaUnit.Point) { str = $"{valueStr}"; } var res = EditorGUILayout.DelayedTextField(str, style ?? GUI.skin.textField, options); if (res == "auto") { return(YogaValue.Undefined()); } var trimmed = new Regex("[^\\d\\.-]").Replace(res, ""); var canParse = float.TryParse(trimmed, out var fval); if (trimmed == "-" || trimmed == "-0") { fval = -0f; } if (trimmed.Length > 0 && (canParse || trimmed == "-")) { if (res.EndsWith("%")) { return(YogaValue.Percent(fval)); } return(YogaValue.Point(fval)); } return(YogaValue.Undefined()); }
public static YogaValue?NormalizeYogaValue(object value) { if (value == null) { return(YogaValue.Undefined()); } else if (value is YogaValue c) { return(c); } else if (value is double d) { return(YogaValue.Point((float)d)); } else if (value is int i) { return(YogaValue.Point(i)); } else if (value is float v) { return(YogaValue.Point(v)); } else if (value is string s) { if (s == "auto") { return(YogaValue.Auto()); } else if (s.EndsWith("%")) { return(YogaValue.Percent(float.Parse(s.Replace("%", "")))); } else { return(YogaValue.Point(float.Parse(s))); } } else { return(value as YogaValue?); } }
public static YogaValue StyleLengthToYogaValue(StyleLength value) { if (value.keyword == StyleKeyword.Auto) { return(YogaValue.Auto()); } if (value.keyword == StyleKeyword.Null || value.keyword == StyleKeyword.None || value.keyword == StyleKeyword.Initial) { return(YogaValue.Undefined()); } if (value.value.unit == LengthUnit.Percent) { return(YogaValue.Percent(value.value.value)); } if (value.value.unit == LengthUnit.Pixel) { return(YogaValue.Point(value.value.value)); } return(YogaValue.Undefined()); }
internal static YogaValue ToYogaValue(this StyleLength styleValue) { bool flag = styleValue.keyword == StyleKeyword.Auto; YogaValue result; if (flag) { result = YogaValue.Auto(); } else { bool flag2 = styleValue.keyword == StyleKeyword.None; if (flag2) { result = float.NaN; } else { Length value = styleValue.value; LengthUnit unit = value.unit; LengthUnit lengthUnit = unit; if (lengthUnit != LengthUnit.Pixel) { if (lengthUnit != LengthUnit.Percent) { Debug.LogAssertion(string.Format("Unexpected unit '{0}'", value.unit)); result = float.NaN; } else { result = YogaValue.Percent(value.value); } } else { result = YogaValue.Point(value.value); } } } return(result); }
public object FromString(string value) { if (value == "auto") { return(YogaValue.Auto()); } else if (value.EndsWith("%")) { if (float.TryParse(value.Replace("%", ""), NumberStyles.Float, culture, out var parsedValue)) { return(YogaValue.Percent(parsedValue)); } return(SpecialNames.CantParse); } if (float.TryParse(PxRegex.Replace(value, ""), NumberStyles.Float, culture, out var parsedValue2)) { return(YogaValue.Point(parsedValue2)); } return(SpecialNames.CantParse); }
static YogaValue ParseYogaValue(string value) { if (value.EndsWith("%")) { return(YogaValue.Percent(float.Parse(value.Substring(0, value.Length - 1)))); } else if (value.EndsWith("pt")) { return(YogaValue.Point(float.Parse(value.Substring(0, value.Length - 2)))); } else if (float.TryParse(value, out float result)) { return(YogaValue.Point(result)); } else if (value == "auto") { return(YogaValue.Auto); } else { return(YogaValue.Undefined); } }
public static YogaValue Percent(this int value) { return(YogaValue.Percent(value)); }