示例#1
0
 public void BeginDrawHeader(MightySerializedField serializedField, BaseArrayDecoratorAttribute baseAttribute)
 {
     if (PositionByMember(serializedField, baseAttribute).Contains(ArrayDecoratorPosition.BeforeHeader))
     {
         DrawDecorator(serializedField, (T)baseAttribute);
     }
 }
示例#2
0
 public void EndDrawElement(MightySerializedField serializedField, int index, BaseArrayDecoratorAttribute baseAttribute)
 {
     if (PositionByMember(serializedField, baseAttribute).Contains(ArrayDecoratorPosition.AfterElements))
     {
         DrawDecoratorElement(serializedField, index, (T)baseAttribute);
     }
 }
示例#3
0
        void IArrayDecoratorDrawer.EndDrawElement(MightySerializedField serializedField, int index,
                                                  BaseArrayDecoratorAttribute baseAttribute)
        {
            var decoratorPosition = PositionByMember(serializedField, baseAttribute);

            if (decoratorPosition.Contains(ArrayDecoratorPosition.After | ArrayDecoratorPosition.AfterElements))
            {
                DrawDecoratorElement(serializedField, index, (ShowAssetPreviewAttribute)baseAttribute);
            }
        }
示例#4
0
        public void EndDrawHeader(MightySerializedField serializedField, BaseArrayDecoratorAttribute baseAttribute)
        {
            var position = PositionByMember(serializedField, baseAttribute);

            if (position.Contains(ArrayDecoratorPosition.AfterHeader) ||
                position.Contains(ArrayDecoratorPosition.AfterHeaderFoldout) && serializedField.IsExpanded &&
                serializedField.ArraySize > 0)
            {
                DrawDecorator(serializedField, (T)baseAttribute);
            }
        }
示例#5
0
        Rect IArrayDecoratorDrawer.BeginDrawElement(Rect position, MightySerializedField serializedField, int index,
                                                    BaseArrayDecoratorAttribute baseAttribute)
        {
            var decoratorPosition = PositionByMember(serializedField, baseAttribute);

            if (decoratorPosition.Contains(ArrayDecoratorPosition.Before | ArrayDecoratorPosition.BeforeElements))
            {
                position = DrawDecoratorElement(position, serializedField, index, (ShowAssetPreviewAttribute)baseAttribute);
            }

            return(position);
        }
示例#6
0
        protected override void EnableSerializeFieldDrawer(MightySerializedField serializedField, T attribute)
        {
            var property = serializedField.Property;

            if (!serializedField.GetInfoFromMember <ArrayOption>(attribute.Target, attribute.OptionsCallback, out var optionsInfo))
            {
                optionsInfo = new MightyInfo <ArrayOption>(attribute.Options);
            }

            if (!serializedField.TryGetAttributes <BaseArrayDecoratorAttribute>(out var decoratorAttributes))
            {
                decoratorAttributes = new BaseArrayDecoratorAttribute[0];
            }

            m_optionsCache[serializedField]     = optionsInfo;
            m_decorationsCache[serializedField] = decoratorAttributes;
        }
示例#7
0
        float IArrayDecoratorDrawer.GetElementHeight(MightySerializedField serializedField, int index,
                                                     BaseArrayDecoratorAttribute baseAttribute)
        {
            var position = PositionByMember(serializedField, baseAttribute);

            var decoratorHeight = GetDecoratorHeight(serializedField, index, (ShowAssetPreviewAttribute)baseAttribute);
            var elementHeight   = 0f;

            if (position.Contains(ArrayDecoratorPosition.Before | ArrayDecoratorPosition.BeforeElements))
            {
                elementHeight += decoratorHeight;
            }
            if (position.Contains(ArrayDecoratorPosition.After | ArrayDecoratorPosition.AfterElements))
            {
                elementHeight += decoratorHeight;
            }

            return(elementHeight);
        }
