changed loading and defaulting theme method

Use resource style  and xpath for loading, now the default is merged dinamically into the active theme by using a dictionary storange
This commit is contained in:
CamAlvar
2017-07-06 01:06:26 -05:00
parent 5429bb7d2b
commit 0c19a1aafe
12 changed files with 915 additions and 176 deletions

View File

@@ -0,0 +1,405 @@
//------------------------------------------------------------------------------
// <auto-generated>
// 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.
// </auto-generated>
//------------------------------------------------------------------------------
namespace mRemoteNG {
using System;
/// <summary>
/// A strongly-typed resource class, for looking up localized strings, etc.
/// </summary>
// 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() {
}
/// <summary>
/// Returns the cached ResourceManager instance used by this class.
/// </summary>
[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;
}
}
/// <summary>
/// Overrides the current thread's CurrentUICulture property for all
/// resource lookups using this strongly typed resource class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture {
get {
return resourceCulture;
}
set {
resourceCulture = value;
}
}
/// <summary>
/// Looks up a localized string similar to /Themes/Theme/Category[@Name=&apos;CommonControls&apos;]/Color[@Name=&apos;Button&apos;]/Background/@Source.
/// </summary>
internal static string Button_Background {
get {
return ResourceManager.GetString("Button_Background", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to /Themes/Theme/Category[@Name=&apos;CommonControls&apos;]/Color[@Name=&apos;ButtonBorder&apos;]/Background/@Source.
/// </summary>
internal static string Button_Button_Border {
get {
return ResourceManager.GetString("Button_Button_Border", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to /Themes/Theme/Category[@Name=&apos;CommonControls&apos;]/Color[@Name=&apos;Button&apos;]/Foreground/@Source.
/// </summary>
internal static string Button_Foreground {
get {
return ResourceManager.GetString("Button_Foreground", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to /Themes/Theme/Category[@Name=&apos;CommonControls&apos;]/Color[@Name=&apos;ButtonHover&apos;]/Background/@Source.
/// </summary>
internal static string Button_Hover_Background {
get {
return ResourceManager.GetString("Button_Hover_Background", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to /Themes/Theme/Category[@Name=&apos;CommonControls&apos;]/Color[@Name=&apos;ButtonHover&apos;]/Foreground/@Source.
/// </summary>
internal static string Button_Hover_Foreground {
get {
return ResourceManager.GetString("Button_Hover_Foreground", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to /Themes/Theme/Category[@Name=&apos;CommonControls&apos;]/Color[@Name=&apos;ButtonPressed&apos;]/Background/@Source.
/// </summary>
internal static string Button_Pressed_Background {
get {
return ResourceManager.GetString("Button_Pressed_Background", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to /Themes/Theme/Category[@Name=&apos;CommonControls&apos;]/Color[@Name=&apos;ButtonPressed&apos;]/Foreground/@Source.
/// </summary>
internal static string Button_Pressed_Foreground {
get {
return ResourceManager.GetString("Button_Pressed_Foreground", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to /Themes/Theme/Category[@Name=&apos;TextEditorTextMarkerItems&apos;]/Color[@Name=&apos;compilererror&apos;]/Background/@Source.
/// </summary>
internal static string ErrorText_Background {
get {
return ResourceManager.GetString("ErrorText_Background", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to /Themes/Theme/Category[@Name=&apos;TextEditorTextMarkerItems&apos;]/Color[@Name=&apos;compilererror&apos;]/Foreground/@Source.
/// </summary>
internal static string ErrorText_Foreground {
get {
return ResourceManager.GetString("ErrorText_Foreground", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to /Themes/Theme/Category[@Name=&apos;Cider&apos;]/Color[@Name=&apos;ListBackground&apos;]/Background/@Source.
/// </summary>
internal static string List_Background {
get {
return ResourceManager.GetString("List_Background", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to /Themes/Theme/Category[@Name=&apos;Cider&apos;]/Color[@Name=&apos;ListHeader&apos;]/Background/@Source.
/// </summary>
internal static string List_Header_Background {
get {
return ResourceManager.GetString("List_Header_Background", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to /Themes/Theme/Category[@Name=&apos;Cider&apos;]/Color[@Name=&apos;ListHeader&apos;]/Foreground/@Source.
/// </summary>
internal static string List_Header_Foreground {
get {
return ResourceManager.GetString("List_Header_Foreground", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to /Themes/Theme/Category[@Name=&apos;Cider&apos;]/Color[@Name=&apos;ListItem&apos;]/Background/@Source.
/// </summary>
internal static string List_Item_Background {
get {
return ResourceManager.GetString("List_Item_Background", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to /Themes/Theme/Category[@Name=&apos;Cider&apos;]/Color[@Name=&apos;ListItemBorder&apos;]/Background/@Source.
/// </summary>
internal static string List_Item_Border {
get {
return ResourceManager.GetString("List_Item_Border", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to /Themes/Theme/Category[@Name=&apos;Cider&apos;]/Color[@Name=&apos;ListItemDisabled&apos;]/Background/@Source.
/// </summary>
internal static string List_Item_Disabled_Background {
get {
return ResourceManager.GetString("List_Item_Disabled_Background", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to /Themes/Theme/Category[@Name=&apos;Cider&apos;]/Color[@Name=&apos;ListItemDisabledBorder&apos;]/Background/@Source.
/// </summary>
internal static string List_Item_Disabled_Border {
get {
return ResourceManager.GetString("List_Item_Disabled_Border", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to /Themes/Theme/Category[@Name=&apos;Cider&apos;]/Color[@Name=&apos;ListItemDisabled&apos;]/Foreground/@Source.
/// </summary>
internal static string List_Item_Disabled_Foreground {
get {
return ResourceManager.GetString("List_Item_Disabled_Foreground", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to /Themes/Theme/Category[@Name=&apos;Cider&apos;]/Color[@Name=&apos;ListItem&apos;]/Foreground/@Source.
/// </summary>
internal static string List_Item_Foreground {
get {
return ResourceManager.GetString("List_Item_Foreground", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to /Themes/Theme/Category[@Name=&apos;Cider&apos;]/Color[@Name=&apos;ListItemSelected&apos;]/Background/@Source.
/// </summary>
internal static string List_Item_Selected_Background {
get {
return ResourceManager.GetString("List_Item_Selected_Background", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to /Themes/Theme/Category[@Name=&apos;Cider&apos;]/Color[@Name=&apos;ListItemSelectedBorder&apos;]/Background/@Source.
/// </summary>
internal static string List_Item_Selected_Border {
get {
return ResourceManager.GetString("List_Item_Selected_Border", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to /Themes/Theme/Category[@Name=&apos;Cider&apos;]/Color[@Name=&apos;ListItemSelected&apos;]/Foreground/@Source.
/// </summary>
internal static string List_Item_Selected_Foreground {
get {
return ResourceManager.GetString("List_Item_Selected_Foreground", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to /Themes/Theme/Category[@Name=&apos;CommonControls&apos;]/Color[@Name=&apos;TextBoxBackground&apos;]/Background/@Source.
/// </summary>
internal static string TextBox_Background {
get {
return ResourceManager.GetString("TextBox_Background", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to /Themes/Theme/Category[@Name=&apos;CommonControls&apos;]/Color[@Name=&apos;TextBoxBorder&apos;]/Background/@Source.
/// </summary>
internal static string TextBox_Border {
get {
return ResourceManager.GetString("TextBox_Border", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to /Themes/Theme/Category[@Name=&apos;CommonControls&apos;]/Color[@Name=&apos;TextBoxBorderDisabled&apos;]/Background/@Source.
/// </summary>
internal static string TextBox_Border_Disabled {
get {
return ResourceManager.GetString("TextBox_Border_Disabled", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to /Themes/Theme/Category[@Name=&apos;CommonControls&apos;]/Color[@Name=&apos;TextBoxBorderFocused&apos;]/Background/@Source.
/// </summary>
internal static string TextBox_Border_Focused {
get {
return ResourceManager.GetString("TextBox_Border_Focused", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to /Themes/Theme/Category[@Name=&apos;CommonControls&apos;]/Color[@Name=&apos;TextBoxBackgroundDisabled&apos;]/Background/@Source.
/// </summary>
internal static string TextBox_Disabled_Background {
get {
return ResourceManager.GetString("TextBox_Disabled_Background", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to /Themes/Theme/Category[@Name=&apos;CommonControls&apos;]/Color[@Name=&apos;TextBoxTextDisabled&apos;]/Background/@Source.
/// </summary>
internal static string TextBox_Disabled_Foreground {
get {
return ResourceManager.GetString("TextBox_Disabled_Foreground", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to /Themes/Theme/Category[@Name=&apos;CommonControls&apos;]/Color[@Name=&apos;TextBoxBackgroundFocused&apos;]/Background/@Source.
/// </summary>
internal static string TextBox_Focused_Background {
get {
return ResourceManager.GetString("TextBox_Focused_Background", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to /Themes/Theme/Category[@Name=&apos;CommonControls&apos;]/Color[@Name=&apos;TextBoxTextFocused&apos;]/Background/@Source.
/// </summary>
internal static string TextBox_Focused_Foreground {
get {
return ResourceManager.GetString("TextBox_Focused_Foreground", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to /Themes/Theme/Category[@Name=&apos;CommonControls&apos;]/Color[@Name=&apos;TextBoxText&apos;]/Background/@Source.
/// </summary>
internal static string TextBox_Foreground {
get {
return ResourceManager.GetString("TextBox_Foreground", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to /Themes/Theme/Category[@Name=&apos;TreeView&apos;]/Color[@Name=&apos;Background&apos;]/Background/@Source.
/// </summary>
internal static string TreeView_Background {
get {
return ResourceManager.GetString("TreeView_Background", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to /Themes/Theme/Category[@Name=&apos;TreeView&apos;]/Color[@Name=&apos;Background&apos;]/Foreground/@Source.
/// </summary>
internal static string TreeView_Foreground {
get {
return ResourceManager.GetString("TreeView_Foreground", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to /Themes/Theme/Category[@Name=&apos;TreeView&apos;]/Color[@Name=&apos;SelectedItemActive&apos;]/Background/@Source.
/// </summary>
internal static string Treeview_SelectedItem_Active_Background {
get {
return ResourceManager.GetString("Treeview_SelectedItem_Active_Background", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to /Themes/Theme/Category[@Name=&apos;TreeView&apos;]/Color[@Name=&apos;SelectedItemActive&apos;]/Foreground/@Source.
/// </summary>
internal static string Treeview_SelectedItem_Active_Foreground {
get {
return ResourceManager.GetString("Treeview_SelectedItem_Active_Foreground", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to /Themes/Theme/Category[@Name=&apos;TreeView&apos;]/Color[@Name=&apos;SelectedItemInactive&apos;]/Background/@Source.
/// </summary>
internal static string Treeview_SelectedItem_Inactive_Background {
get {
return ResourceManager.GetString("Treeview_SelectedItem_Inactive_Background", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to /Themes/Theme/Category[@Name=&apos;TreeView&apos;]/Color[@Name=&apos;SelectedItemInactive&apos;]/Foreground/@Source.
/// </summary>
internal static string Treeview_SelectedItem_Inactive_Foreground {
get {
return ResourceManager.GetString("Treeview_SelectedItem_Inactive_Foreground", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to /Themes/Theme/Category[@Name=&apos;TextEditorTextMarkerItems&apos;]/Color[@Name=&apos;compilerwarning&apos;]/Background/@Source.
/// </summary>
internal static string WarningText_Background {
get {
return ResourceManager.GetString("WarningText_Background", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to /Themes/Theme/Category[@Name=&apos;TextEditorTextMarkerItem&apos;]/Color[@Name=&apos;/compilerwarning&apos;]/Foreground/@Source.
/// </summary>
internal static string WarningText_Foreground {
get {
return ResourceManager.GetString("WarningText_Foreground", resourceCulture);
}
}
}
}

View File

@@ -0,0 +1,234 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="Button_Background" xml:space="preserve">
<value>/Themes/Theme/Category[@Name='CommonControls']/Color[@Name='Button']/Background/@Source</value>
</data>
<data name="Button_Button_Border" xml:space="preserve">
<value>/Themes/Theme/Category[@Name='CommonControls']/Color[@Name='ButtonBorder']/Background/@Source</value>
</data>
<data name="Button_Foreground" xml:space="preserve">
<value>/Themes/Theme/Category[@Name='CommonControls']/Color[@Name='Button']/Foreground/@Source</value>
</data>
<data name="Button_Hover_Background" xml:space="preserve">
<value>/Themes/Theme/Category[@Name='CommonControls']/Color[@Name='ButtonHover']/Background/@Source</value>
</data>
<data name="Button_Hover_Foreground" xml:space="preserve">
<value>/Themes/Theme/Category[@Name='CommonControls']/Color[@Name='ButtonHover']/Foreground/@Source</value>
</data>
<data name="Button_Pressed_Background" xml:space="preserve">
<value>/Themes/Theme/Category[@Name='CommonControls']/Color[@Name='ButtonPressed']/Background/@Source</value>
</data>
<data name="Button_Pressed_Foreground" xml:space="preserve">
<value>/Themes/Theme/Category[@Name='CommonControls']/Color[@Name='ButtonPressed']/Foreground/@Source</value>
</data>
<data name="ErrorText_Background" xml:space="preserve">
<value>/Themes/Theme/Category[@Name='TextEditorTextMarkerItems']/Color[@Name='compilererror']/Background/@Source</value>
</data>
<data name="ErrorText_Foreground" xml:space="preserve">
<value>/Themes/Theme/Category[@Name='TextEditorTextMarkerItems']/Color[@Name='compilererror']/Foreground/@Source</value>
</data>
<data name="List_Background" xml:space="preserve">
<value>/Themes/Theme/Category[@Name='Cider']/Color[@Name='ListBackground']/Background/@Source</value>
</data>
<data name="List_Header_Background" xml:space="preserve">
<value>/Themes/Theme/Category[@Name='Cider']/Color[@Name='ListHeader']/Background/@Source</value>
</data>
<data name="List_Header_Foreground" xml:space="preserve">
<value>/Themes/Theme/Category[@Name='Cider']/Color[@Name='ListHeader']/Foreground/@Source</value>
</data>
<data name="List_Item_Background" xml:space="preserve">
<value>/Themes/Theme/Category[@Name='Cider']/Color[@Name='ListItem']/Background/@Source</value>
</data>
<data name="List_Item_Border" xml:space="preserve">
<value>/Themes/Theme/Category[@Name='Cider']/Color[@Name='ListItemBorder']/Background/@Source</value>
</data>
<data name="List_Item_Disabled_Background" xml:space="preserve">
<value>/Themes/Theme/Category[@Name='Cider']/Color[@Name='ListItemDisabled']/Background/@Source</value>
</data>
<data name="List_Item_Disabled_Border" xml:space="preserve">
<value>/Themes/Theme/Category[@Name='Cider']/Color[@Name='ListItemDisabledBorder']/Background/@Source</value>
</data>
<data name="List_Item_Disabled_Foreground" xml:space="preserve">
<value>/Themes/Theme/Category[@Name='Cider']/Color[@Name='ListItemDisabled']/Foreground/@Source</value>
</data>
<data name="List_Item_Foreground" xml:space="preserve">
<value>/Themes/Theme/Category[@Name='Cider']/Color[@Name='ListItem']/Foreground/@Source</value>
</data>
<data name="List_Item_Selected_Background" xml:space="preserve">
<value>/Themes/Theme/Category[@Name='Cider']/Color[@Name='ListItemSelected']/Background/@Source</value>
</data>
<data name="List_Item_Selected_Border" xml:space="preserve">
<value>/Themes/Theme/Category[@Name='Cider']/Color[@Name='ListItemSelectedBorder']/Background/@Source</value>
</data>
<data name="List_Item_Selected_Foreground" xml:space="preserve">
<value>/Themes/Theme/Category[@Name='Cider']/Color[@Name='ListItemSelected']/Foreground/@Source</value>
</data>
<data name="TextBox_Background" xml:space="preserve">
<value>/Themes/Theme/Category[@Name='CommonControls']/Color[@Name='TextBoxBackground']/Background/@Source</value>
</data>
<data name="TextBox_Border" xml:space="preserve">
<value>/Themes/Theme/Category[@Name='CommonControls']/Color[@Name='TextBoxBorder']/Background/@Source</value>
</data>
<data name="TextBox_Border_Disabled" xml:space="preserve">
<value>/Themes/Theme/Category[@Name='CommonControls']/Color[@Name='TextBoxBorderDisabled']/Background/@Source</value>
</data>
<data name="TextBox_Border_Focused" xml:space="preserve">
<value>/Themes/Theme/Category[@Name='CommonControls']/Color[@Name='TextBoxBorderFocused']/Background/@Source</value>
</data>
<data name="TextBox_Disabled_Background" xml:space="preserve">
<value>/Themes/Theme/Category[@Name='CommonControls']/Color[@Name='TextBoxBackgroundDisabled']/Background/@Source</value>
</data>
<data name="TextBox_Disabled_Foreground" xml:space="preserve">
<value>/Themes/Theme/Category[@Name='CommonControls']/Color[@Name='TextBoxTextDisabled']/Background/@Source</value>
</data>
<data name="TextBox_Focused_Background" xml:space="preserve">
<value>/Themes/Theme/Category[@Name='CommonControls']/Color[@Name='TextBoxBackgroundFocused']/Background/@Source</value>
</data>
<data name="TextBox_Focused_Foreground" xml:space="preserve">
<value>/Themes/Theme/Category[@Name='CommonControls']/Color[@Name='TextBoxTextFocused']/Background/@Source</value>
</data>
<data name="TextBox_Foreground" xml:space="preserve">
<value>/Themes/Theme/Category[@Name='CommonControls']/Color[@Name='TextBoxText']/Background/@Source</value>
</data>
<data name="TreeView_Background" xml:space="preserve">
<value>/Themes/Theme/Category[@Name='TreeView']/Color[@Name='Background']/Background/@Source</value>
</data>
<data name="TreeView_Foreground" xml:space="preserve">
<value>/Themes/Theme/Category[@Name='TreeView']/Color[@Name='Background']/Foreground/@Source</value>
</data>
<data name="Treeview_SelectedItem_Active_Background" xml:space="preserve">
<value>/Themes/Theme/Category[@Name='TreeView']/Color[@Name='SelectedItemActive']/Background/@Source</value>
</data>
<data name="Treeview_SelectedItem_Active_Foreground" xml:space="preserve">
<value>/Themes/Theme/Category[@Name='TreeView']/Color[@Name='SelectedItemActive']/Foreground/@Source</value>
</data>
<data name="Treeview_SelectedItem_Inactive_Background" xml:space="preserve">
<value>/Themes/Theme/Category[@Name='TreeView']/Color[@Name='SelectedItemInactive']/Background/@Source</value>
</data>
<data name="Treeview_SelectedItem_Inactive_Foreground" xml:space="preserve">
<value>/Themes/Theme/Category[@Name='TreeView']/Color[@Name='SelectedItemInactive']/Foreground/@Source</value>
</data>
<data name="WarningText_Background" xml:space="preserve">
<value>/Themes/Theme/Category[@Name='TextEditorTextMarkerItems']/Color[@Name='compilerwarning']/Background/@Source</value>
</data>
<data name="WarningText_Foreground" xml:space="preserve">
<value>/Themes/Theme/Category[@Name='TextEditorTextMarkerItem']/Color[@Name='/compilerwarning']/Foreground/@Source</value>
</data>
</root>

View File

@@ -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<String, Color> _extendedColors;
private Dictionary<String, Color> _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<string, Color>();
_default = new Dictionary<string, Color>(); // 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);
}
}
}

View File

@@ -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;
}
}
}

View File

@@ -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"];
}
}

View File

@@ -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;
}

View File

@@ -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");

View File

@@ -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

View File

@@ -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;
}

View File

@@ -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");
}

View File

@@ -6,6 +6,7 @@
<section name="mRemoteNG.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
</sectionGroup>
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<section name="mRemoteNG.Resources.Themes.ColorMap" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
<section name="mRemoteNG.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</sectionGroup>
</configSections>
@@ -655,6 +656,122 @@
</mRemoteNG.Settings>
</userSettings>
<applicationSettings>
<mRemoteNG.Resources.Themes.ColorMap>
<setting name="TreeView_Background" serializeAs="String">
<value>/TreeView/Background/Background/@Source</value>
</setting>
<setting name="TreeView_Foreground" serializeAs="String">
<value>/TreeView/Background/Foreground/@Source</value>
</setting>
<setting name="Treeview_SelectedItem_Active_Background" serializeAs="String">
<value>/TreeView/SelectedItemActive/Background/@Source</value>
</setting>
<setting name="Treeview_SelectedItem_Active_Foreground" serializeAs="String">
<value>/TreeView/SelectedItemActive/Foreground/@Source</value>
</setting>
<setting name="Treeview_SelectedItem_Inactive_Background" serializeAs="String">
<value>/TreeView/SelectedItemInactive/Background/@Source</value>
</setting>
<setting name="Treeview_SelectedItem_Inactive_Foreground" serializeAs="String">
<value>/TreeView/SelectedItemInactive/Foreground/@Source</value>
</setting>
<setting name="List_Background" serializeAs="String">
<value>/Cider/ListBackground/Background/@Source</value>
</setting>
<setting name="List_Item_Foreground" serializeAs="String">
<value>/Cider/ListItem/Foreground/@Source</value>
</setting>
<setting name="List_Item_Background" serializeAs="String">
<value>/Cider/ListItem/Background/@Source</value>
</setting>
<setting name="List_Item_Border" serializeAs="String">
<value>/Cider/ListItemBorder/Background/@Source</value>
</setting>
<setting name="List_Header_Background" serializeAs="String">
<value>/Cider/ListHeader/Background/@Source</value>
</setting>
<setting name="List_Header_Foreground" serializeAs="String">
<value>/Cider/ListHeader/Foreground/@Source</value>
</setting>
<setting name="List_Item_Selected_Border" serializeAs="String">
<value>/Cider/ListItemSelectedBorder/Background/@Source</value>
</setting>
<setting name="List_Item_Selected_Foreground" serializeAs="String">
<value>/Cider/ListItemSelected/Foreground/@Source</value>
</setting>
<setting name="List_Item_Selected_Background" serializeAs="String">
<value>/Cider/ListItemSelected/Background/@Source</value>
</setting>
<setting name="List_Item_Disabled_Foreground" serializeAs="String">
<value>/Cider/ListItemDisabled/Foreground/@Source</value>
</setting>
<setting name="List_Item_Disabled_Background" serializeAs="String">
<value>/Cider/ListItemDisabled/Background/@Source</value>
</setting>
<setting name="List_Item_Disabled_Border" serializeAs="String">
<value>/Cider/ListItemDisabledBorder/Background/@Source</value>
</setting>
<setting name="Button_Background" serializeAs="String">
<value>/CommonControls/Button/Background/@Source</value>
</setting>
<setting name="Button_Foreground" serializeAs="String">
<value>/CommonControls/Button/Foreground/@Source</value>
</setting>
<setting name="Button_Button_Border" serializeAs="String">
<value>/CommonControls/ButtonBorder/Background/@Source</value>
</setting>
<setting name="Button_Pressed_Background" serializeAs="String">
<value>/CommonControls/ButtonPressed/Background/@Source</value>
</setting>
<setting name="Button_Pressed_Foreground" serializeAs="String">
<value>/CommonControls/ButtonPressed/Foreground/@Source</value>
</setting>
<setting name="Button_Hover_Background" serializeAs="String">
<value>/CommonControls/ButtonHover/Background/@Source</value>
</setting>
<setting name="Button_Hover_Foreground" serializeAs="String">
<value>/CommonControls/ButtonHover/Foreground/@Source</value>
</setting>
<setting name="WarningText_Background" serializeAs="String">
<value>/TextEditorTextMarkerItems/compilerwarning/Background/@Source</value>
</setting>
<setting name="WarningText_Foreground" serializeAs="String">
<value>/TextEditorTextMarkerItems/compilerwarning/Foreground/@Source</value>
</setting>
<setting name="ErrorText_Background" serializeAs="String">
<value>/TextEditorTextMarkerItems/compilererror/Background/@Source</value>
</setting>
<setting name="ErrorText_Foreground" serializeAs="String">
<value>/TextEditorTextMarkerItems/compilererror/Foreground/@Source</value>
</setting>
<setting name="TextBox_Background" serializeAs="String">
<value>/CommonControls/TextBoxBackground/Background/@Source</value>
</setting>
<setting name="TextBox_Foreground" serializeAs="String">
<value>/CommonControls/TextBoxText/Background/@Source</value>
</setting>
<setting name="TextBox_Border" serializeAs="String">
<value>/CommonControls/TextBoxBorder/Background/@Source</value>
</setting>
<setting name="TextBox_Border_Disabled" serializeAs="String">
<value>/CommonControls/TextBoxBorderDisabled/Background/@Source</value>
</setting>
<setting name="TextBox_Border_Focused" serializeAs="String">
<value>/CommonControls/TextBoxBorderFocused/Background/@Source</value>
</setting>
<setting name="TextBox_Disabled_Background" serializeAs="String">
<value>/CommonControls/TextBoxBackgroundDisabled/Background/@Source</value>
</setting>
<setting name="TextBox_Disabled_Foreground" serializeAs="String">
<value>/CommonControls/TextBoxTextDisabled/Background/@Source</value>
</setting>
<setting name="TextBox_Focused_Background" serializeAs="String">
<value>/CommonControls/TextBoxBackgroundFocused/Background/@Source</value>
</setting>
<setting name="TextBox_Focused_Foreground" serializeAs="String">
<value>/CommonControls/TextBoxTextFocused/Background/@Source</value>
</setting>
</mRemoteNG.Resources.Themes.ColorMap>
<mRemoteNG.Settings>
<setting name="UpdateAddress" serializeAs="String">
<value>https://mremoteng.org/</value>

View File

@@ -248,6 +248,11 @@
<Compile Include="Credential\Repositories\CredentialRepoUnlockerBuilder.cs" />
<Compile Include="Credential\CredentialServiceFactory.cs" />
<Compile Include="Credential\CredentialServiceFacade.cs" />
<Compile Include="Resources\Themes\ColorMapTheme.Designer.cs">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>ColorMapTheme.resx</DependentUpon>
</Compile>
<Compile Include="Security\Factories\CryptoProviderFactoryFromSettings.cs" />
<Compile Include="Security\Factories\LegacyInsecureCryptoProviderFactory.cs" />
<Compile Include="Security\ICryptoProviderFactory.cs" />
@@ -761,6 +766,11 @@
</EmbeddedResource>
<EmbeddedResource Include="Resources\Language\Language.ko-KR.resx" />
<EmbeddedResource Include="Resources\Language\Language.tr-TR.resx" />
<EmbeddedResource Include="Resources\Themes\ColorMapTheme.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>ColorMapTheme.Designer.cs</LastGenOutput>
<CustomToolNamespace>mRemoteNG</CustomToolNamespace>
</EmbeddedResource>
<EmbeddedResource Include="UI\Controls\CredentialRecordListView.resx">
<DependentUpon>CredentialRecordListView.cs</DependentUpon>
</EmbeddedResource>
@@ -982,7 +992,18 @@
<None Include="app.config" />
<None Include="Firefox\omni.ja" />
<None Include="packages.config" />
<None Include="Resources\Themes\darcula.vstheme" />
<None Include="Resources\Themes\darcula.vstheme">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="Resources\Themes\vs2015blue.vstheme">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="Resources\Themes\vs2015dark.vstheme">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="Resources\Themes\vs2015light.vstheme">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="Schemas\mremoteng_confcons_v2_5.xsd">
<SubType>Designer</SubType>
</None>