internal static StylePropertyId[] GetPropertyIds(StyleSheet sheet, int ruleIndex) { SheetHandleKey key = new SheetHandleKey(sheet, ruleIndex); StylePropertyId[] propertyIds; if (!s_RulePropertyIdsCache.TryGetValue(key, out propertyIds)) { StyleRule rule = sheet.rules[ruleIndex]; propertyIds = new StylePropertyId[rule.properties.Length]; for (int i = 0; i < propertyIds.Length; i++) { propertyIds[i] = GetPropertyId(rule, i); } s_RulePropertyIdsCache.Add(key, propertyIds); } return(propertyIds); }
internal static int GetEnumValue <T>(StyleSheet sheet, StyleValueHandle handle) { Debug.Assert(handle.valueType == StyleValueType.Enum); SheetHandleKey key = new SheetHandleKey(sheet, handle.valueIndex); int value = 0; if (!s_EnumToIntCache.TryGetValue(key, out value)) { if (TryParseEnum <T>(sheet.ReadEnum(handle), out value)) { s_EnumToIntCache.Add(key, value); return(value); } } return(value); }
internal static int GetEnumValue <T>(StyleSheet sheet, StyleValueHandle handle) { Debug.Assert(handle.valueType == StyleValueType.Enum); SheetHandleKey key = new SheetHandleKey(sheet, handle.valueIndex); int value; if (!s_EnumToIntCache.TryGetValue(key, out value)) { string enumValueName = sheet.ReadEnum(handle).Replace("-", string.Empty); object enumValue = Enum.Parse(typeof(T), enumValueName, true); value = (int)enumValue; s_EnumToIntCache.Add(key, value); } Debug.Assert(Enum.GetName(typeof(T), value) != null); return(value); }