diff --git a/mRemoteV1/Resources/Themes/ColorMapTheme.Designer.cs b/mRemoteV1/Resources/Themes/ColorMapTheme.Designer.cs new file mode 100644 index 000000000..8510e08c9 --- /dev/null +++ b/mRemoteV1/Resources/Themes/ColorMapTheme.Designer.cs @@ -0,0 +1,405 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace mRemoteNG { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class ColorMapTheme { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal ColorMapTheme() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("mRemoteNG.Resources.Themes.ColorMapTheme", typeof(ColorMapTheme).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized string similar to /Themes/Theme/Category[@Name='CommonControls']/Color[@Name='Button']/Background/@Source. + /// + internal static string Button_Background { + get { + return ResourceManager.GetString("Button_Background", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to /Themes/Theme/Category[@Name='CommonControls']/Color[@Name='ButtonBorder']/Background/@Source. + /// + internal static string Button_Button_Border { + get { + return ResourceManager.GetString("Button_Button_Border", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to /Themes/Theme/Category[@Name='CommonControls']/Color[@Name='Button']/Foreground/@Source. + /// + internal static string Button_Foreground { + get { + return ResourceManager.GetString("Button_Foreground", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to /Themes/Theme/Category[@Name='CommonControls']/Color[@Name='ButtonHover']/Background/@Source. + /// + internal static string Button_Hover_Background { + get { + return ResourceManager.GetString("Button_Hover_Background", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to /Themes/Theme/Category[@Name='CommonControls']/Color[@Name='ButtonHover']/Foreground/@Source. + /// + internal static string Button_Hover_Foreground { + get { + return ResourceManager.GetString("Button_Hover_Foreground", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to /Themes/Theme/Category[@Name='CommonControls']/Color[@Name='ButtonPressed']/Background/@Source. + /// + internal static string Button_Pressed_Background { + get { + return ResourceManager.GetString("Button_Pressed_Background", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to /Themes/Theme/Category[@Name='CommonControls']/Color[@Name='ButtonPressed']/Foreground/@Source. + /// + internal static string Button_Pressed_Foreground { + get { + return ResourceManager.GetString("Button_Pressed_Foreground", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to /Themes/Theme/Category[@Name='TextEditorTextMarkerItems']/Color[@Name='compilererror']/Background/@Source. + /// + internal static string ErrorText_Background { + get { + return ResourceManager.GetString("ErrorText_Background", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to /Themes/Theme/Category[@Name='TextEditorTextMarkerItems']/Color[@Name='compilererror']/Foreground/@Source. + /// + internal static string ErrorText_Foreground { + get { + return ResourceManager.GetString("ErrorText_Foreground", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to /Themes/Theme/Category[@Name='Cider']/Color[@Name='ListBackground']/Background/@Source. + /// + internal static string List_Background { + get { + return ResourceManager.GetString("List_Background", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to /Themes/Theme/Category[@Name='Cider']/Color[@Name='ListHeader']/Background/@Source. + /// + internal static string List_Header_Background { + get { + return ResourceManager.GetString("List_Header_Background", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to /Themes/Theme/Category[@Name='Cider']/Color[@Name='ListHeader']/Foreground/@Source. + /// + internal static string List_Header_Foreground { + get { + return ResourceManager.GetString("List_Header_Foreground", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to /Themes/Theme/Category[@Name='Cider']/Color[@Name='ListItem']/Background/@Source. + /// + internal static string List_Item_Background { + get { + return ResourceManager.GetString("List_Item_Background", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to /Themes/Theme/Category[@Name='Cider']/Color[@Name='ListItemBorder']/Background/@Source. + /// + internal static string List_Item_Border { + get { + return ResourceManager.GetString("List_Item_Border", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to /Themes/Theme/Category[@Name='Cider']/Color[@Name='ListItemDisabled']/Background/@Source. + /// + internal static string List_Item_Disabled_Background { + get { + return ResourceManager.GetString("List_Item_Disabled_Background", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to /Themes/Theme/Category[@Name='Cider']/Color[@Name='ListItemDisabledBorder']/Background/@Source. + /// + internal static string List_Item_Disabled_Border { + get { + return ResourceManager.GetString("List_Item_Disabled_Border", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to /Themes/Theme/Category[@Name='Cider']/Color[@Name='ListItemDisabled']/Foreground/@Source. + /// + internal static string List_Item_Disabled_Foreground { + get { + return ResourceManager.GetString("List_Item_Disabled_Foreground", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to /Themes/Theme/Category[@Name='Cider']/Color[@Name='ListItem']/Foreground/@Source. + /// + internal static string List_Item_Foreground { + get { + return ResourceManager.GetString("List_Item_Foreground", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to /Themes/Theme/Category[@Name='Cider']/Color[@Name='ListItemSelected']/Background/@Source. + /// + internal static string List_Item_Selected_Background { + get { + return ResourceManager.GetString("List_Item_Selected_Background", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to /Themes/Theme/Category[@Name='Cider']/Color[@Name='ListItemSelectedBorder']/Background/@Source. + /// + internal static string List_Item_Selected_Border { + get { + return ResourceManager.GetString("List_Item_Selected_Border", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to /Themes/Theme/Category[@Name='Cider']/Color[@Name='ListItemSelected']/Foreground/@Source. + /// + internal static string List_Item_Selected_Foreground { + get { + return ResourceManager.GetString("List_Item_Selected_Foreground", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to /Themes/Theme/Category[@Name='CommonControls']/Color[@Name='TextBoxBackground']/Background/@Source. + /// + internal static string TextBox_Background { + get { + return ResourceManager.GetString("TextBox_Background", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to /Themes/Theme/Category[@Name='CommonControls']/Color[@Name='TextBoxBorder']/Background/@Source. + /// + internal static string TextBox_Border { + get { + return ResourceManager.GetString("TextBox_Border", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to /Themes/Theme/Category[@Name='CommonControls']/Color[@Name='TextBoxBorderDisabled']/Background/@Source. + /// + internal static string TextBox_Border_Disabled { + get { + return ResourceManager.GetString("TextBox_Border_Disabled", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to /Themes/Theme/Category[@Name='CommonControls']/Color[@Name='TextBoxBorderFocused']/Background/@Source. + /// + internal static string TextBox_Border_Focused { + get { + return ResourceManager.GetString("TextBox_Border_Focused", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to /Themes/Theme/Category[@Name='CommonControls']/Color[@Name='TextBoxBackgroundDisabled']/Background/@Source. + /// + internal static string TextBox_Disabled_Background { + get { + return ResourceManager.GetString("TextBox_Disabled_Background", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to /Themes/Theme/Category[@Name='CommonControls']/Color[@Name='TextBoxTextDisabled']/Background/@Source. + /// + internal static string TextBox_Disabled_Foreground { + get { + return ResourceManager.GetString("TextBox_Disabled_Foreground", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to /Themes/Theme/Category[@Name='CommonControls']/Color[@Name='TextBoxBackgroundFocused']/Background/@Source. + /// + internal static string TextBox_Focused_Background { + get { + return ResourceManager.GetString("TextBox_Focused_Background", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to /Themes/Theme/Category[@Name='CommonControls']/Color[@Name='TextBoxTextFocused']/Background/@Source. + /// + internal static string TextBox_Focused_Foreground { + get { + return ResourceManager.GetString("TextBox_Focused_Foreground", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to /Themes/Theme/Category[@Name='CommonControls']/Color[@Name='TextBoxText']/Background/@Source. + /// + internal static string TextBox_Foreground { + get { + return ResourceManager.GetString("TextBox_Foreground", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to /Themes/Theme/Category[@Name='TreeView']/Color[@Name='Background']/Background/@Source. + /// + internal static string TreeView_Background { + get { + return ResourceManager.GetString("TreeView_Background", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to /Themes/Theme/Category[@Name='TreeView']/Color[@Name='Background']/Foreground/@Source. + /// + internal static string TreeView_Foreground { + get { + return ResourceManager.GetString("TreeView_Foreground", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to /Themes/Theme/Category[@Name='TreeView']/Color[@Name='SelectedItemActive']/Background/@Source. + /// + internal static string Treeview_SelectedItem_Active_Background { + get { + return ResourceManager.GetString("Treeview_SelectedItem_Active_Background", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to /Themes/Theme/Category[@Name='TreeView']/Color[@Name='SelectedItemActive']/Foreground/@Source. + /// + internal static string Treeview_SelectedItem_Active_Foreground { + get { + return ResourceManager.GetString("Treeview_SelectedItem_Active_Foreground", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to /Themes/Theme/Category[@Name='TreeView']/Color[@Name='SelectedItemInactive']/Background/@Source. + /// + internal static string Treeview_SelectedItem_Inactive_Background { + get { + return ResourceManager.GetString("Treeview_SelectedItem_Inactive_Background", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to /Themes/Theme/Category[@Name='TreeView']/Color[@Name='SelectedItemInactive']/Foreground/@Source. + /// + internal static string Treeview_SelectedItem_Inactive_Foreground { + get { + return ResourceManager.GetString("Treeview_SelectedItem_Inactive_Foreground", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to /Themes/Theme/Category[@Name='TextEditorTextMarkerItems']/Color[@Name='compilerwarning']/Background/@Source. + /// + internal static string WarningText_Background { + get { + return ResourceManager.GetString("WarningText_Background", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to /Themes/Theme/Category[@Name='TextEditorTextMarkerItem']/Color[@Name='/compilerwarning']/Foreground/@Source. + /// + internal static string WarningText_Foreground { + get { + return ResourceManager.GetString("WarningText_Foreground", resourceCulture); + } + } + } +} diff --git a/mRemoteV1/Resources/Themes/ColorMapTheme.resx b/mRemoteV1/Resources/Themes/ColorMapTheme.resx new file mode 100644 index 000000000..1a3f09d3c --- /dev/null +++ b/mRemoteV1/Resources/Themes/ColorMapTheme.resx @@ -0,0 +1,234 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + /Themes/Theme/Category[@Name='CommonControls']/Color[@Name='Button']/Background/@Source + + + /Themes/Theme/Category[@Name='CommonControls']/Color[@Name='ButtonBorder']/Background/@Source + + + /Themes/Theme/Category[@Name='CommonControls']/Color[@Name='Button']/Foreground/@Source + + + /Themes/Theme/Category[@Name='CommonControls']/Color[@Name='ButtonHover']/Background/@Source + + + /Themes/Theme/Category[@Name='CommonControls']/Color[@Name='ButtonHover']/Foreground/@Source + + + /Themes/Theme/Category[@Name='CommonControls']/Color[@Name='ButtonPressed']/Background/@Source + + + /Themes/Theme/Category[@Name='CommonControls']/Color[@Name='ButtonPressed']/Foreground/@Source + + + /Themes/Theme/Category[@Name='TextEditorTextMarkerItems']/Color[@Name='compilererror']/Background/@Source + + + /Themes/Theme/Category[@Name='TextEditorTextMarkerItems']/Color[@Name='compilererror']/Foreground/@Source + + + /Themes/Theme/Category[@Name='Cider']/Color[@Name='ListBackground']/Background/@Source + + + /Themes/Theme/Category[@Name='Cider']/Color[@Name='ListHeader']/Background/@Source + + + /Themes/Theme/Category[@Name='Cider']/Color[@Name='ListHeader']/Foreground/@Source + + + /Themes/Theme/Category[@Name='Cider']/Color[@Name='ListItem']/Background/@Source + + + /Themes/Theme/Category[@Name='Cider']/Color[@Name='ListItemBorder']/Background/@Source + + + /Themes/Theme/Category[@Name='Cider']/Color[@Name='ListItemDisabled']/Background/@Source + + + /Themes/Theme/Category[@Name='Cider']/Color[@Name='ListItemDisabledBorder']/Background/@Source + + + /Themes/Theme/Category[@Name='Cider']/Color[@Name='ListItemDisabled']/Foreground/@Source + + + /Themes/Theme/Category[@Name='Cider']/Color[@Name='ListItem']/Foreground/@Source + + + /Themes/Theme/Category[@Name='Cider']/Color[@Name='ListItemSelected']/Background/@Source + + + /Themes/Theme/Category[@Name='Cider']/Color[@Name='ListItemSelectedBorder']/Background/@Source + + + /Themes/Theme/Category[@Name='Cider']/Color[@Name='ListItemSelected']/Foreground/@Source + + + /Themes/Theme/Category[@Name='CommonControls']/Color[@Name='TextBoxBackground']/Background/@Source + + + /Themes/Theme/Category[@Name='CommonControls']/Color[@Name='TextBoxBorder']/Background/@Source + + + /Themes/Theme/Category[@Name='CommonControls']/Color[@Name='TextBoxBorderDisabled']/Background/@Source + + + /Themes/Theme/Category[@Name='CommonControls']/Color[@Name='TextBoxBorderFocused']/Background/@Source + + + /Themes/Theme/Category[@Name='CommonControls']/Color[@Name='TextBoxBackgroundDisabled']/Background/@Source + + + /Themes/Theme/Category[@Name='CommonControls']/Color[@Name='TextBoxTextDisabled']/Background/@Source + + + /Themes/Theme/Category[@Name='CommonControls']/Color[@Name='TextBoxBackgroundFocused']/Background/@Source + + + /Themes/Theme/Category[@Name='CommonControls']/Color[@Name='TextBoxTextFocused']/Background/@Source + + + /Themes/Theme/Category[@Name='CommonControls']/Color[@Name='TextBoxText']/Background/@Source + + + /Themes/Theme/Category[@Name='TreeView']/Color[@Name='Background']/Background/@Source + + + /Themes/Theme/Category[@Name='TreeView']/Color[@Name='Background']/Foreground/@Source + + + /Themes/Theme/Category[@Name='TreeView']/Color[@Name='SelectedItemActive']/Background/@Source + + + /Themes/Theme/Category[@Name='TreeView']/Color[@Name='SelectedItemActive']/Foreground/@Source + + + /Themes/Theme/Category[@Name='TreeView']/Color[@Name='SelectedItemInactive']/Background/@Source + + + /Themes/Theme/Category[@Name='TreeView']/Color[@Name='SelectedItemInactive']/Foreground/@Source + + + /Themes/Theme/Category[@Name='TextEditorTextMarkerItems']/Color[@Name='compilerwarning']/Background/@Source + + + /Themes/Theme/Category[@Name='TextEditorTextMarkerItem']/Color[@Name='/compilerwarning']/Foreground/@Source + + \ No newline at end of file diff --git a/mRemoteV1/Themes/ExtendedColorPalette.cs b/mRemoteV1/Themes/ExtendedColorPalette.cs index e498709e5..577898d3b 100644 --- a/mRemoteV1/Themes/ExtendedColorPalette.cs +++ b/mRemoteV1/Themes/ExtendedColorPalette.cs @@ -6,78 +6,60 @@ using System.Text; namespace mRemoteNG.Themes { - - public class BasicPalette - { - public Color Background { get; set; } - public Color Foreground { get; set; } - } - public class TreeViewPalette : BasicPalette - { - public BasicPalette SelectedItemActive { get; set; } - public BasicPalette SelectedItemInactive { get; set; } - } - - public class ListPalette : BasicPalette - { - public BasicPalette ListItem { get; set; } - public BasicPalette ListHeader { get; set; } - public Color ListItemBorder { get; set; } - public Color ListItemSelectedBorder { get; set; } - public BasicPalette ListItemSelected { get; set; } - public BasicPalette ListItemDisabled { get; set; } - public Color ListItemDisabledBorder { get; set; } - - } - - public class ButtonPalette : BasicPalette - { - public Color ButtonBorder { get; set; } - public BasicPalette ButtonPressed { get; set; } - public BasicPalette ButtonHover { get; set; } - - } - public class TextBoxPalette : BasicPalette - { - public Color TextBoxBorder { get; set; } - public Color TextBoxBorderDisabled { get; set; } - public Color TextBoxBorderFocused { get; set; } - public BasicPalette TextBoxFocused { get; set; } - public BasicPalette TextBoxDisabled { get; set; } - - } - - public class ExtendedColorPalette { - public TreeViewPalette TreeViewPalette { get; set; } - public ListPalette ListPalette { get; set; } - public ButtonPalette ButtonPalette { get; set; } - public BasicPalette ErrorText { get; set; } - public BasicPalette WarningText { get; set; } - public TextBoxPalette TextBoxPalette { get; set; } + #region Private Variables + //Collection for color values that are not loaded by dock panels (list, buttons,panel content, etc) + private Dictionary _extendedColors; + private Dictionary _default; + #endregion + #region Constructors public ExtendedColorPalette() { - TreeViewPalette = new TreeViewPalette(); - TreeViewPalette.SelectedItemActive = new BasicPalette(); - TreeViewPalette.SelectedItemInactive = new BasicPalette(); - ListPalette = new ListPalette(); - ListPalette.ListItem = new BasicPalette(); - ListPalette.ListHeader = new BasicPalette(); - ListPalette.ListItemSelected = new BasicPalette(); - ListPalette.ListItemDisabled = new BasicPalette(); - ButtonPalette = new ButtonPalette(); - ButtonPalette.ButtonPressed = new BasicPalette(); - ButtonPalette.ButtonHover = new BasicPalette(); - ErrorText = new BasicPalette(); - WarningText = new BasicPalette(); - TextBoxPalette = new TextBoxPalette(); - TextBoxPalette.TextBoxFocused = new BasicPalette(); - TextBoxPalette.TextBoxDisabled = new BasicPalette(); + _extendedColors = new Dictionary(); + _default = new Dictionary(); // If this is the default palette, it will not have a default-default palette + + } + #endregion + + #region Public Methods + // Set the default theme, that theme should contain all color values used by the application + public void setDefault(ExtendedColorPalette inPalettte) + { + _default = inPalettte._extendedColors; + } + #endregion + + public Color getColor(String colorKey) + { + Color retColor= Color.Empty; + + retColor = _extendedColors[colorKey]; + if(retColor == Color.Empty) + { + if(_default != null) + { + retColor = _default[colorKey]; + } + //why are we here?, just avoid a crash + if(retColor == Color.Empty) + { + //Fail to pink , because why not + retColor = Color.Pink; + } + + } + return retColor; } + public void addColor(String colorKey,Color inColor) + { + _extendedColors.Add(colorKey, inColor); + } + } - } + + \ No newline at end of file diff --git a/mRemoteV1/Themes/MremoteNGPaletteLoader.cs b/mRemoteV1/Themes/MremoteNGPaletteLoader.cs index 81635afcd..c24b8d08a 100644 --- a/mRemoteV1/Themes/MremoteNGPaletteLoader.cs +++ b/mRemoteV1/Themes/MremoteNGPaletteLoader.cs @@ -1,9 +1,15 @@ -using System; +using mRemoteNG.Themes; +using System; +using System.Collections; using System.Collections.Generic; +using System.Configuration; using System.Drawing; +using System.Globalization; using System.IO; using System.Linq; +using System.Resources; using System.Text; +using System.Xml; using System.Xml.Linq; namespace mRemoteNG.Themes @@ -11,77 +17,43 @@ namespace mRemoteNG.Themes //Class to extract the rest of the required theme colors for MremoteNG from the vstheme file public class MremoteNGPaletteLoader { - private XDocument _xml; + private XmlDocument _xml; + private ExtendedColorPalette _defaultPalette; - public MremoteNGPaletteLoader(byte[] file) + + + //warning, defaultpalette should always contain all the values, because when is loaded there is no default palette (parameter is null + public MremoteNGPaletteLoader(byte[] file, ExtendedColorPalette defaultPalette = null ) { - _xml = XDocument.Load(new StreamReader(new MemoryStream(file))); + _xml = new XmlDocument(); + _xml.LoadXml(new StreamReader(new MemoryStream(file)).ReadToEnd()); + _defaultPalette = defaultPalette ?? new ExtendedColorPalette(); } + + + //Load the colors for the mRemoteNG own components as Dockpanel only have a menus and docks palette public ExtendedColorPalette getColors() { - ExtendedColorPalette palette = new ExtendedColorPalette(); - //List tree colors - palette.TreeViewPalette.Background= ColorTranslatorFromHtml("TreeView", "Background",false); - palette.TreeViewPalette.Foreground= ColorTranslatorFromHtml("TreeView", "Background",true); - palette.TreeViewPalette.SelectedItemActive.Background= ColorTranslatorFromHtml("TreeView", "SelectedItemActive", false); - palette.TreeViewPalette.SelectedItemActive.Foreground= ColorTranslatorFromHtml("TreeView", "SelectedItemActive", true); - palette.TreeViewPalette.SelectedItemInactive.Background= ColorTranslatorFromHtml("TreeView", "SelectedItemInactive", false); - palette.TreeViewPalette.SelectedItemInactive.Foreground= ColorTranslatorFromHtml("TreeView", "SelectedItemInactive", true); - //List items colors, used for config and external tools - palette.ListPalette.Background= ColorTranslatorFromHtml("Cider", "ListBackground", false); - palette.ListPalette.ListItem.Foreground= ColorTranslatorFromHtml("Cider", "ListItem", true); - palette.ListPalette.ListItem.Background= ColorTranslatorFromHtml("Cider", "ListItem", false); - palette.ListPalette.ListHeader.Foreground= ColorTranslatorFromHtml("Cider", "ListHeader", true); - palette.ListPalette.ListHeader.Background= ColorTranslatorFromHtml("Cider", "ListHeader", false); - palette.ListPalette.ListItemBorder= ColorTranslatorFromHtml("Cider", "ListItemBorder", false); - palette.ListPalette.ListItemSelectedBorder= ColorTranslatorFromHtml("Cider", "ListItemSelectedBorder", false); - palette.ListPalette.ListItemSelected.Foreground= ColorTranslatorFromHtml("Cider", "ListItemSelected", true); - palette.ListPalette.ListItemSelected.Background= ColorTranslatorFromHtml("Cider", "ListItemSelected", false); - palette.ListPalette.ListItemDisabled.Foreground= ColorTranslatorFromHtml("Cider", "ListItemDisabled", true); - palette.ListPalette.ListItemDisabled.Background= ColorTranslatorFromHtml("Cider", "ListItemDisabled", false); - palette.ListPalette.ListItemDisabledBorder = ColorTranslatorFromHtml("Cider", "ListItemDisabledBorder", false); - //Button colors - palette.ButtonPalette.Background = ColorTranslatorFromHtml("CommonControls", "Button", false); - palette.ButtonPalette.Foreground = ColorTranslatorFromHtml("CommonControls", "Button", true); - palette.ButtonPalette.ButtonBorder = ColorTranslatorFromHtml("CommonControls", "ButtonBorder", false); - palette.ButtonPalette.ButtonPressed.Background = ColorTranslatorFromHtml("CommonControls", "ButtonPressed", false); - palette.ButtonPalette.ButtonPressed.Foreground= ColorTranslatorFromHtml("CommonControls", "ButtonPressed", true); - palette.ButtonPalette.ButtonHover.Background = ColorTranslatorFromHtml("CommonControls", "ButtonHover", false); - palette.ButtonPalette.ButtonHover.Foreground = ColorTranslatorFromHtml("CommonControls", "ButtonHover", true); - //Button colors - palette.WarningText.Background = ColorTranslatorFromHtml("Text Editor Text Marker Items", "compiler warning", false); - palette.WarningText.Foreground = ColorTranslatorFromHtml("Text Editor Text Marker Items", "compiler warning", true); - palette.ErrorText.Background = ColorTranslatorFromHtml("Text Editor Text Marker Items", "compiler error", false); - palette.ErrorText.Foreground = ColorTranslatorFromHtml("Text Editor Text Marker Items", "compiler error", true); - //Text box colors - palette.TextBoxPalette.Background = ColorTranslatorFromHtml("CommonControls", "TextBoxBackground", false); - palette.TextBoxPalette.Foreground = ColorTranslatorFromHtml("CommonControls", "TextBoxText", false); - palette.TextBoxPalette.TextBoxBorder = ColorTranslatorFromHtml("CommonControls", "TextBoxBorder", false); - palette.TextBoxPalette.TextBoxBorderDisabled = ColorTranslatorFromHtml("CommonControls", "TextBoxBorderDisabled", false); - palette.TextBoxPalette.TextBoxBorderFocused = ColorTranslatorFromHtml("CommonControls", "TextBoxBorderFocused", false); - palette.TextBoxPalette.TextBoxDisabled.Background = ColorTranslatorFromHtml("CommonControls", "TextBoxBackgroundDisabled", false); - palette.TextBoxPalette.TextBoxDisabled.Foreground = ColorTranslatorFromHtml("CommonControls", "TextBoxTextDisabled", false); - palette.TextBoxPalette.TextBoxFocused.Background = ColorTranslatorFromHtml("CommonControls", "TextBoxBackgroundFocused", false); - palette.TextBoxPalette.TextBoxFocused.Foreground = ColorTranslatorFromHtml("CommonControls", "TextBoxTextFocused", false); - - - return palette; - } - - //This code is taken from VS2012PaletteFactory WeifenLuo - private Color ColorTranslatorFromHtml(string category,string name, bool foreground = false) - { - var color = _xml.Root.Element("Theme") - .Elements("Category").FirstOrDefault(item => item.Attribute("Name").Value == category)? - .Elements("Color").FirstOrDefault(item => item.Attribute("Name").Value == name)? - .Element(foreground ? "Foreground" : "Background").Attribute("Source").Value; - if (color == null) + ExtendedColorPalette newPalette = new ExtendedColorPalette(); + newPalette.setDefault(_defaultPalette); + ResourceSet resourceSet = mRemoteNG.ColorMapTheme.ResourceManager.GetResourceSet(CultureInfo.CurrentUICulture, true, true); + // + foreach (DictionaryEntry entry in resourceSet) { - return Color.Transparent; - } + string colorName = entry.Key.ToString(); + String xmlQueryPath = (String)entry.Value; + XmlNodeList colorNodeList = _xml.DocumentElement.FirstChild.SelectNodes(xmlQueryPath); + //XmlNodeList colorNodeList = _xml.SelectNodes("/Themes/Theme/Category[@Name='Cider']/Color[@Name='ListItemSelectedBorder']/Background/@Source"); + String color = colorNodeList.Count > 0 ? colorNodeList[0].Value : null; + if (color != null ) + { + newPalette.addColor(colorName , ColorTranslator.FromHtml($"#{color}")); + } + } - return ColorTranslator.FromHtml($"#{color}"); + return newPalette; } + } } diff --git a/mRemoteV1/Themes/ThemeManager.cs b/mRemoteV1/Themes/ThemeManager.cs index 007f7c49a..eea5996f5 100644 --- a/mRemoteV1/Themes/ThemeManager.cs +++ b/mRemoteV1/Themes/ThemeManager.cs @@ -53,18 +53,23 @@ namespace mRemoteNG.Themes //Load the files in theme folder first, to incluide vstheme light as default string[] themeFiles = Directory.GetFiles(Path.Combine(App.Info.SettingsFileInfo.SettingsPath, "themes"), "*.vstheme"); - + string defaultThemeURL = Directory.GetFiles(Path.Combine(App.Info.SettingsFileInfo.SettingsPath, "themes"), "vs2015light"+".vstheme")[0]; + //First we load the default theme, its vs2015light + ThemeInfo defaultTheme = ThemeSerializer.LoadFromXmlFile(defaultThemeURL); + themes.Add(defaultTheme.Name, defaultTheme); + //Then the rest foreach (string themeFile in themeFiles) { - ThemeInfo extTheme = ThemeSerializer.LoadFromXmlFile(themeFile); - if (extTheme.Theme != null) + //filter default one + ThemeInfo extTheme = ThemeSerializer.LoadFromXmlFile(themeFile, defaultTheme); + if (extTheme.Theme != null && !themes.ContainsKey(extTheme.Name) ) { themes.Add(extTheme.Name, extTheme); } } - //Load the embedded themes, extended palettes are taken from the vs2015 themes + //Load the embedded themes, extended palettes are taken from the vs2015 themes, trying to match the color theme ThemeInfo vs2003 = new ThemeInfo("Vs2003", new VS2003Theme(), "", VisualStudioToolStripExtender.VsVersion.Vs2003, ((ThemeInfo)themes["vs2015light"]).ExtendedPalette); themes.Add("Vs2003", vs2003); ThemeInfo vs2005 = new ThemeInfo("Vs2005", new VS2005Theme(), "", VisualStudioToolStripExtender.VsVersion.Vs2005, ((ThemeInfo)themes["vs2015light"]).ExtendedPalette); @@ -129,7 +134,7 @@ namespace mRemoteNG.Themes { get { - return (ThemeInfo) themes["vs2015light"]; + return (ThemeInfo) themes["vs2015blue"]; } } diff --git a/mRemoteV1/Themes/ThemeSerializer.cs b/mRemoteV1/Themes/ThemeSerializer.cs index 71565aab3..168875b46 100644 --- a/mRemoteV1/Themes/ThemeSerializer.cs +++ b/mRemoteV1/Themes/ThemeSerializer.cs @@ -18,13 +18,16 @@ namespace mRemoteNG.Themes } - public static ThemeInfo LoadFromXmlFile(string filename) + public static ThemeInfo LoadFromXmlFile(string filename, ThemeInfo defaultTheme=null) { byte[] bytes = File.ReadAllBytes(filename); + //Load the dockpanel part MremoteNGThemeBase themeBaseLoad= new MremoteNGThemeBase(bytes); - MremoteNGPaletteLoader colorFactory = new MremoteNGPaletteLoader(bytes); - ExtendedColorPalette extColorPalette = colorFactory.getColors(); - ThemeInfo loadedTheme = new ThemeInfo(Path.GetFileNameWithoutExtension(filename), themeBaseLoad, filename, VisualStudioToolStripExtender.VsVersion.Vs2015, extColorPalette); + //Load the mremote part + MremoteNGPaletteLoader extColorLoader; + //Cause we cannot default the theme for the default theme + extColorLoader = new MremoteNGPaletteLoader(bytes, defaultTheme ==null ? null:defaultTheme.ExtendedPalette); + ThemeInfo loadedTheme = new ThemeInfo(Path.GetFileNameWithoutExtension(filename), themeBaseLoad, filename, VisualStudioToolStripExtender.VsVersion.Vs2015, extColorLoader.getColors()); return loadedTheme; } diff --git a/mRemoteV1/UI/Window/ConfigWindow.cs b/mRemoteV1/UI/Window/ConfigWindow.cs index 0dbe6c871..b46fda72a 100644 --- a/mRemoteV1/UI/Window/ConfigWindow.cs +++ b/mRemoteV1/UI/Window/ConfigWindow.cs @@ -610,17 +610,17 @@ namespace mRemoteNG.UI.Window private void ApplyTheme() { - _pGrid.BackColor = _themeManager.ActiveTheme.ExtendedPalette.TextBoxPalette.Background; - _pGrid.ForeColor = _themeManager.ActiveTheme.ExtendedPalette.TextBoxPalette.Foreground; - _pGrid.ViewBackColor = _themeManager.ActiveTheme.ExtendedPalette.ListPalette.ListItem.Background; - _pGrid.ViewForeColor = _themeManager.ActiveTheme.ExtendedPalette.ListPalette.ListItem.Foreground; - _pGrid.LineColor = _themeManager.ActiveTheme.ExtendedPalette.ListPalette.ListItemBorder; - _pGrid.HelpBackColor = _themeManager.ActiveTheme.ExtendedPalette.TextBoxPalette.Background; - _pGrid.HelpForeColor = _themeManager.ActiveTheme.ExtendedPalette.TextBoxPalette.Foreground; - _pGrid.CategoryForeColor = _themeManager.ActiveTheme.ExtendedPalette.ListPalette.ListHeader.Foreground; - _pGrid.CommandsDisabledLinkColor = _themeManager.ActiveTheme.ExtendedPalette.ListPalette.ListItemDisabled.Foreground; - _pGrid.CommandsBackColor = _themeManager.ActiveTheme.ExtendedPalette.ListPalette.ListItemDisabled.Background; - _pGrid.CommandsForeColor = _themeManager.ActiveTheme.ExtendedPalette.ListPalette.ListItemDisabled.Foreground; + _pGrid.BackColor = _themeManager.ActiveTheme.ExtendedPalette.getColor("TextBox_Background"); + _pGrid.ForeColor = _themeManager.ActiveTheme.ExtendedPalette.getColor("TextBox_Foreground"); + _pGrid.ViewBackColor = _themeManager.ActiveTheme.ExtendedPalette.getColor("List_Item_Background"); + _pGrid.ViewForeColor = _themeManager.ActiveTheme.ExtendedPalette.getColor("List_Item_Foreground"); + _pGrid.LineColor = _themeManager.ActiveTheme.ExtendedPalette.getColor("List_Item_Border"); + _pGrid.HelpBackColor = _themeManager.ActiveTheme.ExtendedPalette.getColor("TextBox_Background"); + _pGrid.HelpForeColor = _themeManager.ActiveTheme.ExtendedPalette.getColor("TextBox_Foreground"); + _pGrid.CategoryForeColor = _themeManager.ActiveTheme.ExtendedPalette.getColor("List_Header_Background"); + _pGrid.CommandsDisabledLinkColor = _themeManager.ActiveTheme.ExtendedPalette.getColor("List_Item_Disabled_Foreground"); + _pGrid.CommandsBackColor = _themeManager.ActiveTheme.ExtendedPalette.getColor("List_Item_Disabled_Background"); + _pGrid.CommandsForeColor = _themeManager.ActiveTheme.ExtendedPalette.getColor("List_Item_Disabled_Foreground"); diff --git a/mRemoteV1/UI/Window/ConnectionTreeWindow.cs b/mRemoteV1/UI/Window/ConnectionTreeWindow.cs index 59bbd3266..7c996c9e7 100644 --- a/mRemoteV1/UI/Window/ConnectionTreeWindow.cs +++ b/mRemoteV1/UI/Window/ConnectionTreeWindow.cs @@ -81,12 +81,12 @@ namespace mRemoteNG.UI.Window { vsToolStripExtender.SetStyle(msMain, _themeManager.ActiveTheme.Version, _themeManager.ActiveTheme.Theme); //Treelistview need to be manually themed - olvConnections.BackColor = _themeManager.ActiveTheme.ExtendedPalette.TreeViewPalette.Background; - olvConnections.ForeColor = _themeManager.ActiveTheme.ExtendedPalette.TreeViewPalette.Foreground; - olvConnections.SelectedBackColor = _themeManager.ActiveTheme.ExtendedPalette.TreeViewPalette.SelectedItemActive.Background; - olvConnections.SelectedForeColor = _themeManager.ActiveTheme.ExtendedPalette.TreeViewPalette.SelectedItemActive.Foreground; - olvConnections.UnfocusedSelectedBackColor = _themeManager.ActiveTheme.ExtendedPalette.TreeViewPalette.SelectedItemInactive.Background; - olvConnections.UnfocusedSelectedForeColor = _themeManager.ActiveTheme.ExtendedPalette.TreeViewPalette.SelectedItemInactive.Foreground; + olvConnections.BackColor = _themeManager.ActiveTheme.ExtendedPalette.getColor("TreeView_Background"); + olvConnections.ForeColor = _themeManager.ActiveTheme.ExtendedPalette.getColor("TreeView_Foreground"); + olvConnections.SelectedBackColor = _themeManager.ActiveTheme.ExtendedPalette.getColor("Treeview_SelectedItem_Active_Background"); + olvConnections.SelectedForeColor = _themeManager.ActiveTheme.ExtendedPalette.getColor("Treeview_SelectedItem_Active_Foreground"); + olvConnections.UnfocusedSelectedBackColor = _themeManager.ActiveTheme.ExtendedPalette.getColor("Treeview_SelectedItem_Inactive_Background"); + olvConnections.UnfocusedSelectedForeColor = _themeManager.ActiveTheme.ExtendedPalette.getColor("Treeview_SelectedItem_Inactive_Foreground"); } #endregion diff --git a/mRemoteV1/UI/Window/ErrorAndInfoWindow.cs b/mRemoteV1/UI/Window/ErrorAndInfoWindow.cs index f6eec5829..36741b21f 100644 --- a/mRemoteV1/UI/Window/ErrorAndInfoWindow.cs +++ b/mRemoteV1/UI/Window/ErrorAndInfoWindow.cs @@ -52,8 +52,8 @@ namespace mRemoteNG.UI.Window #region Private Methods private void ApplyTheme() { - lvErrorCollector.BackColor = _themeManager.ActiveTheme.ExtendedPalette.TextBoxPalette.Background; - lvErrorCollector.ForeColor = _themeManager.ActiveTheme.ExtendedPalette.TextBoxPalette.Foreground; + lvErrorCollector.BackColor = _themeManager.ActiveTheme.ExtendedPalette.getColor("TextBox_Background"); + lvErrorCollector.ForeColor = _themeManager.ActiveTheme.ExtendedPalette.getColor("List_Item_Selected_Foreground"); } @@ -194,17 +194,17 @@ namespace mRemoteNG.UI.Window break; case MessageClass.WarningMsg: pbError.Image = Resources.Warning; - pnlErrorMsg.BackColor = _themeManager.ActiveTheme.ExtendedPalette.WarningText.Background; - pnlErrorMsg.ForeColor = _themeManager.ActiveTheme.ExtendedPalette.WarningText.Foreground; - txtMsgText.BackColor = _themeManager.ActiveTheme.ExtendedPalette.WarningText.Background; - txtMsgText.ForeColor = _themeManager.ActiveTheme.ExtendedPalette.WarningText.Foreground; + pnlErrorMsg.BackColor = _themeManager.ActiveTheme.ExtendedPalette.getColor("WarningText_Background"); + pnlErrorMsg.ForeColor = _themeManager.ActiveTheme.ExtendedPalette.getColor ("WarningText_Foreground"); + txtMsgText.BackColor = _themeManager.ActiveTheme.ExtendedPalette.getColor("WarningText_Background"); + txtMsgText.ForeColor = _themeManager.ActiveTheme.ExtendedPalette.getColor("WarningText_Foreground"); break; case MessageClass.ErrorMsg: pbError.Image = Resources._Error; - pnlErrorMsg.BackColor = _themeManager.ActiveTheme.ExtendedPalette.ErrorText.Background; - pnlErrorMsg.ForeColor = _themeManager.ActiveTheme.ExtendedPalette.ErrorText.Foreground; - txtMsgText.BackColor = _themeManager.ActiveTheme.ExtendedPalette.ErrorText.Background; - txtMsgText.ForeColor = _themeManager.ActiveTheme.ExtendedPalette.ErrorText.Foreground; + pnlErrorMsg.BackColor = _themeManager.ActiveTheme.ExtendedPalette.getColor("ErrorText_Background"); + pnlErrorMsg.ForeColor = _themeManager.ActiveTheme.ExtendedPalette.getColor("ErrorText_Foreground"); + txtMsgText.BackColor = _themeManager.ActiveTheme.ExtendedPalette.getColor("ErrorText_Background"); + txtMsgText.ForeColor = _themeManager.ActiveTheme.ExtendedPalette.getColor("ErrorText_Foreground"); break; } diff --git a/mRemoteV1/UI/Window/ExternalToolsWindow.cs b/mRemoteV1/UI/Window/ExternalToolsWindow.cs index 6c37a2952..f6e3d1829 100644 --- a/mRemoteV1/UI/Window/ExternalToolsWindow.cs +++ b/mRemoteV1/UI/Window/ExternalToolsWindow.cs @@ -230,16 +230,16 @@ namespace mRemoteNG.UI.Window ToolStripContainer.TopToolStripPanel.ForeColor= _themeManager.ActiveTheme.Theme.ColorPalette.CommandBarMenuDefault.Text; PropertiesGroupBox.BackColor = _themeManager.ActiveTheme.Theme.ColorPalette.CommandBarMenuDefault.Background; PropertiesGroupBox.ForeColor = _themeManager.ActiveTheme.Theme.ColorPalette.CommandBarMenuDefault.Text; - DisplayNameTextBox.BackColor = _themeManager.ActiveTheme.ExtendedPalette.ListPalette.ListItem.Background; - DisplayNameTextBox.ForeColor = _themeManager.ActiveTheme.ExtendedPalette.ListPalette.ListItem.Foreground; - FilenameTextBox.BackColor = _themeManager.ActiveTheme.ExtendedPalette.ListPalette.ListItem.Background; - FilenameTextBox.ForeColor = _themeManager.ActiveTheme.ExtendedPalette.ListPalette.ListItem.Foreground; - ArgumentsCheckBox.BackColor = _themeManager.ActiveTheme.ExtendedPalette.ListPalette.ListItem.Background; - ArgumentsCheckBox.ForeColor = _themeManager.ActiveTheme.ExtendedPalette.ListPalette.ListItem.Foreground; - BrowseButton.BackColor = _themeManager.ActiveTheme.ExtendedPalette.ButtonPalette.Background; - BrowseButton.ForeColor = _themeManager.ActiveTheme.ExtendedPalette.ButtonPalette.Foreground; - ToolsListView.BackColor = _themeManager.ActiveTheme.ExtendedPalette.ListPalette.ListItem.Background; - ToolsListView.ForeColor = _themeManager.ActiveTheme.ExtendedPalette.ListPalette.ListItem.Foreground; + DisplayNameTextBox.BackColor = _themeManager.ActiveTheme.ExtendedPalette.getColor("List_Item_Background"); + DisplayNameTextBox.ForeColor = _themeManager.ActiveTheme.ExtendedPalette.getColor("List_Item_Foreground"); + FilenameTextBox.BackColor = _themeManager.ActiveTheme.ExtendedPalette.getColor("List_Item_Background"); + FilenameTextBox.ForeColor = _themeManager.ActiveTheme.ExtendedPalette.getColor("List_Item_Foreground"); + ArgumentsCheckBox.BackColor = _themeManager.ActiveTheme.ExtendedPalette.getColor("List_Item_Background"); + ArgumentsCheckBox.ForeColor = _themeManager.ActiveTheme.ExtendedPalette.getColor("List_Item_Foreground"); + BrowseButton.BackColor = _themeManager.ActiveTheme.ExtendedPalette.getColor("Button_Background"); + BrowseButton.ForeColor = _themeManager.ActiveTheme.ExtendedPalette.getColor("Button_Foreground"); + ToolsListView.BackColor = _themeManager.ActiveTheme.ExtendedPalette.getColor("List_Item_Background"); + ToolsListView.ForeColor = _themeManager.ActiveTheme.ExtendedPalette.getColor("List_Header_Foreground"); } diff --git a/mRemoteV1/app.config b/mRemoteV1/app.config index 8fafe4924..b6f4fc11c 100644 --- a/mRemoteV1/app.config +++ b/mRemoteV1/app.config @@ -6,6 +6,7 @@
+
@@ -655,6 +656,122 @@ + + + /TreeView/Background/Background/@Source + + + /TreeView/Background/Foreground/@Source + + + /TreeView/SelectedItemActive/Background/@Source + + + /TreeView/SelectedItemActive/Foreground/@Source + + + /TreeView/SelectedItemInactive/Background/@Source + + + /TreeView/SelectedItemInactive/Foreground/@Source + + + /Cider/ListBackground/Background/@Source + + + /Cider/ListItem/Foreground/@Source + + + /Cider/ListItem/Background/@Source + + + /Cider/ListItemBorder/Background/@Source + + + /Cider/ListHeader/Background/@Source + + + /Cider/ListHeader/Foreground/@Source + + + /Cider/ListItemSelectedBorder/Background/@Source + + + /Cider/ListItemSelected/Foreground/@Source + + + /Cider/ListItemSelected/Background/@Source + + + /Cider/ListItemDisabled/Foreground/@Source + + + /Cider/ListItemDisabled/Background/@Source + + + /Cider/ListItemDisabledBorder/Background/@Source + + + /CommonControls/Button/Background/@Source + + + /CommonControls/Button/Foreground/@Source + + + /CommonControls/ButtonBorder/Background/@Source + + + /CommonControls/ButtonPressed/Background/@Source + + + /CommonControls/ButtonPressed/Foreground/@Source + + + /CommonControls/ButtonHover/Background/@Source + + + /CommonControls/ButtonHover/Foreground/@Source + + + /TextEditorTextMarkerItems/compilerwarning/Background/@Source + + + /TextEditorTextMarkerItems/compilerwarning/Foreground/@Source + + + /TextEditorTextMarkerItems/compilererror/Background/@Source + + + /TextEditorTextMarkerItems/compilererror/Foreground/@Source + + + /CommonControls/TextBoxBackground/Background/@Source + + + /CommonControls/TextBoxText/Background/@Source + + + /CommonControls/TextBoxBorder/Background/@Source + + + /CommonControls/TextBoxBorderDisabled/Background/@Source + + + /CommonControls/TextBoxBorderFocused/Background/@Source + + + /CommonControls/TextBoxBackgroundDisabled/Background/@Source + + + /CommonControls/TextBoxTextDisabled/Background/@Source + + + /CommonControls/TextBoxBackgroundFocused/Background/@Source + + + /CommonControls/TextBoxTextFocused/Background/@Source + + https://mremoteng.org/ diff --git a/mRemoteV1/mRemoteV1.csproj b/mRemoteV1/mRemoteV1.csproj index 6b2d50728..04f7286a6 100644 --- a/mRemoteV1/mRemoteV1.csproj +++ b/mRemoteV1/mRemoteV1.csproj @@ -248,6 +248,11 @@ + + True + True + ColorMapTheme.resx + @@ -761,6 +766,11 @@ + + ResXFileCodeGenerator + ColorMapTheme.Designer.cs + mRemoteNG + CredentialRecordListView.cs @@ -982,7 +992,18 @@ - + + Always + + + Always + + + Always + + + Always + Designer