コード例 #1
0
        private void SetChildrenImpl(IEnumerable <MemberInfo> members, bool verifyReflectedType)
        {
            foreach (var member in members)
            {
                if (verifyReflectedType && !member.ReflectedType.IsAssignableFrom(ValueType))
                {
                    var msg = string.Format(
                        @"Member of ""{0}"" expected, got ""{1}"".",
                        ValueType, member.ReflectedType);
                    throw new ArgumentException(msg, "members");
                }

                var child = GetChild(member);
                if (child != null)
                {
                    continue;
                }

                var childName  = member.Name;
                var childState = DrawerStates.Get(HierarchicalName + '.' + childName);
                child = ValueDrawer.Create(
                    member.DeclaringType, MemberInfoUtil.MemberTypeOf(member), childName, null, childState);
                Assert.IsTrue(AddMapping(member, child), string.Format(
                                  @"Failed to add member mapping from ""{0}"" to ""{1}"".", member, child.HierarchicalName));
            }
        }
コード例 #2
0
ファイル: Drawer.cs プロジェクト: xenosl/DebugInspector
        protected virtual void ResetVisibility(bool bySavedStates)
        {
            var state = bySavedStates ? DrawerStates.Get(HierarchicalName) : null;

            SelfVisible     = state != null ? state.SelfVisible : DefaultSelfVisible;
            ChildrenVisible = state != null ? state.ChildrenVisible : IsRoot;
        }
コード例 #3
0
ファイル: Drawer.cs プロジェクト: xenosl/DebugInspector
        public bool ApplySavedState()
        {
            var state = DrawerStates.Get(HierarchicalName);

            if (state == null)
            {
                return(false);
            }
            ApplyState(state);
            return(true);
        }