コード例 #1
0
        /// <summary>
        /// Finishes initializing component by adding palette information and defining module types</summary>
        public virtual void Initialize()
        {
            // add palette info to annotation type, and register with palette
            var annotationItem = new NodeTypePaletteItem(
                annotationType.Type,
                "Comment".Localize(),
                "Create a moveable resizable comment on the circuit canvas".Localize(),
                Sce.Atf.Resources.AnnotationImage);

            if (m_paletteService != null)
            {
                m_paletteService.AddItem(annotationItem, "Misc".Localize("abbreviation for miscellaneous"), this);
            }

            // define editable properties on annotation
            annotationType.Type.SetTag(
                new PropertyDescriptorCollection(
                    new PropertyDescriptor[] {
                new AttributePropertyDescriptor(
                    "Text".Localize(),
                    annotationType.textAttribute,
                    null,
                    "Comment Text".Localize(),
                    false),
                new AttributePropertyDescriptor(
                    "Background Color".Localize(),                           // name
                    annotationType.backcolorAttribute,                       //AttributeInfo
                    null,                                                    // category
                    "Comment's background color".Localize(),                 //description
                    false,                                                   //isReadOnly
                    new Sce.Atf.Controls.PropertyEditing.ColorEditor(),      // editor
                    new Sce.Atf.Controls.PropertyEditing.IntColorConverter() // typeConverter
                    ),
                new AttributePropertyDescriptor(
                    "Foreground Color".Localize(),                           // name
                    annotationType.foreColorAttribute,                       //AttributeInfo
                    null,                                                    // category
                    "Comment's foreground color".Localize(),                 //description
                    false,                                                   //isReadOnly
                    new Sce.Atf.Controls.PropertyEditing.ColorEditor(),      // editor
                    new Sce.Atf.Controls.PropertyEditing.IntColorConverter() // typeConverter
                    ),
            }));


            CreateChildCollectionEditor();

            InitializeProperties();

            LoadNodeDefinition();
        }
コード例 #2
0
        public TimelineEditor(
            IControlHostService controlHostService,
            ICommandService commandService,
            IContextRegistry contextRegistry,
            IDocumentRegistry documentRegistry,
            IDocumentService documentService,
            IPaletteService paletteService,
            ISettingsService settingsService)
        {
            s_schemaLoader                = new SchemaLoader();
            s_repository.DocumentAdded   += repository_DocumentAdded;
            s_repository.DocumentRemoved += repository_DocumentRemoved;

            paletteService.AddItem(Schema.markerType.Type, "Timelines", this);
            paletteService.AddItem(Schema.groupType.Type, "Timelines", this);
            paletteService.AddItem(Schema.trackType.Type, "Timelines", this);
            paletteService.AddItem(Schema.intervalType.Type, "Timelines", this);
            paletteService.AddItem(Schema.keyType.Type, "Timelines", this);
            paletteService.AddItem(Schema.timelineRefType.Type, "Timelines", this);

            m_contextRegistry    = contextRegistry;
            m_documentRegistry   = documentRegistry;
            m_controlHostService = controlHostService;
            m_documentService    = documentService;
            m_settingsService    = settingsService;
        }
コード例 #3
0
ファイル: TimelineEditor.cs プロジェクト: GeertVL/ATF
        public TimelineEditor(
            IControlHostService controlHostService,
            ICommandService commandService,
            IContextRegistry contextRegistry,
            IDocumentRegistry documentRegistry,
            IDocumentService documentService,
            IPaletteService paletteService,
            ISettingsService settingsService)
        {
            s_schemaLoader = new SchemaLoader();
            s_repository.DocumentAdded += repository_DocumentAdded;
            s_repository.DocumentRemoved += repository_DocumentRemoved;

            paletteService.AddItem(Schema.markerType.Type, "Timelines", this);
            paletteService.AddItem(Schema.groupType.Type, "Timelines", this);
            paletteService.AddItem(Schema.trackType.Type, "Timelines", this);
            paletteService.AddItem(Schema.intervalType.Type, "Timelines", this);
            paletteService.AddItem(Schema.keyType.Type, "Timelines", this);
            paletteService.AddItem(Schema.timelineRefType.Type, "Timelines", this);

            m_contextRegistry = contextRegistry;
            m_documentRegistry = documentRegistry;
            m_controlHostService = controlHostService;
            m_documentService = documentService;
            m_settingsService = settingsService;
        }
