コード例 #1
0
ファイル: AGSInspector.cs プロジェクト: saizant/MonoAGS
 private string getReadonlyNodeText(InspectorProperty property)
 {
     return($"{property.Name}: {property.Value}");
 }
コード例 #2
0
ファイル: AGSInspector.cs プロジェクト: saizant/MonoAGS
        private ITreeStringNode addToTree(InspectorProperty property, ITreeStringNode parent)
        {
            if (property.IsReadonly)
            {
                return(addReadonlyNodeToTree(property, parent));
            }
            IInspectorPropertyEditor editor;

            var propType = property.Prop.PropertyType;

            if (propType == typeof(bool))
            {
                editor = new BoolPropertyEditor(_factory);
            }

            else if (propType == typeof(int))
            {
                editor = new NumberPropertyEditor(_factory, true, false);
            }
            else if (propType == typeof(float))
            {
                editor = new NumberPropertyEditor(_factory, false, false);
            }
            else if (propType == typeof(SizeF))
            {
                editor = new SizeFPropertyEditor(_factory, false);
            }
            else if (propType == typeof(Size))
            {
                editor = new SizePropertyEditor(_factory, false);
            }
            else if (propType == typeof(PointF))
            {
                editor = new PointFPropertyEditor(_factory, false);
            }
            else if (propType == typeof(Point))
            {
                editor = new PointPropertyEditor(_factory, false);
            }
            else if (propType == typeof(Vector2))
            {
                editor = new Vector2PropertyEditor(_factory, false);
            }
            else if (propType == typeof(ILocation))
            {
                var entity   = _currentEntity;
                var drawable = entity == null ? null : entity.GetComponent <IDrawableInfoComponent>();
                editor = new LocationPropertyEditor(_factory, false, _settings, drawable);
            }
            else if (propType == typeof(RectangleF))
            {
                editor = new RectangleFPropertyEditor(_factory, false);
            }
            else if (propType == typeof(Rectangle))
            {
                editor = new RectanglePropertyEditor(_factory, false);
            }

            else if (propType == typeof(int?))
            {
                editor = new NumberPropertyEditor(_factory, true, true);
            }
            else if (propType == typeof(float?))
            {
                editor = new NumberPropertyEditor(_factory, false, true);
            }
            else if (propType == typeof(SizeF?))
            {
                editor = new SizeFPropertyEditor(_factory, true);
            }
            else if (propType == typeof(Size?))
            {
                editor = new SizePropertyEditor(_factory, true);
            }
            else if (propType == typeof(PointF?))
            {
                editor = new PointFPropertyEditor(_factory, true);
            }
            else if (propType == typeof(Point?))
            {
                editor = new PointPropertyEditor(_factory, true);
            }
            else if (propType == typeof(Vector2?))
            {
                editor = new Vector2PropertyEditor(_factory, true);
            }
            else if (propType == typeof(RectangleF?))
            {
                editor = new RectangleFPropertyEditor(_factory, true);
            }
            else if (propType == typeof(Rectangle?))
            {
                editor = new RectanglePropertyEditor(_factory, true);
            }

            else
            {
                var typeInfo = propType.GetTypeInfo();
                if (typeInfo.IsEnum)
                {
                    editor = new EnumPropertyEditor(_factory.UI);
                }
                else
                {
                    editor = new StringPropertyEditor(_factory.UI);
                }
            }

            ITreeStringNode node = new InspectorTreeNode(property, editor);

            return(addToTree(node, parent));
        }
コード例 #3
0
ファイル: AGSInspector.cs プロジェクト: saizant/MonoAGS
        private void addToTree(ITreeStringNode parent, InspectorProperty prop)
        {
            var node = addToTree(prop, parent);

            addChildrenToTree(node, prop);
        }