Example #1
0
        public EditorType(AccesorValor accesor)
            : base(accesor)
        {
            InitializeComponent();

            actualizando = true;
            try
            {
                comboBox1.Enabled = (accesor.ReadOnly == false);

                object val = accesor.GetValor();

                if (val != null)
                {
                    comboBox1.Items.Add(val);
                    comboBox1.SelectedItem = val;
                }
                else
                {
                    comboBox1.Items.Add(nullItem);
                    comboBox1.SelectedItem = nullItem;
                }
            }
            finally
            {
                actualizando = false;
            }
        }
Example #2
0
        public EditorBoolean(AccesorValor accesor)
            : base(accesor)
        {
            InitializeComponent();

            ActualizarValor();
        }
Example #3
0
        public EditorEnum(AccesorValor accesor, EnumConverter enumConverter) : base(accesor)
        {
            InitializeComponent();

            foreach (Object item in enumConverter.GetStandardValues())
            {
                comboBox1.Items.Add(item);
            }

            ActualizarValor();
        }
Example #4
0
        public EditorQuaternion(AccesorValor accesor)
            : base(accesor)
        {
            InitializeComponent();

            ActualizarValor();

            labelX.MouseDown += new MouseEventHandler(label_MouseDown);
            labelX.MouseUp   += new MouseEventHandler(label_MouseUp);
            labelX.MouseMove += new MouseEventHandler(label_MouseMove);

            labelY.MouseDown += new MouseEventHandler(label_MouseDown);
            labelY.MouseUp   += new MouseEventHandler(label_MouseUp);
            labelY.MouseMove += new MouseEventHandler(label_MouseMove);

            labelZ.MouseDown += new MouseEventHandler(label_MouseDown);
            labelZ.MouseUp   += new MouseEventHandler(label_MouseUp);
            labelZ.MouseMove += new MouseEventHandler(label_MouseMove);
        }
Example #5
0
        public EditorColor4(AccesorValor accesor)
            : base(accesor)
        {
            InitializeComponent();

            ActualizarValor();

            labelR.MouseDown += new MouseEventHandler(label_MouseDown);
            labelR.MouseUp   += new MouseEventHandler(label_MouseUp);
            labelR.MouseMove += new MouseEventHandler(label_MouseMove);

            labelG.MouseDown += new MouseEventHandler(label_MouseDown);
            labelG.MouseUp   += new MouseEventHandler(label_MouseUp);
            labelG.MouseMove += new MouseEventHandler(label_MouseMove);

            labelB.MouseDown += new MouseEventHandler(label_MouseDown);
            labelB.MouseUp   += new MouseEventHandler(label_MouseUp);
            labelB.MouseMove += new MouseEventHandler(label_MouseMove);
        }
Example #6
0
        public EditorNumber(AccesorValor accesor)
            : base(accesor)
        {
            InitializeComponent();

            if (accesor.ValueType == typeof(float))
            {
                internalType = InternalType.FLOAT;
            }
            else if (accesor.ValueType == typeof(int))
            {
                internalType = InternalType.INT;
            }
            else
            {
                throw new NotSupportedException("Tipo de dato no soportado por el editor numerico: " + accesor.ValueType.Name);
            }

            ActualizarValor();

            labelText.MouseDown += new MouseEventHandler(label_MouseDown);
            labelText.MouseUp   += new MouseEventHandler(label_MouseUp);
            labelText.MouseMove += new MouseEventHandler(label_MouseMove);
        }
Example #7
0
        private void AgregarEditor(AccesorValor accesor)
        {
            if (accesor.ShowInEditor)
            {
                EditorBase controlEditor = null;

                if (controles.TryGetValue(accesor.ValueName, out controlEditor) == false)
                {
                    Type tipo = accesor.ValueType;

                    if (tipo == typeof(Vector3))
                    {
                        controlEditor = new EditoresValores.EditorVector3(accesor);
                    }
                    if (tipo == typeof(OpenTK.Graphics.Color4))
                    {
                        controlEditor = new EditoresValores.EditorColor4(accesor);
                    }
                    else if (tipo == typeof(Quaternion))
                    {
                        controlEditor = new EditoresValores.EditorQuaternion(accesor);
                    }
                    else if (tipo == typeof(Boolean))
                    {
                        controlEditor = new EditoresValores.EditorBoolean(accesor);
                    }
                    else if (tipo == typeof(String))
                    {
                        controlEditor = new EditoresValores.EditorString(accesor);
                    }
                    else if (tipo == typeof(int) || tipo == typeof(float))
                    {
                        controlEditor = new EditoresValores.EditorNumber(accesor);
                    }
                    else if (tipo.IsEnum)
                    {
                        controlEditor = new EditoresValores.EditorEnum(accesor, new EnumConverter(tipo));
                    }
                    else if (tipo == typeof(Bitmap))
                    {
                        controlEditor = new EditoresValores.EditorBimap(accesor);
                    }
                    else if (typeof(Component).IsAssignableFrom(tipo) ||
                             typeof(Resource).IsAssignableFrom(tipo))
                    {
                        controlEditor = new EditoresValores.EditorType(accesor);
                    }

                    if (controlEditor != null)
                    {
                        controles.Add(accesor.ValueName, controlEditor);

                        Label labelNombre = new Label();
                        labelNombre.AutoSize = true;
                        labelNombre.Text     = ProcesarNombreCampo(accesor.ValueName);

                        labelNombre.Anchor = AnchorStyles.Left;

                        controlEditor.Anchor = AnchorStyles.Left;

                        tableLayoutPanel1.RowCount++;
                        tableLayoutPanel1.Controls.Add(labelNombre, 0, tableLayoutPanel1.RowCount - 1);
                        tableLayoutPanel1.Controls.Add(controlEditor, 1, tableLayoutPanel1.RowCount - 1);
                    }
                }
                else
                {
                    controlEditor.accesor = accesor;

                    controlEditor.Update();
                }
            }
        }
Example #8
0
 public EditorBase(AccesorValor accesor)
 {
     this.accesor = accesor;
 }
Example #9
0
        private bool LoadValueComponent(ComponentXML xmlComponent, AccesorValor accesor, out object val)
        {
            FieldValueXML fv = xmlComponent.FindAttribute(accesor.ValueName);

            Type tipo = accesor.ValueType;

            if (fv != null && fv.value != null)
            {
                if (typeof(Component).IsAssignableFrom(tipo))
                {
                    uint id = (uint)fv.ValueAs(typeof(uint));

                    Component otComp;

                    if (id != uint.MaxValue)
                    {
                        if (handledComponents.TryGetValue(id, out otComp) == false)
                        {
                            otComp = null;
                        }
                    }
                    else
                    {
                        otComp = Entity.Root;
                    }

                    if (otComp != null && tipo.IsAssignableFrom(otComp.GetType()))
                    {
                        val = otComp;
                        return(true);
                    }
                }
                else if (typeof(Resource).IsAssignableFrom(tipo))
                {
                    String resName = (String)fv.ValueAs(typeof(string));

                    Resource res = Resource.FindResource(tipo, resName);

                    if (res != null)
                    {
                        val = res;
                        return(true);
                    }
                    else
                    {
                        val = null;
                        return(false);
                    }
                }
                else if (tipo.IsEnum)
                {
                    try
                    {
                        val = Enum.Parse(tipo, (String)fv.ValueAs(typeof(String)), true);
                        return(true);
                    }
                    catch (ArgumentException)
                    {
                    }
                }
                else
                {
                    val = fv.ValueAs(tipo);
                    return(true);
                }
            }

            val = null;
            return(false);
        }