/// <summary> /// Initializes a new instance of the XmlTheme class from an existing theme. /// </summary> /// <param name="theme"></param> public XmlTheme(Theme theme) { this.themeName = theme.ThemeName; foreach (KeyValuePair <string, object> entry in theme.ThemeProperties) { this.ThemeProperties.Add(entry); } ArrayList list = new ArrayList(); foreach (StyleBuilderRegistration registration in theme.GetRegisteredStyleBuilders()) { XmlStyleBuilderRegistration xmlReg = new XmlStyleBuilderRegistration(registration); list.Add(xmlReg); } builderRegistrations = new XmlStyleBuilderRegistration[list.Count]; if (list.Count > 0) { list.CopyTo(builderRegistrations, 0); } this.repository = theme.Repository; }
public static void RegisterThemeRepository(XmlStyleRepository styleRepository, string themeName) { XmlStyleRepository xmlStyleRepository = ThemeResolutionService.registeredStyleRepositoriesByThemeName[(object)themeName] as XmlStyleRepository; if (xmlStyleRepository != null) { xmlStyleRepository.MergeWith(styleRepository); } else { ThemeResolutionService.registeredStyleRepositoriesByThemeName[(object)themeName] = (object)styleRepository; } ThemeResolutionService.RaiseThemeChanged(themeName, (string)null); }
public static void RegisterThemeRepository(Telerik.WinControls.Styles.XmlStyleRepository styleRepository, string themeName) { XmlStyleRepository existingRepository = registeredStyleRepositoriesByThemeName[themeName] as XmlStyleRepository; if (existingRepository != null) { existingRepository.MergeWith(styleRepository); } else { registeredStyleRepositoriesByThemeName[themeName] = styleRepository; } RaiseThemeChanged(themeName); }
/// <summary> /// Unregisters a <see cref="Theme"/> instance from the ThemeResolutionService. /// </summary> /// <param name="themeName">The name of the theme to unregister</param> /// <returns>True if theme unregistered, otherwise false.</returns> public static bool RemoveThemeRegistration(string themeName) { Theme theme = registeredThemes[themeName] as Theme; if (theme != null) { registeredThemes.Remove(themeName); XmlStyleRepository repository = registeredStyleRepositoriesByThemeName[themeName] as XmlStyleRepository; if (repository != null) { registeredStyleRepositoriesByThemeName.Remove(themeName); } return(true); } return(false); }
public void ProcessGroupsInheritance(XmlStyleRepository repository) { foreach (PropertySettingGroup group in this.PropertySettingGroups) { if (string.IsNullOrEmpty(group.BasedOn)) { continue; } group.PropertySettings.ResetInheritedProperties(); foreach (XmlRepositoryItem item in this.GetRepositoryItems(repository, group)) { group.InheritRepositoryItem(item); } } }
public XmlRepositoryItem[] GetRepositoryItems(XmlStyleRepository repository, PropertySettingGroup group) { string[] keys = group.GetBasedOnRepositoryItems(); List <XmlRepositoryItem> items = new List <XmlRepositoryItem>(); foreach (string key in keys) { foreach (XmlRepositoryItem item in repository.RepositoryItems) { if (item.Key == key) { items.Add(item); } } } return(items.ToArray()); }
public static XmlStyleRepository GetThemeRepository(string themeName, bool useAsterikTheme, bool useAppThemeName) { if (useAppThemeName && !string.IsNullOrEmpty(ApplicationThemeName)) { themeName = ApplicationThemeName; } else if (string.IsNullOrEmpty(themeName)) { themeName = ThemeResolutionService.ControlDefaultThemeName; } XmlStyleRepository registered = registeredStyleRepositoriesByThemeName[themeName] as XmlStyleRepository; if (registered == null && useAsterikTheme) { registered = registeredStyleRepositoriesByThemeName[asteriskThemeName] as XmlStyleRepository; } return(registered); }
public static XmlStyleRepository GetThemeRepository( string themeName, bool useAsterikTheme, bool useAppThemeName) { if (useAppThemeName && !string.IsNullOrEmpty(ThemeResolutionService.ApplicationThemeName)) { themeName = ThemeResolutionService.ApplicationThemeName; } else if (string.IsNullOrEmpty(themeName)) { themeName = ThemeResolutionService.ControlDefaultThemeName; } XmlStyleRepository xmlStyleRepository = ThemeResolutionService.registeredStyleRepositoriesByThemeName[(object)themeName] as XmlStyleRepository; if (xmlStyleRepository == null && useAsterikTheme) { xmlStyleRepository = ThemeResolutionService.registeredStyleRepositoriesByThemeName[(object)"*"] as XmlStyleRepository; } return(xmlStyleRepository); }