示例#1
0
        public void RegistNewSetter(SakuraCore.SPropertyData property)
        {
            ISPropertyInterface newset;

            switch (property.PropType)
            {
            case "bool":
            {
                newset = new BoolSwitch() as ISPropertyInterface; break;
            }

            case "float":
            {
                newset = new FloatSet() as ISPropertyInterface; break;
            }

            case "const SVector&":
            case "SVector":
            case "structSakuraMath::SVector":
            {
                newset = new SVectorSet() as ISPropertyInterface; break;
            }

            case "const std::string&":
            case "std::string":
            case "string":
            case "std:string":
            {
                newset = new StringSet() as ISPropertyInterface; break;
            }

            default:
            {
                // Containers
                if (SakuraCore.PropIsContainer(property))
                {
                    RegistContainer(property);
                    return;
                }
                else
                {
                    //
                    newset = RegistSubMember(property);
                    break;
                }
            }
            }
            newset.Initialize(property);
            PropertySetters.Add(newset);
            DetailsDock.Children.Add(newset as UserControl);
            (newset as UserControl).SetValue(DockPanel.DockProperty, Dock.Top);
        }