コード例 #4
0
        /// <summary>
        /// Finishes initializing component by adding palette information and defining module types</summary>
        public virtual void Initialize()
        {
            // add palette info to annotation type, and register with palette
            var annotationItem = new NodeTypePaletteItem(
                Schema.annotationType.Type,
                "Comment".Localize(),
                "Create a moveable resizable comment on the circuit canvas".Localize(),
                Resources.AnnotationImage);

            m_paletteService.AddItem(annotationItem, PaletteCategory, this);

            // define editable properties on annotation
            Schema.annotationType.Type.SetTag(
                new PropertyDescriptorCollection(
                    new PropertyDescriptor[] {
                new AttributePropertyDescriptor(
                    "Text".Localize(),
                    Schema.annotationType.textAttribute,
                    null,
                    "Comment Text".Localize(),
                    false),
                new AttributePropertyDescriptor(
                    "BackColor".Localize(),                                  // name
                    Schema.annotationType.backcolorAttribute,                //AttributeInfo
                    null,                                                    // category
                    "Comment background color".Localize(),                   //description
                    false,                                                   //isReadOnly
                    new Sce.Atf.Controls.PropertyEditing.ColorEditor(),      // editor
                    new Sce.Atf.Controls.PropertyEditing.IntColorConverter() // typeConverter
                    ),
                new AttributePropertyDescriptor(
                    "ForeColor".Localize(),                                  // name
                    Schema.annotationType.foreColorAttribute,                //AttributeInfo
                    null,                                                    // category
                    "Comment foreground color".Localize(),                   //description
                    false,                                                   //isReadOnly
                    new Sce.Atf.Controls.PropertyEditing.ColorEditor(),      // editor
                    new Sce.Atf.Controls.PropertyEditing.IntColorConverter() // typeConverter
                    ),
            }));

            // define module types

            DefineModuleType(
                new XmlQualifiedName("buttonType", Schema.NS),
                "Button".Localize(),
                "On/Off Button".Localize(),
                Resources.ButtonImage,
                EmptyArray <ElementType.Pin> .Instance,
                new ElementType.Pin[]
            {
                new ElementType.Pin("Out".Localize(), BooleanPinTypeName, 0)
            },
                m_schemaLoader);

            DefineModuleType(
                new XmlQualifiedName("lightType", Schema.NS),
                "Light".Localize(),
                "Light source".Localize(),
                Resources.LightImage,
                new ElementType.Pin[]
            {
                new ElementType.Pin("In".Localize(), BooleanPinTypeName, 0)
            },
                EmptyArray <ElementType.Pin> .Instance,
                m_schemaLoader);

            DomNodeType speakerNodeType = DefineModuleType(
                new XmlQualifiedName("speakerType", Schema.NS),
                "Speaker".Localize("an electronic speaker, for playing sounds"),
                "Speaker".Localize("an electronic speaker, for playing sounds"),
                Resources.SpeakerImage,
                new ElementType.Pin[]
            {
                new ElementType.Pin("In".Localize(), FloatPinTypeName, 0),
            },
                EmptyArray <ElementType.Pin> .Instance,
                m_schemaLoader);
            var speakerManufacturerInfo = new AttributeInfo("Manufacturer".Localize(), AttributeType.StringType);

            speakerNodeType.Define(speakerManufacturerInfo);
            speakerNodeType.SetTag(
                new PropertyDescriptorCollection(
                    new PropertyDescriptor[] {
                new AttributePropertyDescriptor(
                    "Manufacturer".Localize(),
                    speakerManufacturerInfo,
                    null,                      //category
                    "Manufacturer".Localize(), //description
                    false)                     //is not read-only
            }));

            DefineModuleType(
                new XmlQualifiedName("soundType", Schema.NS),
                "Sound".Localize(),
                "Sound Player".Localize(),
                Resources.SoundImage,
                new ElementType.Pin[]
            {
                new ElementType.Pin("On".Localize(), "boolean", 0),
                new ElementType.Pin("Reset".Localize(), "boolean", 1),
                new ElementType.Pin("Pause".Localize(), "boolean", 2),
            },
                new ElementType.Pin[]
            {
                new ElementType.Pin("Out".Localize(), "float", 0),
            },
                m_schemaLoader);

            DefineModuleType(
                new XmlQualifiedName("andType", Schema.NS),
                "And".Localize(),
                "Logical AND".Localize(),
                Resources.AndImage,
                new ElementType.Pin[]
            {
                new ElementType.Pin("In1".Localize("input pin #1"), "boolean", 0),
                new ElementType.Pin("In2".Localize("input pin #2"), "boolean", 1),
            },
                new ElementType.Pin[]
            {
                new ElementType.Pin("Out".Localize(), "boolean", 0),
            },
                m_schemaLoader);

            DefineModuleType(
                new XmlQualifiedName("orType", Schema.NS),
                "Or".Localize(),
                "Logical OR".Localize(),
                Resources.OrImage,
                new ElementType.Pin[]
            {
                new ElementType.Pin("In1".Localize("input pin #1"), "boolean", 0),
                new ElementType.Pin("In2".Localize("input pin #2"), "boolean", 1),
            },
                new ElementType.Pin[]
            {
                new ElementType.Pin("Out".Localize(), "boolean", 0),
            },
                m_schemaLoader);

            DefineModuleType(
                new XmlQualifiedName("16To1MultiplexerType", Schema.NS),
                "16-to-1 Multiplexer".Localize(),
                "16-to-1 Multiplexer".Localize(),
                Resources.AndImage,
                new ElementType.Pin[]
            {
                new ElementType.Pin("In1".Localize(), "boolean", 0),
                new ElementType.Pin("In2".Localize(), "boolean", 1),
                new ElementType.Pin("In3".Localize(), "boolean", 2),
                new ElementType.Pin("In4".Localize(), "boolean", 3),
                new ElementType.Pin("In5".Localize(), "boolean", 4),
                new ElementType.Pin("In6".Localize(), "boolean", 5),
                new ElementType.Pin("In7".Localize(), "boolean", 6),
                new ElementType.Pin("In8".Localize(), "boolean", 7),
                new ElementType.Pin("In9".Localize(), "boolean", 8),
                new ElementType.Pin("In10".Localize(), "boolean", 9),
                new ElementType.Pin("In11".Localize(), "boolean", 10),
                new ElementType.Pin("In12".Localize(), "boolean", 11),
                new ElementType.Pin("In13".Localize(), "boolean", 12),
                new ElementType.Pin("In14".Localize(), "boolean", 13),
                new ElementType.Pin("In15".Localize(), "boolean", 14),
                new ElementType.Pin("In16".Localize(), "boolean", 15),
                new ElementType.Pin("Select1".Localize(), "boolean", 16),
                new ElementType.Pin("Select2".Localize(), "boolean", 17),
                new ElementType.Pin("Select3".Localize(), "boolean", 18),
                new ElementType.Pin("Select4".Localize(), "boolean", 19),
            },
                new ElementType.Pin[]
            {
                new ElementType.Pin("Out".Localize(), "boolean", 0),
            },
                m_schemaLoader);

            DefineModuleType(
                new XmlQualifiedName("1To16DemultiplexerType", Schema.NS),
                "1-to-16 Demultiplexer".Localize(),
                "1-to-16 Demultiplexer".Localize(),
                Resources.OrImage,
                new ElementType.Pin[]
            {
                new ElementType.Pin("Data".Localize(), "boolean", 0),
                new ElementType.Pin("Select1".Localize(), "boolean", 1),
                new ElementType.Pin("Select2".Localize(), "boolean", 2),
                new ElementType.Pin("Select3".Localize(), "boolean", 3),
                new ElementType.Pin("Select4".Localize(), "boolean", 4),
            },
                new ElementType.Pin[]
            {
                new ElementType.Pin("Out1".Localize(), "boolean", 0),
                new ElementType.Pin("Out2".Localize(), "boolean", 1),
                new ElementType.Pin("Out3".Localize(), "boolean", 2),
                new ElementType.Pin("Out4".Localize(), "boolean", 3),
                new ElementType.Pin("Out5".Localize(), "boolean", 4),
                new ElementType.Pin("Out6".Localize(), "boolean", 5),
                new ElementType.Pin("Out7".Localize(), "boolean", 6),
                new ElementType.Pin("Out8".Localize(), "boolean", 7),
                new ElementType.Pin("Out9".Localize(), "boolean", 8),
                new ElementType.Pin("Out10".Localize(), "boolean", 9),
                new ElementType.Pin("Out11".Localize(), "boolean", 10),
                new ElementType.Pin("Out12".Localize(), "boolean", 11),
                new ElementType.Pin("Out13".Localize(), "boolean", 12),
                new ElementType.Pin("Out14".Localize(), "boolean", 13),
                new ElementType.Pin("Out15".Localize(), "boolean", 14),
                new ElementType.Pin("Out16".Localize(), "boolean", 15),
            },
                m_schemaLoader);
        }
