예제 #1
0
        public void EndGroup(BaseMightyMember mightyMember, bool canDraw)
        {
            if (!canDraw)
            {
                return;
            }

            EndGroupImpl(IndentLevelForMember(mightyMember));
            MightyColorUtilities.EndBackgroundColor();
            MightyColorUtilities.EndContentColor();
        }
예제 #2
0
        protected override void Enable(BaseMightyMember mightyMember, OrderAttribute attribute)
        {
            var target = attribute.Target;

            if (!mightyMember.GetInfoFromMember(target, attribute.OrderCallback, out MightyInfo<short> info))
                info = mightyMember.GetInfoFromMember(target, attribute.OrderCallback, out MightyInfo<int> intInfo)
                    ? new MightyInfo<short>(intInfo, (short) intInfo.Value)
                    : new MightyInfo<short>(attribute.Order);

            m_orderCache[mightyMember] = info;
        }
예제 #3
0
        void IRefreshDrawer.RefreshDrawer(BaseMightyMember mightyMember, BaseMightyAttribute mightyAttribute)
        {
            base.RefreshDrawer(mightyMember, mightyAttribute);

            if (!m_headerCache.Contains(mightyMember))
            {
                EnableDrawer(mightyMember, mightyAttribute);
                return;
            }

            m_headerCache[mightyMember]?.RefreshValue();
        }
예제 #4
0
        protected override void Enable(BaseMightyMember mightyMember, TitleAttribute attribute)
        {
            base.Enable(mightyMember, attribute);

            if (!attribute.TitleAsCallback ||
                !mightyMember.GetInfoFromMember <string>(attribute.Target, attribute.Title, out var headerInfo))
            {
                headerInfo = new MightyInfo <string>(attribute.Title);
            }

            m_headerCache[mightyMember] = headerInfo;
        }
예제 #5
0
        public bool CanDraw(BaseMightyMember mightyMember, BaseFoldGroupAttribute attribute)
        {
            if (!m_colorsCache.Contains(mightyMember))
            {
                EnableDrawer(mightyMember, attribute);
            }
            var(background, content) = m_colorsCache[mightyMember];

            MightyColorUtilities.BeginBackgroundColor(background.Value);
            MightyColorUtilities.BeginContentColor(content.Value);

            return(m_foldoutStateCache[mightyMember, mightyMember.GroupID] =
                       BeginFoldout(GetFoldoutStateByProperty(mightyMember), attribute.DrawName ? mightyMember.GroupName : "",
                                    IndentLevelForMember(mightyMember), (T)attribute));
        }
예제 #6
0
        public void RefreshDrawer(BaseMightyMember mightyMember, BaseMightyAttribute mightyAttribute)
        {
            if (!m_orderCache.Contains(mightyMember))
            {
                EnableDrawer(mightyMember, mightyAttribute);

                mightyMember.Context.Drawer.ReorderMembers();
                throw MightyExceptionUtilities.AbortAfterReorderMembers;
            }

            var order = m_orderCache[mightyMember];
            var value = order.Value;
            if (order.RefreshValue() == value) return;

            mightyMember.Context.Drawer.ReorderMembers();
            throw MightyExceptionUtilities.AbortAfterReorderMembers;
        }
예제 #7
0
        protected override void DrawDecorator(BaseMightyMember mightyMember, HelpBoxAttribute attribute)
        {
            if (!m_helpBoxCache.Contains(mightyMember))
            {
                EnableDrawer(mightyMember, attribute);
            }
            var visibleInfo = m_helpBoxCache[mightyMember];

            if (visibleInfo.Value)
            {
                MightyGUIUtilities.DrawHelpBox(attribute.Message, attribute.Type);
            }
            else
            {
                MightyGUIUtilities.DrawHelpBox($"{nameof(HelpBoxAttribute)} needs a valid boolean condition to work");
            }
        }
예제 #8
0
 public abstract void ApplyPropertyMeta(BaseMightyMember mightyMember, BaseMetaAttribute metaAttribute);
예제 #9
0
 protected abstract void EndDraw(BaseMightyMember mightyMember, T attribute);
예제 #10
0
 protected override void Enable(BaseMightyMember mightyMember, BaseAlignAttribute attribute)
 {
 }
예제 #11
0
 public abstract void InitDrawer(BaseMightyMember mightyMember, BaseMightyAttribute mightyAttribute);
예제 #12
0
 public void EndDrawAnywhere(BaseMightyMember mightyMember, IDrawAnywhereAttribute baseAttribute) =>
 MightyStyleUtilities.SetBoldDefaultFont(false);
예제 #13
0
 public void BeginDrawAnywhere(BaseMightyMember mightyMember, IDrawAnywhereAttribute baseAttribute) =>
 BeginDraw(mightyMember, (TitleAttribute)baseAttribute);
예제 #14
0
 public abstract void ValidateProperty(BaseMightyMember mightyMember, BaseValidatorAttribute baseAttribute);
예제 #15
0
 public void EnableDrawer(BaseMightyMember mightyMember, BaseMightyAttribute attribute) => Enable(mightyMember, (T)attribute);
예제 #16
0
 public void EndEnable(BaseMightyMember mightyMember, BaseEnableConditionAttribute baseAttribute) =>
 EndEnable(mightyMember, (T)baseAttribute);
예제 #17
0
 public void BeginGroup(BaseMightyMember mightyMember) => BeginGroupImpl(IndentLevelForMember(mightyMember));
예제 #18
0
 protected override bool CanDraw(BaseMightyMember mightyMember, HideIfEmptyAttribute attribute) =>
 !(mightyMember is MightySerializedField serializedField) ||
예제 #19
0
 public bool CanDraw(BaseMightyMember mightyMember, BaseShowConditionAttribute attribute) =>
 CanDraw(mightyMember, (T)attribute);
예제 #20
0
 protected abstract void BeginEnable(BaseMightyMember mightyMember, T attribute);
예제 #21
0
 public abstract void EndDraw(BaseMightyMember mightyMember, BaseDecoratorAttribute baseAttribute);
예제 #22
0
 protected abstract bool CanDraw(BaseMightyMember mightyMember, T attribute);
예제 #23
0
 protected override void EndDraw(BaseMightyMember mightyMember, BoldAttribute attribute) =>
 MightyStyleUtilities.SetBoldDefaultFont(false);
예제 #24
0
 public override void InitDrawer(BaseMightyMember mightyMember, BaseMightyAttribute mightyAttribute)
 {
 }
예제 #25
0
파일: HideDrawer.cs 프로젝트: Nama3/madrace
 protected override bool CanDraw(BaseMightyMember mightyMember, HideAttribute attribute) => false;
예제 #26
0
 public override void EndDraw(BaseMightyMember mightyMember, BaseDecoratorAttribute baseAttribute) =>
 EditorDrawUtility.SetBoldDefaultFont(false);
예제 #27
0
 protected override void EndDraw(BaseMightyMember mightyMember, BaseAlignAttribute attribute) =>
 MightyGUIUtilities.EndDrawAlign(attribute.Align);
예제 #28
0
 public abstract bool CanDrawProperty(BaseMightyMember mightyMember, BaseDrawConditionAttribute baseAttribute);
예제 #29
0
 public void EndDrawAnywhere(BaseMightyMember mightyMember, IDrawAnywhereAttribute baseAttribute) =>
 EndDraw(mightyMember, (BaseAlignAttribute)baseAttribute);
예제 #30
0
 public void EndDraw(BaseMightyMember mightyMember, BaseDecoratorAttribute baseAttribute) =>
 EndDraw(mightyMember, (T)baseAttribute);