public ThemeProvider(IDesignerHost host, string name, string themeDefinition, string[] cssFiles, string themePath)
        {
            this._themeName = name;
            this._themePath = themePath;
            this._cssFiles  = cssFiles;
            this._host      = host;
            ControlBuilder builder = DesignTimeTemplateParser.ParseTheme(host, themeDefinition, themePath);

            this._contentHashCode = themeDefinition.GetHashCode();
            ArrayList subBuilders = builder.SubBuilders;

            this._skinBuilders = new Hashtable();
            for (int i = 0; i < subBuilders.Count; i++)
            {
                ControlBuilder builder2 = subBuilders[i] as ControlBuilder;
                if (builder2 != null)
                {
                    IDictionary dictionary = this._skinBuilders[builder2.ControlType] as IDictionary;
                    if (dictionary == null)
                    {
                        dictionary = new SortedList(StringComparer.OrdinalIgnoreCase);
                        this._skinBuilders[builder2.ControlType] = dictionary;
                    }
                    Control control = builder2.BuildObject() as Control;
                    if (control != null)
                    {
                        dictionary[control.SkinID] = builder2;
                    }
                }
            }
        }
Esempio n. 2
0
        public ThemeProvider(IDesignerHost host, string name, string themeDefinition, string[] cssFiles, string themePath)
        {
            _themeName = name;
            _themePath = themePath;
            _cssFiles  = cssFiles;
            _host      = host;

            ControlBuilder themeBuilder = DesignTimeTemplateParser.ParseTheme(host, themeDefinition, themePath);

            _contentHashCode = themeDefinition.GetHashCode();

            ArrayList subBuilders = themeBuilder.SubBuilders;

            _skinBuilders = new Hashtable();
            for (int i = 0; i < subBuilders.Count; ++i)
            {
                ControlBuilder builder = subBuilders[i] as ControlBuilder;
                if (builder != null)
                {
                    IDictionary skins = _skinBuilders[builder.ControlType] as IDictionary;
                    if (skins == null)
                    {
                        skins = new SortedList(StringComparer.OrdinalIgnoreCase);
                        _skinBuilders[builder.ControlType] = skins;
                    }
                    Control builtControl = builder.BuildObject() as Control;
                    if (builtControl != null)
                    {
                        skins[builtControl.SkinID] = builder;
                    }
                }
            }
        }