コード例 #5
0
        /// <summary>
        /// Finishes initializing component by adding palette information and defining module types</summary>
        public virtual void Initialize()
        {
            // add palette info to annotation type, and register with palette
            var annotationItem = new NodeTypePaletteItem(
                Schema.annotationType.Type,
                "Comment".Localize(),
                "Create a moveable resizable comment on the circuit canvas".Localize(),
                Resources.AnnotationImage);

            m_paletteService.AddItem(annotationItem, PaletteCategory, this);

            // define editable properties on annotation
            Schema.annotationType.Type.SetTag(
                new PropertyDescriptorCollection(
                    new PropertyDescriptor[] {
                new AttributePropertyDescriptor(
                    "Text".Localize(),
                    Schema.annotationType.textAttribute,
                    null,
                    "Comment Text".Localize(),
                    false),
                new AttributePropertyDescriptor(
                    "Comment Color".Localize(),                              // name
                    Schema.annotationType.backcolorAttribute,                //AttributeInfo
                    null,                                                    // category
                    "Comment background color".Localize(),                   //description
                    false,                                                   //isReadOnly
                    new Sce.Atf.Controls.PropertyEditing.ColorEditor(),      // editor
                    new Sce.Atf.Controls.PropertyEditing.IntColorConverter() // typeConverter
                    ),
            }));

            // define pin/connection pens

            m_diagramTheme.RegisterCustomPen(BooleanPinTypeName, new Pen(Color.LightSeaGreen, 2));
            m_diagramTheme.RegisterCustomPen(FloatPinTypeName, new Pen(Color.LightSeaGreen, 2));

            // define module types

            DefineModuleType(
                new XmlQualifiedName("buttonType", Schema.NS),
                "Button".Localize(),
                "On/Off Button".Localize(),
                Resources.ButtonImage,
                EmptyArray <ElementType.Pin> .Instance,
                new ElementType.Pin[]
            {
                new ElementType.Pin("Out".Localize(), BooleanPinTypeName, 0)
            },
                m_schemaLoader);

            DefineModuleType(
                new XmlQualifiedName("lightType", Schema.NS),
                "Light".Localize(),
                "Light source".Localize(),
                Resources.LightImage,
                new ElementType.Pin[]
            {
                new ElementType.Pin("In".Localize(), BooleanPinTypeName, 0)
            },
                EmptyArray <ElementType.Pin> .Instance,
                m_schemaLoader);

            DefineModuleType(
                new XmlQualifiedName("speakerType", Schema.NS),
                "Speaker".Localize("an electronic speaker, for playing sounds"),
                "Speaker".Localize("an electronic speaker, for playing sounds"),
                Resources.SpeakerImage,
                new ElementType.Pin[]
            {
                new ElementType.Pin("In".Localize(), FloatPinTypeName, 0)
            },
                EmptyArray <ElementType.Pin> .Instance,
                m_schemaLoader);

            DefineModuleType(
                new XmlQualifiedName("andType", Schema.NS),
                "And".Localize(),
                "Logical AND".Localize(),
                Resources.AndImage,
                new ElementType.Pin[]
            {
                new ElementType.Pin("In1".Localize("input pin #1"), "boolean", 0),
                new ElementType.Pin("In2".Localize("input pin #2"), "boolean", 1),
            },
                new ElementType.Pin[]
            {
                new ElementType.Pin("Out".Localize(), "boolean", 0),
            },
                m_schemaLoader);

            DefineModuleType(
                new XmlQualifiedName("orType", Schema.NS),
                "Or".Localize(),
                "Logical OR".Localize(),
                Resources.OrImage,
                new ElementType.Pin[]
            {
                new ElementType.Pin("In1".Localize("input pin #1"), "boolean", 0),
                new ElementType.Pin("In2".Localize("input pin #2"), "boolean", 1),
            },
                new ElementType.Pin[]
            {
                new ElementType.Pin("Out".Localize(), "boolean", 0),
            },
                m_schemaLoader);

            DefineModuleType(
                new XmlQualifiedName("soundType", Schema.NS),
                "Sound".Localize(),
                "Sound Player".Localize(),
                Resources.SoundImage,
                new ElementType.Pin[]
            {
                new ElementType.Pin("On".Localize(), "boolean", 0),
                new ElementType.Pin("Reset".Localize(), "boolean", 1),
                new ElementType.Pin("Pause".Localize(), "boolean", 2),
            },
                new ElementType.Pin[]
            {
                new ElementType.Pin("Out".Localize(), "float", 0),
            },
                m_schemaLoader);
        }
