//Load the colors for the mRemoteNG own components as Dockpanel only have a menus and docks palette public ExtendedColorPalette getColors() { var newPalette = new ExtendedColorPalette(); newPalette.setDefault(_defaultPalette); var resourceSet = ColorMapTheme.ResourceManager.GetResourceSet(CultureInfo.CurrentUICulture, true, true); // foreach (DictionaryEntry entry in resourceSet) { var colorName = entry.Key.ToString(); var xmlQueryPath = entry.Value.ToString(); if (_xml.DocumentElement == null) { continue; } var colorNodeList = _xml.DocumentElement.FirstChild.SelectNodes(xmlQueryPath); var color = colorNodeList != null && colorNodeList.Count > 0 ? colorNodeList[0].Value : null; if (color != null) { newPalette.addColor(colorName, ColorTranslator.FromHtml($"#{color}")); } } return(newPalette); }
public ThemeInfo(string themeName, ThemeBase inTheme, string inURI, VisualStudioToolStripExtender.VsVersion inVersion, ExtendedColorPalette inExtendedPalette) { _name = themeName; _theme = inTheme; _URI = inURI; _version = inVersion; _extendedPalette = inExtendedPalette; IsThemeBase = false; IsExtendable = false; }
public object Clone() { var extPalette = new ExtendedColorPalette { ExtColorPalette = _extendedPalette.ExtColorPalette.ToDictionary(entry => entry.Key, entry => entry.Value), DefaultColorPalette = _extendedPalette.DefaultColorPalette }; var clonedObj = new ThemeInfo(_name, _theme, _URI, _version, extPalette) { IsExtendable = IsExtendable, IsThemeBase = IsThemeBase }; return(clonedObj); }
/// <summary> /// Takes a palette from memory and update the xml elements in disk /// </summary> /// <param name="colorPalette"></param> /// <returns></returns> public byte[] mergePalette(ExtendedColorPalette colorPalette) { var resourceSet = ColorMapTheme.ResourceManager.GetResourceSet(CultureInfo.CurrentUICulture, true, true); foreach (DictionaryEntry entry in resourceSet) { var colorName = entry.Key.ToString(); var xmlQueryPath = entry.Value.ToString(); var colorNodeList = _xml.DocumentElement?.FirstChild.SelectNodes(xmlQueryPath); if (colorNodeList == null || colorNodeList.Count <= 0) { continue; } var paletteColor = colorPalette.getColor(colorName); colorNodeList[0].Value = $"FF{paletteColor.R:X2}{paletteColor.G:X2}{paletteColor.B:X2}"; } var ms = new MemoryStream(); _xml.Save(ms); var bytes = ms.ToArray(); return(bytes); }
//warning, defaultpalette should always contain all the values, because when is loaded there is no default palette (parameter is null public MremoteNGPaletteManipulator(byte[] file, ExtendedColorPalette defaultPalette = null) { _xml = new XmlDocument(); _xml.LoadXml(new StreamReader(new MemoryStream(file)).ReadToEnd()); _defaultPalette = defaultPalette ?? new ExtendedColorPalette(); }
// Set the default theme, that theme should contain all color values used by the application public void setDefault(ExtendedColorPalette inPalettte) { DefaultColorPalette = inPalettte.ExtColorPalette; }