Ejemplo n.º 1
0
        public BoundPropertyInfo AddObject(object obj, Inst.CachedProperty property)
        {
            var bound = new BoundPropertyInfo(obj, property);

            Objects.Add(obj, bound);
            return(bound);
        }
Ejemplo n.º 2
0
 public EnumEditorViewModel(object obj, Inst.CachedProperty propDesc) : base(obj, propDesc)
 {
     _items = System.Enum.GetValues(propDesc.PropertyType).Cast <object>().Select(x => new EnumItem
     {
         Value = x,
         Text  = System.Enum.GetName(propDesc.PropertyType, x)
     }).ToList();
 }
Ejemplo n.º 3
0
        public NumberEditorViewModel(object obj, Inst.CachedProperty propDesc) : base(obj, propDesc)
        {
            var rangeAttr = propDesc.Range;

            if (rangeAttr != null)
            {
                Lower        = rangeAttr.Min;
                Upper        = rangeAttr.Max;
                TextBoxWidth = 50;
                IsRanged     = true;
            }
        }
Ejemplo n.º 4
0
        public TypeEditorViewModel(object obj, Inst.CachedProperty propDesc, object data) : base(obj, propDesc)
        {
            var filter = (string)data;

            switch (filter)
            {
            case "Enum":
                Items = Inst.TypeDictionary.Values.Where(t => t.IsEnum).Select(t => t.Type);
                break;

            default:
                throw new ArgumentOutOfRangeException(nameof(filter), "Unsupported type filter.");
            }
        }
Ejemplo n.º 5
0
        public BoundPropertyInfo(object o, Inst.CachedProperty property, string displayName = null)
        {
            Object   = o;
            Property = property;

            IsReadOnly = property.Set == null || !property.IsSetterPublic;

            DisplayName = displayName ?? property.EditorVisible?.DisplayName ?? property.Name;

            UpdateValue();

            var instance = o as Instance;

            if (instance != null)
            {
                instance.Changed.Event += OnInstanceChanged;
            }
        }
Ejemplo n.º 6
0
        protected EditorBase(object obj, Inst.CachedProperty propDesc)
        {
            Objects = new Dictionary <object, BoundPropertyInfo>();

            FirstObject = new KeyValuePair <object, BoundPropertyInfo>(obj, AddObject(obj, propDesc));

            DisplayName = FirstObject.Value.DisplayName;

            var instance = obj as dEngine.Instances.Instance;

            if (instance != null)
            {
                instance.Changed.Event += propertyName =>
                {
                    if (propertyName == propDesc.Name)
                    {
                        NotifyOfPropertyChange(() => Value);
                    }
                };
            }
        }
Ejemplo n.º 7
0
 public NumberRangeEditorViewModel(object obj, Inst.CachedProperty propDesc) : base(obj, propDesc)
 {
 }
Ejemplo n.º 8
0
 public Vector2EditorViewModel(object obj, Inst.CachedProperty desc) : base(obj, desc)
 {
 }
Ejemplo n.º 9
0
 public CheckboxEditorViewModel(object obj, Inst.CachedProperty propDesc) : base(obj, propDesc)
 {
 }
 public FontFamilyEditorViewModel(object obj, Inst.CachedProperty propDesc) : base(obj, propDesc)
 {
 }
Ejemplo n.º 11
0
 public ColourEditorViewModel(object obj, Inst.CachedProperty propDesc) : base(obj, propDesc)
 {
     NotifyOfPropertyChange(nameof(StringValue));
 }
Ejemplo n.º 12
0
 public ContentEditorViewModel(object obj, Inst.CachedProperty propDesc) : base(obj, propDesc)
 {
 }
 public ColourSequenceEditorViewModel(object obj, Inst.CachedProperty propDesc) : base(obj, propDesc)
 {
     GradientStops = new GradientStopCollection();
     _instance     = (dEngine.Instances.Instance)obj;
     _propDesc     = propDesc;
 }
Ejemplo n.º 14
0
 public InstanceEditorViewModel(object obj, Inst.CachedProperty propDesc) : base(obj, propDesc)
 {
 }
Ejemplo n.º 15
0
        private IEditor GetEditor(object obj, Inst.CachedProperty desc, object data)
        {
            switch (desc.PropertyType.Name)
            {
            case nameof(String):
                return(new TextBoxEditorViewModel(obj, desc));

            case nameof(Type):
                return(new TypeEditorViewModel(obj, desc, data));

            case nameof(Vector4):
                return(new Vector4EditorViewModel(obj, desc));

            case nameof(Vector3):
                return(new Vector3EditorViewModel(obj, desc));

            case nameof(Vector2):
                return(new Vector2EditorViewModel(obj, desc));

            case nameof(UDim2):
                return(new UDim2EditorViewModel(obj, desc));

            case nameof(Boolean):
                return(new CheckboxEditorViewModel(obj, desc));

            case nameof(Colour):
                return(new ColourEditorViewModel(obj, desc));

            case nameof(Single):
                return(new NumberEditorViewModel <float>(obj, desc));

            case nameof(Double):
                return(new NumberEditorViewModel <double>(obj, desc));

            case nameof(Int32):
                return(new NumberEditorViewModel <int>(obj, desc));

            case nameof(UInt32):
                return(new NumberEditorViewModel <uint>(obj, desc));

            case nameof(TimeSpan):
                return(new TimeEditorViewModel(obj, desc));

            case nameof(ColourSequence):
                return(new ColourSequenceEditorViewModel(obj, desc));

            case nameof(NumberRange):
                return(new NumberRangeEditorViewModel(obj, desc));

            //case nameof(NumberSequence):
            //return new NumberSequenceEditorViewModel(obj, desc);
            case nameof(FontFamily):
                return(new FontFamilyEditorViewModel(obj, desc));

            default:
                if (typeof(string).IsAssignableFrom(desc.PropertyType))
                {
                    return(new TextBoxEditorViewModel(obj, desc));
                }
                if (desc.PropertyType.IsEnum)
                {
                    return(new EnumEditorViewModel(obj, desc));
                }
                if (desc.PropertyType.IsGenericType && desc.PropertyType.GetGenericTypeDefinition() == typeof(Content <>))
                {
                    return(new ContentEditorViewModel(obj, desc));
                }
                if (typeof(Instance).IsAssignableFrom(desc.PropertyType))
                {
                    return(new InstanceEditorViewModel(obj, desc));
                }
                break;
            }

            return(null);
        }
Ejemplo n.º 16
0
 protected SequenceEditorBase(object obj, Inst.CachedProperty propDesc) : base(obj, propDesc)
 {
 }