コード例 #6
0
ファイル: ModulePlugin.cs プロジェクト: zoombapup/ATF
        /// <summary>
        /// Finishes initializing component by adding palette information and defining module types</summary>
        public virtual void Initialize()
        {
            // add palette info to annotation type, and register with palette
            var annotationItem = new NodeTypePaletteItem(
                Schema.annotationType.Type,
                "Comment".Localize(),
                "Create a moveable resizable comment on the circuit canvas".Localize(),
                Resources.AnnotationImage);

            m_paletteService.AddItem(
                annotationItem, "Misc".Localize("abbreviation for miscellaneous"), this);

            // define editable properties on annotation
            Schema.annotationType.Type.SetTag(
                new PropertyDescriptorCollection(
                    new PropertyDescriptor[] {
                new AttributePropertyDescriptor(
                    "Text".Localize(),
                    Schema.annotationType.textAttribute,
                    null,
                    "Comment Text".Localize(),
                    false),
                new AttributePropertyDescriptor(
                    "Background Color".Localize(),                           // name
                    Schema.annotationType.backcolorAttribute,                //AttributeInfo
                    null,                                                    // category
                    "Comment's background color".Localize(),                 //description
                    false,                                                   //isReadOnly
                    new Sce.Atf.Controls.PropertyEditing.ColorEditor(),      // editor
                    new Sce.Atf.Controls.PropertyEditing.IntColorConverter() // typeConverter
                    ),
                new AttributePropertyDescriptor(
                    "Foreground Color".Localize(),                           // name
                    Schema.annotationType.foreColorAttribute,                //AttributeInfo
                    null,                                                    // category
                    "Comment's foreground color".Localize(),                 //description
                    false,                                                   //isReadOnly
                    new Sce.Atf.Controls.PropertyEditing.ColorEditor(),      // editor
                    new Sce.Atf.Controls.PropertyEditing.IntColorConverter() // typeConverter
                    ),
            }));

            // define module types

            DefineModuleType(
                new XmlQualifiedName("buttonType", Schema.NS),
                "Button".Localize(),
                "On/Off Button".Localize(),
                Resources.ButtonImage,
                EmptyArray <ElementType.Pin> .Instance,
                new ElementType.Pin[]
            {
                new ElementType.Pin("Out".Localize(), BooleanPinTypeName, 0)
            },
                m_schemaLoader);

            var lightType = DefineModuleType(
                new XmlQualifiedName("lightType", Schema.NS),
                "Light".Localize(),
                "Light source".Localize(),
                Resources.LightImage,
                new ElementType.Pin[]
            {
                new ElementType.Pin("In".Localize(), BooleanPinTypeName, 0)
            },
                EmptyArray <ElementType.Pin> .Instance,
                m_schemaLoader);

            // define and add new attribute to light type.
            var featuresAttribute = new AttributeInfo("features".Localize(), AttributeType.IntType);

            featuresAttribute.DefaultValue = 3;
            lightType.Define(featuresAttribute);
            // create property descriptor for the above attribute.
            FlagsUITypeEditor  featuresEditor    = new FlagsUITypeEditor(new[] { "ENERGY STAR", "High CRI" }, new[] { 1, 2 });
            FlagsTypeConverter featuresConverter = new FlagsTypeConverter(new[] { "Energy Star", "High CRI" }, new[] { 1, 2 });

            lightType.SetTag(
                new PropertyDescriptorCollection(
                    new PropertyDescriptor[] {
                new AttributePropertyDescriptor(
                    "Features".Localize(),
                    featuresAttribute,
                    null,                  //category
                    "Features".Localize(), //description
                    false,
                    featuresEditor,
                    featuresConverter)         //is not read-only
            }));



            DomNodeType speakerNodeType = DefineModuleType(
                new XmlQualifiedName("speakerType", Schema.NS),
                "Speaker".Localize("an electronic speaker, for playing sounds"),
                "Speaker".Localize("an electronic speaker, for playing sounds"),
                Resources.SpeakerImage,
                new ElementType.Pin[]
            {
                new ElementType.Pin("In".Localize(), FloatPinTypeName, 0),
            },
                EmptyArray <ElementType.Pin> .Instance,
                m_schemaLoader);
            var speakerManufacturerInfo = new AttributeInfo("Manufacturer".Localize(), AttributeType.StringType);

            // add bass level attribute to demo/test BoundedFloatEditor()
            float bassMin   = -1;
            float bassMax   = 1;
            var   bassLevel = new AttributeInfo("bassLevel".Localize("bass level"), AttributeType.FloatType);

            bassLevel.AddRule(new NumericMinRule(bassMin, true));
            bassLevel.AddRule(new NumericMaxRule(bassMax, true));
            bassLevel.DefaultValue = 0.1f;
            //bassLevel.def
            speakerNodeType.Define(bassLevel);

            speakerNodeType.Define(speakerManufacturerInfo);
            speakerNodeType.SetTag(
                new PropertyDescriptorCollection(
                    new PropertyDescriptor[] {
                new AttributePropertyDescriptor(
                    "Manufacturer".Localize(),
                    speakerManufacturerInfo,
                    null,                      //category
                    "Manufacturer".Localize(), //description
                    false),

                new AttributePropertyDescriptor(
                    "Bass Level".Localize(),
                    bassLevel,
                    null,                    //category
                    "Bass Level".Localize(), //description
                    false,
                    new BoundedFloatEditor(bassMin, bassMax))
            }));

            DefineModuleType(
                new XmlQualifiedName("soundType", Schema.NS),
                "Sound".Localize(),
                "Sound Player".Localize(),
                Resources.SoundImage,
                new ElementType.Pin[]
            {
                new ElementType.Pin("On".Localize(), "boolean", 0),
                new ElementType.Pin("Reset".Localize(), "boolean", 1),
                new ElementType.Pin("Pause".Localize(), "boolean", 2),
            },
                new ElementType.Pin[]
            {
                new ElementType.Pin("Out".Localize(), "float", 0),
            },
                m_schemaLoader);

            DefineModuleType(
                new XmlQualifiedName("andType", Schema.NS),
                "And".Localize(),
                "Logical AND".Localize(),
                Resources.AndImage,
                new ElementType.Pin[]
            {
                new ElementType.Pin("In1".Localize("input pin #1"), "boolean", 0),
                new ElementType.Pin("In2".Localize("input pin #2"), "boolean", 1),
            },
                new ElementType.Pin[]
            {
                new ElementType.Pin("Out".Localize(), "boolean", 0),
            },
                m_schemaLoader);

            DefineModuleType(
                new XmlQualifiedName("orType", Schema.NS),
                "Or".Localize(),
                "Logical OR".Localize(),
                Resources.OrImage,
                new ElementType.Pin[]
            {
                new ElementType.Pin("In1".Localize("input pin #1"), "boolean", 0),
                new ElementType.Pin("In2".Localize("input pin #2"), "boolean", 1),
            },
                new ElementType.Pin[]
            {
                new ElementType.Pin("Out".Localize(), "boolean", 0),
            },
                m_schemaLoader);

            DefineModuleType(
                new XmlQualifiedName("16To1MultiplexerType", Schema.NS),
                "16-to-1 Multiplexer".Localize(),
                "16-to-1 Multiplexer".Localize(),
                Resources.AndImage,
                new ElementType.Pin[]
            {
                new ElementType.Pin("In1".Localize("input pin #1"), "boolean", 0),
                new ElementType.Pin("In2".Localize("input pin #2"), "boolean", 1),
                new ElementType.Pin("In3".Localize(), "boolean", 2),
                new ElementType.Pin("In4".Localize(), "boolean", 3),
                new ElementType.Pin("In5".Localize(), "boolean", 4),
                new ElementType.Pin("In6".Localize(), "boolean", 5),
                new ElementType.Pin("In7".Localize(), "boolean", 6),
                new ElementType.Pin("In8".Localize(), "boolean", 7),
                new ElementType.Pin("In9".Localize(), "boolean", 8),
                new ElementType.Pin("In10".Localize(), "boolean", 9),
                new ElementType.Pin("In11".Localize(), "boolean", 10),
                new ElementType.Pin("In12".Localize(), "boolean", 11),
                new ElementType.Pin("In13".Localize(), "boolean", 12),
                new ElementType.Pin("In14".Localize(), "boolean", 13),
                new ElementType.Pin("In15".Localize(), "boolean", 14),
                new ElementType.Pin("In16".Localize(), "boolean", 15),
                new ElementType.Pin("Select1".Localize("The name of a pin on a circuit element"), "boolean", 16),
                new ElementType.Pin("Select2".Localize("The name of a pin on a circuit element"), "boolean", 17),
                new ElementType.Pin("Select3".Localize("The name of a pin on a circuit element"), "boolean", 18),
                new ElementType.Pin("Select4".Localize("The name of a pin on a circuit element"), "boolean", 19),
            },
                new ElementType.Pin[]
            {
                new ElementType.Pin("Out".Localize(), "boolean", 0),
            },
                m_schemaLoader);

            DefineModuleType(
                new XmlQualifiedName("1To16DemultiplexerType", Schema.NS),
                "1-to-16 Demultiplexer".Localize(),
                "1-to-16 Demultiplexer".Localize(),
                Resources.OrImage,
                new ElementType.Pin[]
            {
                new ElementType.Pin("Data".Localize(), "boolean", 0),
                new ElementType.Pin("Select1".Localize("The name of a pin on a circuit element"), "boolean", 1),
                new ElementType.Pin("Select2".Localize("The name of a pin on a circuit element"), "boolean", 2),
                new ElementType.Pin("Select3".Localize("The name of a pin on a circuit element"), "boolean", 3),
                new ElementType.Pin("Select4".Localize("The name of a pin on a circuit element"), "boolean", 4),
            },
                new ElementType.Pin[]
            {
                new ElementType.Pin("Out1".Localize(), "boolean", 0),
                new ElementType.Pin("Out2".Localize(), "boolean", 1),
                new ElementType.Pin("Out3".Localize(), "boolean", 2),
                new ElementType.Pin("Out4".Localize(), "boolean", 3),
                new ElementType.Pin("Out5".Localize(), "boolean", 4),
                new ElementType.Pin("Out6".Localize(), "boolean", 5),
                new ElementType.Pin("Out7".Localize(), "boolean", 6),
                new ElementType.Pin("Out8".Localize(), "boolean", 7),
                new ElementType.Pin("Out9".Localize(), "boolean", 8),
                new ElementType.Pin("Out10".Localize(), "boolean", 9),
                new ElementType.Pin("Out11".Localize(), "boolean", 10),
                new ElementType.Pin("Out12".Localize(), "boolean", 11),
                new ElementType.Pin("Out13".Localize(), "boolean", 12),
                new ElementType.Pin("Out14".Localize(), "boolean", 13),
                new ElementType.Pin("Out15".Localize(), "boolean", 14),
                new ElementType.Pin("Out16".Localize(), "boolean", 15),
            },
                m_schemaLoader);
        }