コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }