Пример #1
0
        protected override void GenerateElements()
        {
            if (Value == null)
            {
                return;
            }

            if (isArray)
            {
                Array array = (Array)Value;
                for (int i = 0; i < array.Length; i++)
                {
                    InspectorField elementDrawer = Inspector.CreateDrawerForType(elementType, drawArea, Depth + 1);
                    if (elementDrawer == null)
                    {
                        break;
                    }

                    int j = i;
                    elementDrawer.BindTo(elementType, string.Empty, () => ((Array)Value).GetValue(j), (value) =>
                    {
                        Array _array = (Array)Value;
                        _array.SetValue(value, j);
                        Value = _array;
                    });

                    elementDrawer.NameRaw = Inspector.ArrayIndicesStartAtOne ? (i + 1) + ":" : i + ":";
                    elements.Add(elementDrawer);
                }
            }
            else
            {
                IList list = (IList)Value;
                for (int i = 0; i < list.Count; i++)
                {
                    InspectorField elementDrawer = Inspector.CreateDrawerForType(elementType, drawArea, Depth + 1);
                    if (elementDrawer == null)
                    {
                        break;
                    }

                    int    j            = i;
                    string variableName = Inspector.ArrayIndicesStartAtOne ? (i + 1) + ":" : i + ":";
                    elementDrawer.BindTo(elementType, variableName, () => ((IList)Value)[j], (value) =>
                    {
                        IList _list = (IList)Value;
                        _list[j]    = value;
                        Value       = _list;
                    });

                    elements.Add(elementDrawer);
                }
            }

            sizeInput.Text = "" + Length;
        }
Пример #2
0
        protected InspectorField CreateDrawer(Type variableType, string variableName, Getter getter, Setter setter, bool drawObjectsAsFields = true)
        {
            InspectorField variableDrawer = Inspector.CreateDrawerForType(variableType, drawArea, Depth + 1, drawObjectsAsFields);

            if (variableDrawer != null)
            {
                variableDrawer.BindTo(variableType, variableName, getter, setter);
                elements.Add(variableDrawer);
            }

            return(variableDrawer);
        }
Пример #3
0
        protected InspectorField CreateDrawerForVariable(MemberInfo variable, string variableName = null)
        {
            Type           variableType   = variable is FieldInfo ? ((FieldInfo)variable).FieldType : ((PropertyInfo)variable).PropertyType;
            InspectorField variableDrawer = Inspector.CreateDrawerForType(variableType, drawArea, Depth + 1, true, variable);

            if (variableDrawer != null)
            {
                variableDrawer.BindTo(this, variable, variableName);
                elements.Add(variableDrawer);
            }

            return(variableDrawer);
        }
Пример #4
0
        public ExposedMethodField CreateExposedMethodButton(ExposedMethod method, Getter getter, Setter setter)
        {
            ExposedMethodField methodDrawer = (ExposedMethodField)Inspector.CreateDrawerForType(typeof(ExposedMethod), drawArea, Depth + 1, false);

            if (methodDrawer != null)
            {
                methodDrawer.BindTo(typeof(ExposedMethod), string.Empty, getter, setter);
                methodDrawer.SetBoundMethod(method);

                exposedMethods.Add(methodDrawer);
            }

            return(methodDrawer);
        }
Пример #5
0
        public InspectorField CreateDrawer(Type variableType, string variableName, Getter getter, Setter setter, bool drawObjectsAsFields = true)
        {
            InspectorField variableDrawer = Inspector.CreateDrawerForType(variableType, drawArea, Depth + 1, drawObjectsAsFields);

            if (variableDrawer != null)
            {
                variableDrawer.BindTo(variableType, variableName == null ? null : string.Empty, getter, setter);
                if (variableName != null)
                {
                    variableDrawer.NameRaw = variableName;
                }

                elements.Add(variableDrawer);
            }

            return(variableDrawer);
        }
Пример #6
0
        protected InspectorField CreateDrawerForComponent(Component component, string variableName = null)
        {
            InspectorField variableDrawer = Inspector.CreateDrawerForType(component.GetType(), drawArea, Depth + 1, false);

            if (variableDrawer != null)
            {
                if (variableName == null)
                {
                    variableName = component.GetType().Name + " component";
                }

                variableDrawer.BindTo(component.GetType(), string.Empty, () => component, (value) => { });
                variableDrawer.NameRaw = variableName;

                elements.Add(variableDrawer);
            }

            return(variableDrawer);
        }
Пример #7
0
        private void GenerateMethods()
        {
            ExposedMethod[] methods = BoundVariableType.GetExposedMethods();
            if (methods != null)
            {
                bool isInitialized = Value != null && !Value.Equals(null);
                for (int i = 0; i < methods.Length; i++)
                {
                    ExposedMethod method = methods[i];
                    if ((isInitialized && method.VisibleWhenInitialized) || (!isInitialized && method.VisibleWhenUninitialized))
                    {
                        ExposedMethodField methodDrawer = (ExposedMethodField)Inspector.CreateDrawerForType(typeof(ExposedMethod), drawArea, Depth + 1, false);
                        if (methodDrawer != null)
                        {
                            methodDrawer.BindTo(typeof(ExposedMethod), string.Empty, () => Value, (value) => Value = value);
                            methodDrawer.SetBoundMethod(method);

                            exposedMethods.Add(methodDrawer);
                        }
                    }
                }
            }
        }
Пример #8
0
        protected override void GenerateElements()
        {
            if (Value == null)
            {
                return;
            }

            if (isArray)
            {
                Array array = (Array)Value;
                for (int i = 0; i < array.Length; i++)
                {
                    InspectorField elementDrawer = Inspector.CreateDrawerForType(elementType, drawArea, Depth + 1);
                    if (elementDrawer == null)
                    {
                        break;
                    }

                    int j = i;
                    elementDrawer.BindTo(elementType, string.Empty, () => ((Array)Value).GetValue(j), (value) =>
                    {
                        Array _array = (Array)Value;
                        _array.SetValue(value, j);
                        Value = _array;
                    });

                    if (i < elementsExpandedStates.Count && elementsExpandedStates[i] && elementDrawer is ExpandableInspectorField)
                    {
                        ((ExpandableInspectorField)elementDrawer).IsExpanded = true;
                    }

                    elementDrawer.NameRaw = Inspector.ArrayIndicesStartAtOne ? ((i + 1) + ":") : (i + ":");
                    elements.Add(elementDrawer);
                }
            }
            else
            {
                IList list = (IList)Value;
                for (int i = 0; i < list.Count; i++)
                {
                    InspectorField elementDrawer = Inspector.CreateDrawerForType(elementType, drawArea, Depth + 1);
                    if (elementDrawer == null)
                    {
                        break;
                    }

                    int    j            = i;
                    string variableName = Inspector.ArrayIndicesStartAtOne ? ((i + 1) + ":") : (i + ":");
                    elementDrawer.BindTo(elementType, variableName, () => ((IList)Value)[j], (value) =>
                    {
                        IList _list = (IList)Value;
                        _list[j]    = value;
                        Value       = _list;
                    });

                    if (i < elementsExpandedStates.Count && elementsExpandedStates[i] && elementDrawer is ExpandableInspectorField)
                    {
                        ((ExpandableInspectorField)elementDrawer).IsExpanded = true;
                    }

                    elements.Add(elementDrawer);
                }
            }

            sizeInput.Text = Length.ToString(RuntimeInspectorUtils.numberFormat);
            elementsExpandedStates.Clear();
        }