示例#8
0
        public float GetElementHeight(MightySerializedField serializedField, int index, BaseArrayDecoratorAttribute baseAttribute)
        {
            var position        = PositionByMember(serializedField, baseAttribute);
            var decoratorHeight = GetDecoratorHeight(serializedField, index, (T)baseAttribute);
            var elementHeight   = 0f;

            if (position.Contains(ArrayDecoratorPosition.BeforeElements))
            {
                elementHeight += decoratorHeight;
            }

            if (index != 0 && position.Contains(ArrayDecoratorPosition.BetweenElements))
            {
                elementHeight += decoratorHeight;
            }

            if (position.Contains(ArrayDecoratorPosition.AfterElements))
            {
                elementHeight += decoratorHeight;
            }

            return(elementHeight);
        }
示例#9
0
        public Rect BeginDrawElement(Rect rect, MightySerializedField serializedField, int index, BaseArrayDecoratorAttribute baseAttribute)
        {
            var attribute = (T)baseAttribute;

            var position = PositionByMember(serializedField, attribute);

            if (position.Contains(ArrayDecoratorPosition.BeforeElements))
            {
                rect = DrawDecoratorElement(rect, serializedField, index, attribute);
            }

            if (index != 0 && position.Contains(ArrayDecoratorPosition.BetweenElements))
            {
                rect = DrawDecoratorElement(rect, serializedField, index, attribute);
            }

            return(rect);
        }
示例#10
0
        public void BeginDrawElement(MightySerializedField serializedField, int index, BaseArrayDecoratorAttribute baseAttribute)
        {
            var attribute = (T)baseAttribute;

            var position = PositionByMember(serializedField, attribute);

            if (position.Contains(ArrayDecoratorPosition.BeforeElements))
            {
                DrawDecoratorElement(serializedField, index, attribute);
            }

            if (index != 0 && position.Contains(ArrayDecoratorPosition.BetweenElements))
            {
                DrawDecoratorElement(serializedField, index, attribute);
            }
        }
示例#11
0
 void IArrayDecoratorDrawer.EndDrawHeader(MightySerializedField serializedField, BaseArrayDecoratorAttribute baseAttribute)
 {
 }
示例#12
0
 void IArrayDecoratorDrawer.BeginDrawArray(MightySerializedField serializedField, BaseArrayDecoratorAttribute baseAttribute)
 {
 }
示例#13
0
 public void EndDrawMember(MightySerializedField serializedField, BaseArrayDecoratorAttribute baseAttribute,
                           MightyDrawer.PropertyDrawCallback propertyDrawCallback = null, BasePropertyDrawerAttribute drawerAttribute = null) =>
 EndDrawMember(serializedField, (T)baseAttribute, propertyDrawCallback, drawerAttribute);
示例#14
0
 public void EndDrawArray(MightySerializedField serializedField, BaseArrayDecoratorAttribute baseAttribute) =>
 EndDraw(serializedField, (T)baseAttribute);
示例#15
0
 public ArrayDecoratorPosition PositionByMember(BaseMightyMember mightyMember, BaseArrayDecoratorAttribute baseAttribute)
 {
     if (!m_positionCache.Contains(mightyMember))
     {
         EnableDrawer(mightyMember, baseAttribute);
     }
     return(m_positionCache[mightyMember].Value);
 }
示例#16
0
 Rect IArrayDecoratorDrawer.EndDrawElement(Rect position, MightySerializedField serializedField, int index,
                                           BaseArrayDecoratorAttribute baseAttribute) => position;
示例#17
0
        public Rect EndDrawElement(Rect rect, MightySerializedField serializedField, int index, BaseArrayDecoratorAttribute baseAttribute)
        {
            if (PositionByMember(serializedField, baseAttribute).Contains(ArrayDecoratorPosition.AfterElements))
            {
                rect = DrawDecoratorElement(rect, serializedField, index, (T)baseAttribute);
            }

            return(rect);
        }
示例#18
0
 void IArrayDecoratorDrawer.EndDrawElement(MightySerializedField serializedField, int index,
                                           BaseArrayDecoratorAttribute baseAttribute) => EndLayout(serializedField, (T)baseAttribute);
示例#19
0
 float IArrayDecoratorDrawer.GetElementHeight(MightySerializedField serializedField, int index,
                                              BaseArrayDecoratorAttribute baseAttribute) => 0;