mirror of
https://github.com/mRemoteNG/mRemoteNG.git
synced 2026-02-17 22:11:48 +08:00
Merge branch 'develop' into reapply_credential_manager
# Conflicts: # mRemoteV1/Config/Serializers/ConnectionSerializers/Xml/XmlConnectionsDeserializer.cs # mRemoteV1/UI/Controls/Base/NGComboBox.cs # mRemoteV1/UI/Controls/NewPasswordWithVerification.Designer.cs # mRemoteV1/mRemoteV1.csproj
This commit is contained in:
@@ -13,6 +13,8 @@ Features/Enhancements:
|
||||
|
||||
Fixes:
|
||||
------
|
||||
#1245: Options form takes nearly 3 seconds to appear when Theming is active
|
||||
#1240: Theming problem with NGNumericUpDown
|
||||
#1238: Connection panel not translated until opened for the first time
|
||||
#1186: Fixed several dialog boxes to use localized button text
|
||||
#1170: Prevent Options window from showing up in taskbar
|
||||
|
||||
@@ -18,6 +18,7 @@ using System.Globalization;
|
||||
using System.Security;
|
||||
using System.Windows.Forms;
|
||||
using System.Xml;
|
||||
using mRemoteNG.Config.Serializers.ConnectionSerializers.Xml;
|
||||
|
||||
namespace mRemoteNG.Config.Serializers.Xml
|
||||
{
|
||||
@@ -67,8 +68,8 @@ namespace mRemoteNG.Config.Serializers.Xml
|
||||
|
||||
if (_confVersion >= 2.6)
|
||||
{
|
||||
var fullFileEncryptionValue = rootXmlElement?.Attributes["FullFileEncryption"].Value ?? "";
|
||||
if (bool.Parse(fullFileEncryptionValue))
|
||||
var fullFileEncryptionValue = rootXmlElement.GetAttributeAsBool("FullFileEncryption");
|
||||
if (fullFileEncryptionValue)
|
||||
{
|
||||
var decryptedContent = _decryptor.Decrypt(rootXmlElement.InnerText);
|
||||
rootXmlElement.InnerXml = decryptedContent;
|
||||
@@ -139,14 +140,9 @@ namespace mRemoteNG.Config.Serializers.Xml
|
||||
{
|
||||
if (_confVersion >= 2.6)
|
||||
{
|
||||
BlockCipherEngines engine;
|
||||
Enum.TryParse(connectionsRootElement?.Attributes["EncryptionEngine"].Value, true, out engine);
|
||||
|
||||
BlockCipherModes mode;
|
||||
Enum.TryParse(connectionsRootElement?.Attributes["BlockCipherMode"].Value, true, out mode);
|
||||
|
||||
int keyDerivationIterations;
|
||||
int.TryParse(connectionsRootElement?.Attributes["KdfIterations"].Value, out keyDerivationIterations);
|
||||
var engine = connectionsRootElement.GetAttributeAsEnum<BlockCipherEngines>("EncryptionEngine");
|
||||
var mode = connectionsRootElement.GetAttributeAsEnum<BlockCipherModes>("BlockCipherMode");
|
||||
var keyDerivationIterations = connectionsRootElement.GetAttributeAsInt("KdfIterations");
|
||||
|
||||
_decryptor = new XmlConnectionsDecryptor(engine, mode, rootNodeInfo)
|
||||
{
|
||||
@@ -167,8 +163,7 @@ namespace mRemoteNG.Config.Serializers.Xml
|
||||
if (!parentXmlNode.HasChildNodes) return;
|
||||
foreach (XmlNode xmlNode in parentXmlNode.ChildNodes)
|
||||
{
|
||||
var treeNodeTypeString = xmlNode.Attributes?["Type"].Value ?? "connection";
|
||||
var nodeType = (TreeNodeType)Enum.Parse(typeof(TreeNodeType), treeNodeTypeString, true);
|
||||
var nodeType = xmlNode.GetAttributeAsEnum("Type", TreeNodeType.Connection);
|
||||
|
||||
// ReSharper disable once SwitchStatementMissingSomeCases
|
||||
switch (nodeType)
|
||||
@@ -184,8 +179,7 @@ namespace mRemoteNG.Config.Serializers.Xml
|
||||
containerInfo.CopyFrom(GetConnectionInfoFromXml(xmlNode));
|
||||
if (_confVersion >= 0.8)
|
||||
{
|
||||
var expandedValue = xmlNode.Attributes?["Expanded"].Value ?? "";
|
||||
containerInfo.IsExpanded = bool.Parse(expandedValue);
|
||||
containerInfo.IsExpanded = xmlNode.GetAttributeAsBool("Expanded");
|
||||
}
|
||||
|
||||
parentContainer.AddChild(containerInfo);
|
||||
@@ -203,9 +197,10 @@ namespace mRemoteNG.Config.Serializers.Xml
|
||||
|
||||
private ConnectionInfo GetConnectionInfoFromXml(XmlNode xmlnode)
|
||||
{
|
||||
if (xmlnode.Attributes == null) return null;
|
||||
if (xmlnode?.Attributes == null)
|
||||
return null;
|
||||
|
||||
var connectionId = xmlnode.Attributes["Id"]?.Value;
|
||||
var connectionId = xmlnode.GetAttributeAsString("Id");
|
||||
if (string.IsNullOrWhiteSpace(connectionId))
|
||||
connectionId = Guid.NewGuid().ToString();
|
||||
var connectionInfo = new ConnectionInfo(connectionId);
|
||||
@@ -214,16 +209,16 @@ namespace mRemoteNG.Config.Serializers.Xml
|
||||
{
|
||||
if (_confVersion >= 0.2)
|
||||
{
|
||||
connectionInfo.Name = xmlnode.Attributes["Name"].Value;
|
||||
connectionInfo.Description = xmlnode.Attributes["Descr"].Value;
|
||||
connectionInfo.Hostname = xmlnode.Attributes["Hostname"].Value;
|
||||
connectionInfo.DisplayWallpaper = bool.Parse(xmlnode.Attributes["DisplayWallpaper"].Value);
|
||||
connectionInfo.DisplayThemes = bool.Parse(xmlnode.Attributes["DisplayThemes"].Value);
|
||||
connectionInfo.CacheBitmaps = bool.Parse(xmlnode.Attributes["CacheBitmaps"].Value);
|
||||
connectionInfo.Name = xmlnode.GetAttributeAsString("Name");
|
||||
connectionInfo.Description = xmlnode.GetAttributeAsString("Descr");
|
||||
connectionInfo.Hostname = xmlnode.GetAttributeAsString("Hostname");
|
||||
connectionInfo.DisplayWallpaper = xmlnode.GetAttributeAsBool("DisplayWallpaper");
|
||||
connectionInfo.DisplayThemes = xmlnode.GetAttributeAsBool("DisplayThemes");
|
||||
connectionInfo.CacheBitmaps = xmlnode.GetAttributeAsBool("CacheBitmaps");
|
||||
|
||||
if (_confVersion < 1.1) //1.0 - 0.1
|
||||
{
|
||||
connectionInfo.Resolution = Convert.ToBoolean(xmlnode.Attributes["Fullscreen"].Value)
|
||||
connectionInfo.Resolution = xmlnode.GetAttributeAsBool("Fullscreen")
|
||||
? RdpProtocol.RDPResolutions.Fullscreen
|
||||
: RdpProtocol.RDPResolutions.FitToWindow;
|
||||
}
|
||||
@@ -231,9 +226,9 @@ namespace mRemoteNG.Config.Serializers.Xml
|
||||
if (_confVersion <= 2.6) // 0.2 - 2.6
|
||||
{
|
||||
#pragma warning disable 618
|
||||
connectionInfo.Username = xmlnode.Attributes["Username"].Value;
|
||||
connectionInfo.Password = _decryptor.Decrypt(xmlnode.Attributes["Password"].Value);
|
||||
connectionInfo.Domain = xmlnode.Attributes["Domain"].Value;
|
||||
connectionInfo.Username = xmlnode.GetAttributeAsString("Username");
|
||||
connectionInfo.Password = _decryptor.Decrypt(xmlnode.GetAttributeAsString("Password"));
|
||||
connectionInfo.Domain = xmlnode.GetAttributeAsString("Domain");
|
||||
#pragma warning restore 618
|
||||
}
|
||||
}
|
||||
@@ -242,10 +237,10 @@ namespace mRemoteNG.Config.Serializers.Xml
|
||||
{
|
||||
if (_confVersion < 0.7)
|
||||
{
|
||||
if (Convert.ToBoolean(xmlnode.Attributes["UseVNC"].Value))
|
||||
if (xmlnode.GetAttributeAsBool("UseVNC"))
|
||||
{
|
||||
connectionInfo.Protocol = ProtocolType.VNC;
|
||||
connectionInfo.Port = Convert.ToInt32(xmlnode.Attributes["VNCPort"].Value);
|
||||
connectionInfo.Port = xmlnode.GetAttributeAsInt("VNCPort");
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -263,18 +258,18 @@ namespace mRemoteNG.Config.Serializers.Xml
|
||||
{
|
||||
if (_confVersion < 0.7)
|
||||
{
|
||||
connectionInfo.Port = Convert.ToInt32(Convert.ToBoolean(xmlnode.Attributes["UseVNC"].Value)
|
||||
? xmlnode.Attributes["VNCPort"].Value
|
||||
: xmlnode.Attributes["RDPPort"].Value);
|
||||
connectionInfo.Port = xmlnode.GetAttributeAsBool("UseVNC")
|
||||
? xmlnode.GetAttributeAsInt("VNCPort")
|
||||
: xmlnode.GetAttributeAsInt("RDPPort");
|
||||
}
|
||||
|
||||
connectionInfo.UseConsoleSession = bool.Parse(xmlnode.Attributes["ConnectToConsole"].Value);
|
||||
connectionInfo.UseConsoleSession = xmlnode.GetAttributeAsBool("ConnectToConsole");
|
||||
}
|
||||
else
|
||||
{
|
||||
if (_confVersion < 0.7)
|
||||
{
|
||||
if (Convert.ToBoolean(xmlnode.Attributes["UseVNC"].Value))
|
||||
if (xmlnode.GetAttributeAsBool("UseVNC"))
|
||||
connectionInfo.Port = (int)ProtocolVNC.Defaults.Port;
|
||||
else
|
||||
connectionInfo.Port = (int)RdpProtocol.Defaults.Port;
|
||||
@@ -284,10 +279,10 @@ namespace mRemoteNG.Config.Serializers.Xml
|
||||
|
||||
if (_confVersion >= 0.5)
|
||||
{
|
||||
connectionInfo.RedirectDiskDrives = bool.Parse(xmlnode.Attributes["RedirectDiskDrives"].Value);
|
||||
connectionInfo.RedirectPrinters = bool.Parse(xmlnode.Attributes["RedirectPrinters"].Value);
|
||||
connectionInfo.RedirectPorts = bool.Parse(xmlnode.Attributes["RedirectPorts"].Value);
|
||||
connectionInfo.RedirectSmartCards = bool.Parse(xmlnode.Attributes["RedirectSmartCards"].Value);
|
||||
connectionInfo.RedirectDiskDrives = xmlnode.GetAttributeAsBool("RedirectDiskDrives");
|
||||
connectionInfo.RedirectPrinters = xmlnode.GetAttributeAsBool("RedirectPrinters");
|
||||
connectionInfo.RedirectPorts = xmlnode.GetAttributeAsBool("RedirectPorts");
|
||||
connectionInfo.RedirectSmartCards = xmlnode.GetAttributeAsBool("RedirectSmartCards");
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -299,31 +294,29 @@ namespace mRemoteNG.Config.Serializers.Xml
|
||||
|
||||
if (_confVersion >= 0.7)
|
||||
{
|
||||
ProtocolType protocolType;
|
||||
Enum.TryParse(xmlnode.Attributes["Protocol"].Value, true, out protocolType);
|
||||
connectionInfo.Protocol = protocolType;
|
||||
connectionInfo.Port = Convert.ToInt32(xmlnode.Attributes["Port"].Value);
|
||||
connectionInfo.Protocol = xmlnode.GetAttributeAsEnum<ProtocolType>("Protocol");
|
||||
connectionInfo.Port = xmlnode.GetAttributeAsInt("Port");
|
||||
}
|
||||
|
||||
if (_confVersion >= 1.0)
|
||||
{
|
||||
connectionInfo.RedirectKeys = bool.Parse(xmlnode.Attributes["RedirectKeys"].Value);
|
||||
connectionInfo.RedirectKeys = xmlnode.GetAttributeAsBool("RedirectKeys");
|
||||
}
|
||||
|
||||
if (_confVersion >= 1.2)
|
||||
{
|
||||
connectionInfo.PuttySession = xmlnode.Attributes["PuttySession"].Value;
|
||||
connectionInfo.PuttySession = xmlnode.GetAttributeAsString("PuttySession");
|
||||
}
|
||||
|
||||
if (_confVersion >= 1.3)
|
||||
{
|
||||
connectionInfo.Colors = (RdpProtocol.RDPColors)Enum.Parse(typeof(RdpProtocol.RDPColors), xmlnode.Attributes["Colors"].Value, true);
|
||||
connectionInfo.Resolution = (RdpProtocol.RDPResolutions)Enum.Parse(typeof(RdpProtocol.RDPResolutions), xmlnode.Attributes["Resolution"].Value, true);
|
||||
connectionInfo.RedirectSound = (RdpProtocol.RDPSounds)Enum.Parse(typeof(RdpProtocol.RDPSounds), xmlnode.Attributes["RedirectSound"].Value, true);
|
||||
connectionInfo.Colors = xmlnode.GetAttributeAsEnum<RdpProtocol.RDPColors>("Colors");
|
||||
connectionInfo.Resolution = xmlnode.GetAttributeAsEnum<RdpProtocol.RDPResolutions>("Resolution");
|
||||
connectionInfo.RedirectSound = xmlnode.GetAttributeAsEnum<RdpProtocol.RDPSounds>("RedirectSound");
|
||||
}
|
||||
else
|
||||
{
|
||||
switch (Convert.ToInt32(xmlnode.Attributes["Colors"].Value))
|
||||
switch (xmlnode.GetAttributeAsInt("Colors"))
|
||||
{
|
||||
case 0:
|
||||
connectionInfo.Colors = RdpProtocol.RDPColors.Colors256;
|
||||
@@ -344,177 +337,177 @@ namespace mRemoteNG.Config.Serializers.Xml
|
||||
break;
|
||||
}
|
||||
|
||||
connectionInfo.RedirectSound = (RdpProtocol.RDPSounds)Convert.ToInt32(xmlnode.Attributes["RedirectSound"].Value);
|
||||
connectionInfo.RedirectSound = xmlnode.GetAttributeAsEnum<RdpProtocol.RDPSounds>("RedirectSound");
|
||||
}
|
||||
|
||||
if (_confVersion >= 1.3)
|
||||
{
|
||||
connectionInfo.Inheritance.CacheBitmaps = bool.Parse(xmlnode.Attributes["InheritCacheBitmaps"].Value);
|
||||
connectionInfo.Inheritance.Colors = bool.Parse(xmlnode.Attributes["InheritColors"].Value);
|
||||
connectionInfo.Inheritance.Description = bool.Parse(xmlnode.Attributes["InheritDescription"].Value);
|
||||
connectionInfo.Inheritance.DisplayThemes = bool.Parse(xmlnode.Attributes["InheritDisplayThemes"].Value);
|
||||
connectionInfo.Inheritance.DisplayWallpaper = bool.Parse(xmlnode.Attributes["InheritDisplayWallpaper"].Value);
|
||||
connectionInfo.Inheritance.Icon = bool.Parse(xmlnode.Attributes["InheritIcon"].Value);
|
||||
connectionInfo.Inheritance.Panel = bool.Parse(xmlnode.Attributes["InheritPanel"].Value);
|
||||
connectionInfo.Inheritance.Port = bool.Parse(xmlnode.Attributes["InheritPort"].Value);
|
||||
connectionInfo.Inheritance.Protocol = bool.Parse(xmlnode.Attributes["InheritProtocol"].Value);
|
||||
connectionInfo.Inheritance.PuttySession = bool.Parse(xmlnode.Attributes["InheritPuttySession"].Value);
|
||||
connectionInfo.Inheritance.RedirectDiskDrives = bool.Parse(xmlnode.Attributes["InheritRedirectDiskDrives"].Value);
|
||||
connectionInfo.Inheritance.RedirectKeys = bool.Parse(xmlnode.Attributes["InheritRedirectKeys"].Value);
|
||||
connectionInfo.Inheritance.RedirectPorts = bool.Parse(xmlnode.Attributes["InheritRedirectPorts"].Value);
|
||||
connectionInfo.Inheritance.RedirectPrinters = bool.Parse(xmlnode.Attributes["InheritRedirectPrinters"].Value);
|
||||
connectionInfo.Inheritance.RedirectSmartCards = bool.Parse(xmlnode.Attributes["InheritRedirectSmartCards"].Value);
|
||||
connectionInfo.Inheritance.RedirectSound = bool.Parse(xmlnode.Attributes["InheritRedirectSound"].Value);
|
||||
connectionInfo.Inheritance.Resolution = bool.Parse(xmlnode.Attributes["InheritResolution"].Value);
|
||||
connectionInfo.Inheritance.UseConsoleSession = bool.Parse(xmlnode.Attributes["InheritUseConsoleSession"].Value);
|
||||
connectionInfo.Inheritance.CacheBitmaps = xmlnode.GetAttributeAsBool("InheritCacheBitmaps");
|
||||
connectionInfo.Inheritance.Colors = xmlnode.GetAttributeAsBool("InheritColors");
|
||||
connectionInfo.Inheritance.Description = xmlnode.GetAttributeAsBool("InheritDescription");
|
||||
connectionInfo.Inheritance.DisplayThemes = xmlnode.GetAttributeAsBool("InheritDisplayThemes");
|
||||
connectionInfo.Inheritance.DisplayWallpaper = xmlnode.GetAttributeAsBool("InheritDisplayWallpaper");
|
||||
connectionInfo.Inheritance.Icon = xmlnode.GetAttributeAsBool("InheritIcon");
|
||||
connectionInfo.Inheritance.Panel = xmlnode.GetAttributeAsBool("InheritPanel");
|
||||
connectionInfo.Inheritance.Port = xmlnode.GetAttributeAsBool("InheritPort");
|
||||
connectionInfo.Inheritance.Protocol = xmlnode.GetAttributeAsBool("InheritProtocol");
|
||||
connectionInfo.Inheritance.PuttySession = xmlnode.GetAttributeAsBool("InheritPuttySession");
|
||||
connectionInfo.Inheritance.RedirectDiskDrives = xmlnode.GetAttributeAsBool("InheritRedirectDiskDrives");
|
||||
connectionInfo.Inheritance.RedirectKeys = xmlnode.GetAttributeAsBool("InheritRedirectKeys");
|
||||
connectionInfo.Inheritance.RedirectPorts = xmlnode.GetAttributeAsBool("InheritRedirectPorts");
|
||||
connectionInfo.Inheritance.RedirectPrinters = xmlnode.GetAttributeAsBool("InheritRedirectPrinters");
|
||||
connectionInfo.Inheritance.RedirectSmartCards = xmlnode.GetAttributeAsBool("InheritRedirectSmartCards");
|
||||
connectionInfo.Inheritance.RedirectSound = xmlnode.GetAttributeAsBool("InheritRedirectSound");
|
||||
connectionInfo.Inheritance.Resolution = xmlnode.GetAttributeAsBool("InheritResolution");
|
||||
connectionInfo.Inheritance.UseConsoleSession = xmlnode.GetAttributeAsBool("InheritUseConsoleSession");
|
||||
|
||||
if (!Runtime.UseCredentialManager || _confVersion <= 2.6) // 1.3 - 2.6
|
||||
{
|
||||
connectionInfo.Inheritance.Domain = bool.Parse(xmlnode.Attributes["InheritDomain"].Value);
|
||||
connectionInfo.Inheritance.Password = bool.Parse(xmlnode.Attributes["InheritPassword"].Value);
|
||||
connectionInfo.Inheritance.Username = bool.Parse(xmlnode.Attributes["InheritUsername"].Value);
|
||||
connectionInfo.Inheritance.Domain = xmlnode.GetAttributeAsBool("InheritDomain");
|
||||
connectionInfo.Inheritance.Password = xmlnode.GetAttributeAsBool("InheritPassword");
|
||||
connectionInfo.Inheritance.Username = xmlnode.GetAttributeAsBool("InheritUsername");
|
||||
}
|
||||
connectionInfo.Icon = xmlnode.Attributes["Icon"].Value;
|
||||
connectionInfo.Panel = xmlnode.Attributes["Panel"].Value;
|
||||
connectionInfo.Icon = xmlnode.GetAttributeAsString("Icon");
|
||||
connectionInfo.Panel = xmlnode.GetAttributeAsString("Panel");
|
||||
}
|
||||
else
|
||||
{
|
||||
if (Convert.ToBoolean(xmlnode.Attributes["Inherit"].Value))
|
||||
if (xmlnode.GetAttributeAsBool("Inherit"))
|
||||
connectionInfo.Inheritance.TurnOnInheritanceCompletely();
|
||||
connectionInfo.Icon = Convert.ToString(xmlnode.Attributes["Icon"].Value.Replace(".ico", ""));
|
||||
connectionInfo.Icon = xmlnode.GetAttributeAsString("Icon").Replace(".ico", "");
|
||||
connectionInfo.Panel = Language.strGeneral;
|
||||
}
|
||||
|
||||
if (_confVersion >= 1.5)
|
||||
{
|
||||
connectionInfo.PleaseConnect = bool.Parse(xmlnode.Attributes["Connected"].Value);
|
||||
connectionInfo.PleaseConnect = xmlnode.GetAttributeAsBool("Connected");
|
||||
}
|
||||
|
||||
if (_confVersion >= 1.6)
|
||||
{
|
||||
connectionInfo.ICAEncryptionStrength = (IcaProtocol.EncryptionStrength)Enum.Parse(typeof(IcaProtocol.EncryptionStrength), xmlnode.Attributes["ICAEncryptionStrength"].Value, true);
|
||||
connectionInfo.Inheritance.ICAEncryptionStrength = bool.Parse(xmlnode.Attributes["InheritICAEncryptionStrength"].Value);
|
||||
connectionInfo.PreExtApp = xmlnode.Attributes["PreExtApp"].Value;
|
||||
connectionInfo.PostExtApp = xmlnode.Attributes["PostExtApp"].Value;
|
||||
connectionInfo.Inheritance.PreExtApp = bool.Parse(xmlnode.Attributes["InheritPreExtApp"].Value);
|
||||
connectionInfo.Inheritance.PostExtApp = bool.Parse(xmlnode.Attributes["InheritPostExtApp"].Value);
|
||||
connectionInfo.ICAEncryptionStrength = xmlnode.GetAttributeAsEnum<IcaProtocol.EncryptionStrength>("ICAEncryptionStrength");
|
||||
connectionInfo.Inheritance.ICAEncryptionStrength = xmlnode.GetAttributeAsBool("InheritICAEncryptionStrength");
|
||||
connectionInfo.PreExtApp = xmlnode.GetAttributeAsString("PreExtApp");
|
||||
connectionInfo.PostExtApp = xmlnode.GetAttributeAsString("PostExtApp");
|
||||
connectionInfo.Inheritance.PreExtApp = xmlnode.GetAttributeAsBool("InheritPreExtApp");
|
||||
connectionInfo.Inheritance.PostExtApp = xmlnode.GetAttributeAsBool("InheritPostExtApp");
|
||||
}
|
||||
|
||||
if (_confVersion >= 1.7)
|
||||
{
|
||||
connectionInfo.VNCCompression = (ProtocolVNC.Compression)Enum.Parse(typeof(ProtocolVNC.Compression), xmlnode.Attributes["VNCCompression"].Value, true);
|
||||
connectionInfo.VNCEncoding = (ProtocolVNC.Encoding)Enum.Parse(typeof(ProtocolVNC.Encoding), xmlnode.Attributes["VNCEncoding"].Value, true);
|
||||
connectionInfo.VNCAuthMode = (ProtocolVNC.AuthMode)Enum.Parse(typeof(ProtocolVNC.AuthMode), xmlnode.Attributes["VNCAuthMode"].Value, true);
|
||||
connectionInfo.VNCProxyType = (ProtocolVNC.ProxyType)Enum.Parse(typeof(ProtocolVNC.ProxyType), xmlnode.Attributes["VNCProxyType"].Value, true);
|
||||
connectionInfo.VNCProxyIP = xmlnode.Attributes["VNCProxyIP"].Value;
|
||||
connectionInfo.VNCProxyPort = Convert.ToInt32(xmlnode.Attributes["VNCProxyPort"].Value);
|
||||
connectionInfo.VNCProxyUsername = xmlnode.Attributes["VNCProxyUsername"].Value;
|
||||
connectionInfo.VNCProxyPassword = _decryptor.Decrypt(xmlnode.Attributes["VNCProxyPassword"].Value);
|
||||
connectionInfo.VNCColors = (ProtocolVNC.Colors)Enum.Parse(typeof(ProtocolVNC.Colors), xmlnode.Attributes["VNCColors"].Value, true);
|
||||
connectionInfo.VNCSmartSizeMode = (ProtocolVNC.SmartSizeMode)Enum.Parse(typeof(ProtocolVNC.SmartSizeMode), xmlnode.Attributes["VNCSmartSizeMode"].Value, true);
|
||||
connectionInfo.VNCViewOnly = bool.Parse(xmlnode.Attributes["VNCViewOnly"].Value);
|
||||
connectionInfo.Inheritance.VNCCompression = bool.Parse(xmlnode.Attributes["InheritVNCCompression"].Value);
|
||||
connectionInfo.Inheritance.VNCEncoding = bool.Parse(xmlnode.Attributes["InheritVNCEncoding"].Value);
|
||||
connectionInfo.Inheritance.VNCAuthMode = bool.Parse(xmlnode.Attributes["InheritVNCAuthMode"].Value);
|
||||
connectionInfo.Inheritance.VNCProxyType = bool.Parse(xmlnode.Attributes["InheritVNCProxyType"].Value);
|
||||
connectionInfo.Inheritance.VNCProxyIP = bool.Parse(xmlnode.Attributes["InheritVNCProxyIP"].Value);
|
||||
connectionInfo.Inheritance.VNCProxyPort = bool.Parse(xmlnode.Attributes["InheritVNCProxyPort"].Value);
|
||||
connectionInfo.Inheritance.VNCProxyUsername = bool.Parse(xmlnode.Attributes["InheritVNCProxyUsername"].Value);
|
||||
connectionInfo.Inheritance.VNCProxyPassword = bool.Parse(xmlnode.Attributes["InheritVNCProxyPassword"].Value);
|
||||
connectionInfo.Inheritance.VNCColors = bool.Parse(xmlnode.Attributes["InheritVNCColors"].Value);
|
||||
connectionInfo.Inheritance.VNCSmartSizeMode = bool.Parse(xmlnode.Attributes["InheritVNCSmartSizeMode"].Value);
|
||||
connectionInfo.Inheritance.VNCViewOnly = bool.Parse(xmlnode.Attributes["InheritVNCViewOnly"].Value);
|
||||
connectionInfo.VNCCompression = xmlnode.GetAttributeAsEnum<ProtocolVNC.Compression>("VNCCompression");
|
||||
connectionInfo.VNCEncoding = xmlnode.GetAttributeAsEnum<ProtocolVNC.Encoding>("VNCEncoding");
|
||||
connectionInfo.VNCAuthMode = xmlnode.GetAttributeAsEnum<ProtocolVNC.AuthMode>("VNCAuthMode");
|
||||
connectionInfo.VNCProxyType = xmlnode.GetAttributeAsEnum<ProtocolVNC.ProxyType>("VNCProxyType");
|
||||
connectionInfo.VNCProxyIP = xmlnode.GetAttributeAsString("VNCProxyIP");
|
||||
connectionInfo.VNCProxyPort = xmlnode.GetAttributeAsInt("VNCProxyPort");
|
||||
connectionInfo.VNCProxyUsername = xmlnode.GetAttributeAsString("VNCProxyUsername");
|
||||
connectionInfo.VNCProxyPassword = _decryptor.Decrypt(xmlnode.GetAttributeAsString("VNCProxyPassword"));
|
||||
connectionInfo.VNCColors = xmlnode.GetAttributeAsEnum<ProtocolVNC.Colors>("VNCColors");
|
||||
connectionInfo.VNCSmartSizeMode = xmlnode.GetAttributeAsEnum<ProtocolVNC.SmartSizeMode>("VNCSmartSizeMode");
|
||||
connectionInfo.VNCViewOnly = xmlnode.GetAttributeAsBool("VNCViewOnly");
|
||||
connectionInfo.Inheritance.VNCCompression = xmlnode.GetAttributeAsBool("InheritVNCCompression");
|
||||
connectionInfo.Inheritance.VNCEncoding = xmlnode.GetAttributeAsBool("InheritVNCEncoding");
|
||||
connectionInfo.Inheritance.VNCAuthMode = xmlnode.GetAttributeAsBool("InheritVNCAuthMode");
|
||||
connectionInfo.Inheritance.VNCProxyType = xmlnode.GetAttributeAsBool("InheritVNCProxyType");
|
||||
connectionInfo.Inheritance.VNCProxyIP = xmlnode.GetAttributeAsBool("InheritVNCProxyIP");
|
||||
connectionInfo.Inheritance.VNCProxyPort = xmlnode.GetAttributeAsBool("InheritVNCProxyPort");
|
||||
connectionInfo.Inheritance.VNCProxyUsername = xmlnode.GetAttributeAsBool("InheritVNCProxyUsername");
|
||||
connectionInfo.Inheritance.VNCProxyPassword = xmlnode.GetAttributeAsBool("InheritVNCProxyPassword");
|
||||
connectionInfo.Inheritance.VNCColors = xmlnode.GetAttributeAsBool("InheritVNCColors");
|
||||
connectionInfo.Inheritance.VNCSmartSizeMode = xmlnode.GetAttributeAsBool("InheritVNCSmartSizeMode");
|
||||
connectionInfo.Inheritance.VNCViewOnly = xmlnode.GetAttributeAsBool("InheritVNCViewOnly");
|
||||
}
|
||||
|
||||
if (_confVersion >= 1.8)
|
||||
{
|
||||
connectionInfo.RDPAuthenticationLevel = (RdpProtocol.AuthenticationLevel)Enum.Parse(typeof(RdpProtocol.AuthenticationLevel), xmlnode.Attributes["RDPAuthenticationLevel"].Value, true);
|
||||
connectionInfo.Inheritance.RDPAuthenticationLevel = bool.Parse(xmlnode.Attributes["InheritRDPAuthenticationLevel"].Value);
|
||||
connectionInfo.RDPAuthenticationLevel = xmlnode.GetAttributeAsEnum<RdpProtocol.AuthenticationLevel>("RDPAuthenticationLevel");
|
||||
connectionInfo.Inheritance.RDPAuthenticationLevel = xmlnode.GetAttributeAsBool("InheritRDPAuthenticationLevel");
|
||||
}
|
||||
|
||||
if (_confVersion >= 1.9)
|
||||
{
|
||||
connectionInfo.RenderingEngine = (HTTPBase.RenderingEngine)Enum.Parse(typeof(HTTPBase.RenderingEngine), xmlnode.Attributes["RenderingEngine"].Value, true);
|
||||
connectionInfo.MacAddress = xmlnode.Attributes["MacAddress"].Value;
|
||||
connectionInfo.Inheritance.RenderingEngine = bool.Parse(xmlnode.Attributes["InheritRenderingEngine"].Value);
|
||||
connectionInfo.Inheritance.MacAddress = bool.Parse(xmlnode.Attributes["InheritMacAddress"].Value);
|
||||
connectionInfo.RenderingEngine = xmlnode.GetAttributeAsEnum<HTTPBase.RenderingEngine>("RenderingEngine");
|
||||
connectionInfo.MacAddress = xmlnode.GetAttributeAsString("MacAddress");
|
||||
connectionInfo.Inheritance.RenderingEngine = xmlnode.GetAttributeAsBool("InheritRenderingEngine");
|
||||
connectionInfo.Inheritance.MacAddress = xmlnode.GetAttributeAsBool("InheritMacAddress");
|
||||
}
|
||||
|
||||
if (_confVersion >= 2.0)
|
||||
{
|
||||
connectionInfo.UserField = xmlnode.Attributes["UserField"].Value;
|
||||
connectionInfo.Inheritance.UserField = bool.Parse(xmlnode.Attributes["InheritUserField"].Value);
|
||||
connectionInfo.UserField = xmlnode.GetAttributeAsString("UserField");
|
||||
connectionInfo.Inheritance.UserField = xmlnode.GetAttributeAsBool("InheritUserField");
|
||||
}
|
||||
|
||||
if (_confVersion >= 2.1)
|
||||
{
|
||||
connectionInfo.ExtApp = xmlnode.Attributes["ExtApp"].Value;
|
||||
connectionInfo.Inheritance.ExtApp = bool.Parse(xmlnode.Attributes["InheritExtApp"].Value);
|
||||
connectionInfo.ExtApp = xmlnode.GetAttributeAsString("ExtApp");
|
||||
connectionInfo.Inheritance.ExtApp = xmlnode.GetAttributeAsBool("InheritExtApp");
|
||||
}
|
||||
|
||||
if (_confVersion >= 2.2)
|
||||
{
|
||||
// Get settings
|
||||
connectionInfo.RDGatewayUsageMethod = (RdpProtocol.RDGatewayUsageMethod)Enum.Parse(typeof(RdpProtocol.RDGatewayUsageMethod), xmlnode.Attributes["RDGatewayUsageMethod"].Value, true);
|
||||
connectionInfo.RDGatewayHostname = xmlnode.Attributes["RDGatewayHostname"].Value;
|
||||
connectionInfo.RDGatewayUseConnectionCredentials = (RdpProtocol.RDGatewayUseConnectionCredentials)Enum.Parse(typeof(RdpProtocol.RDGatewayUseConnectionCredentials), xmlnode.Attributes["RDGatewayUseConnectionCredentials"].Value, true);
|
||||
connectionInfo.RDGatewayUsername = xmlnode.Attributes["RDGatewayUsername"].Value;
|
||||
connectionInfo.RDGatewayPassword = _decryptor.Decrypt(Convert.ToString(xmlnode.Attributes["RDGatewayPassword"].Value));
|
||||
connectionInfo.RDGatewayDomain = xmlnode.Attributes["RDGatewayDomain"].Value;
|
||||
connectionInfo.RDGatewayUsageMethod = xmlnode.GetAttributeAsEnum<RdpProtocol.RDGatewayUsageMethod>("RDGatewayUsageMethod");
|
||||
connectionInfo.RDGatewayHostname = xmlnode.GetAttributeAsString("RDGatewayHostname");
|
||||
connectionInfo.RDGatewayUseConnectionCredentials = xmlnode.GetAttributeAsEnum<RdpProtocol.RDGatewayUseConnectionCredentials>("RDGatewayUseConnectionCredentials");
|
||||
connectionInfo.RDGatewayUsername = xmlnode.GetAttributeAsString("RDGatewayUsername");
|
||||
connectionInfo.RDGatewayPassword = _decryptor.Decrypt(xmlnode.GetAttributeAsString("RDGatewayPassword"));
|
||||
connectionInfo.RDGatewayDomain = xmlnode.GetAttributeAsString("RDGatewayDomain");
|
||||
|
||||
// Get inheritance settings
|
||||
connectionInfo.Inheritance.RDGatewayUsageMethod = bool.Parse(xmlnode.Attributes["InheritRDGatewayUsageMethod"].Value);
|
||||
connectionInfo.Inheritance.RDGatewayHostname = bool.Parse(xmlnode.Attributes["InheritRDGatewayHostname"].Value);
|
||||
connectionInfo.Inheritance.RDGatewayUseConnectionCredentials = bool.Parse(xmlnode.Attributes["InheritRDGatewayUseConnectionCredentials"].Value);
|
||||
connectionInfo.Inheritance.RDGatewayUsername = bool.Parse(xmlnode.Attributes["InheritRDGatewayUsername"].Value);
|
||||
connectionInfo.Inheritance.RDGatewayPassword = bool.Parse(xmlnode.Attributes["InheritRDGatewayPassword"].Value);
|
||||
connectionInfo.Inheritance.RDGatewayDomain = bool.Parse(xmlnode.Attributes["InheritRDGatewayDomain"].Value);
|
||||
connectionInfo.Inheritance.RDGatewayUsageMethod = xmlnode.GetAttributeAsBool("InheritRDGatewayUsageMethod");
|
||||
connectionInfo.Inheritance.RDGatewayHostname = xmlnode.GetAttributeAsBool("InheritRDGatewayHostname");
|
||||
connectionInfo.Inheritance.RDGatewayUseConnectionCredentials = xmlnode.GetAttributeAsBool("InheritRDGatewayUseConnectionCredentials");
|
||||
connectionInfo.Inheritance.RDGatewayUsername = xmlnode.GetAttributeAsBool("InheritRDGatewayUsername");
|
||||
connectionInfo.Inheritance.RDGatewayPassword = xmlnode.GetAttributeAsBool("InheritRDGatewayPassword");
|
||||
connectionInfo.Inheritance.RDGatewayDomain = xmlnode.GetAttributeAsBool("InheritRDGatewayDomain");
|
||||
}
|
||||
|
||||
if (_confVersion >= 2.3)
|
||||
{
|
||||
// Get settings
|
||||
connectionInfo.EnableFontSmoothing = bool.Parse(xmlnode.Attributes["EnableFontSmoothing"].Value);
|
||||
connectionInfo.EnableDesktopComposition = bool.Parse(xmlnode.Attributes["EnableDesktopComposition"].Value);
|
||||
connectionInfo.EnableFontSmoothing = xmlnode.GetAttributeAsBool("EnableFontSmoothing");
|
||||
connectionInfo.EnableDesktopComposition = xmlnode.GetAttributeAsBool("EnableDesktopComposition");
|
||||
|
||||
// Get inheritance settings
|
||||
connectionInfo.Inheritance.EnableFontSmoothing = bool.Parse(xmlnode.Attributes["InheritEnableFontSmoothing"].Value);
|
||||
connectionInfo.Inheritance.EnableDesktopComposition = bool.Parse(xmlnode.Attributes["InheritEnableDesktopComposition"].Value);
|
||||
connectionInfo.Inheritance.EnableFontSmoothing = xmlnode.GetAttributeAsBool("InheritEnableFontSmoothing");
|
||||
connectionInfo.Inheritance.EnableDesktopComposition = xmlnode.GetAttributeAsBool("InheritEnableDesktopComposition");
|
||||
}
|
||||
|
||||
if (_confVersion >= 2.4)
|
||||
{
|
||||
connectionInfo.UseCredSsp = bool.Parse(xmlnode.Attributes["UseCredSsp"].Value);
|
||||
connectionInfo.Inheritance.UseCredSsp = bool.Parse(xmlnode.Attributes["InheritUseCredSsp"].Value);
|
||||
connectionInfo.UseCredSsp = xmlnode.GetAttributeAsBool("UseCredSsp");
|
||||
connectionInfo.Inheritance.UseCredSsp = xmlnode.GetAttributeAsBool("InheritUseCredSsp");
|
||||
}
|
||||
|
||||
if (_confVersion >= 2.5)
|
||||
{
|
||||
connectionInfo.LoadBalanceInfo = xmlnode.Attributes["LoadBalanceInfo"].Value;
|
||||
connectionInfo.AutomaticResize = bool.Parse(xmlnode.Attributes["AutomaticResize"].Value);
|
||||
connectionInfo.Inheritance.LoadBalanceInfo = bool.Parse(xmlnode.Attributes["InheritLoadBalanceInfo"].Value);
|
||||
connectionInfo.Inheritance.AutomaticResize = bool.Parse(xmlnode.Attributes["InheritAutomaticResize"].Value);
|
||||
connectionInfo.LoadBalanceInfo = xmlnode.GetAttributeAsString("LoadBalanceInfo");
|
||||
connectionInfo.AutomaticResize = xmlnode.GetAttributeAsBool("AutomaticResize");
|
||||
connectionInfo.Inheritance.LoadBalanceInfo = xmlnode.GetAttributeAsBool("InheritLoadBalanceInfo");
|
||||
connectionInfo.Inheritance.AutomaticResize = xmlnode.GetAttributeAsBool("InheritAutomaticResize");
|
||||
}
|
||||
|
||||
if (_confVersion >= 2.6)
|
||||
{
|
||||
connectionInfo.SoundQuality = (RdpProtocol.RDPSoundQuality)Enum.Parse(typeof(RdpProtocol.RDPSoundQuality), xmlnode.Attributes["SoundQuality"].Value, true);
|
||||
connectionInfo.Inheritance.SoundQuality = bool.Parse(xmlnode.Attributes["InheritSoundQuality"].Value);
|
||||
connectionInfo.RDPMinutesToIdleTimeout = Convert.ToInt32(xmlnode.Attributes["RDPMinutesToIdleTimeout"]?.Value ?? "0");
|
||||
connectionInfo.Inheritance.RDPMinutesToIdleTimeout = bool.Parse(xmlnode.Attributes["InheritRDPMinutesToIdleTimeout"]?.Value ?? "False");
|
||||
connectionInfo.RDPAlertIdleTimeout = bool.Parse(xmlnode.Attributes["RDPAlertIdleTimeout"]?.Value ?? "False");
|
||||
connectionInfo.Inheritance.RDPAlertIdleTimeout = bool.Parse(xmlnode.Attributes["InheritRDPAlertIdleTimeout"]?.Value ?? "False");
|
||||
connectionInfo.SoundQuality = xmlnode.GetAttributeAsEnum<RdpProtocol.RDPSoundQuality>("SoundQuality");
|
||||
connectionInfo.Inheritance.SoundQuality = xmlnode.GetAttributeAsBool("InheritSoundQuality");
|
||||
connectionInfo.RDPMinutesToIdleTimeout = xmlnode.GetAttributeAsInt("RDPMinutesToIdleTimeout");
|
||||
connectionInfo.Inheritance.RDPMinutesToIdleTimeout = xmlnode.GetAttributeAsBool("InheritRDPMinutesToIdleTimeout");
|
||||
connectionInfo.RDPAlertIdleTimeout = xmlnode.GetAttributeAsBool("RDPAlertIdleTimeout");
|
||||
connectionInfo.Inheritance.RDPAlertIdleTimeout = xmlnode.GetAttributeAsBool("InheritRDPAlertIdleTimeout");
|
||||
}
|
||||
if(_confVersion >= 2.7)
|
||||
{
|
||||
connectionInfo.RedirectClipboard = bool.Parse(xmlnode.Attributes["RedirectClipboard"].Value);
|
||||
connectionInfo.Inheritance.RedirectClipboard = bool.Parse(xmlnode.Attributes["InheritRedirectClipboard"].Value);
|
||||
connectionInfo.RedirectClipboard = xmlnode.GetAttributeAsBool("RedirectClipboard");
|
||||
connectionInfo.Inheritance.RedirectClipboard = xmlnode.GetAttributeAsBool("InheritRedirectClipboard");
|
||||
|
||||
connectionInfo.CredentialRecordId = Guid.TryParse(xmlnode.Attributes["CredentialId"]?.Value, out var credId)
|
||||
? credId
|
||||
: Optional<Guid>.Empty;
|
||||
|
||||
connectionInfo.Inheritance.CredentialId = bool.TryParse(xmlnode.Attributes["InheritCredentialId"]?.Value, out var inheritCreds) && inheritCreds;
|
||||
connectionInfo.Inheritance.CredentialId = xmlnode.GetAttributeAsBool("InheritCredentialId");
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
|
||||
@@ -0,0 +1,48 @@
|
||||
using System;
|
||||
using System.Xml;
|
||||
|
||||
namespace mRemoteNG.Config.Serializers.ConnectionSerializers.Xml
|
||||
{
|
||||
public static class XmlExtensions
|
||||
{
|
||||
public static string GetAttributeAsString(this XmlNode xmlNode, string attribute, string defaultValue = "")
|
||||
{
|
||||
var value = xmlNode?.Attributes?[attribute]?.Value;
|
||||
return value ?? defaultValue;
|
||||
}
|
||||
|
||||
public static bool GetAttributeAsBool(this XmlNode xmlNode, string attribute, bool defaultValue = false)
|
||||
{
|
||||
var value = xmlNode?.Attributes?[attribute]?.Value;
|
||||
if (string.IsNullOrWhiteSpace(value))
|
||||
return defaultValue;
|
||||
|
||||
return bool.TryParse(value, out var valueAsBool)
|
||||
? valueAsBool
|
||||
: defaultValue;
|
||||
}
|
||||
|
||||
public static int GetAttributeAsInt(this XmlNode xmlNode, string attribute, int defaultValue = 0)
|
||||
{
|
||||
var value = xmlNode?.Attributes?[attribute]?.Value;
|
||||
if (string.IsNullOrWhiteSpace(value))
|
||||
return defaultValue;
|
||||
|
||||
return int.TryParse(value, out var valueAsBool)
|
||||
? valueAsBool
|
||||
: defaultValue;
|
||||
}
|
||||
|
||||
public static T GetAttributeAsEnum<T>(this XmlNode xmlNode, string attribute, T defaultValue = default(T))
|
||||
where T : struct
|
||||
{
|
||||
var value = xmlNode?.Attributes?[attribute]?.Value;
|
||||
if (string.IsNullOrWhiteSpace(value))
|
||||
return defaultValue;
|
||||
|
||||
return Enum.TryParse<T>(value, true, out var valueAsEnum)
|
||||
? valueAsEnum
|
||||
: defaultValue;
|
||||
}
|
||||
}
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
@@ -1,141 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<xs:schema id="mremoteng_confcons_v2_8"
|
||||
targetNamespace="http://mremoteng.org"
|
||||
elementFormDefault="qualified"
|
||||
xmlns="http://mremoteng.org"
|
||||
xmlns:mrng="http://mremoteng.org"
|
||||
xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||||
>
|
||||
|
||||
|
||||
<xs:element name="Connections">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="Node" type="mrng:connectioninfo" />
|
||||
</xs:sequence>
|
||||
<xs:attribute name="Name" type="xs:string" use="required" />
|
||||
<xs:attribute name="EncryptionEngine" type="xs:string" use="required" />
|
||||
<xs:attribute name="BlockCipherMode" type="xs:string" use="required" />
|
||||
<xs:attribute name="KdfIterations" type="xs:int" use="optional" />
|
||||
<xs:attribute name="FullFileEncryption" type="xs:boolean" use="required" />
|
||||
<xs:attribute name="Protected" type="xs:string" use="required" />
|
||||
<xs:attribute name="ConfVersion" type="xs:float" use="required" />
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
|
||||
|
||||
<xs:complexType name="connectioninfo">
|
||||
<xs:sequence minOccurs="0" maxOccurs="unbounded">
|
||||
<xs:element name="Node" type="mrng:connectioninfo" />
|
||||
</xs:sequence>
|
||||
<xs:attribute name="Name" type="xs:string" use="required" />
|
||||
<xs:attribute name="Type" type="xs:string" use="required" />
|
||||
<xs:attribute name="Descr" type="xs:string" use="required" />
|
||||
<xs:attribute name="Icon" type="xs:string" use="required" />
|
||||
<xs:attribute name="Panel" type="xs:string" use="required" />
|
||||
<xs:attribute name="CredentialId" type="xs:string" use="required" />
|
||||
<xs:attribute name="Hostname" type="xs:string" use="required" />
|
||||
<xs:attribute name="Protocol" type="xs:string" use="required" />
|
||||
<xs:attribute name="PuttySession" type="xs:string" use="required" />
|
||||
<xs:attribute name="Port" type="xs:int" use="required" />
|
||||
<xs:attribute name="ConnectToConsole" type="xs:boolean" use="required" />
|
||||
<xs:attribute name="UseCredSsp" type="xs:boolean" use="required" />
|
||||
<xs:attribute name="RenderingEngine" type="xs:string" use="required" />
|
||||
<xs:attribute name="ICAEncryptionStrength" type="xs:string" use="required" />
|
||||
<xs:attribute name="RDPAuthenticationLevel" type="xs:string" use="required" />
|
||||
<xs:attribute name="RDPMinutesToIdleTimeout" type="xs:int" use="required" />
|
||||
<xs:attribute name="LoadBalanceInfo" type="xs:string" use="required" />
|
||||
<xs:attribute name="Colors" type="xs:string" use="required" />
|
||||
<xs:attribute name="Resolution" type="xs:string" use="required" />
|
||||
<xs:attribute name="AutomaticResize" type="xs:boolean" use="required" />
|
||||
<xs:attribute name="DisplayWallpaper" type="xs:boolean" use="required" />
|
||||
<xs:attribute name="DisplayThemes" type="xs:boolean" use="required" />
|
||||
<xs:attribute name="EnableFontSmoothing" type="xs:boolean" use="required" />
|
||||
<xs:attribute name="EnableDesktopComposition" type="xs:boolean" use="required" />
|
||||
<xs:attribute name="CacheBitmaps" type="xs:boolean" use="required" />
|
||||
<xs:attribute name="RedirectDiskDrives" type="xs:boolean" use="required" />
|
||||
<xs:attribute name="RedirectPorts" type="xs:boolean" use="required" />
|
||||
<xs:attribute name="RedirectPrinters" type="xs:boolean" use="required" />
|
||||
<xs:attribute name="RedirectSmartCards" type="xs:boolean" use="required" />
|
||||
<xs:attribute name="RedirectSound" type="xs:string" use="required" />
|
||||
<xs:attribute name="SoundQuality" type="xs:string" use="required" />
|
||||
<xs:attribute name="RedirectKeys" type="xs:boolean" use="required" />
|
||||
<xs:attribute name="Connected" type="xs:boolean" use="required" />
|
||||
<xs:attribute name="PreExtApp" type="xs:string" use="required" />
|
||||
<xs:attribute name="PostExtApp" type="xs:string" use="required" />
|
||||
<xs:attribute name="MacAddress" type="xs:string" use="required" />
|
||||
<xs:attribute name="UserField" type="xs:string" use="required" />
|
||||
<xs:attribute name="ExtApp" type="xs:string" use="required" />
|
||||
<xs:attribute name="VNCCompression" type="xs:string" use="required" />
|
||||
<xs:attribute name="VNCEncoding" type="xs:string" use="required" />
|
||||
<xs:attribute name="VNCAuthMode" type="xs:string" use="required" />
|
||||
<xs:attribute name="VNCProxyType" type="xs:string" use="required" />
|
||||
<xs:attribute name="VNCProxyIP" type="xs:string" use="required" />
|
||||
<xs:attribute name="VNCProxyPort" type="xs:int" use="required" />
|
||||
<xs:attribute name="VNCProxyUsername" type="xs:string" use="required" />
|
||||
<xs:attribute name="VNCProxyPassword" type="xs:string" use="required" />
|
||||
<xs:attribute name="VNCColors" type="xs:string" use="required" />
|
||||
<xs:attribute name="VNCSmartSizeMode" type="xs:string" use="required" />
|
||||
<xs:attribute name="VNCViewOnly" type="xs:boolean" use="required" />
|
||||
<xs:attribute name="RDGatewayUsageMethod" type="xs:string" use="required" />
|
||||
<xs:attribute name="RDGatewayHostname" type="xs:string" use="required" />
|
||||
<xs:attribute name="RDGatewayUseConnectionCredentials" type="xs:string" use="required" />
|
||||
<xs:attribute name="RDGatewayUsername" type="xs:string" use="required" />
|
||||
<xs:attribute name="RDGatewayPassword" type="xs:string" use="required" />
|
||||
<xs:attribute name="RDGatewayDomain" type="xs:string" use="required" />
|
||||
<xs:attribute name="InheritCredentialRecord" type="xs:boolean" use="optional" />
|
||||
<xs:attribute name="InheritCacheBitmaps" type="xs:boolean" use="optional" />
|
||||
<xs:attribute name="InheritColors" type="xs:boolean" use="optional" />
|
||||
<xs:attribute name="InheritDescription" type="xs:boolean" use="optional" />
|
||||
<xs:attribute name="InheritDisplayThemes" type="xs:boolean" use="optional" />
|
||||
<xs:attribute name="InheritDisplayWallpaper" type="xs:boolean" use="optional" />
|
||||
<xs:attribute name="InheritEnableFontSmoothing" type="xs:boolean" use="optional" />
|
||||
<xs:attribute name="InheritEnableDesktopComposition" type="xs:boolean" use="optional" />
|
||||
<xs:attribute name="InheritDomain" type="xs:boolean" use="optional" />
|
||||
<xs:attribute name="InheritIcon" type="xs:boolean" use="optional" />
|
||||
<xs:attribute name="InheritPanel" type="xs:boolean" use="optional" />
|
||||
<xs:attribute name="InheritPassword" type="xs:boolean" use="optional" />
|
||||
<xs:attribute name="InheritPort" type="xs:boolean" use="optional" />
|
||||
<xs:attribute name="InheritProtocol" type="xs:boolean" use="optional" />
|
||||
<xs:attribute name="InheritPuttySession" type="xs:boolean" use="optional" />
|
||||
<xs:attribute name="InheritRedirectDiskDrives" type="xs:boolean" use="optional" />
|
||||
<xs:attribute name="InheritRedirectKeys" type="xs:boolean" use="optional" />
|
||||
<xs:attribute name="InheritRedirectPorts" type="xs:boolean" use="optional" />
|
||||
<xs:attribute name="InheritRedirectPrinters" type="xs:boolean" use="optional" />
|
||||
<xs:attribute name="InheritRedirectSmartCards" type="xs:boolean" use="optional" />
|
||||
<xs:attribute name="InheritRedirectSound" type="xs:boolean" use="optional" />
|
||||
<xs:attribute name="InheritSoundQuality" type="xs:boolean" use="optional" />
|
||||
<xs:attribute name="InheritResolution" type="xs:boolean" use="optional" />
|
||||
<xs:attribute name="InheritAutomaticResize" type="xs:boolean" use="optional" />
|
||||
<xs:attribute name="InheritUseConsoleSession" type="xs:boolean" use="optional" />
|
||||
<xs:attribute name="InheritUseCredSsp" type="xs:boolean" use="optional" />
|
||||
<xs:attribute name="InheritRenderingEngine" type="xs:boolean" use="optional" />
|
||||
<xs:attribute name="InheritUsername" type="xs:boolean" use="optional" />
|
||||
<xs:attribute name="InheritICAEncryptionStrength" type="xs:boolean" use="optional" />
|
||||
<xs:attribute name="InheritRDPAuthenticationLevel" type="xs:boolean" use="optional" />
|
||||
<xs:attribute name="InheritRDPMinutesToIdleTimeout" type="xs:boolean" use="optional" />
|
||||
<xs:attribute name="InheritLoadBalanceInfo" type="xs:boolean" use="optional" />
|
||||
<xs:attribute name="InheritPreExtApp" type="xs:boolean" use="optional" />
|
||||
<xs:attribute name="InheritPostExtApp" type="xs:boolean" use="optional" />
|
||||
<xs:attribute name="InheritMacAddress" type="xs:boolean" use="optional" />
|
||||
<xs:attribute name="InheritUserField" type="xs:boolean" use="optional" />
|
||||
<xs:attribute name="InheritExtApp" type="xs:boolean" use="optional" />
|
||||
<xs:attribute name="InheritVNCCompression" type="xs:boolean" use="optional" />
|
||||
<xs:attribute name="InheritVNCEncoding" type="xs:boolean" use="optional" />
|
||||
<xs:attribute name="InheritVNCAuthMode" type="xs:boolean" use="optional" />
|
||||
<xs:attribute name="InheritVNCProxyType" type="xs:boolean" use="optional" />
|
||||
<xs:attribute name="InheritVNCProxyIP" type="xs:boolean" use="optional" />
|
||||
<xs:attribute name="InheritVNCProxyPort" type="xs:boolean" use="optional" />
|
||||
<xs:attribute name="InheritVNCProxyUsername" type="xs:boolean" use="optional" />
|
||||
<xs:attribute name="InheritVNCProxyPassword" type="xs:boolean" use="optional" />
|
||||
<xs:attribute name="InheritVNCColors" type="xs:boolean" use="optional" />
|
||||
<xs:attribute name="InheritVNCSmartSizeMode" type="xs:boolean" use="optional" />
|
||||
<xs:attribute name="InheritVNCViewOnly" type="xs:boolean" use="optional" />
|
||||
<xs:attribute name="InheritRDGatewayUsageMethod" type="xs:boolean" use="optional" />
|
||||
<xs:attribute name="InheritRDGatewayHostname" type="xs:boolean" use="optional" />
|
||||
<xs:attribute name="InheritRDGatewayUseConnectionCredentials" type="xs:boolean" use="optional" />
|
||||
<xs:attribute name="InheritRDGatewayUsername" type="xs:boolean" use="optional" />
|
||||
<xs:attribute name="InheritRDGatewayPassword" type="xs:boolean" use="optional" />
|
||||
<xs:attribute name="InheritRDGatewayDomain" type="xs:boolean" use="optional" />
|
||||
</xs:complexType>
|
||||
</xs:schema>
|
||||
@@ -12,8 +12,8 @@ using WeifenLuo.WinFormsUI.Docking;
|
||||
namespace mRemoteNG.Themes
|
||||
{
|
||||
/// <summary>
|
||||
/// Main class of the theming component. Centralices creation, loading and deletion of themes
|
||||
/// Implmeented as a singleton
|
||||
/// Main class of the theming component. Centralizes creation, loading and deletion of themes
|
||||
/// Implemented as a singleton
|
||||
/// </summary>
|
||||
public class ThemeManager
|
||||
{
|
||||
@@ -232,6 +232,9 @@ namespace mRemoteNG.Themes
|
||||
NotifyThemeChanged(this, new PropertyChangedEventArgs("theme"));
|
||||
}
|
||||
}
|
||||
|
||||
public int ThemesCount => themes.Count;
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -10,12 +10,12 @@ namespace mRemoteNG.Tools
|
||||
{
|
||||
public class MultiSSHController
|
||||
{
|
||||
private ArrayList processHandlers = new ArrayList();
|
||||
private ArrayList quickConnectConnections = new ArrayList();
|
||||
private ArrayList previousCommands = new ArrayList();
|
||||
private int previousCommandIndex = 0;
|
||||
private readonly ArrayList processHandlers = new ArrayList();
|
||||
private readonly ArrayList quickConnectConnections = new ArrayList();
|
||||
private readonly ArrayList previousCommands = new ArrayList();
|
||||
private int previousCommandIndex;
|
||||
|
||||
public int CommandHistoryLength { get; set; } = 100;
|
||||
private int CommandHistoryLength { get; set; } = 100;
|
||||
|
||||
public MultiSSHController(TextBox txtBox)
|
||||
{
|
||||
@@ -41,7 +41,7 @@ namespace mRemoteNG.Tools
|
||||
|
||||
private ArrayList ProcessOpenConnections(ConnectionInfo connection)
|
||||
{
|
||||
ArrayList handlers = new ArrayList();
|
||||
var handlers = new ArrayList();
|
||||
|
||||
foreach (ProtocolBase _base in connection.OpenConnections)
|
||||
{
|
||||
@@ -77,7 +77,7 @@ namespace mRemoteNG.Tools
|
||||
|
||||
var connectionTreeConnections = Runtime.ConnectionsService.ConnectionTreeModel.GetRecursiveChildList().Where(item => item.OpenConnections.Count > 0);
|
||||
|
||||
foreach (ConnectionInfo connection in connectionTreeConnections)
|
||||
foreach (var connection in connectionTreeConnections)
|
||||
{
|
||||
processHandlers.AddRange(ProcessOpenConnections(connection));
|
||||
}
|
||||
@@ -85,8 +85,7 @@ namespace mRemoteNG.Tools
|
||||
|
||||
private void processKeyPress(object sender, KeyEventArgs e)
|
||||
{
|
||||
TextBox txtMultiSSH = sender as TextBox;
|
||||
if (txtMultiSSH == null) return;
|
||||
if (!(sender is TextBox txtMultiSSH)) return;
|
||||
|
||||
if (processHandlers.Count == 0)
|
||||
{
|
||||
@@ -111,42 +110,37 @@ namespace mRemoteNG.Tools
|
||||
txtMultiSSH.Select(txtMultiSSH.TextLength, 0);
|
||||
}
|
||||
|
||||
if (e.Control == true && e.KeyCode != Keys.V && e.Alt == false)
|
||||
if (e.Control && e.KeyCode != Keys.V && e.Alt == false)
|
||||
{
|
||||
SendAllKeystrokes(NativeMethods.WM_KEYDOWN, e.KeyValue);
|
||||
}
|
||||
|
||||
if (e.KeyCode == Keys.Enter)
|
||||
if (e.KeyCode != Keys.Enter) return;
|
||||
var strLine = txtMultiSSH.Text;
|
||||
foreach (var chr1 in strLine)
|
||||
{
|
||||
string strLine = txtMultiSSH.Text;
|
||||
foreach (char chr1 in strLine)
|
||||
{
|
||||
SendAllKeystrokes(NativeMethods.WM_CHAR, Convert.ToByte(chr1));
|
||||
}
|
||||
SendAllKeystrokes(NativeMethods.WM_KEYDOWN, 13); // Enter = char13
|
||||
SendAllKeystrokes(NativeMethods.WM_CHAR, Convert.ToByte(chr1));
|
||||
}
|
||||
SendAllKeystrokes(NativeMethods.WM_KEYDOWN, 13); // Enter = char13
|
||||
}
|
||||
|
||||
private void processKeyRelease(object sender, KeyEventArgs e)
|
||||
{
|
||||
TextBox txtMultiSSH = sender as TextBox;
|
||||
if (txtMultiSSH == null) return;
|
||||
if (!(sender is TextBox txtMultiSSH)) return;
|
||||
|
||||
if (e.KeyCode == Keys.Enter)
|
||||
if (e.KeyCode != Keys.Enter) return;
|
||||
if (txtMultiSSH.Text.Trim() != "")
|
||||
{
|
||||
if (txtMultiSSH.Text.Trim() != "")
|
||||
{
|
||||
previousCommands.Add(txtMultiSSH.Text.Trim());
|
||||
}
|
||||
if (previousCommands.Count >= CommandHistoryLength)
|
||||
{
|
||||
previousCommands.RemoveAt(0);
|
||||
}
|
||||
|
||||
previousCommandIndex = previousCommands.Count - 1;
|
||||
txtMultiSSH.Clear();
|
||||
}
|
||||
previousCommands.Add(txtMultiSSH.Text.Trim());
|
||||
}
|
||||
if (previousCommands.Count >= CommandHistoryLength)
|
||||
{
|
||||
previousCommands.RemoveAt(0);
|
||||
}
|
||||
|
||||
previousCommandIndex = previousCommands.Count - 1;
|
||||
txtMultiSSH.Clear();
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
||||
200
mRemoteV1/Tools/ReconnectGroup.Designer.cs
generated
200
mRemoteV1/Tools/ReconnectGroup.Designer.cs
generated
@@ -18,110 +18,111 @@ namespace mRemoteNG.Tools
|
||||
}
|
||||
}
|
||||
|
||||
//Required by the Windows Form Designer
|
||||
private System.ComponentModel.Container components = null;
|
||||
|
||||
//NOTE: The following procedure is required by the Windows Form Designer
|
||||
//It can be modified using the Windows Form Designer.
|
||||
//Do not modify it using the code editor.
|
||||
[System.Diagnostics.DebuggerStepThrough()]
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.components = new System.ComponentModel.Container();
|
||||
this.grpAutomaticReconnect = new System.Windows.Forms.GroupBox();
|
||||
this.lblAnimation = new UI.Controls.Base.NGLabel();
|
||||
this.btnClose = new UI.Controls.Base.NGButton();
|
||||
this.btnClose.Click += new System.EventHandler(this.btnClose_Click);
|
||||
this.lblServerStatus = new UI.Controls.Base.NGLabel();
|
||||
this.chkReconnectWhenReady = new UI.Controls.Base.NGCheckBox();
|
||||
this.chkReconnectWhenReady.CheckedChanged += new System.EventHandler(this.chkReconnectWhenReady_CheckedChanged);
|
||||
this.pbServerStatus = new System.Windows.Forms.PictureBox();
|
||||
this.tmrAnimation = new System.Windows.Forms.Timer(this.components);
|
||||
this.tmrAnimation.Tick += new System.EventHandler(this.tmrAnimation_Tick);
|
||||
this.grpAutomaticReconnect.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize) this.pbServerStatus).BeginInit();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
//grpAutomaticReconnect
|
||||
//
|
||||
this.grpAutomaticReconnect.BackColor = System.Drawing.Color.White;
|
||||
this.grpAutomaticReconnect.Controls.Add(this.lblAnimation);
|
||||
this.grpAutomaticReconnect.Controls.Add(this.btnClose);
|
||||
this.grpAutomaticReconnect.Controls.Add(this.lblServerStatus);
|
||||
this.grpAutomaticReconnect.Controls.Add(this.chkReconnectWhenReady);
|
||||
this.grpAutomaticReconnect.Controls.Add(this.pbServerStatus);
|
||||
this.grpAutomaticReconnect.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.grpAutomaticReconnect.Location = new System.Drawing.Point(3, 0);
|
||||
this.grpAutomaticReconnect.Name = "grpAutomaticReconnect";
|
||||
this.grpAutomaticReconnect.Size = new System.Drawing.Size(171, 98);
|
||||
this.grpAutomaticReconnect.TabIndex = 8;
|
||||
this.grpAutomaticReconnect.TabStop = false;
|
||||
this.grpAutomaticReconnect.Text = Language.strGroupboxAutomaticReconnect;
|
||||
//
|
||||
//lblAnimation
|
||||
//
|
||||
this.lblAnimation.Location = new System.Drawing.Point(124, 22);
|
||||
this.lblAnimation.Name = "lblAnimation";
|
||||
this.lblAnimation.Size = new System.Drawing.Size(32, 17);
|
||||
this.lblAnimation.TabIndex = 8;
|
||||
//
|
||||
//btnClose
|
||||
//
|
||||
this.btnClose.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.btnClose.Location = new System.Drawing.Point(6, 67);
|
||||
this.btnClose.Name = "btnClose";
|
||||
this.btnClose.Size = new System.Drawing.Size(159, 23);
|
||||
this.btnClose.TabIndex = 7;
|
||||
this.btnClose.Text = Language.strButtonClose;
|
||||
this.btnClose.UseVisualStyleBackColor = true;
|
||||
//
|
||||
//lblServerStatus
|
||||
//
|
||||
this.lblServerStatus.AutoSize = true;
|
||||
this.lblServerStatus.Location = new System.Drawing.Point(15, 24);
|
||||
this.lblServerStatus.Name = "lblServerStatus";
|
||||
this.lblServerStatus.Size = new System.Drawing.Size(74, 13);
|
||||
this.lblServerStatus.TabIndex = 3;
|
||||
this.lblServerStatus.Text = "Server Status:";
|
||||
//
|
||||
//chkReconnectWhenReady
|
||||
//
|
||||
this.chkReconnectWhenReady.AutoSize = true;
|
||||
this.chkReconnectWhenReady.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.chkReconnectWhenReady.Location = new System.Drawing.Point(18, 44);
|
||||
this.chkReconnectWhenReady.Name = "chkReconnectWhenReady";
|
||||
this.chkReconnectWhenReady.Size = new System.Drawing.Size(129, 17);
|
||||
this.chkReconnectWhenReady.TabIndex = 6;
|
||||
this.chkReconnectWhenReady.Text = Language.strCheckboxReconnectWhenReady;
|
||||
this.chkReconnectWhenReady.UseVisualStyleBackColor = true;
|
||||
//
|
||||
//pbServerStatus
|
||||
//
|
||||
this.pbServerStatus.Image = Resources.HostStatus_Check;
|
||||
this.pbServerStatus.Location = new System.Drawing.Point(99, 23);
|
||||
this.pbServerStatus.Name = "pbServerStatus";
|
||||
this.pbServerStatus.Size = new System.Drawing.Size(16, 16);
|
||||
this.pbServerStatus.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize;
|
||||
this.pbServerStatus.TabIndex = 5;
|
||||
this.pbServerStatus.TabStop = false;
|
||||
//
|
||||
//tmrAnimation
|
||||
//
|
||||
this.tmrAnimation.Enabled = true;
|
||||
this.tmrAnimation.Interval = 200;
|
||||
//
|
||||
//ReconnectGroup
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF((float) (6.0F), (float) (13.0F));
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.BackColor = System.Drawing.Color.White;
|
||||
this.Controls.Add(this.grpAutomaticReconnect);
|
||||
this.Name = "ReconnectGroup";
|
||||
this.Size = new System.Drawing.Size(228, 138);
|
||||
this.grpAutomaticReconnect.ResumeLayout(false);
|
||||
this.grpAutomaticReconnect.PerformLayout();
|
||||
((System.ComponentModel.ISupportInitialize) this.pbServerStatus).EndInit();
|
||||
this.ResumeLayout(false);
|
||||
this.components = new System.ComponentModel.Container();
|
||||
this.grpAutomaticReconnect = new System.Windows.Forms.GroupBox();
|
||||
this.lblAnimation = new mRemoteNG.UI.Controls.Base.NGLabel();
|
||||
this.btnClose = new mRemoteNG.UI.Controls.Base.NGButton();
|
||||
this.lblServerStatus = new mRemoteNG.UI.Controls.Base.NGLabel();
|
||||
this.chkReconnectWhenReady = new mRemoteNG.UI.Controls.Base.NGCheckBox();
|
||||
this.pbServerStatus = new System.Windows.Forms.PictureBox();
|
||||
this.tmrAnimation = new System.Windows.Forms.Timer(this.components);
|
||||
this.grpAutomaticReconnect.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.pbServerStatus)).BeginInit();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// grpAutomaticReconnect
|
||||
//
|
||||
this.grpAutomaticReconnect.BackColor = System.Drawing.Color.White;
|
||||
this.grpAutomaticReconnect.Controls.Add(this.lblAnimation);
|
||||
this.grpAutomaticReconnect.Controls.Add(this.btnClose);
|
||||
this.grpAutomaticReconnect.Controls.Add(this.lblServerStatus);
|
||||
this.grpAutomaticReconnect.Controls.Add(this.chkReconnectWhenReady);
|
||||
this.grpAutomaticReconnect.Controls.Add(this.pbServerStatus);
|
||||
this.grpAutomaticReconnect.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.grpAutomaticReconnect.Location = new System.Drawing.Point(3, 0);
|
||||
this.grpAutomaticReconnect.Name = "grpAutomaticReconnect";
|
||||
this.grpAutomaticReconnect.Size = new System.Drawing.Size(171, 98);
|
||||
this.grpAutomaticReconnect.TabIndex = 8;
|
||||
this.grpAutomaticReconnect.TabStop = false;
|
||||
this.grpAutomaticReconnect.Text = "Automatic Reconnect";
|
||||
//
|
||||
// lblAnimation
|
||||
//
|
||||
this.lblAnimation.Location = new System.Drawing.Point(124, 22);
|
||||
this.lblAnimation.Name = "lblAnimation";
|
||||
this.lblAnimation.Size = new System.Drawing.Size(32, 17);
|
||||
this.lblAnimation.TabIndex = 8;
|
||||
//
|
||||
// btnClose
|
||||
//
|
||||
this.btnClose._mice = mRemoteNG.UI.Controls.Base.NGButton.MouseState.HOVER;
|
||||
this.btnClose.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.btnClose.Location = new System.Drawing.Point(6, 67);
|
||||
this.btnClose.Name = "btnClose";
|
||||
this.btnClose.Size = new System.Drawing.Size(159, 23);
|
||||
this.btnClose.TabIndex = 7;
|
||||
this.btnClose.Text = global::mRemoteNG.Language.strButtonClose;
|
||||
this.btnClose.UseVisualStyleBackColor = true;
|
||||
this.btnClose.Click += new System.EventHandler(this.btnClose_Click);
|
||||
//
|
||||
// lblServerStatus
|
||||
//
|
||||
this.lblServerStatus.AutoSize = true;
|
||||
this.lblServerStatus.Location = new System.Drawing.Point(15, 24);
|
||||
this.lblServerStatus.Name = "lblServerStatus";
|
||||
this.lblServerStatus.Size = new System.Drawing.Size(76, 13);
|
||||
this.lblServerStatus.TabIndex = 3;
|
||||
this.lblServerStatus.Text = "Server Status:";
|
||||
//
|
||||
// chkReconnectWhenReady
|
||||
//
|
||||
this.chkReconnectWhenReady._mice = mRemoteNG.UI.Controls.Base.NGCheckBox.MouseState.HOVER;
|
||||
this.chkReconnectWhenReady.AutoSize = true;
|
||||
this.chkReconnectWhenReady.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
|
||||
this.chkReconnectWhenReady.Location = new System.Drawing.Point(18, 44);
|
||||
this.chkReconnectWhenReady.Name = "chkReconnectWhenReady";
|
||||
this.chkReconnectWhenReady.Size = new System.Drawing.Size(140, 17);
|
||||
this.chkReconnectWhenReady.TabIndex = 6;
|
||||
this.chkReconnectWhenReady.Text = global::mRemoteNG.Language.strCheckboxReconnectWhenReady;
|
||||
this.chkReconnectWhenReady.UseVisualStyleBackColor = true;
|
||||
this.chkReconnectWhenReady.CheckedChanged += new System.EventHandler(this.chkReconnectWhenReady_CheckedChanged);
|
||||
//
|
||||
// pbServerStatus
|
||||
//
|
||||
this.pbServerStatus.Image = global::mRemoteNG.Resources.HostStatus_Check;
|
||||
this.pbServerStatus.Location = new System.Drawing.Point(99, 23);
|
||||
this.pbServerStatus.Name = "pbServerStatus";
|
||||
this.pbServerStatus.Size = new System.Drawing.Size(16, 16);
|
||||
this.pbServerStatus.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize;
|
||||
this.pbServerStatus.TabIndex = 5;
|
||||
this.pbServerStatus.TabStop = false;
|
||||
//
|
||||
// tmrAnimation
|
||||
//
|
||||
this.tmrAnimation.Enabled = true;
|
||||
this.tmrAnimation.Interval = 200;
|
||||
this.tmrAnimation.Tick += new System.EventHandler(this.tmrAnimation_Tick);
|
||||
//
|
||||
// ReconnectGroup
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.BackColor = System.Drawing.Color.White;
|
||||
this.Controls.Add(this.grpAutomaticReconnect);
|
||||
this.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.Name = "ReconnectGroup";
|
||||
this.Size = new System.Drawing.Size(228, 138);
|
||||
this.grpAutomaticReconnect.ResumeLayout(false);
|
||||
this.grpAutomaticReconnect.PerformLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.pbServerStatus)).EndInit();
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
internal System.Windows.Forms.GroupBox grpAutomaticReconnect;
|
||||
internal UI.Controls.Base.NGButton btnClose;
|
||||
@@ -130,5 +131,6 @@ namespace mRemoteNG.Tools
|
||||
internal System.Windows.Forms.PictureBox pbServerStatus;
|
||||
internal System.Windows.Forms.Timer tmrAnimation;
|
||||
internal UI.Controls.Base.NGLabel lblAnimation;
|
||||
}
|
||||
private System.ComponentModel.IContainer components;
|
||||
}
|
||||
}
|
||||
@@ -12,11 +12,8 @@ namespace mRemoteNG.Tools
|
||||
private bool _ServerReady;
|
||||
public bool ServerReady
|
||||
{
|
||||
get
|
||||
{
|
||||
return _ServerReady;
|
||||
}
|
||||
set
|
||||
get => _ServerReady;
|
||||
set
|
||||
{
|
||||
SetStatusImage(value ? Resources.HostStatus_On : Resources.HostStatus_Off);
|
||||
|
||||
@@ -46,11 +43,8 @@ namespace mRemoteNG.Tools
|
||||
private bool _ReconnectWhenReady;
|
||||
public bool ReconnectWhenReady
|
||||
{
|
||||
get
|
||||
{
|
||||
return _ReconnectWhenReady;
|
||||
}
|
||||
set
|
||||
get => _ReconnectWhenReady;
|
||||
set
|
||||
{
|
||||
_ReconnectWhenReady = value;
|
||||
SetCheckbox(value);
|
||||
@@ -76,15 +70,9 @@ namespace mRemoteNG.Tools
|
||||
|
||||
public event CloseClickedEventHandler CloseClicked
|
||||
{
|
||||
add
|
||||
{
|
||||
CloseClickedEvent = (CloseClickedEventHandler) Delegate.Combine(CloseClickedEvent, value);
|
||||
}
|
||||
remove
|
||||
{
|
||||
CloseClickedEvent = (CloseClickedEventHandler) Delegate.Remove(CloseClickedEvent, value);
|
||||
}
|
||||
}
|
||||
add => CloseClickedEvent = (CloseClickedEventHandler) Delegate.Combine(CloseClickedEvent, value);
|
||||
remove => CloseClickedEvent = (CloseClickedEventHandler) Delegate.Remove(CloseClickedEvent, value);
|
||||
}
|
||||
|
||||
|
||||
private void btnClose_Click(object sender, EventArgs e)
|
||||
|
||||
@@ -112,15 +112,15 @@
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
<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=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<metadata name="tmrAnimation.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<metadata name="tmrAnimation.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>18, 18</value>
|
||||
</metadata>
|
||||
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>60</value>
|
||||
</metadata>
|
||||
</root>
|
||||
@@ -128,5 +128,16 @@ namespace mRemoteNG.UI.Controls.Base
|
||||
}
|
||||
TextRenderer.DrawText(e.Graphics, Text, Font, ClientRectangle, fore, TextFormatFlags.HorizontalCenter | TextFormatFlags.VerticalCenter);
|
||||
}
|
||||
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// NGButton
|
||||
//
|
||||
this.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
123
mRemoteV1/UI/Controls/Base/NGButton.resx
Normal file
123
mRemoteV1/UI/Controls/Base/NGButton.resx
Normal file
@@ -0,0 +1,123 @@
|
||||
<?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>
|
||||
<metadata name="$this.TrayLargeIcon" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
</root>
|
||||
@@ -5,6 +5,12 @@ using System.Windows.Forms;
|
||||
namespace mRemoteNG.UI.Controls.Base
|
||||
{
|
||||
//Extended CheckBox class, the NGCheckBox onPaint completely repaint the control
|
||||
|
||||
//
|
||||
// If this causes design issues in the future, may want to think about migrating to
|
||||
// CheckBoxRenderer:
|
||||
// https://docs.microsoft.com/en-us/dotnet/api/system.windows.forms.checkboxrenderer?view=netframework-4.6
|
||||
//
|
||||
public class NGCheckBox : CheckBox
|
||||
{
|
||||
private ThemeManager _themeManager;
|
||||
@@ -14,6 +20,7 @@ namespace mRemoteNG.UI.Controls.Base
|
||||
|
||||
public NGCheckBox()
|
||||
{
|
||||
InitializeComponent();
|
||||
ThemeManager.getInstance().ThemeChanged += OnCreateControl;
|
||||
var display = new DisplayProperties();
|
||||
_checkboxSize = new Size(display.ScaleWidth(11), display.ScaleHeight(11));
|
||||
@@ -114,12 +121,24 @@ namespace mRemoteNG.UI.Controls.Base
|
||||
|
||||
if (Checked)
|
||||
{
|
||||
e.Graphics.DrawString("\u2714", new Font(Font.FontFamily, 7f), new SolidBrush(glyph), -1, 1);
|
||||
// | \uE001 |  | | is the tick/check mark and it exists in Segoe UI Symbol at least...
|
||||
e.Graphics.DrawString("\uE001", new Font("Segoe UI Symbol", 7.75f), new SolidBrush(glyph), -4, 0);
|
||||
}
|
||||
|
||||
var textRect = new Rectangle(_textXCoord, 0, Width - 16, Height);
|
||||
TextRenderer.DrawText(e.Graphics, Text, Font, textRect, fore, Parent.BackColor, TextFormatFlags.PathEllipsis);
|
||||
}
|
||||
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// NGCheckBox
|
||||
//
|
||||
this.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
123
mRemoteV1/UI/Controls/Base/NGCheckBox.resx
Normal file
123
mRemoteV1/UI/Controls/Base/NGCheckBox.resx
Normal file
@@ -0,0 +1,123 @@
|
||||
<?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>
|
||||
<metadata name="$this.TrayLargeIcon" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
</root>
|
||||
@@ -137,6 +137,16 @@ namespace mRemoteNG.UI.Controls.Base
|
||||
TextRenderer.DrawText(e.Graphics, Text, Font, textRect, Fore, Back, TextFormatFlags.Left | TextFormatFlags.VerticalCenter);
|
||||
}
|
||||
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// NGComboBox
|
||||
//
|
||||
this.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.ResumeLayout(false);
|
||||
}
|
||||
|
||||
public T GetSelectedItemAs<T>()
|
||||
where T : class
|
||||
{
|
||||
|
||||
123
mRemoteV1/UI/Controls/Base/NGComboBox.resx
Normal file
123
mRemoteV1/UI/Controls/Base/NGComboBox.resx
Normal file
@@ -0,0 +1,123 @@
|
||||
<?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>
|
||||
<metadata name="$this.TrayLargeIcon" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
</root>
|
||||
@@ -86,6 +86,17 @@ namespace mRemoteNG.UI.Controls.Base
|
||||
e.Graphics.DrawLine(pen, bounds.Width - Padding.Right, num - Padding.Top, bounds.Width - Padding.Right, bounds.Height - Padding.Bottom);
|
||||
}
|
||||
RaisePaintEvent(this, e);
|
||||
}
|
||||
}
|
||||
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// NGGroupBox
|
||||
//
|
||||
this.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
123
mRemoteV1/UI/Controls/Base/NGGroupBox.resx
Normal file
123
mRemoteV1/UI/Controls/Base/NGGroupBox.resx
Normal file
@@ -0,0 +1,123 @@
|
||||
<?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>
|
||||
<metadata name="$this.TrayLargeIcon" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
</root>
|
||||
@@ -96,6 +96,17 @@ namespace mRemoteNG.UI.Controls.Base
|
||||
var disabledtextLabel = _themeManager.ActiveTheme.ExtendedPalette.getColor("TextBox_Disabled_Foreground");
|
||||
TextRenderer.DrawText(e.Graphics, Text, Font, ClientRectangle, disabledtextLabel, _textFormatFlags);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// NGLabel
|
||||
//
|
||||
this.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
123
mRemoteV1/UI/Controls/Base/NGLabel.resx
Normal file
123
mRemoteV1/UI/Controls/Base/NGLabel.resx
Normal file
@@ -0,0 +1,123 @@
|
||||
<?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>
|
||||
<metadata name="$this.TrayLargeIcon" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
</root>
|
||||
@@ -66,5 +66,18 @@ namespace mRemoteNG.UI.Controls.Base
|
||||
e.SubItem.Decoration = deco;
|
||||
}
|
||||
}
|
||||
|
||||
private void InitializeComponent()
|
||||
{
|
||||
((System.ComponentModel.ISupportInitialize)(this)).BeginInit();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// NGListView
|
||||
//
|
||||
this.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
((System.ComponentModel.ISupportInitialize)(this)).EndInit();
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
123
mRemoteV1/UI/Controls/Base/NGListView.resx
Normal file
123
mRemoteV1/UI/Controls/Base/NGListView.resx
Normal file
@@ -0,0 +1,123 @@
|
||||
<?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>
|
||||
<metadata name="$this.TrayLargeIcon" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
</root>
|
||||
@@ -11,7 +11,7 @@ namespace mRemoteNG.UI.Controls.Base
|
||||
internal class NGNumericUpDown : NumericUpDown
|
||||
{
|
||||
|
||||
private ThemeManager _themeManager;
|
||||
private readonly ThemeManager _themeManager;
|
||||
private NGButton Up;
|
||||
private NGButton Down;
|
||||
|
||||
@@ -28,23 +28,42 @@ namespace mRemoteNG.UI.Controls.Base
|
||||
ForeColor = _themeManager.ActiveTheme.ExtendedPalette.getColor("TextBox_Foreground");
|
||||
BackColor = _themeManager.ActiveTheme.ExtendedPalette.getColor("TextBox_Background");
|
||||
SetStyle(ControlStyles.OptimizedDoubleBuffer | ControlStyles.UserPaint, true);
|
||||
//Hide those nonthemable butons
|
||||
|
||||
if (Controls.Count > 0)
|
||||
Controls[0].Hide();
|
||||
{
|
||||
for (var i = 0; i < Controls.Count; i++)
|
||||
{
|
||||
//Remove those non-themable buttons
|
||||
if (Controls[i].GetType().ToString().Equals("System.Windows.Forms.UpDownBase+UpDownButtons"))
|
||||
Controls.Remove(Controls[i]);
|
||||
|
||||
/* This is a bit of a hack.
|
||||
* But if we have the buttons that we created already, redraw/return and don't add any more...
|
||||
*
|
||||
* OptionsPages are an example where the control is potentially created twice:
|
||||
* AddOptionsPagesToListView and then LstOptionPages_SelectedIndexChanged
|
||||
*/
|
||||
if (!(Controls[i] is NGButton)) continue;
|
||||
if (!Controls[i].Text.Equals("\u25B2") && !Controls[i].Text.Equals("\u25BC")) continue;
|
||||
Invalidate();
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
//Add new themable buttons
|
||||
Up = new NGButton
|
||||
{
|
||||
Text = "\u25B2",
|
||||
Font = new Font(Font.FontFamily, 6f)
|
||||
Font = new Font(Font.FontFamily, 5f)
|
||||
};
|
||||
Up.SetBounds(Width - 17, 1, 16, Height / 2 - 1);
|
||||
Up.SetBounds(Controls.Owner.Width - 17, 2, 16, Controls.Owner.Height / 2 - 1);
|
||||
Up.Click += Up_Click;
|
||||
Down = new NGButton
|
||||
{
|
||||
Text = "\u25BC",
|
||||
Font = new Font(Font.FontFamily, 6f)
|
||||
Font = new Font(Font.FontFamily, 5f)
|
||||
};
|
||||
Down.SetBounds(Width - 17, Height/2, 16, Height / 2 - 1);
|
||||
Down.SetBounds(Controls.Owner.Width - 17, Controls.Owner.Height /2 + 1, 16, Controls.Owner.Height / 2 - 1);
|
||||
Down.Click += Down_Click;
|
||||
Controls.Add(Up);
|
||||
Controls.Add(Down);
|
||||
@@ -91,6 +110,17 @@ namespace mRemoteNG.UI.Controls.Base
|
||||
e.Graphics.DrawRectangle(new Pen(_themeManager.ActiveTheme.ExtendedPalette.getColor("TextBox_Border"), 1), 0, 0, Width - 1, Height - 1);
|
||||
}
|
||||
|
||||
|
||||
private void InitializeComponent()
|
||||
{
|
||||
((System.ComponentModel.ISupportInitialize)(this)).BeginInit();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// NGNumericUpDown
|
||||
//
|
||||
this.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
((System.ComponentModel.ISupportInitialize)(this)).EndInit();
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
123
mRemoteV1/UI/Controls/Base/NGNumericUpDown.resx
Normal file
123
mRemoteV1/UI/Controls/Base/NGNumericUpDown.resx
Normal file
@@ -0,0 +1,123 @@
|
||||
<?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>
|
||||
<metadata name="$this.TrayLargeIcon" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
</root>
|
||||
@@ -119,5 +119,16 @@ namespace mRemoteNG.UI.Controls.Base
|
||||
g.FillEllipse(new SolidBrush(center), _circleSmall);
|
||||
g.DrawEllipse(new Pen(outline), _circle);
|
||||
}
|
||||
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// NGRadioButton
|
||||
//
|
||||
this.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
123
mRemoteV1/UI/Controls/Base/NGRadioButton.resx
Normal file
123
mRemoteV1/UI/Controls/Base/NGRadioButton.resx
Normal file
@@ -0,0 +1,123 @@
|
||||
<?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>
|
||||
<metadata name="$this.TrayLargeIcon" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
</root>
|
||||
@@ -50,6 +50,15 @@ namespace mRemoteNG.UI.Controls.Base
|
||||
Invalidate();
|
||||
}
|
||||
|
||||
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// NGTextBox
|
||||
//
|
||||
this.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
123
mRemoteV1/UI/Controls/Base/NGTextBox.resx
Normal file
123
mRemoteV1/UI/Controls/Base/NGTextBox.resx
Normal file
@@ -0,0 +1,123 @@
|
||||
<?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>
|
||||
<metadata name="$this.TrayLargeIcon" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
</root>
|
||||
@@ -15,7 +15,15 @@
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
components = new System.ComponentModel.Container();
|
||||
((System.ComponentModel.ISupportInitialize)(this)).BeginInit();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// ConnectionTree
|
||||
//
|
||||
this.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
((System.ComponentModel.ISupportInitialize)(this)).EndInit();
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
@@ -109,15 +109,13 @@ namespace mRemoteNG.UI.Controls
|
||||
{
|
||||
Collapsed += (sender, args) =>
|
||||
{
|
||||
var container = args.Model as ContainerInfo;
|
||||
if (container == null) return;
|
||||
if (!(args.Model is ContainerInfo container)) return;
|
||||
container.IsExpanded = false;
|
||||
AutoResizeColumn(Columns[0]);
|
||||
};
|
||||
Expanded += (sender, args) =>
|
||||
{
|
||||
var container = args.Model as ContainerInfo;
|
||||
if (container == null) return;
|
||||
if (!(args.Model is ContainerInfo container)) return;
|
||||
container.IsExpanded = true;
|
||||
AutoResizeColumn(Columns[0]);
|
||||
};
|
||||
@@ -204,8 +202,7 @@ namespace mRemoteNG.UI.Controls
|
||||
return;
|
||||
}
|
||||
|
||||
var senderAsConnectionInfo = sender as ConnectionInfo;
|
||||
if (senderAsConnectionInfo == null)
|
||||
if (!(sender is ConnectionInfo senderAsConnectionInfo))
|
||||
return;
|
||||
|
||||
RefreshObject(senderAsConnectionInfo);
|
||||
@@ -310,11 +307,9 @@ namespace mRemoteNG.UI.Controls
|
||||
|
||||
public void RenameSelectedNode()
|
||||
{
|
||||
if (SelectedItem != null)
|
||||
{
|
||||
_allowEdit = true;
|
||||
SelectedItem.BeginEdit();
|
||||
}
|
||||
if (SelectedItem == null) return;
|
||||
_allowEdit = true;
|
||||
SelectedItem.BeginEdit();
|
||||
}
|
||||
|
||||
public void DeleteSelectedNode()
|
||||
@@ -336,8 +331,7 @@ namespace mRemoteNG.UI.Controls
|
||||
|
||||
Runtime.ConnectionsService.BeginBatchingSaves();
|
||||
|
||||
var sortTargetAsContainer = sortTarget as ContainerInfo;
|
||||
if (sortTargetAsContainer != null)
|
||||
if (sortTarget is ContainerInfo sortTargetAsContainer)
|
||||
sortTargetAsContainer.SortRecursive(sortDirection);
|
||||
else
|
||||
SelectedNode.Parent.SortRecursive(sortDirection);
|
||||
@@ -390,12 +384,10 @@ namespace mRemoteNG.UI.Controls
|
||||
AutoResizeColumn(Columns[0]);
|
||||
|
||||
// turn filtering back on
|
||||
if (filteringEnabled)
|
||||
{
|
||||
ModelFilter = filter;
|
||||
UpdateFiltering();
|
||||
}
|
||||
}
|
||||
if (!filteringEnabled) return;
|
||||
ModelFilter = filter;
|
||||
UpdateFiltering();
|
||||
}
|
||||
|
||||
protected override void UpdateFiltering()
|
||||
{
|
||||
@@ -418,20 +410,20 @@ namespace mRemoteNG.UI.Controls
|
||||
private void OnMouse_DoubleClick(object sender, MouseEventArgs mouseEventArgs)
|
||||
{
|
||||
if (mouseEventArgs.Clicks < 2) return;
|
||||
// ReSharper disable once NotAccessedVariable
|
||||
OLVColumn column;
|
||||
var listItem = GetItemAt(mouseEventArgs.X, mouseEventArgs.Y, out column);
|
||||
var clickedNode = listItem?.RowObject as ConnectionInfo;
|
||||
if (clickedNode == null) return;
|
||||
if (!(listItem?.RowObject is ConnectionInfo clickedNode)) return;
|
||||
DoubleClickHandler.Execute(clickedNode);
|
||||
}
|
||||
|
||||
private void OnMouse_SingleClick(object sender, MouseEventArgs mouseEventArgs)
|
||||
{
|
||||
if (mouseEventArgs.Clicks > 1) return;
|
||||
// ReSharper disable once NotAccessedVariable
|
||||
OLVColumn column;
|
||||
var listItem = GetItemAt(mouseEventArgs.X, mouseEventArgs.Y, out column);
|
||||
var clickedNode = listItem?.RowObject as ConnectionInfo;
|
||||
if (clickedNode == null) return;
|
||||
if (!(listItem?.RowObject is ConnectionInfo clickedNode)) return;
|
||||
SingleClickHandler.Execute(clickedNode);
|
||||
}
|
||||
|
||||
|
||||
123
mRemoteV1/UI/Controls/ConnectionTree/ConnectionTree.resx
Normal file
123
mRemoteV1/UI/Controls/ConnectionTree/ConnectionTree.resx
Normal file
@@ -0,0 +1,123 @@
|
||||
<?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>
|
||||
<metadata name="$this.TrayLargeIcon" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
</root>
|
||||
@@ -17,8 +17,7 @@ namespace mRemoteNG.UI.Controls
|
||||
|
||||
public bool Filter(object modelObject)
|
||||
{
|
||||
var objectAsConnectionInfo = modelObject as ConnectionInfo;
|
||||
if (objectAsConnectionInfo == null)
|
||||
if (!(modelObject is ConnectionInfo objectAsConnectionInfo))
|
||||
return false;
|
||||
|
||||
if (SpecialInclusionList.Contains(objectAsConnectionInfo))
|
||||
@@ -26,12 +25,9 @@ namespace mRemoteNG.UI.Controls
|
||||
|
||||
var filterTextLower = FilterText.ToLowerInvariant();
|
||||
|
||||
if (objectAsConnectionInfo.Name.ToLowerInvariant().Contains(filterTextLower) ||
|
||||
objectAsConnectionInfo.Hostname.ToLowerInvariant().Contains(filterTextLower) ||
|
||||
objectAsConnectionInfo.Description.ToLowerInvariant().Contains(filterTextLower))
|
||||
return true;
|
||||
|
||||
return false;
|
||||
return objectAsConnectionInfo.Name.ToLowerInvariant().Contains(filterTextLower) ||
|
||||
objectAsConnectionInfo.Hostname.ToLowerInvariant().Contains(filterTextLower) ||
|
||||
objectAsConnectionInfo.Description.ToLowerInvariant().Contains(filterTextLower);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -28,7 +28,13 @@
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
components = new System.ComponentModel.Container();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// CredentialRecordComboBox
|
||||
//
|
||||
this.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
123
mRemoteV1/UI/Controls/CredentialRecordComboBox.resx
Normal file
123
mRemoteV1/UI/Controls/CredentialRecordComboBox.resx
Normal file
@@ -0,0 +1,123 @@
|
||||
<?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>
|
||||
<metadata name="$this.TrayLargeIcon" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
</root>
|
||||
@@ -28,7 +28,13 @@
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
components = new System.ComponentModel.Container();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// CredentialRecordListBox
|
||||
//
|
||||
this.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
123
mRemoteV1/UI/Controls/CredentialRecordListBox.resx
Normal file
123
mRemoteV1/UI/Controls/CredentialRecordListBox.resx
Normal file
@@ -0,0 +1,123 @@
|
||||
<?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>
|
||||
<metadata name="$this.TrayLargeIcon" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
</root>
|
||||
@@ -28,13 +28,13 @@
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.objectListView1 = new Base.NGListView();
|
||||
this.olvColumnCredentialId = ((BrightIdeasSoftware.OLVColumn)(new BrightIdeasSoftware.OLVColumn()));
|
||||
this.objectListView1 = new mRemoteNG.UI.Controls.Base.NGListView();
|
||||
this.olvColumnTitle = ((BrightIdeasSoftware.OLVColumn)(new BrightIdeasSoftware.OLVColumn()));
|
||||
this.olvColumnUsername = ((BrightIdeasSoftware.OLVColumn)(new BrightIdeasSoftware.OLVColumn()));
|
||||
this.olvColumnDomain = ((BrightIdeasSoftware.OLVColumn)(new BrightIdeasSoftware.OLVColumn()));
|
||||
this.olvColumnRepositorySource = ((BrightIdeasSoftware.OLVColumn)(new BrightIdeasSoftware.OLVColumn()));
|
||||
this.olvColumnCredentialId = ((BrightIdeasSoftware.OLVColumn)(new BrightIdeasSoftware.OLVColumn()));
|
||||
this.olvColumnRepositoryTitle = ((BrightIdeasSoftware.OLVColumn)(new BrightIdeasSoftware.OLVColumn()));
|
||||
this.olvColumnRepositorySource = ((BrightIdeasSoftware.OLVColumn)(new BrightIdeasSoftware.OLVColumn()));
|
||||
((System.ComponentModel.ISupportInitialize)(this.objectListView1)).BeginInit();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
@@ -55,6 +55,7 @@
|
||||
this.objectListView1.CopySelectionOnControlC = false;
|
||||
this.objectListView1.CopySelectionOnControlCUsesDragSource = false;
|
||||
this.objectListView1.Cursor = System.Windows.Forms.Cursors.Default;
|
||||
this.objectListView1.DecorateLines = true;
|
||||
this.objectListView1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.objectListView1.FullRowSelect = true;
|
||||
this.objectListView1.HideSelection = false;
|
||||
@@ -68,14 +69,6 @@
|
||||
this.objectListView1.UseNotifyPropertyChanged = true;
|
||||
this.objectListView1.View = System.Windows.Forms.View.Details;
|
||||
//
|
||||
// olvColumnCredentialId
|
||||
//
|
||||
this.olvColumnCredentialId.AspectName = "";
|
||||
this.olvColumnCredentialId.DisplayIndex = 0;
|
||||
this.olvColumnCredentialId.IsEditable = false;
|
||||
this.olvColumnCredentialId.IsVisible = false;
|
||||
this.olvColumnCredentialId.Text = "Credential ID";
|
||||
//
|
||||
// olvColumnTitle
|
||||
//
|
||||
this.olvColumnTitle.AspectName = "";
|
||||
@@ -92,21 +85,30 @@
|
||||
this.olvColumnDomain.AspectName = "";
|
||||
this.olvColumnDomain.Text = "Domain";
|
||||
//
|
||||
// olvColumnCredentialId
|
||||
//
|
||||
this.olvColumnCredentialId.AspectName = "";
|
||||
this.olvColumnCredentialId.DisplayIndex = 0;
|
||||
this.olvColumnCredentialId.IsEditable = false;
|
||||
this.olvColumnCredentialId.IsVisible = false;
|
||||
this.olvColumnCredentialId.Text = "Credential ID";
|
||||
//
|
||||
// olvColumnRepositoryTitle
|
||||
//
|
||||
this.olvColumnRepositoryTitle.Text = "Repository Title";
|
||||
//
|
||||
// olvColumnRepositorySource
|
||||
//
|
||||
this.olvColumnRepositorySource.DisplayIndex = 4;
|
||||
this.olvColumnRepositorySource.IsVisible = false;
|
||||
this.olvColumnRepositorySource.Text = "Source";
|
||||
//
|
||||
// olvColumnRepositoryTitle
|
||||
//
|
||||
this.olvColumnRepositoryTitle.Text = "Repository Title";
|
||||
//
|
||||
// CredentialRecordListView
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.Controls.Add(this.objectListView1);
|
||||
this.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.Name = "CredentialRecordListView";
|
||||
this.Size = new System.Drawing.Size(367, 204);
|
||||
((System.ComponentModel.ISupportInitialize)(this.objectListView1)).EndInit();
|
||||
|
||||
@@ -15,12 +15,12 @@
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.objectListView1 = new Base.NGListView();
|
||||
this.objectListView1 = new mRemoteNG.UI.Controls.Base.NGListView();
|
||||
this.olvColumnTitle = ((BrightIdeasSoftware.OLVColumn)(new BrightIdeasSoftware.OLVColumn()));
|
||||
this.olvColumnProvider = ((BrightIdeasSoftware.OLVColumn)(new BrightIdeasSoftware.OLVColumn()));
|
||||
this.olvColumnIsLoaded = ((BrightIdeasSoftware.OLVColumn)(new BrightIdeasSoftware.OLVColumn()));
|
||||
this.olvColumnId = ((BrightIdeasSoftware.OLVColumn)(new BrightIdeasSoftware.OLVColumn()));
|
||||
this.olvColumnSource = ((BrightIdeasSoftware.OLVColumn)(new BrightIdeasSoftware.OLVColumn()));
|
||||
this.olvColumnId = ((BrightIdeasSoftware.OLVColumn)(new BrightIdeasSoftware.OLVColumn()));
|
||||
((System.ComponentModel.ISupportInitialize)(this.objectListView1)).BeginInit();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
@@ -41,6 +41,7 @@
|
||||
this.objectListView1.CopySelectionOnControlC = false;
|
||||
this.objectListView1.CopySelectionOnControlCUsesDragSource = false;
|
||||
this.objectListView1.Cursor = System.Windows.Forms.Cursors.Default;
|
||||
this.objectListView1.DecorateLines = true;
|
||||
this.objectListView1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.objectListView1.FullRowSelect = true;
|
||||
this.objectListView1.HideSelection = false;
|
||||
@@ -73,10 +74,6 @@
|
||||
this.olvColumnIsLoaded.IsEditable = false;
|
||||
this.olvColumnIsLoaded.Text = "Loaded";
|
||||
//
|
||||
// olvColumnId
|
||||
//
|
||||
this.olvColumnId.Text = "ID";
|
||||
//
|
||||
// olvColumnSource
|
||||
//
|
||||
this.olvColumnSource.AspectName = "";
|
||||
@@ -84,11 +81,16 @@
|
||||
this.olvColumnSource.Groupable = false;
|
||||
this.olvColumnSource.Text = "Source";
|
||||
//
|
||||
// olvColumnId
|
||||
//
|
||||
this.olvColumnId.Text = "ID";
|
||||
//
|
||||
// CredentialRepositoryListView
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.Controls.Add(this.objectListView1);
|
||||
this.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.Name = "CredentialRepositoryListView";
|
||||
this.Size = new System.Drawing.Size(308, 171);
|
||||
((System.ComponentModel.ISupportInitialize)(this.objectListView1)).EndInit();
|
||||
|
||||
@@ -50,8 +50,8 @@ namespace mRemoteNG.UI.Controls.FilteredPropertyGrid
|
||||
public IEnumerable<string> VisibleProperties => _propertyDescriptors.Select(p => p.Name);
|
||||
|
||||
public new AttributeCollection BrowsableAttributes {
|
||||
get { return _browsableAttributes; }
|
||||
set {
|
||||
get => _browsableAttributes;
|
||||
set {
|
||||
if (_browsableAttributes == value) return;
|
||||
_hiddenAttributes = null;
|
||||
_browsableAttributes = value;
|
||||
@@ -63,8 +63,8 @@ namespace mRemoteNG.UI.Controls.FilteredPropertyGrid
|
||||
/// Get or set the categories to hide.
|
||||
/// </summary>
|
||||
public AttributeCollection HiddenAttributes {
|
||||
get { return _hiddenAttributes; }
|
||||
set {
|
||||
get => _hiddenAttributes;
|
||||
set {
|
||||
if (value == _hiddenAttributes) return;
|
||||
_hiddenAttributes = value;
|
||||
_browsableAttributes = null;
|
||||
@@ -77,8 +77,8 @@ namespace mRemoteNG.UI.Controls.FilteredPropertyGrid
|
||||
/// </summary>
|
||||
/// <exception cref="ArgumentException">if one or several properties don't exist.</exception>
|
||||
public string[] BrowsableProperties {
|
||||
get { return _mBrowsableProperties; }
|
||||
set {
|
||||
get => _mBrowsableProperties;
|
||||
set {
|
||||
if (value == _mBrowsableProperties) return;
|
||||
_mBrowsableProperties = value;
|
||||
RefreshProperties();
|
||||
@@ -87,8 +87,8 @@ namespace mRemoteNG.UI.Controls.FilteredPropertyGrid
|
||||
|
||||
/// <summary>Get or set the properties to hide.</summary>
|
||||
public string[] HiddenProperties {
|
||||
get { return _mHiddenProperties; }
|
||||
set {
|
||||
get => _mHiddenProperties;
|
||||
set {
|
||||
if (value == _mHiddenProperties) return;
|
||||
_mHiddenProperties = value;
|
||||
RefreshProperties();
|
||||
@@ -100,13 +100,11 @@ namespace mRemoteNG.UI.Controls.FilteredPropertyGrid
|
||||
/// </summary>
|
||||
/// <remarks>The object passed to the base PropertyGrid is the wrapper.</remarks>
|
||||
public new object SelectedObject {
|
||||
get
|
||||
{
|
||||
return _mWrapper != null
|
||||
? ((ObjectWrapper)base.SelectedObject).SelectedObject
|
||||
: null;
|
||||
}
|
||||
set {
|
||||
get =>
|
||||
_mWrapper != null
|
||||
? ((ObjectWrapper)base.SelectedObject).SelectedObject
|
||||
: null;
|
||||
set {
|
||||
// Set the new object to the wrapper and create one if necessary.
|
||||
if(_mWrapper == null)
|
||||
{
|
||||
|
||||
@@ -25,8 +25,13 @@
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent() {
|
||||
components = new System.ComponentModel.Container();
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// FilteredPropertyGrid
|
||||
//
|
||||
this.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
@@ -0,0 +1,123 @@
|
||||
<?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>
|
||||
<metadata name="$this.TrayLargeIcon" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
</root>
|
||||
@@ -14,5 +14,16 @@ namespace mRemoteNG.UI.Controls
|
||||
else
|
||||
base.WndProc(ref m);
|
||||
}
|
||||
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// HeadlessTabControl
|
||||
//
|
||||
this.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
123
mRemoteV1/UI/Controls/HeadlessTabControl.resx
Normal file
123
mRemoteV1/UI/Controls/HeadlessTabControl.resx
Normal file
@@ -0,0 +1,123 @@
|
||||
<?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>
|
||||
<metadata name="$this.TrayLargeIcon" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
</root>
|
||||
@@ -101,126 +101,127 @@ namespace mRemoteNG.UI.Controls
|
||||
/// the contents of this method with the code editor.
|
||||
private void InitializeComponent()
|
||||
{
|
||||
components = new System.ComponentModel.Container();
|
||||
panel1 = new Panel();
|
||||
label3 = new Base.NGLabel();
|
||||
label2 = new Base.NGLabel();
|
||||
Octet4 = new Base.NGTextBox();
|
||||
Octet3 = new Base.NGTextBox();
|
||||
Octet2 = new Base.NGTextBox();
|
||||
label1 = new Base.NGLabel();
|
||||
Octet1 = new Base.NGTextBox();
|
||||
toolTip1 = new System.Windows.Forms.ToolTip(components);
|
||||
panel1.SuspendLayout();
|
||||
SuspendLayout();
|
||||
this.components = new System.ComponentModel.Container();
|
||||
this.panel1 = new System.Windows.Forms.Panel();
|
||||
this.Octet4 = new mRemoteNG.UI.Controls.Base.NGTextBox();
|
||||
this.Octet3 = new mRemoteNG.UI.Controls.Base.NGTextBox();
|
||||
this.Octet2 = new mRemoteNG.UI.Controls.Base.NGTextBox();
|
||||
this.Octet1 = new mRemoteNG.UI.Controls.Base.NGTextBox();
|
||||
this.label2 = new mRemoteNG.UI.Controls.Base.NGLabel();
|
||||
this.label1 = new mRemoteNG.UI.Controls.Base.NGLabel();
|
||||
this.label3 = new mRemoteNG.UI.Controls.Base.NGLabel();
|
||||
this.toolTip1 = new System.Windows.Forms.ToolTip(this.components);
|
||||
this.panel1.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// panel1
|
||||
//
|
||||
panel1.BackColor = System.Drawing.SystemColors.Window;
|
||||
panel1.Controls.Add(Octet4);
|
||||
panel1.Controls.Add(Octet3);
|
||||
panel1.Controls.Add(Octet2);
|
||||
panel1.Controls.Add(Octet1);
|
||||
panel1.Controls.Add(label2);
|
||||
panel1.Controls.Add(label1);
|
||||
panel1.Controls.Add(label3);
|
||||
panel1.Font = new System.Drawing.Font("Segoe UI", 9F);
|
||||
panel1.Location = new System.Drawing.Point(0, 0);
|
||||
panel1.Name = "panel1";
|
||||
panel1.Size = new System.Drawing.Size(124, 18);
|
||||
panel1.TabIndex = 0;
|
||||
//
|
||||
// label3
|
||||
//
|
||||
label3.Location = new System.Drawing.Point(23, 1);
|
||||
label3.Name = "label3";
|
||||
label3.Size = new System.Drawing.Size(8, 13);
|
||||
label3.TabIndex = 6;
|
||||
label3.Text = ".";
|
||||
//
|
||||
// label2
|
||||
//
|
||||
label2.Location = new System.Drawing.Point(86, 2);
|
||||
label2.Name = "label2";
|
||||
label2.Size = new System.Drawing.Size(8, 13);
|
||||
label2.TabIndex = 5;
|
||||
label2.Text = ".";
|
||||
this.panel1.BackColor = System.Drawing.SystemColors.Window;
|
||||
this.panel1.Controls.Add(this.Octet4);
|
||||
this.panel1.Controls.Add(this.Octet3);
|
||||
this.panel1.Controls.Add(this.Octet2);
|
||||
this.panel1.Controls.Add(this.Octet1);
|
||||
this.panel1.Controls.Add(this.label2);
|
||||
this.panel1.Controls.Add(this.label1);
|
||||
this.panel1.Controls.Add(this.label3);
|
||||
this.panel1.Font = new System.Drawing.Font("Segoe UI", 9F);
|
||||
this.panel1.Location = new System.Drawing.Point(0, 0);
|
||||
this.panel1.Name = "panel1";
|
||||
this.panel1.Size = new System.Drawing.Size(124, 18);
|
||||
this.panel1.TabIndex = 0;
|
||||
//
|
||||
// Octet4
|
||||
//
|
||||
Octet4.BackColor = System.Drawing.SystemColors.Menu;
|
||||
Octet4.BorderStyle = System.Windows.Forms.BorderStyle.None;
|
||||
Octet4.Font = new System.Drawing.Font("Segoe UI", 9F);
|
||||
Octet4.Location = new System.Drawing.Point(95, 1);
|
||||
Octet4.MaxLength = 3;
|
||||
Octet4.Name = "Octet4";
|
||||
Octet4.Size = new System.Drawing.Size(24, 16);
|
||||
Octet4.TabIndex = 4;
|
||||
Octet4.TabStop = false;
|
||||
Octet4.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
|
||||
Octet4.Enter += new System.EventHandler(Box_Enter);
|
||||
Octet4.KeyPress += new System.Windows.Forms.KeyPressEventHandler(Box4_KeyPress);
|
||||
this.Octet4.BackColor = System.Drawing.SystemColors.Menu;
|
||||
this.Octet4.BorderStyle = System.Windows.Forms.BorderStyle.None;
|
||||
this.Octet4.Font = new System.Drawing.Font("Segoe UI", 9F);
|
||||
this.Octet4.Location = new System.Drawing.Point(95, 1);
|
||||
this.Octet4.MaxLength = 3;
|
||||
this.Octet4.Name = "Octet4";
|
||||
this.Octet4.Size = new System.Drawing.Size(24, 16);
|
||||
this.Octet4.TabIndex = 4;
|
||||
this.Octet4.TabStop = false;
|
||||
this.Octet4.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
|
||||
this.Octet4.Enter += new System.EventHandler(this.Box_Enter);
|
||||
this.Octet4.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.Box4_KeyPress);
|
||||
//
|
||||
// Octet3
|
||||
//
|
||||
Octet3.BackColor = System.Drawing.SystemColors.Menu;
|
||||
Octet3.BorderStyle = System.Windows.Forms.BorderStyle.None;
|
||||
Octet3.Font = new System.Drawing.Font("Segoe UI", 9F);
|
||||
Octet3.Location = new System.Drawing.Point(63, 1);
|
||||
Octet3.MaxLength = 3;
|
||||
Octet3.Name = "Octet3";
|
||||
Octet3.Size = new System.Drawing.Size(24, 16);
|
||||
Octet3.TabIndex = 3;
|
||||
Octet3.TabStop = false;
|
||||
Octet3.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
|
||||
Octet3.Enter += new System.EventHandler(Box_Enter);
|
||||
Octet3.KeyPress += new System.Windows.Forms.KeyPressEventHandler(Box3_KeyPress);
|
||||
this.Octet3.BackColor = System.Drawing.SystemColors.Menu;
|
||||
this.Octet3.BorderStyle = System.Windows.Forms.BorderStyle.None;
|
||||
this.Octet3.Font = new System.Drawing.Font("Segoe UI", 9F);
|
||||
this.Octet3.Location = new System.Drawing.Point(63, 1);
|
||||
this.Octet3.MaxLength = 3;
|
||||
this.Octet3.Name = "Octet3";
|
||||
this.Octet3.Size = new System.Drawing.Size(24, 16);
|
||||
this.Octet3.TabIndex = 3;
|
||||
this.Octet3.TabStop = false;
|
||||
this.Octet3.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
|
||||
this.Octet3.Enter += new System.EventHandler(this.Box_Enter);
|
||||
this.Octet3.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.Box3_KeyPress);
|
||||
//
|
||||
// Octet2
|
||||
//
|
||||
Octet2.BackColor = System.Drawing.SystemColors.Menu;
|
||||
Octet2.BorderStyle = System.Windows.Forms.BorderStyle.None;
|
||||
Octet2.Font = new System.Drawing.Font("Segoe UI", 9F);
|
||||
Octet2.Location = new System.Drawing.Point(32, 1);
|
||||
Octet2.MaxLength = 3;
|
||||
Octet2.Name = "Octet2";
|
||||
Octet2.Size = new System.Drawing.Size(24, 16);
|
||||
Octet2.TabIndex = 2;
|
||||
Octet2.TabStop = false;
|
||||
Octet2.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
|
||||
Octet2.Enter += new System.EventHandler(Box_Enter);
|
||||
Octet2.KeyPress += new System.Windows.Forms.KeyPressEventHandler(Box2_KeyPress);
|
||||
//
|
||||
// label1
|
||||
//
|
||||
label1.Location = new System.Drawing.Point(55, 2);
|
||||
label1.Name = "label1";
|
||||
label1.Size = new System.Drawing.Size(8, 13);
|
||||
label1.TabIndex = 1;
|
||||
label1.Text = ".";
|
||||
this.Octet2.BackColor = System.Drawing.SystemColors.Menu;
|
||||
this.Octet2.BorderStyle = System.Windows.Forms.BorderStyle.None;
|
||||
this.Octet2.Font = new System.Drawing.Font("Segoe UI", 9F);
|
||||
this.Octet2.Location = new System.Drawing.Point(32, 1);
|
||||
this.Octet2.MaxLength = 3;
|
||||
this.Octet2.Name = "Octet2";
|
||||
this.Octet2.Size = new System.Drawing.Size(24, 16);
|
||||
this.Octet2.TabIndex = 2;
|
||||
this.Octet2.TabStop = false;
|
||||
this.Octet2.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
|
||||
this.Octet2.Enter += new System.EventHandler(this.Box_Enter);
|
||||
this.Octet2.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.Box2_KeyPress);
|
||||
//
|
||||
// Octet1
|
||||
//
|
||||
Octet1.BackColor = System.Drawing.SystemColors.Menu;
|
||||
Octet1.BorderStyle = System.Windows.Forms.BorderStyle.None;
|
||||
Octet1.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
Octet1.Location = new System.Drawing.Point(1, 1);
|
||||
Octet1.MaxLength = 3;
|
||||
Octet1.Name = "Octet1";
|
||||
Octet1.Size = new System.Drawing.Size(24, 16);
|
||||
Octet1.TabIndex = 1;
|
||||
Octet1.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
|
||||
Octet1.Enter += new System.EventHandler(Box_Enter);
|
||||
Octet1.KeyPress += new System.Windows.Forms.KeyPressEventHandler(Box1_KeyPress);
|
||||
this.Octet1.BackColor = System.Drawing.SystemColors.Menu;
|
||||
this.Octet1.BorderStyle = System.Windows.Forms.BorderStyle.None;
|
||||
this.Octet1.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.Octet1.Location = new System.Drawing.Point(1, 1);
|
||||
this.Octet1.MaxLength = 3;
|
||||
this.Octet1.Name = "Octet1";
|
||||
this.Octet1.Size = new System.Drawing.Size(24, 16);
|
||||
this.Octet1.TabIndex = 1;
|
||||
this.Octet1.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
|
||||
this.Octet1.Enter += new System.EventHandler(this.Box_Enter);
|
||||
this.Octet1.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.Box1_KeyPress);
|
||||
//
|
||||
// label2
|
||||
//
|
||||
this.label2.Location = new System.Drawing.Point(86, 2);
|
||||
this.label2.Name = "label2";
|
||||
this.label2.Size = new System.Drawing.Size(8, 13);
|
||||
this.label2.TabIndex = 5;
|
||||
this.label2.Text = ".";
|
||||
//
|
||||
// label1
|
||||
//
|
||||
this.label1.Location = new System.Drawing.Point(55, 2);
|
||||
this.label1.Name = "label1";
|
||||
this.label1.Size = new System.Drawing.Size(8, 13);
|
||||
this.label1.TabIndex = 1;
|
||||
this.label1.Text = ".";
|
||||
//
|
||||
// label3
|
||||
//
|
||||
this.label3.Location = new System.Drawing.Point(23, 1);
|
||||
this.label3.Name = "label3";
|
||||
this.label3.Size = new System.Drawing.Size(8, 13);
|
||||
this.label3.TabIndex = 6;
|
||||
this.label3.Text = ".";
|
||||
//
|
||||
// IPTextBox
|
||||
//
|
||||
Controls.Add(panel1);
|
||||
Name = "IPTextBox";
|
||||
Size = new System.Drawing.Size(124, 18);
|
||||
panel1.ResumeLayout(false);
|
||||
panel1.PerformLayout();
|
||||
ResumeLayout(false);
|
||||
this.Controls.Add(this.panel1);
|
||||
this.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.Name = "IPTextBox";
|
||||
this.Size = new System.Drawing.Size(124, 18);
|
||||
this.panel1.ResumeLayout(false);
|
||||
this.panel1.PerformLayout();
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
#endregion
|
||||
|
||||
@@ -10,14 +10,13 @@ namespace mRemoteNG.UI.Controls
|
||||
private IContainer components;
|
||||
private ToolStripLabel _lblMultiSsh;
|
||||
private ToolStripTextBox _txtMultiSsh;
|
||||
private MultiSSHController _multiSshController;
|
||||
private readonly DisplayProperties _display;
|
||||
private ThemeManager _themeManager;
|
||||
// ReSharper disable once NotAccessedField.Local
|
||||
private MultiSSHController _multiSshController;
|
||||
private readonly ThemeManager _themeManager;
|
||||
|
||||
|
||||
public MultiSshToolStrip()
|
||||
{
|
||||
_display = new DisplayProperties();
|
||||
InitializeComponent();
|
||||
_themeManager = ThemeManager.getInstance();
|
||||
_themeManager.ThemeChanged += ApplyTheme;
|
||||
@@ -41,7 +40,7 @@ namespace mRemoteNG.UI.Controls
|
||||
// txtMultiSSH
|
||||
//
|
||||
_txtMultiSsh.Name = "_txtMultiSsh";
|
||||
_txtMultiSsh.Size = new System.Drawing.Size(_display.ScaleWidth(300), 25);
|
||||
_txtMultiSsh.Size = new System.Drawing.Size(new DisplayProperties().ScaleWidth(300), 25);
|
||||
_txtMultiSsh.ToolTipText = "Press ENTER to send. Ctrl+C is sent immediately.";
|
||||
|
||||
Items.AddRange(new ToolStripItem[] {
|
||||
|
||||
@@ -28,15 +28,43 @@
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.imgError = new System.Windows.Forms.PictureBox();
|
||||
this.labelPasswordsDontMatch = new mRemoteNG.UI.Controls.Base.NGLabel();
|
||||
this.labelSecondPasswordBox = new mRemoteNG.UI.Controls.Base.NGLabel();
|
||||
this.labelFirstPasswordBox = new mRemoteNG.UI.Controls.Base.NGLabel();
|
||||
this.labelSecondPasswordBox = new mRemoteNG.UI.Controls.Base.NGLabel();
|
||||
this.labelPasswordsDontMatch = new mRemoteNG.UI.Controls.Base.NGLabel();
|
||||
this.imgError = new System.Windows.Forms.PictureBox();
|
||||
this.secureTextBox2 = new mRemoteNG.UI.Controls.SecureTextBox();
|
||||
this.secureTextBox1 = new mRemoteNG.UI.Controls.SecureTextBox();
|
||||
((System.ComponentModel.ISupportInitialize)(this.imgError)).BeginInit();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// labelFirstPasswordBox
|
||||
//
|
||||
this.labelFirstPasswordBox.AutoSize = true;
|
||||
this.labelFirstPasswordBox.Location = new System.Drawing.Point(-3, 0);
|
||||
this.labelFirstPasswordBox.Name = "labelFirstPasswordBox";
|
||||
this.labelFirstPasswordBox.Size = new System.Drawing.Size(82, 13);
|
||||
this.labelFirstPasswordBox.TabIndex = 2;
|
||||
this.labelFirstPasswordBox.Text = "New Password";
|
||||
//
|
||||
// labelSecondPasswordBox
|
||||
//
|
||||
this.labelSecondPasswordBox.AutoSize = true;
|
||||
this.labelSecondPasswordBox.Location = new System.Drawing.Point(-3, 42);
|
||||
this.labelSecondPasswordBox.Name = "labelSecondPasswordBox";
|
||||
this.labelSecondPasswordBox.Size = new System.Drawing.Size(84, 13);
|
||||
this.labelSecondPasswordBox.TabIndex = 3;
|
||||
this.labelSecondPasswordBox.Text = "VerifyPassword";
|
||||
//
|
||||
// labelPasswordsDontMatch
|
||||
//
|
||||
this.labelPasswordsDontMatch.AutoSize = true;
|
||||
this.labelPasswordsDontMatch.Location = new System.Drawing.Point(23, 83);
|
||||
this.labelPasswordsDontMatch.Name = "labelPasswordsDontMatch";
|
||||
this.labelPasswordsDontMatch.Size = new System.Drawing.Size(133, 13);
|
||||
this.labelPasswordsDontMatch.TabIndex = 4;
|
||||
this.labelPasswordsDontMatch.Text = "Passwords do not match";
|
||||
this.labelPasswordsDontMatch.Visible = false;
|
||||
//
|
||||
// imgError
|
||||
//
|
||||
this.imgError.Image = global::mRemoteNG.Resources.ErrorSmall;
|
||||
@@ -47,41 +75,13 @@
|
||||
this.imgError.TabStop = false;
|
||||
this.imgError.Visible = false;
|
||||
//
|
||||
// labelPasswordsDontMatch
|
||||
//
|
||||
this.labelPasswordsDontMatch.AutoSize = true;
|
||||
this.labelPasswordsDontMatch.Location = new System.Drawing.Point(23, 83);
|
||||
this.labelPasswordsDontMatch.Name = "labelPasswordsDontMatch";
|
||||
this.labelPasswordsDontMatch.Size = new System.Drawing.Size(123, 13);
|
||||
this.labelPasswordsDontMatch.TabIndex = 4;
|
||||
this.labelPasswordsDontMatch.Text = "Passwords do not match";
|
||||
this.labelPasswordsDontMatch.Visible = false;
|
||||
//
|
||||
// labelSecondPasswordBox
|
||||
//
|
||||
this.labelSecondPasswordBox.AutoSize = true;
|
||||
this.labelSecondPasswordBox.Location = new System.Drawing.Point(-3, 42);
|
||||
this.labelSecondPasswordBox.Name = "labelSecondPasswordBox";
|
||||
this.labelSecondPasswordBox.Size = new System.Drawing.Size(79, 13);
|
||||
this.labelSecondPasswordBox.TabIndex = 3;
|
||||
this.labelSecondPasswordBox.Text = "VerifyPassword";
|
||||
//
|
||||
// labelFirstPasswordBox
|
||||
//
|
||||
this.labelFirstPasswordBox.AutoSize = true;
|
||||
this.labelFirstPasswordBox.Location = new System.Drawing.Point(-3, 0);
|
||||
this.labelFirstPasswordBox.Name = "labelFirstPasswordBox";
|
||||
this.labelFirstPasswordBox.Size = new System.Drawing.Size(78, 13);
|
||||
this.labelFirstPasswordBox.TabIndex = 2;
|
||||
this.labelFirstPasswordBox.Text = "New Password";
|
||||
//
|
||||
// secureTextBox2
|
||||
//
|
||||
this.secureTextBox2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.secureTextBox2.Location = new System.Drawing.Point(0, 58);
|
||||
this.secureTextBox2.Name = "secureTextBox2";
|
||||
this.secureTextBox2.Size = new System.Drawing.Size(193, 20);
|
||||
this.secureTextBox2.Size = new System.Drawing.Size(193, 22);
|
||||
this.secureTextBox2.TabIndex = 1;
|
||||
//
|
||||
// secureTextBox1
|
||||
@@ -90,20 +90,20 @@
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.secureTextBox1.Location = new System.Drawing.Point(0, 16);
|
||||
this.secureTextBox1.Name = "secureTextBox1";
|
||||
this.secureTextBox1.Size = new System.Drawing.Size(193, 20);
|
||||
this.secureTextBox1.Size = new System.Drawing.Size(193, 22);
|
||||
this.secureTextBox1.TabIndex = 0;
|
||||
//
|
||||
// NewPasswordWithVerification
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
|
||||
this.BackColor = System.Drawing.Color.Transparent;
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.Controls.Add(this.imgError);
|
||||
this.Controls.Add(this.labelPasswordsDontMatch);
|
||||
this.Controls.Add(this.labelSecondPasswordBox);
|
||||
this.Controls.Add(this.labelFirstPasswordBox);
|
||||
this.Controls.Add(this.secureTextBox2);
|
||||
this.Controls.Add(this.secureTextBox1);
|
||||
this.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.MinimumSize = new System.Drawing.Size(0, 100);
|
||||
this.Name = "NewPasswordWithVerification";
|
||||
this.Size = new System.Drawing.Size(193, 100);
|
||||
|
||||
@@ -19,12 +19,10 @@ namespace mRemoteNG.UI.Controls.PageSequence
|
||||
|
||||
public PageSequence(Control pageContainer, params SequencedControl[] pages)
|
||||
{
|
||||
if (pageContainer == null)
|
||||
throw new ArgumentNullException(nameof(pageContainer));
|
||||
if (pages == null)
|
||||
throw new ArgumentNullException(nameof(pages));
|
||||
|
||||
_pageContainer = pageContainer;
|
||||
_pageContainer = pageContainer ?? throw new ArgumentNullException(nameof(pageContainer));
|
||||
foreach (var page in pages)
|
||||
{
|
||||
SubscribeToPageEvents(page);
|
||||
|
||||
@@ -12,6 +12,7 @@ namespace mRemoteNG.UI.Controls.PageSequence
|
||||
public SequencedControl()
|
||||
{
|
||||
Themes.ThemeManager.getInstance().ThemeChanged += ApplyTheme;
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
protected virtual void RaiseNextPageEvent()
|
||||
@@ -35,5 +36,17 @@ namespace mRemoteNG.UI.Controls.PageSequence
|
||||
{
|
||||
PageReplacementRequested?.Invoke(this, new SequencedPageReplcementRequestArgs(control, pagetoReplace));
|
||||
}
|
||||
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// SequencedControl
|
||||
//
|
||||
this.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.Name = "SequencedControl";
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
120
mRemoteV1/UI/Controls/PageSequence/SequencedControl.resx
Normal file
120
mRemoteV1/UI/Controls/PageSequence/SequencedControl.resx
Normal file
@@ -0,0 +1,120 @@
|
||||
<?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>
|
||||
</root>
|
||||
@@ -18,9 +18,7 @@ namespace mRemoteNG.UI.Controls.PageSequence
|
||||
|
||||
public SequencedPageReplcementRequestArgs(SequencedControl newControl, RelativePagePosition pageToReplace)
|
||||
{
|
||||
if (newControl == null)
|
||||
throw new ArgumentNullException(nameof(newControl));
|
||||
NewControl = newControl;
|
||||
NewControl = newControl ?? throw new ArgumentNullException(nameof(newControl));
|
||||
PagePosition = pageToReplace;
|
||||
}
|
||||
}
|
||||
|
||||
8
mRemoteV1/UI/Controls/SecureTextBox.Designer.cs
generated
8
mRemoteV1/UI/Controls/SecureTextBox.Designer.cs
generated
@@ -36,7 +36,13 @@
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
components = new System.ComponentModel.Container();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// SecureTextBox
|
||||
//
|
||||
this.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
123
mRemoteV1/UI/Controls/SecureTextBox.resx
Normal file
123
mRemoteV1/UI/Controls/SecureTextBox.resx
Normal file
@@ -0,0 +1,123 @@
|
||||
<?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>
|
||||
<metadata name="$this.TrayLargeIcon" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
</root>
|
||||
29
mRemoteV1/UI/Forms/ExportForm.Designer.cs
generated
29
mRemoteV1/UI/Forms/ExportForm.Designer.cs
generated
@@ -63,7 +63,7 @@ namespace mRemoteNG.UI.Forms
|
||||
this.lblUncheckProperties.AutoSize = true;
|
||||
this.lblUncheckProperties.Location = new System.Drawing.Point(12, 134);
|
||||
this.lblUncheckProperties.Name = "lblUncheckProperties";
|
||||
this.lblUncheckProperties.Size = new System.Drawing.Size(244, 13);
|
||||
this.lblUncheckProperties.Size = new System.Drawing.Size(264, 13);
|
||||
this.lblUncheckProperties.TabIndex = 4;
|
||||
this.lblUncheckProperties.Text = "Uncheck the properties you want not to be saved!";
|
||||
//
|
||||
@@ -75,7 +75,7 @@ namespace mRemoteNG.UI.Forms
|
||||
this.chkUsername.CheckState = System.Windows.Forms.CheckState.Checked;
|
||||
this.chkUsername.Location = new System.Drawing.Point(15, 32);
|
||||
this.chkUsername.Name = "chkUsername";
|
||||
this.chkUsername.Size = new System.Drawing.Size(74, 17);
|
||||
this.chkUsername.Size = new System.Drawing.Size(77, 17);
|
||||
this.chkUsername.TabIndex = 0;
|
||||
this.chkUsername.Text = "Username";
|
||||
this.chkUsername.UseVisualStyleBackColor = true;
|
||||
@@ -88,7 +88,7 @@ namespace mRemoteNG.UI.Forms
|
||||
this.chkPassword.CheckState = System.Windows.Forms.CheckState.Checked;
|
||||
this.chkPassword.Location = new System.Drawing.Point(15, 55);
|
||||
this.chkPassword.Name = "chkPassword";
|
||||
this.chkPassword.Size = new System.Drawing.Size(72, 17);
|
||||
this.chkPassword.Size = new System.Drawing.Size(75, 17);
|
||||
this.chkPassword.TabIndex = 1;
|
||||
this.chkPassword.Text = "Password";
|
||||
this.chkPassword.UseVisualStyleBackColor = true;
|
||||
@@ -101,7 +101,7 @@ namespace mRemoteNG.UI.Forms
|
||||
this.chkDomain.CheckState = System.Windows.Forms.CheckState.Checked;
|
||||
this.chkDomain.Location = new System.Drawing.Point(15, 78);
|
||||
this.chkDomain.Name = "chkDomain";
|
||||
this.chkDomain.Size = new System.Drawing.Size(62, 17);
|
||||
this.chkDomain.Size = new System.Drawing.Size(66, 17);
|
||||
this.chkDomain.TabIndex = 2;
|
||||
this.chkDomain.Text = "Domain";
|
||||
this.chkDomain.UseVisualStyleBackColor = true;
|
||||
@@ -114,7 +114,7 @@ namespace mRemoteNG.UI.Forms
|
||||
this.chkInheritance.CheckState = System.Windows.Forms.CheckState.Checked;
|
||||
this.chkInheritance.Location = new System.Drawing.Point(15, 101);
|
||||
this.chkInheritance.Name = "chkInheritance";
|
||||
this.chkInheritance.Size = new System.Drawing.Size(79, 17);
|
||||
this.chkInheritance.Size = new System.Drawing.Size(84, 17);
|
||||
this.chkInheritance.TabIndex = 3;
|
||||
this.chkInheritance.Text = "Inheritance";
|
||||
this.chkInheritance.UseVisualStyleBackColor = true;
|
||||
@@ -124,7 +124,7 @@ namespace mRemoteNG.UI.Forms
|
||||
this.txtFileName.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||
this.txtFileName.Location = new System.Drawing.Point(15, 47);
|
||||
this.txtFileName.Name = "txtFileName";
|
||||
this.txtFileName.Size = new System.Drawing.Size(396, 20);
|
||||
this.txtFileName.Size = new System.Drawing.Size(396, 22);
|
||||
this.txtFileName.TabIndex = 1;
|
||||
this.txtFileName.TextChanged += new System.EventHandler(this.txtFileName_TextChanged);
|
||||
//
|
||||
@@ -162,7 +162,7 @@ namespace mRemoteNG.UI.Forms
|
||||
this.chkAssignedCredential.CheckState = System.Windows.Forms.CheckState.Checked;
|
||||
this.chkAssignedCredential.Location = new System.Drawing.Point(143, 32);
|
||||
this.chkAssignedCredential.Name = "chkAssignedCredential";
|
||||
this.chkAssignedCredential.Size = new System.Drawing.Size(119, 17);
|
||||
this.chkAssignedCredential.Size = new System.Drawing.Size(129, 17);
|
||||
this.chkAssignedCredential.TabIndex = 5;
|
||||
this.chkAssignedCredential.Text = "Assigned Credential";
|
||||
this.chkAssignedCredential.UseVisualStyleBackColor = true;
|
||||
@@ -187,7 +187,7 @@ namespace mRemoteNG.UI.Forms
|
||||
this.lblFileFormat.AutoSize = true;
|
||||
this.lblFileFormat.Location = new System.Drawing.Point(12, 80);
|
||||
this.lblFileFormat.Name = "lblFileFormat";
|
||||
this.lblFileFormat.Size = new System.Drawing.Size(61, 13);
|
||||
this.lblFileFormat.Size = new System.Drawing.Size(67, 13);
|
||||
this.lblFileFormat.TabIndex = 3;
|
||||
this.lblFileFormat.Text = "File &Format:";
|
||||
//
|
||||
@@ -196,7 +196,7 @@ namespace mRemoteNG.UI.Forms
|
||||
this.lblFileName.AutoSize = true;
|
||||
this.lblFileName.Location = new System.Drawing.Point(12, 28);
|
||||
this.lblFileName.Name = "lblFileName";
|
||||
this.lblFileName.Size = new System.Drawing.Size(52, 13);
|
||||
this.lblFileName.Size = new System.Drawing.Size(56, 13);
|
||||
this.lblFileName.TabIndex = 0;
|
||||
this.lblFileName.Text = "Filename:";
|
||||
//
|
||||
@@ -230,7 +230,7 @@ namespace mRemoteNG.UI.Forms
|
||||
this.lblSelectedConnection.AutoSize = true;
|
||||
this.lblSelectedConnection.Location = new System.Drawing.Point(48, 111);
|
||||
this.lblSelectedConnection.Name = "lblSelectedConnection";
|
||||
this.lblSelectedConnection.Size = new System.Drawing.Size(92, 13);
|
||||
this.lblSelectedConnection.Size = new System.Drawing.Size(99, 13);
|
||||
this.lblSelectedConnection.TabIndex = 4;
|
||||
this.lblSelectedConnection.Text = "Connection Name";
|
||||
//
|
||||
@@ -239,7 +239,7 @@ namespace mRemoteNG.UI.Forms
|
||||
this.lblSelectedFolder.AutoSize = true;
|
||||
this.lblSelectedFolder.Location = new System.Drawing.Point(48, 75);
|
||||
this.lblSelectedFolder.Name = "lblSelectedFolder";
|
||||
this.lblSelectedFolder.Size = new System.Drawing.Size(67, 13);
|
||||
this.lblSelectedFolder.Size = new System.Drawing.Size(72, 13);
|
||||
this.lblSelectedFolder.TabIndex = 3;
|
||||
this.lblSelectedFolder.Text = "Folder Name";
|
||||
//
|
||||
@@ -249,7 +249,7 @@ namespace mRemoteNG.UI.Forms
|
||||
this.rdoExportSelectedConnection.BackColor = System.Drawing.Color.Transparent;
|
||||
this.rdoExportSelectedConnection.Location = new System.Drawing.Point(15, 91);
|
||||
this.rdoExportSelectedConnection.Name = "rdoExportSelectedConnection";
|
||||
this.rdoExportSelectedConnection.Size = new System.Drawing.Size(215, 17);
|
||||
this.rdoExportSelectedConnection.Size = new System.Drawing.Size(232, 17);
|
||||
this.rdoExportSelectedConnection.TabIndex = 2;
|
||||
this.rdoExportSelectedConnection.TabStop = true;
|
||||
this.rdoExportSelectedConnection.Text = "Export the currently selected connection";
|
||||
@@ -261,7 +261,7 @@ namespace mRemoteNG.UI.Forms
|
||||
this.rdoExportSelectedFolder.BackColor = System.Drawing.Color.Transparent;
|
||||
this.rdoExportSelectedFolder.Location = new System.Drawing.Point(15, 55);
|
||||
this.rdoExportSelectedFolder.Name = "rdoExportSelectedFolder";
|
||||
this.rdoExportSelectedFolder.Size = new System.Drawing.Size(188, 17);
|
||||
this.rdoExportSelectedFolder.Size = new System.Drawing.Size(205, 17);
|
||||
this.rdoExportSelectedFolder.TabIndex = 1;
|
||||
this.rdoExportSelectedFolder.TabStop = true;
|
||||
this.rdoExportSelectedFolder.Text = "Export the currently selected folder";
|
||||
@@ -274,7 +274,7 @@ namespace mRemoteNG.UI.Forms
|
||||
this.rdoExportEverything.Checked = true;
|
||||
this.rdoExportEverything.Location = new System.Drawing.Point(15, 32);
|
||||
this.rdoExportEverything.Name = "rdoExportEverything";
|
||||
this.rdoExportEverything.Size = new System.Drawing.Size(107, 17);
|
||||
this.rdoExportEverything.Size = new System.Drawing.Size(115, 17);
|
||||
this.rdoExportEverything.TabIndex = 0;
|
||||
this.rdoExportEverything.TabStop = true;
|
||||
this.rdoExportEverything.Text = "Export everything";
|
||||
@@ -292,6 +292,7 @@ namespace mRemoteNG.UI.Forms
|
||||
this.Controls.Add(this.grpProperties);
|
||||
this.Controls.Add(this.btnCancel);
|
||||
this.Controls.Add(this.btnOK);
|
||||
this.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
|
||||
this.Icon = global::mRemoteNG.Resources.ConnectionsSaveAs_Icon;
|
||||
this.MaximizeBox = false;
|
||||
|
||||
@@ -16,15 +16,9 @@ namespace mRemoteNG.UI.Forms
|
||||
#region Public Properties
|
||||
public string FileName
|
||||
{
|
||||
get
|
||||
{
|
||||
return txtFileName.Text;
|
||||
}
|
||||
set
|
||||
{
|
||||
txtFileName.Text = value;
|
||||
}
|
||||
}
|
||||
get => txtFileName.Text;
|
||||
set => txtFileName.Text = value;
|
||||
}
|
||||
|
||||
public SaveFormat SaveFormat
|
||||
{
|
||||
@@ -75,11 +69,8 @@ namespace mRemoteNG.UI.Forms
|
||||
private ContainerInfo _selectedFolder;
|
||||
public ContainerInfo SelectedFolder
|
||||
{
|
||||
get
|
||||
{
|
||||
return _selectedFolder;
|
||||
}
|
||||
set
|
||||
get => _selectedFolder;
|
||||
set
|
||||
{
|
||||
_selectedFolder = value;
|
||||
lblSelectedFolder.Text = value?.Name;
|
||||
@@ -90,11 +81,8 @@ namespace mRemoteNG.UI.Forms
|
||||
private ConnectionInfo _selectedConnection;
|
||||
public ConnectionInfo SelectedConnection
|
||||
{
|
||||
get
|
||||
{
|
||||
return _selectedConnection;
|
||||
}
|
||||
set
|
||||
get => _selectedConnection;
|
||||
set
|
||||
{
|
||||
_selectedConnection = value;
|
||||
lblSelectedConnection.Text = value?.Name;
|
||||
@@ -104,57 +92,33 @@ namespace mRemoteNG.UI.Forms
|
||||
|
||||
public bool IncludeUsername
|
||||
{
|
||||
get
|
||||
{
|
||||
return chkUsername.Checked;
|
||||
}
|
||||
set
|
||||
{
|
||||
chkUsername.Checked = value;
|
||||
}
|
||||
}
|
||||
get => chkUsername.Checked;
|
||||
set => chkUsername.Checked = value;
|
||||
}
|
||||
|
||||
public bool IncludePassword
|
||||
{
|
||||
get
|
||||
{
|
||||
return chkPassword.Checked;
|
||||
}
|
||||
set
|
||||
{
|
||||
chkPassword.Checked = value;
|
||||
}
|
||||
}
|
||||
get => chkPassword.Checked;
|
||||
set => chkPassword.Checked = value;
|
||||
}
|
||||
|
||||
public bool IncludeDomain
|
||||
{
|
||||
get
|
||||
{
|
||||
return chkDomain.Checked;
|
||||
}
|
||||
set
|
||||
{
|
||||
chkDomain.Checked = value;
|
||||
}
|
||||
}
|
||||
get => chkDomain.Checked;
|
||||
set => chkDomain.Checked = value;
|
||||
}
|
||||
|
||||
public bool IncludeAssignedCredential
|
||||
{
|
||||
get { return chkAssignedCredential.Checked; }
|
||||
set { chkAssignedCredential.Checked = value; }
|
||||
get => chkAssignedCredential.Checked;
|
||||
set => chkAssignedCredential.Checked = value;
|
||||
}
|
||||
|
||||
public bool IncludeInheritance
|
||||
{
|
||||
get
|
||||
{
|
||||
return chkInheritance.Checked;
|
||||
}
|
||||
set
|
||||
{
|
||||
chkInheritance.Checked = value;
|
||||
}
|
||||
}
|
||||
get => chkInheritance.Checked;
|
||||
set => chkInheritance.Checked = value;
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Constructors
|
||||
@@ -247,11 +211,9 @@ namespace mRemoteNG.UI.Forms
|
||||
private void ApplyTheme()
|
||||
{
|
||||
_themeManager = ThemeManager.getInstance();
|
||||
if(_themeManager.ThemingActive)
|
||||
{
|
||||
BackColor = _themeManager.ActiveTheme.ExtendedPalette.getColor("Dialog_Background");
|
||||
ForeColor = _themeManager.ActiveTheme.ExtendedPalette.getColor("Dialog_Foreground");
|
||||
}
|
||||
if (!_themeManager.ThemingActive) return;
|
||||
BackColor = _themeManager.ActiveTheme.ExtendedPalette.getColor("Dialog_Background");
|
||||
ForeColor = _themeManager.ActiveTheme.ExtendedPalette.getColor("Dialog_Foreground");
|
||||
}
|
||||
|
||||
|
||||
|
||||
1
mRemoteV1/UI/Forms/FrmSplashScreen.Designer.cs
generated
1
mRemoteV1/UI/Forms/FrmSplashScreen.Designer.cs
generated
@@ -39,6 +39,7 @@
|
||||
this.ClientSize = new System.Drawing.Size(450, 120);
|
||||
this.ControlBox = false;
|
||||
this.DoubleBuffered = true;
|
||||
this.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
|
||||
this.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.MaximizeBox = false;
|
||||
|
||||
@@ -13,10 +13,7 @@ namespace mRemoteNG.UI.Forms
|
||||
|
||||
public bool Value
|
||||
{
|
||||
get
|
||||
{
|
||||
return _value;
|
||||
}
|
||||
get => _value;
|
||||
set
|
||||
{
|
||||
if (_value == value) return;
|
||||
|
||||
3
mRemoteV1/UI/Forms/Input/FrmInputBox.Designer.cs
generated
3
mRemoteV1/UI/Forms/Input/FrmInputBox.Designer.cs
generated
@@ -87,7 +87,7 @@
|
||||
this.textBox.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.textBox.Location = new System.Drawing.Point(3, 27);
|
||||
this.textBox.Name = "textBox";
|
||||
this.textBox.Size = new System.Drawing.Size(278, 20);
|
||||
this.textBox.Size = new System.Drawing.Size(278, 22);
|
||||
this.textBox.TabIndex = 2;
|
||||
//
|
||||
// label
|
||||
@@ -110,6 +110,7 @@
|
||||
this.ControlBox = false;
|
||||
this.Controls.Add(this.tableLayoutPanel1);
|
||||
this.DoubleBuffered = true;
|
||||
this.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
|
||||
this.MaximizeBox = false;
|
||||
this.MinimizeBox = false;
|
||||
|
||||
@@ -53,7 +53,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
this.chkAutomaticallyGetSessionInfo.AutoSize = true;
|
||||
this.chkAutomaticallyGetSessionInfo.Location = new System.Drawing.Point(3, 3);
|
||||
this.chkAutomaticallyGetSessionInfo.Name = "chkAutomaticallyGetSessionInfo";
|
||||
this.chkAutomaticallyGetSessionInfo.Size = new System.Drawing.Size(198, 17);
|
||||
this.chkAutomaticallyGetSessionInfo.Size = new System.Drawing.Size(220, 17);
|
||||
this.chkAutomaticallyGetSessionInfo.TabIndex = 0;
|
||||
this.chkAutomaticallyGetSessionInfo.Text = "Automatically get session information";
|
||||
this.chkAutomaticallyGetSessionInfo.UseVisualStyleBackColor = true;
|
||||
@@ -73,7 +73,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
this.chkAutomaticReconnect.AutoSize = true;
|
||||
this.chkAutomaticReconnect.Location = new System.Drawing.Point(3, 26);
|
||||
this.chkAutomaticReconnect.Name = "chkAutomaticReconnect";
|
||||
this.chkAutomaticReconnect.Size = new System.Drawing.Size(399, 17);
|
||||
this.chkAutomaticReconnect.Size = new System.Drawing.Size(430, 17);
|
||||
this.chkAutomaticReconnect.TabIndex = 1;
|
||||
this.chkAutomaticReconnect.Text = "Automatically try to reconnect when disconnected from server (RDP && ICA only)";
|
||||
this.chkAutomaticReconnect.UseVisualStyleBackColor = true;
|
||||
@@ -88,7 +88,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
0,
|
||||
0});
|
||||
this.numPuttyWaitTime.Name = "numPuttyWaitTime";
|
||||
this.numPuttyWaitTime.Size = new System.Drawing.Size(49, 20);
|
||||
this.numPuttyWaitTime.Size = new System.Drawing.Size(49, 22);
|
||||
this.numPuttyWaitTime.TabIndex = 7;
|
||||
this.numPuttyWaitTime.Value = new decimal(new int[] {
|
||||
5,
|
||||
@@ -127,7 +127,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
0,
|
||||
0});
|
||||
this.numUVNCSCPort.Name = "numUVNCSCPort";
|
||||
this.numUVNCSCPort.Size = new System.Drawing.Size(72, 20);
|
||||
this.numUVNCSCPort.Size = new System.Drawing.Size(72, 22);
|
||||
this.numUVNCSCPort.TabIndex = 8;
|
||||
this.numUVNCSCPort.Value = new decimal(new int[] {
|
||||
5500,
|
||||
@@ -142,7 +142,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
this.txtCustomPuttyPath.Enabled = false;
|
||||
this.txtCustomPuttyPath.Location = new System.Drawing.Point(21, 95);
|
||||
this.txtCustomPuttyPath.Name = "txtCustomPuttyPath";
|
||||
this.txtCustomPuttyPath.Size = new System.Drawing.Size(346, 20);
|
||||
this.txtCustomPuttyPath.Size = new System.Drawing.Size(346, 22);
|
||||
this.txtCustomPuttyPath.TabIndex = 4;
|
||||
this.txtCustomPuttyPath.TextChanged += new System.EventHandler(this.txtCustomPuttyPath_TextChanged);
|
||||
//
|
||||
@@ -175,7 +175,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
this.lblSeconds.AutoSize = true;
|
||||
this.lblSeconds.Location = new System.Drawing.Point(428, 175);
|
||||
this.lblSeconds.Name = "lblSeconds";
|
||||
this.lblSeconds.Size = new System.Drawing.Size(47, 13);
|
||||
this.lblSeconds.Size = new System.Drawing.Size(49, 13);
|
||||
this.lblSeconds.TabIndex = 9;
|
||||
this.lblSeconds.Text = "seconds";
|
||||
//
|
||||
@@ -197,7 +197,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
this.chkLoadBalanceInfoUseUtf8.AutoSize = true;
|
||||
this.chkLoadBalanceInfoUseUtf8.Location = new System.Drawing.Point(3, 49);
|
||||
this.chkLoadBalanceInfoUseUtf8.Name = "chkLoadBalanceInfoUseUtf8";
|
||||
this.chkLoadBalanceInfoUseUtf8.Size = new System.Drawing.Size(304, 17);
|
||||
this.chkLoadBalanceInfoUseUtf8.Size = new System.Drawing.Size(317, 17);
|
||||
this.chkLoadBalanceInfoUseUtf8.TabIndex = 2;
|
||||
this.chkLoadBalanceInfoUseUtf8.Text = "Use UTF8 encoding for RDP \"Load Balance Info\" property";
|
||||
this.chkLoadBalanceInfoUseUtf8.UseVisualStyleBackColor = true;
|
||||
@@ -219,6 +219,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
this.Controls.Add(this.lblUVNCSCPort);
|
||||
this.Controls.Add(this.lblSeconds);
|
||||
this.Controls.Add(this.btnBrowseCustomPuttyPath);
|
||||
this.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.Name = "AdvancedPage";
|
||||
this.Size = new System.Drawing.Size(610, 490);
|
||||
((System.ComponentModel.ISupportInitialize)(this.numPuttyWaitTime)).EndInit();
|
||||
|
||||
120
mRemoteV1/UI/Forms/OptionsPages/AdvancedPage.resx
Normal file
120
mRemoteV1/UI/Forms/OptionsPages/AdvancedPage.resx
Normal file
@@ -0,0 +1,120 @@
|
||||
<?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>
|
||||
</root>
|
||||
@@ -44,7 +44,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
this.lblLanguageRestartRequired.AutoSize = true;
|
||||
this.lblLanguageRestartRequired.Location = new System.Drawing.Point(3, 56);
|
||||
this.lblLanguageRestartRequired.Name = "lblLanguageRestartRequired";
|
||||
this.lblLanguageRestartRequired.Size = new System.Drawing.Size(380, 13);
|
||||
this.lblLanguageRestartRequired.Size = new System.Drawing.Size(414, 13);
|
||||
this.lblLanguageRestartRequired.TabIndex = 2;
|
||||
this.lblLanguageRestartRequired.Text = "mRemoteNG must be restarted before changes to the language will take effect.";
|
||||
//
|
||||
@@ -64,7 +64,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
this.lblLanguage.AutoSize = true;
|
||||
this.lblLanguage.Location = new System.Drawing.Point(3, 3);
|
||||
this.lblLanguage.Name = "lblLanguage";
|
||||
this.lblLanguage.Size = new System.Drawing.Size(55, 13);
|
||||
this.lblLanguage.Size = new System.Drawing.Size(58, 13);
|
||||
this.lblLanguage.TabIndex = 0;
|
||||
this.lblLanguage.Text = "Language";
|
||||
//
|
||||
@@ -74,7 +74,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
this.chkShowFullConnectionsFilePathInTitle.AutoSize = true;
|
||||
this.chkShowFullConnectionsFilePathInTitle.Location = new System.Drawing.Point(3, 127);
|
||||
this.chkShowFullConnectionsFilePathInTitle.Name = "chkShowFullConnectionsFilePathInTitle";
|
||||
this.chkShowFullConnectionsFilePathInTitle.Size = new System.Drawing.Size(239, 17);
|
||||
this.chkShowFullConnectionsFilePathInTitle.Size = new System.Drawing.Size(268, 17);
|
||||
this.chkShowFullConnectionsFilePathInTitle.TabIndex = 4;
|
||||
this.chkShowFullConnectionsFilePathInTitle.Text = "Show full connections file path in window title";
|
||||
this.chkShowFullConnectionsFilePathInTitle.UseVisualStyleBackColor = true;
|
||||
@@ -85,7 +85,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
this.chkShowDescriptionTooltipsInTree.AutoSize = true;
|
||||
this.chkShowDescriptionTooltipsInTree.Location = new System.Drawing.Point(3, 104);
|
||||
this.chkShowDescriptionTooltipsInTree.Name = "chkShowDescriptionTooltipsInTree";
|
||||
this.chkShowDescriptionTooltipsInTree.Size = new System.Drawing.Size(231, 17);
|
||||
this.chkShowDescriptionTooltipsInTree.Size = new System.Drawing.Size(256, 17);
|
||||
this.chkShowDescriptionTooltipsInTree.TabIndex = 3;
|
||||
this.chkShowDescriptionTooltipsInTree.Text = "Show description tooltips in connection tree";
|
||||
this.chkShowDescriptionTooltipsInTree.UseVisualStyleBackColor = true;
|
||||
@@ -96,7 +96,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
this.chkShowSystemTrayIcon.AutoSize = true;
|
||||
this.chkShowSystemTrayIcon.Location = new System.Drawing.Point(3, 173);
|
||||
this.chkShowSystemTrayIcon.Name = "chkShowSystemTrayIcon";
|
||||
this.chkShowSystemTrayIcon.Size = new System.Drawing.Size(172, 17);
|
||||
this.chkShowSystemTrayIcon.Size = new System.Drawing.Size(177, 17);
|
||||
this.chkShowSystemTrayIcon.TabIndex = 5;
|
||||
this.chkShowSystemTrayIcon.Text = "Always show System Tray Icon";
|
||||
this.chkShowSystemTrayIcon.UseVisualStyleBackColor = true;
|
||||
@@ -107,7 +107,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
this.chkMinimizeToSystemTray.AutoSize = true;
|
||||
this.chkMinimizeToSystemTray.Location = new System.Drawing.Point(3, 196);
|
||||
this.chkMinimizeToSystemTray.Name = "chkMinimizeToSystemTray";
|
||||
this.chkMinimizeToSystemTray.Size = new System.Drawing.Size(139, 17);
|
||||
this.chkMinimizeToSystemTray.Size = new System.Drawing.Size(146, 17);
|
||||
this.chkMinimizeToSystemTray.TabIndex = 6;
|
||||
this.chkMinimizeToSystemTray.Text = "Minimize to System Tray";
|
||||
this.chkMinimizeToSystemTray.UseVisualStyleBackColor = true;
|
||||
@@ -123,6 +123,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
this.Controls.Add(this.chkShowDescriptionTooltipsInTree);
|
||||
this.Controls.Add(this.chkShowSystemTrayIcon);
|
||||
this.Controls.Add(this.chkMinimizeToSystemTray);
|
||||
this.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.Name = "AppearancePage";
|
||||
this.Size = new System.Drawing.Size(610, 490);
|
||||
this.ResumeLayout(false);
|
||||
|
||||
120
mRemoteV1/UI/Forms/OptionsPages/AppearancePage.resx
Normal file
120
mRemoteV1/UI/Forms/OptionsPages/AppearancePage.resx
Normal file
@@ -0,0 +1,120 @@
|
||||
<?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>
|
||||
</root>
|
||||
@@ -71,7 +71,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
0,
|
||||
0});
|
||||
this.numRDPConTimeout.Name = "numRDPConTimeout";
|
||||
this.numRDPConTimeout.Size = new System.Drawing.Size(53, 20);
|
||||
this.numRDPConTimeout.Size = new System.Drawing.Size(53, 22);
|
||||
this.numRDPConTimeout.TabIndex = 1;
|
||||
this.numRDPConTimeout.Value = new decimal(new int[] {
|
||||
20,
|
||||
@@ -109,7 +109,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
0,
|
||||
0});
|
||||
this.numRdpReconnectionCount.Name = "numRdpReconnectionCount";
|
||||
this.numRdpReconnectionCount.Size = new System.Drawing.Size(53, 20);
|
||||
this.numRdpReconnectionCount.Size = new System.Drawing.Size(53, 22);
|
||||
this.numRdpReconnectionCount.TabIndex = 1;
|
||||
this.numRdpReconnectionCount.Value = new decimal(new int[] {
|
||||
5,
|
||||
@@ -123,7 +123,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
this.chkSingleClickOnConnectionOpensIt.AutoSize = true;
|
||||
this.chkSingleClickOnConnectionOpensIt.Location = new System.Drawing.Point(3, 3);
|
||||
this.chkSingleClickOnConnectionOpensIt.Name = "chkSingleClickOnConnectionOpensIt";
|
||||
this.chkSingleClickOnConnectionOpensIt.Size = new System.Drawing.Size(191, 17);
|
||||
this.chkSingleClickOnConnectionOpensIt.Size = new System.Drawing.Size(206, 17);
|
||||
this.chkSingleClickOnConnectionOpensIt.TabIndex = 0;
|
||||
this.chkSingleClickOnConnectionOpensIt.Text = "Single click on connection opens it";
|
||||
this.chkSingleClickOnConnectionOpensIt.UseVisualStyleBackColor = true;
|
||||
@@ -134,7 +134,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
this.chkHostnameLikeDisplayName.AutoSize = true;
|
||||
this.chkHostnameLikeDisplayName.Location = new System.Drawing.Point(3, 49);
|
||||
this.chkHostnameLikeDisplayName.Name = "chkHostnameLikeDisplayName";
|
||||
this.chkHostnameLikeDisplayName.Size = new System.Drawing.Size(328, 17);
|
||||
this.chkHostnameLikeDisplayName.Size = new System.Drawing.Size(355, 17);
|
||||
this.chkHostnameLikeDisplayName.TabIndex = 2;
|
||||
this.chkHostnameLikeDisplayName.Text = "Set hostname like display name when creating new connections";
|
||||
this.chkHostnameLikeDisplayName.UseVisualStyleBackColor = true;
|
||||
@@ -145,7 +145,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
this.chkSingleClickOnOpenedConnectionSwitchesToIt.AutoSize = true;
|
||||
this.chkSingleClickOnOpenedConnectionSwitchesToIt.Location = new System.Drawing.Point(3, 26);
|
||||
this.chkSingleClickOnOpenedConnectionSwitchesToIt.Name = "chkSingleClickOnOpenedConnectionSwitchesToIt";
|
||||
this.chkSingleClickOnOpenedConnectionSwitchesToIt.Size = new System.Drawing.Size(457, 17);
|
||||
this.chkSingleClickOnOpenedConnectionSwitchesToIt.Size = new System.Drawing.Size(490, 17);
|
||||
this.chkSingleClickOnOpenedConnectionSwitchesToIt.TabIndex = 1;
|
||||
this.chkSingleClickOnOpenedConnectionSwitchesToIt.Text = global::mRemoteNG.Language.strSingleClickOnOpenConnectionSwitchesToIt;
|
||||
this.chkSingleClickOnOpenedConnectionSwitchesToIt.UseVisualStyleBackColor = true;
|
||||
@@ -170,7 +170,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
0,
|
||||
0});
|
||||
this.numAutoSave.Name = "numAutoSave";
|
||||
this.numAutoSave.Size = new System.Drawing.Size(53, 20);
|
||||
this.numAutoSave.Size = new System.Drawing.Size(53, 22);
|
||||
this.numAutoSave.TabIndex = 1;
|
||||
//
|
||||
// pnlConfirmCloseConnection
|
||||
@@ -190,7 +190,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
this.lblClosingConnections.AutoSize = true;
|
||||
this.lblClosingConnections.Location = new System.Drawing.Point(3, 12);
|
||||
this.lblClosingConnections.Name = "lblClosingConnections";
|
||||
this.lblClosingConnections.Size = new System.Drawing.Size(136, 13);
|
||||
this.lblClosingConnections.Size = new System.Drawing.Size(147, 13);
|
||||
this.lblClosingConnections.TabIndex = 0;
|
||||
this.lblClosingConnections.Text = "When closing connections:";
|
||||
//
|
||||
@@ -199,7 +199,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
this.radCloseWarnAll.AutoSize = true;
|
||||
this.radCloseWarnAll.Location = new System.Drawing.Point(16, 34);
|
||||
this.radCloseWarnAll.Name = "radCloseWarnAll";
|
||||
this.radCloseWarnAll.Size = new System.Drawing.Size(194, 17);
|
||||
this.radCloseWarnAll.Size = new System.Drawing.Size(209, 17);
|
||||
this.radCloseWarnAll.TabIndex = 1;
|
||||
this.radCloseWarnAll.TabStop = true;
|
||||
this.radCloseWarnAll.Text = "Warn me when closing connections";
|
||||
@@ -210,7 +210,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
this.radCloseWarnMultiple.AutoSize = true;
|
||||
this.radCloseWarnMultiple.Location = new System.Drawing.Point(16, 57);
|
||||
this.radCloseWarnMultiple.Name = "radCloseWarnMultiple";
|
||||
this.radCloseWarnMultiple.Size = new System.Drawing.Size(254, 17);
|
||||
this.radCloseWarnMultiple.Size = new System.Drawing.Size(279, 17);
|
||||
this.radCloseWarnMultiple.TabIndex = 2;
|
||||
this.radCloseWarnMultiple.TabStop = true;
|
||||
this.radCloseWarnMultiple.Text = "Warn me only when closing multiple connections";
|
||||
@@ -221,7 +221,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
this.radCloseWarnExit.AutoSize = true;
|
||||
this.radCloseWarnExit.Location = new System.Drawing.Point(16, 80);
|
||||
this.radCloseWarnExit.Name = "radCloseWarnExit";
|
||||
this.radCloseWarnExit.Size = new System.Drawing.Size(216, 17);
|
||||
this.radCloseWarnExit.Size = new System.Drawing.Size(233, 17);
|
||||
this.radCloseWarnExit.TabIndex = 3;
|
||||
this.radCloseWarnExit.TabStop = true;
|
||||
this.radCloseWarnExit.Text = "Warn me only when exiting mRemoteNG";
|
||||
@@ -232,7 +232,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
this.radCloseWarnNever.AutoSize = true;
|
||||
this.radCloseWarnNever.Location = new System.Drawing.Point(16, 103);
|
||||
this.radCloseWarnNever.Name = "radCloseWarnNever";
|
||||
this.radCloseWarnNever.Size = new System.Drawing.Size(226, 17);
|
||||
this.radCloseWarnNever.Size = new System.Drawing.Size(246, 17);
|
||||
this.radCloseWarnNever.TabIndex = 4;
|
||||
this.radCloseWarnNever.TabStop = true;
|
||||
this.radCloseWarnNever.Text = "Do not warn me when closing connections";
|
||||
@@ -244,7 +244,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
this.chkSaveConnectionsAfterEveryEdit.AutoSize = true;
|
||||
this.chkSaveConnectionsAfterEveryEdit.Location = new System.Drawing.Point(3, 72);
|
||||
this.chkSaveConnectionsAfterEveryEdit.Name = "chkSaveConnectionsAfterEveryEdit";
|
||||
this.chkSaveConnectionsAfterEveryEdit.Size = new System.Drawing.Size(185, 17);
|
||||
this.chkSaveConnectionsAfterEveryEdit.Size = new System.Drawing.Size(194, 17);
|
||||
this.chkSaveConnectionsAfterEveryEdit.TabIndex = 7;
|
||||
this.chkSaveConnectionsAfterEveryEdit.Text = "Save connections after every edit";
|
||||
this.chkSaveConnectionsAfterEveryEdit.UseVisualStyleBackColor = true;
|
||||
@@ -255,7 +255,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
this.chkUseFilterSearch.AutoSize = true;
|
||||
this.chkUseFilterSearch.Location = new System.Drawing.Point(3, 95);
|
||||
this.chkUseFilterSearch.Name = "chkUseFilterSearch";
|
||||
this.chkUseFilterSearch.Size = new System.Drawing.Size(214, 17);
|
||||
this.chkUseFilterSearch.Size = new System.Drawing.Size(230, 17);
|
||||
this.chkUseFilterSearch.TabIndex = 8;
|
||||
this.chkUseFilterSearch.Text = "Filter search matches in connection tree";
|
||||
this.chkUseFilterSearch.UseVisualStyleBackColor = true;
|
||||
@@ -286,7 +286,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
this.chkPlaceSearchBarAboveConnectionTree.AutoSize = true;
|
||||
this.chkPlaceSearchBarAboveConnectionTree.Location = new System.Drawing.Point(3, 118);
|
||||
this.chkPlaceSearchBarAboveConnectionTree.Name = "chkPlaceSearchBarAboveConnectionTree";
|
||||
this.chkPlaceSearchBarAboveConnectionTree.Size = new System.Drawing.Size(216, 17);
|
||||
this.chkPlaceSearchBarAboveConnectionTree.Size = new System.Drawing.Size(226, 17);
|
||||
this.chkPlaceSearchBarAboveConnectionTree.TabIndex = 8;
|
||||
this.chkPlaceSearchBarAboveConnectionTree.Text = "Place search bar above connection tree";
|
||||
this.chkPlaceSearchBarAboveConnectionTree.UseVisualStyleBackColor = true;
|
||||
@@ -303,6 +303,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
this.Controls.Add(this.chkHostnameLikeDisplayName);
|
||||
this.Controls.Add(this.chkSingleClickOnOpenedConnectionSwitchesToIt);
|
||||
this.Controls.Add(this.pnlConfirmCloseConnection);
|
||||
this.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.Name = "ConnectionsPage";
|
||||
this.Size = new System.Drawing.Size(610, 490);
|
||||
((System.ComponentModel.ISupportInitialize)(this.numRDPConTimeout)).EndInit();
|
||||
|
||||
120
mRemoteV1/UI/Forms/OptionsPages/ConnectionsPage.resx
Normal file
120
mRemoteV1/UI/Forms/OptionsPages/ConnectionsPage.resx
Normal file
@@ -0,0 +1,120 @@
|
||||
<?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>
|
||||
</root>
|
||||
@@ -65,7 +65,7 @@
|
||||
this.radCredentialsCustom.AutoSize = true;
|
||||
this.radCredentialsCustom.Location = new System.Drawing.Point(3, 62);
|
||||
this.radCredentialsCustom.Name = "radCredentialsCustom";
|
||||
this.radCredentialsCustom.Size = new System.Drawing.Size(87, 17);
|
||||
this.radCredentialsCustom.Size = new System.Drawing.Size(98, 17);
|
||||
this.radCredentialsCustom.TabIndex = 3;
|
||||
this.radCredentialsCustom.Text = "the following:";
|
||||
this.radCredentialsCustom.UseVisualStyleBackColor = true;
|
||||
@@ -76,7 +76,7 @@
|
||||
this.lblDefaultCredentials.AutoSize = true;
|
||||
this.lblDefaultCredentials.Location = new System.Drawing.Point(0, 0);
|
||||
this.lblDefaultCredentials.Name = "lblDefaultCredentials";
|
||||
this.lblDefaultCredentials.Size = new System.Drawing.Size(257, 13);
|
||||
this.lblDefaultCredentials.Size = new System.Drawing.Size(279, 13);
|
||||
this.lblDefaultCredentials.TabIndex = 0;
|
||||
this.lblDefaultCredentials.Text = "For empty Username, Password or Domain fields use:";
|
||||
//
|
||||
@@ -86,7 +86,7 @@
|
||||
this.radCredentialsNoInfo.Checked = true;
|
||||
this.radCredentialsNoInfo.Location = new System.Drawing.Point(3, 16);
|
||||
this.radCredentialsNoInfo.Name = "radCredentialsNoInfo";
|
||||
this.radCredentialsNoInfo.Size = new System.Drawing.Size(91, 17);
|
||||
this.radCredentialsNoInfo.Size = new System.Drawing.Size(103, 17);
|
||||
this.radCredentialsNoInfo.TabIndex = 1;
|
||||
this.radCredentialsNoInfo.TabStop = true;
|
||||
this.radCredentialsNoInfo.Text = "no information";
|
||||
@@ -97,7 +97,7 @@
|
||||
this.radCredentialsWindows.AutoSize = true;
|
||||
this.radCredentialsWindows.Location = new System.Drawing.Point(3, 39);
|
||||
this.radCredentialsWindows.Name = "radCredentialsWindows";
|
||||
this.radCredentialsWindows.Size = new System.Drawing.Size(227, 17);
|
||||
this.radCredentialsWindows.Size = new System.Drawing.Size(252, 17);
|
||||
this.radCredentialsWindows.TabIndex = 2;
|
||||
this.radCredentialsWindows.Text = "my current credentials (windows logon info)";
|
||||
this.radCredentialsWindows.UseVisualStyleBackColor = true;
|
||||
@@ -108,7 +108,7 @@
|
||||
this.txtCredentialsDomain.Enabled = false;
|
||||
this.txtCredentialsDomain.Location = new System.Drawing.Point(126, 138);
|
||||
this.txtCredentialsDomain.Name = "txtCredentialsDomain";
|
||||
this.txtCredentialsDomain.Size = new System.Drawing.Size(150, 20);
|
||||
this.txtCredentialsDomain.Size = new System.Drawing.Size(150, 22);
|
||||
this.txtCredentialsDomain.TabIndex = 9;
|
||||
//
|
||||
// lblCredentialsUsername
|
||||
@@ -127,7 +127,7 @@
|
||||
this.txtCredentialsPassword.Enabled = false;
|
||||
this.txtCredentialsPassword.Location = new System.Drawing.Point(126, 112);
|
||||
this.txtCredentialsPassword.Name = "txtCredentialsPassword";
|
||||
this.txtCredentialsPassword.Size = new System.Drawing.Size(150, 20);
|
||||
this.txtCredentialsPassword.Size = new System.Drawing.Size(150, 22);
|
||||
this.txtCredentialsPassword.TabIndex = 7;
|
||||
this.txtCredentialsPassword.UseSystemPasswordChar = true;
|
||||
//
|
||||
@@ -147,7 +147,7 @@
|
||||
this.txtCredentialsUsername.Enabled = false;
|
||||
this.txtCredentialsUsername.Location = new System.Drawing.Point(126, 86);
|
||||
this.txtCredentialsUsername.Name = "txtCredentialsUsername";
|
||||
this.txtCredentialsUsername.Size = new System.Drawing.Size(150, 20);
|
||||
this.txtCredentialsUsername.Size = new System.Drawing.Size(150, 22);
|
||||
this.txtCredentialsUsername.TabIndex = 5;
|
||||
//
|
||||
// lblCredentialsDomain
|
||||
@@ -177,6 +177,7 @@
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.Controls.Add(this.checkBoxUnlockOnStartup);
|
||||
this.Controls.Add(this.pnlDefaultCredentials);
|
||||
this.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.Name = "CredentialsPage";
|
||||
this.Size = new System.Drawing.Size(610, 490);
|
||||
this.pnlDefaultCredentials.ResumeLayout(false);
|
||||
|
||||
@@ -73,7 +73,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
this.labelSwitchToErrorsAndInfos.AutoSize = true;
|
||||
this.labelSwitchToErrorsAndInfos.Location = new System.Drawing.Point(177, 25);
|
||||
this.labelSwitchToErrorsAndInfos.Name = "labelSwitchToErrorsAndInfos";
|
||||
this.labelSwitchToErrorsAndInfos.Size = new System.Drawing.Size(159, 13);
|
||||
this.labelSwitchToErrorsAndInfos.Size = new System.Drawing.Size(176, 13);
|
||||
this.labelSwitchToErrorsAndInfos.TabIndex = 5;
|
||||
this.labelSwitchToErrorsAndInfos.Text = "Switch to Notifications panel on:";
|
||||
//
|
||||
@@ -83,7 +83,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
this.chkSwitchToMCInformation.AutoSize = true;
|
||||
this.chkSwitchToMCInformation.Location = new System.Drawing.Point(195, 67);
|
||||
this.chkSwitchToMCInformation.Name = "chkSwitchToMCInformation";
|
||||
this.chkSwitchToMCInformation.Size = new System.Drawing.Size(78, 17);
|
||||
this.chkSwitchToMCInformation.Size = new System.Drawing.Size(87, 17);
|
||||
this.chkSwitchToMCInformation.TabIndex = 6;
|
||||
this.chkSwitchToMCInformation.Text = "Information";
|
||||
this.chkSwitchToMCInformation.UseVisualStyleBackColor = true;
|
||||
@@ -94,7 +94,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
this.chkSwitchToMCErrors.AutoSize = true;
|
||||
this.chkSwitchToMCErrors.Location = new System.Drawing.Point(195, 113);
|
||||
this.chkSwitchToMCErrors.Name = "chkSwitchToMCErrors";
|
||||
this.chkSwitchToMCErrors.Size = new System.Drawing.Size(48, 17);
|
||||
this.chkSwitchToMCErrors.Size = new System.Drawing.Size(51, 17);
|
||||
this.chkSwitchToMCErrors.TabIndex = 8;
|
||||
this.chkSwitchToMCErrors.Text = "Error";
|
||||
this.chkSwitchToMCErrors.UseVisualStyleBackColor = true;
|
||||
@@ -105,7 +105,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
this.chkSwitchToMCWarnings.AutoSize = true;
|
||||
this.chkSwitchToMCWarnings.Location = new System.Drawing.Point(195, 90);
|
||||
this.chkSwitchToMCWarnings.Name = "chkSwitchToMCWarnings";
|
||||
this.chkSwitchToMCWarnings.Size = new System.Drawing.Size(66, 17);
|
||||
this.chkSwitchToMCWarnings.Size = new System.Drawing.Size(71, 17);
|
||||
this.chkSwitchToMCWarnings.TabIndex = 7;
|
||||
this.chkSwitchToMCWarnings.Text = "Warning";
|
||||
this.chkSwitchToMCWarnings.UseVisualStyleBackColor = true;
|
||||
@@ -133,7 +133,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
this.labelNotificationsShowTypes.AutoSize = true;
|
||||
this.labelNotificationsShowTypes.Location = new System.Drawing.Point(6, 25);
|
||||
this.labelNotificationsShowTypes.Name = "labelNotificationsShowTypes";
|
||||
this.labelNotificationsShowTypes.Size = new System.Drawing.Size(139, 13);
|
||||
this.labelNotificationsShowTypes.Size = new System.Drawing.Size(147, 13);
|
||||
this.labelNotificationsShowTypes.TabIndex = 0;
|
||||
this.labelNotificationsShowTypes.Text = "Show these message types:";
|
||||
//
|
||||
@@ -143,7 +143,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
this.chkShowErrorInMC.AutoSize = true;
|
||||
this.chkShowErrorInMC.Location = new System.Drawing.Point(20, 113);
|
||||
this.chkShowErrorInMC.Name = "chkShowErrorInMC";
|
||||
this.chkShowErrorInMC.Size = new System.Drawing.Size(48, 17);
|
||||
this.chkShowErrorInMC.Size = new System.Drawing.Size(51, 17);
|
||||
this.chkShowErrorInMC.TabIndex = 4;
|
||||
this.chkShowErrorInMC.Text = "Error";
|
||||
this.chkShowErrorInMC.UseVisualStyleBackColor = true;
|
||||
@@ -154,7 +154,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
this.chkShowWarningInMC.AutoSize = true;
|
||||
this.chkShowWarningInMC.Location = new System.Drawing.Point(20, 90);
|
||||
this.chkShowWarningInMC.Name = "chkShowWarningInMC";
|
||||
this.chkShowWarningInMC.Size = new System.Drawing.Size(66, 17);
|
||||
this.chkShowWarningInMC.Size = new System.Drawing.Size(71, 17);
|
||||
this.chkShowWarningInMC.TabIndex = 3;
|
||||
this.chkShowWarningInMC.Text = "Warning";
|
||||
this.chkShowWarningInMC.UseVisualStyleBackColor = true;
|
||||
@@ -165,7 +165,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
this.chkShowInfoInMC.AutoSize = true;
|
||||
this.chkShowInfoInMC.Location = new System.Drawing.Point(20, 67);
|
||||
this.chkShowInfoInMC.Name = "chkShowInfoInMC";
|
||||
this.chkShowInfoInMC.Size = new System.Drawing.Size(78, 17);
|
||||
this.chkShowInfoInMC.Size = new System.Drawing.Size(87, 17);
|
||||
this.chkShowInfoInMC.TabIndex = 2;
|
||||
this.chkShowInfoInMC.Text = "Information";
|
||||
this.chkShowInfoInMC.UseVisualStyleBackColor = true;
|
||||
@@ -176,7 +176,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
this.chkShowDebugInMC.AutoSize = true;
|
||||
this.chkShowDebugInMC.Location = new System.Drawing.Point(20, 44);
|
||||
this.chkShowDebugInMC.Name = "chkShowDebugInMC";
|
||||
this.chkShowDebugInMC.Size = new System.Drawing.Size(58, 17);
|
||||
this.chkShowDebugInMC.Size = new System.Drawing.Size(61, 17);
|
||||
this.chkShowDebugInMC.TabIndex = 1;
|
||||
this.chkShowDebugInMC.Text = "Debug";
|
||||
this.chkShowDebugInMC.UseVisualStyleBackColor = true;
|
||||
@@ -223,7 +223,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
this.chkLogDebugMsgs.AutoSize = true;
|
||||
this.chkLogDebugMsgs.Location = new System.Drawing.Point(3, 3);
|
||||
this.chkLogDebugMsgs.Name = "chkLogDebugMsgs";
|
||||
this.chkLogDebugMsgs.Size = new System.Drawing.Size(58, 17);
|
||||
this.chkLogDebugMsgs.Size = new System.Drawing.Size(61, 17);
|
||||
this.chkLogDebugMsgs.TabIndex = 0;
|
||||
this.chkLogDebugMsgs.Text = "Debug";
|
||||
this.chkLogDebugMsgs.UseVisualStyleBackColor = true;
|
||||
@@ -234,7 +234,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
this.chkLogInfoMsgs.AutoSize = true;
|
||||
this.chkLogInfoMsgs.Location = new System.Drawing.Point(149, 3);
|
||||
this.chkLogInfoMsgs.Name = "chkLogInfoMsgs";
|
||||
this.chkLogInfoMsgs.Size = new System.Drawing.Size(78, 17);
|
||||
this.chkLogInfoMsgs.Size = new System.Drawing.Size(87, 17);
|
||||
this.chkLogInfoMsgs.TabIndex = 1;
|
||||
this.chkLogInfoMsgs.Text = "Information";
|
||||
this.chkLogInfoMsgs.UseVisualStyleBackColor = true;
|
||||
@@ -245,7 +245,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
this.chkLogWarningMsgs.AutoSize = true;
|
||||
this.chkLogWarningMsgs.Location = new System.Drawing.Point(295, 3);
|
||||
this.chkLogWarningMsgs.Name = "chkLogWarningMsgs";
|
||||
this.chkLogWarningMsgs.Size = new System.Drawing.Size(66, 17);
|
||||
this.chkLogWarningMsgs.Size = new System.Drawing.Size(71, 17);
|
||||
this.chkLogWarningMsgs.TabIndex = 2;
|
||||
this.chkLogWarningMsgs.Text = "Warning";
|
||||
this.chkLogWarningMsgs.UseVisualStyleBackColor = true;
|
||||
@@ -256,7 +256,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
this.chkLogErrorMsgs.AutoSize = true;
|
||||
this.chkLogErrorMsgs.Location = new System.Drawing.Point(441, 3);
|
||||
this.chkLogErrorMsgs.Name = "chkLogErrorMsgs";
|
||||
this.chkLogErrorMsgs.Size = new System.Drawing.Size(48, 17);
|
||||
this.chkLogErrorMsgs.Size = new System.Drawing.Size(51, 17);
|
||||
this.chkLogErrorMsgs.TabIndex = 3;
|
||||
this.chkLogErrorMsgs.Text = "Error";
|
||||
this.chkLogErrorMsgs.UseVisualStyleBackColor = true;
|
||||
@@ -267,7 +267,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
this.chkLogToCurrentDir.AutoSize = true;
|
||||
this.chkLogToCurrentDir.Location = new System.Drawing.Point(9, 18);
|
||||
this.chkLogToCurrentDir.Name = "chkLogToCurrentDir";
|
||||
this.chkLogToCurrentDir.Size = new System.Drawing.Size(153, 17);
|
||||
this.chkLogToCurrentDir.Size = new System.Drawing.Size(168, 17);
|
||||
this.chkLogToCurrentDir.TabIndex = 0;
|
||||
this.chkLogToCurrentDir.Text = "Log to application directory";
|
||||
this.chkLogToCurrentDir.UseVisualStyleBackColor = true;
|
||||
@@ -311,7 +311,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
this.labelLogTheseMsgTypes.AutoSize = true;
|
||||
this.labelLogTheseMsgTypes.Location = new System.Drawing.Point(6, 108);
|
||||
this.labelLogTheseMsgTypes.Name = "labelLogTheseMsgTypes";
|
||||
this.labelLogTheseMsgTypes.Size = new System.Drawing.Size(130, 13);
|
||||
this.labelLogTheseMsgTypes.Size = new System.Drawing.Size(137, 13);
|
||||
this.labelLogTheseMsgTypes.TabIndex = 6;
|
||||
this.labelLogTheseMsgTypes.Text = "Log these message types:";
|
||||
//
|
||||
@@ -320,7 +320,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
this.labelLogFilePath.AutoSize = true;
|
||||
this.labelLogFilePath.Location = new System.Drawing.Point(6, 38);
|
||||
this.labelLogFilePath.Name = "labelLogFilePath";
|
||||
this.labelLogFilePath.Size = new System.Drawing.Size(68, 13);
|
||||
this.labelLogFilePath.Size = new System.Drawing.Size(75, 13);
|
||||
this.labelLogFilePath.TabIndex = 1;
|
||||
this.labelLogFilePath.Text = "Log file path:";
|
||||
//
|
||||
@@ -330,7 +330,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
this.textBoxLogPath.Location = new System.Drawing.Point(9, 57);
|
||||
this.textBoxLogPath.Name = "textBoxLogPath";
|
||||
this.textBoxLogPath.ReadOnly = true;
|
||||
this.textBoxLogPath.Size = new System.Drawing.Size(585, 20);
|
||||
this.textBoxLogPath.Size = new System.Drawing.Size(585, 22);
|
||||
this.textBoxLogPath.TabIndex = 2;
|
||||
//
|
||||
// groupBoxPopups
|
||||
@@ -369,7 +369,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
this.chkPopupDebug.AutoSize = true;
|
||||
this.chkPopupDebug.Location = new System.Drawing.Point(3, 3);
|
||||
this.chkPopupDebug.Name = "chkPopupDebug";
|
||||
this.chkPopupDebug.Size = new System.Drawing.Size(58, 17);
|
||||
this.chkPopupDebug.Size = new System.Drawing.Size(61, 17);
|
||||
this.chkPopupDebug.TabIndex = 0;
|
||||
this.chkPopupDebug.Text = "Debug";
|
||||
this.chkPopupDebug.UseVisualStyleBackColor = true;
|
||||
@@ -380,7 +380,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
this.chkPopupError.AutoSize = true;
|
||||
this.chkPopupError.Location = new System.Drawing.Point(441, 3);
|
||||
this.chkPopupError.Name = "chkPopupError";
|
||||
this.chkPopupError.Size = new System.Drawing.Size(48, 17);
|
||||
this.chkPopupError.Size = new System.Drawing.Size(51, 17);
|
||||
this.chkPopupError.TabIndex = 3;
|
||||
this.chkPopupError.Text = "Error";
|
||||
this.chkPopupError.UseVisualStyleBackColor = true;
|
||||
@@ -391,7 +391,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
this.chkPopupInfo.AutoSize = true;
|
||||
this.chkPopupInfo.Location = new System.Drawing.Point(149, 3);
|
||||
this.chkPopupInfo.Name = "chkPopupInfo";
|
||||
this.chkPopupInfo.Size = new System.Drawing.Size(78, 17);
|
||||
this.chkPopupInfo.Size = new System.Drawing.Size(87, 17);
|
||||
this.chkPopupInfo.TabIndex = 1;
|
||||
this.chkPopupInfo.Text = "Information";
|
||||
this.chkPopupInfo.UseVisualStyleBackColor = true;
|
||||
@@ -402,7 +402,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
this.chkPopupWarning.AutoSize = true;
|
||||
this.chkPopupWarning.Location = new System.Drawing.Point(295, 3);
|
||||
this.chkPopupWarning.Name = "chkPopupWarning";
|
||||
this.chkPopupWarning.Size = new System.Drawing.Size(66, 17);
|
||||
this.chkPopupWarning.Size = new System.Drawing.Size(71, 17);
|
||||
this.chkPopupWarning.TabIndex = 2;
|
||||
this.chkPopupWarning.Text = "Warning";
|
||||
this.chkPopupWarning.UseVisualStyleBackColor = true;
|
||||
@@ -412,7 +412,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
this.labelPopupShowTypes.AutoSize = true;
|
||||
this.labelPopupShowTypes.Location = new System.Drawing.Point(8, 24);
|
||||
this.labelPopupShowTypes.Name = "labelPopupShowTypes";
|
||||
this.labelPopupShowTypes.Size = new System.Drawing.Size(139, 13);
|
||||
this.labelPopupShowTypes.Size = new System.Drawing.Size(147, 13);
|
||||
this.labelPopupShowTypes.TabIndex = 0;
|
||||
this.labelPopupShowTypes.Text = "Show these message types:";
|
||||
//
|
||||
@@ -423,6 +423,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
this.Controls.Add(this.groupBoxPopups);
|
||||
this.Controls.Add(this.groupBoxLogging);
|
||||
this.Controls.Add(this.groupBoxNotifications);
|
||||
this.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.Name = "NotificationsPage";
|
||||
this.Size = new System.Drawing.Size(610, 490);
|
||||
this.groupBoxNotifications.ResumeLayout(false);
|
||||
@@ -443,13 +444,11 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
internal Controls.Base.NGCheckBox chkSwitchToMCInformation;
|
||||
internal Controls.Base.NGCheckBox chkSwitchToMCErrors;
|
||||
internal Controls.Base.NGCheckBox chkSwitchToMCWarnings;
|
||||
private System.Windows.Forms.GroupBox groupBoxNotifications;
|
||||
private Controls.Base.NGLabel labelNotificationsShowTypes;
|
||||
private Controls.Base.NGCheckBox chkShowErrorInMC;
|
||||
private Controls.Base.NGCheckBox chkShowWarningInMC;
|
||||
private Controls.Base.NGCheckBox chkShowInfoInMC;
|
||||
private Controls.Base.NGCheckBox chkShowDebugInMC;
|
||||
private System.Windows.Forms.GroupBox groupBoxLogging;
|
||||
private System.Windows.Forms.SaveFileDialog saveFileDialogLogging;
|
||||
private Controls.Base.NGLabel labelLogFilePath;
|
||||
private Controls.Base.NGTextBox textBoxLogPath;
|
||||
@@ -461,7 +460,6 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
private Controls.Base.NGCheckBox chkLogDebugMsgs;
|
||||
private Controls.Base.NGButton buttonOpenLogFile;
|
||||
private Controls.Base.NGButton buttonRestoreDefaultLogPath;
|
||||
private System.Windows.Forms.GroupBox groupBoxPopups;
|
||||
private Controls.Base.NGCheckBox chkPopupError;
|
||||
private Controls.Base.NGLabel labelPopupShowTypes;
|
||||
private Controls.Base.NGCheckBox chkPopupWarning;
|
||||
@@ -470,5 +468,8 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
private Controls.Base.NGCheckBox chkLogToCurrentDir;
|
||||
private System.Windows.Forms.TableLayoutPanel tblLogging;
|
||||
private System.Windows.Forms.TableLayoutPanel tblPopups;
|
||||
private Controls.Base.NGGroupBox groupBoxNotifications;
|
||||
private Controls.Base.NGGroupBox groupBoxLogging;
|
||||
private Controls.Base.NGGroupBox groupBoxPopups;
|
||||
}
|
||||
}
|
||||
|
||||
123
mRemoteV1/UI/Forms/OptionsPages/NotificationsPage.resx
Normal file
123
mRemoteV1/UI/Forms/OptionsPages/NotificationsPage.resx
Normal file
@@ -0,0 +1,123 @@
|
||||
<?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>
|
||||
<metadata name="saveFileDialogLogging.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
</root>
|
||||
@@ -64,5 +64,17 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
ForeColor = Themes.ThemeManager.getInstance().ActiveTheme.ExtendedPalette.getColor("Dialog_Foreground");
|
||||
Invalidate();
|
||||
}
|
||||
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// OptionsPage
|
||||
//
|
||||
this.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.Name = "OptionsPage";
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
120
mRemoteV1/UI/Forms/OptionsPages/OptionsPage.resx
Normal file
120
mRemoteV1/UI/Forms/OptionsPages/OptionsPage.resx
Normal file
@@ -0,0 +1,120 @@
|
||||
<?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>
|
||||
</root>
|
||||
@@ -46,7 +46,7 @@
|
||||
this.chkEncryptCompleteFile.AutoSize = true;
|
||||
this.chkEncryptCompleteFile.Location = new System.Drawing.Point(3, 3);
|
||||
this.chkEncryptCompleteFile.Name = "chkEncryptCompleteFile";
|
||||
this.chkEncryptCompleteFile.Size = new System.Drawing.Size(180, 17);
|
||||
this.chkEncryptCompleteFile.Size = new System.Drawing.Size(194, 17);
|
||||
this.chkEncryptCompleteFile.TabIndex = 0;
|
||||
this.chkEncryptCompleteFile.Text = "Encrypt complete connection file";
|
||||
this.chkEncryptCompleteFile.UseVisualStyleBackColor = true;
|
||||
@@ -67,7 +67,7 @@
|
||||
this.labelEncryptionEngine.AutoSize = true;
|
||||
this.labelEncryptionEngine.Location = new System.Drawing.Point(9, 28);
|
||||
this.labelEncryptionEngine.Name = "labelEncryptionEngine";
|
||||
this.labelEncryptionEngine.Size = new System.Drawing.Size(93, 13);
|
||||
this.labelEncryptionEngine.Size = new System.Drawing.Size(101, 13);
|
||||
this.labelEncryptionEngine.TabIndex = 0;
|
||||
this.labelEncryptionEngine.Text = "Encryption Engine";
|
||||
//
|
||||
@@ -76,7 +76,7 @@
|
||||
this.labelBlockCipher.AutoSize = true;
|
||||
this.labelBlockCipher.Location = new System.Drawing.Point(9, 60);
|
||||
this.labelBlockCipher.Name = "labelBlockCipher";
|
||||
this.labelBlockCipher.Size = new System.Drawing.Size(97, 13);
|
||||
this.labelBlockCipher.Size = new System.Drawing.Size(105, 13);
|
||||
this.labelBlockCipher.TabIndex = 2;
|
||||
this.labelBlockCipher.Text = "Block Cipher Mode";
|
||||
//
|
||||
@@ -124,7 +124,7 @@
|
||||
0,
|
||||
0});
|
||||
this.numberBoxKdfIterations.Name = "numberBoxKdfIterations";
|
||||
this.numberBoxKdfIterations.Size = new System.Drawing.Size(90, 20);
|
||||
this.numberBoxKdfIterations.Size = new System.Drawing.Size(90, 22);
|
||||
this.numberBoxKdfIterations.TabIndex = 5;
|
||||
this.numberBoxKdfIterations.ThousandsSeparator = true;
|
||||
this.numberBoxKdfIterations.Value = new decimal(new int[] {
|
||||
@@ -138,7 +138,7 @@
|
||||
this.labelKdfIterations.AutoSize = true;
|
||||
this.labelKdfIterations.Location = new System.Drawing.Point(9, 90);
|
||||
this.labelKdfIterations.Name = "labelKdfIterations";
|
||||
this.labelKdfIterations.Size = new System.Drawing.Size(166, 13);
|
||||
this.labelKdfIterations.Size = new System.Drawing.Size(181, 13);
|
||||
this.labelKdfIterations.TabIndex = 4;
|
||||
this.labelKdfIterations.Text = "Key Derivation Function Iterations";
|
||||
//
|
||||
@@ -148,6 +148,7 @@
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.Controls.Add(this.chkEncryptCompleteFile);
|
||||
this.Controls.Add(this.groupAdvancedSecurityOptions);
|
||||
this.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.Name = "SecurityPage";
|
||||
this.Size = new System.Drawing.Size(610, 490);
|
||||
this.groupAdvancedSecurityOptions.ResumeLayout(false);
|
||||
|
||||
120
mRemoteV1/UI/Forms/OptionsPages/SecurityPage.resx
Normal file
120
mRemoteV1/UI/Forms/OptionsPages/SecurityPage.resx
Normal file
@@ -0,0 +1,120 @@
|
||||
<?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>
|
||||
</root>
|
||||
@@ -63,7 +63,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
this.txtSQLDatabaseName.Enabled = false;
|
||||
this.txtSQLDatabaseName.Location = new System.Drawing.Point(140, 130);
|
||||
this.txtSQLDatabaseName.Name = "txtSQLDatabaseName";
|
||||
this.txtSQLDatabaseName.Size = new System.Drawing.Size(153, 20);
|
||||
this.txtSQLDatabaseName.Size = new System.Drawing.Size(153, 22);
|
||||
this.txtSQLDatabaseName.TabIndex = 6;
|
||||
//
|
||||
// lblExperimental
|
||||
@@ -86,7 +86,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
this.chkUseSQLServer.AutoSize = true;
|
||||
this.chkUseSQLServer.Location = new System.Drawing.Point(3, 76);
|
||||
this.chkUseSQLServer.Name = "chkUseSQLServer";
|
||||
this.chkUseSQLServer.Size = new System.Drawing.Size(234, 17);
|
||||
this.chkUseSQLServer.Size = new System.Drawing.Size(244, 17);
|
||||
this.chkUseSQLServer.TabIndex = 2;
|
||||
this.chkUseSQLServer.Text = "Use SQL Server to load && save connections";
|
||||
this.chkUseSQLServer.UseVisualStyleBackColor = true;
|
||||
@@ -108,7 +108,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
this.txtSQLPassword.Enabled = false;
|
||||
this.txtSQLPassword.Location = new System.Drawing.Point(140, 182);
|
||||
this.txtSQLPassword.Name = "txtSQLPassword";
|
||||
this.txtSQLPassword.Size = new System.Drawing.Size(153, 20);
|
||||
this.txtSQLPassword.Size = new System.Drawing.Size(153, 22);
|
||||
this.txtSQLPassword.TabIndex = 10;
|
||||
this.txtSQLPassword.UseSystemPasswordChar = true;
|
||||
//
|
||||
@@ -142,7 +142,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
this.txtSQLUsername.Enabled = false;
|
||||
this.txtSQLUsername.Location = new System.Drawing.Point(140, 156);
|
||||
this.txtSQLUsername.Name = "txtSQLUsername";
|
||||
this.txtSQLUsername.Size = new System.Drawing.Size(153, 20);
|
||||
this.txtSQLUsername.Size = new System.Drawing.Size(153, 22);
|
||||
this.txtSQLUsername.TabIndex = 8;
|
||||
//
|
||||
// txtSQLServer
|
||||
@@ -151,7 +151,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
this.txtSQLServer.Enabled = false;
|
||||
this.txtSQLServer.Location = new System.Drawing.Point(140, 103);
|
||||
this.txtSQLServer.Name = "txtSQLServer";
|
||||
this.txtSQLServer.Size = new System.Drawing.Size(153, 20);
|
||||
this.txtSQLServer.Size = new System.Drawing.Size(153, 22);
|
||||
this.txtSQLServer.TabIndex = 4;
|
||||
//
|
||||
// lblSQLPassword
|
||||
@@ -191,7 +191,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
this.lblTestConnectionResults.AutoSize = true;
|
||||
this.lblTestConnectionResults.Location = new System.Drawing.Point(137, 254);
|
||||
this.lblTestConnectionResults.Name = "lblTestConnectionResults";
|
||||
this.lblTestConnectionResults.Size = new System.Drawing.Size(117, 13);
|
||||
this.lblTestConnectionResults.Size = new System.Drawing.Size(124, 13);
|
||||
this.lblTestConnectionResults.TabIndex = 13;
|
||||
this.lblTestConnectionResults.Text = "Test connection details";
|
||||
//
|
||||
@@ -235,6 +235,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
this.Controls.Add(this.txtSQLUsername);
|
||||
this.Controls.Add(this.txtSQLServer);
|
||||
this.Controls.Add(this.lblSQLPassword);
|
||||
this.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.Name = "SqlServerPage";
|
||||
this.Size = new System.Drawing.Size(610, 490);
|
||||
((System.ComponentModel.ISupportInitialize)(this.imgConnectionStatus)).EndInit();
|
||||
|
||||
120
mRemoteV1/UI/Forms/OptionsPages/SqlServerPage.resx
Normal file
120
mRemoteV1/UI/Forms/OptionsPages/SqlServerPage.resx
Normal file
@@ -0,0 +1,120 @@
|
||||
<?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>
|
||||
</root>
|
||||
@@ -43,7 +43,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
this.chkReconnectOnStart.AutoSize = true;
|
||||
this.chkReconnectOnStart.Location = new System.Drawing.Point(3, 26);
|
||||
this.chkReconnectOnStart.Name = "chkReconnectOnStart";
|
||||
this.chkReconnectOnStart.Size = new System.Drawing.Size(273, 17);
|
||||
this.chkReconnectOnStart.Size = new System.Drawing.Size(295, 17);
|
||||
this.chkReconnectOnStart.TabIndex = 1;
|
||||
this.chkReconnectOnStart.Text = "Reconnect to previously opened sessions on startup";
|
||||
this.chkReconnectOnStart.UseVisualStyleBackColor = true;
|
||||
@@ -54,7 +54,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
this.chkSaveConsOnExit.AutoSize = true;
|
||||
this.chkSaveConsOnExit.Location = new System.Drawing.Point(3, 2);
|
||||
this.chkSaveConsOnExit.Name = "chkSaveConsOnExit";
|
||||
this.chkSaveConsOnExit.Size = new System.Drawing.Size(146, 17);
|
||||
this.chkSaveConsOnExit.Size = new System.Drawing.Size(153, 17);
|
||||
this.chkSaveConsOnExit.TabIndex = 0;
|
||||
this.chkSaveConsOnExit.Text = "Save connections on exit";
|
||||
this.chkSaveConsOnExit.UseVisualStyleBackColor = true;
|
||||
@@ -65,7 +65,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
this.chkSingleInstance.AutoSize = true;
|
||||
this.chkSingleInstance.Location = new System.Drawing.Point(3, 50);
|
||||
this.chkSingleInstance.Name = "chkSingleInstance";
|
||||
this.chkSingleInstance.Size = new System.Drawing.Size(366, 17);
|
||||
this.chkSingleInstance.Size = new System.Drawing.Size(404, 17);
|
||||
this.chkSingleInstance.TabIndex = 2;
|
||||
this.chkSingleInstance.Text = "Allow only a single instance of the application (mRemote restart required)";
|
||||
this.chkSingleInstance.UseVisualStyleBackColor = true;
|
||||
@@ -76,7 +76,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
this.chkProperInstallationOfComponentsAtStartup.AutoSize = true;
|
||||
this.chkProperInstallationOfComponentsAtStartup.Location = new System.Drawing.Point(3, 74);
|
||||
this.chkProperInstallationOfComponentsAtStartup.Name = "chkProperInstallationOfComponentsAtStartup";
|
||||
this.chkProperInstallationOfComponentsAtStartup.Size = new System.Drawing.Size(262, 17);
|
||||
this.chkProperInstallationOfComponentsAtStartup.Size = new System.Drawing.Size(290, 17);
|
||||
this.chkProperInstallationOfComponentsAtStartup.TabIndex = 3;
|
||||
this.chkProperInstallationOfComponentsAtStartup.Text = "Check proper installation of components at startup";
|
||||
this.chkProperInstallationOfComponentsAtStartup.UseVisualStyleBackColor = true;
|
||||
@@ -89,6 +89,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
this.Controls.Add(this.chkSaveConsOnExit);
|
||||
this.Controls.Add(this.chkSingleInstance);
|
||||
this.Controls.Add(this.chkProperInstallationOfComponentsAtStartup);
|
||||
this.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.Name = "StartupExitPage";
|
||||
this.Size = new System.Drawing.Size(610, 490);
|
||||
this.Load += new System.EventHandler(this.StartupExitPage_Load);
|
||||
|
||||
120
mRemoteV1/UI/Forms/OptionsPages/StartupExitPage.resx
Normal file
120
mRemoteV1/UI/Forms/OptionsPages/StartupExitPage.resx
Normal file
@@ -0,0 +1,120 @@
|
||||
<?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>
|
||||
</root>
|
||||
@@ -49,7 +49,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
this.chkAlwaysShowPanelTabs.AutoSize = true;
|
||||
this.chkAlwaysShowPanelTabs.Location = new System.Drawing.Point(3, 3);
|
||||
this.chkAlwaysShowPanelTabs.Name = "chkAlwaysShowPanelTabs";
|
||||
this.chkAlwaysShowPanelTabs.Size = new System.Drawing.Size(139, 17);
|
||||
this.chkAlwaysShowPanelTabs.Size = new System.Drawing.Size(149, 17);
|
||||
this.chkAlwaysShowPanelTabs.TabIndex = 0;
|
||||
this.chkAlwaysShowPanelTabs.Text = "Always show panel tabs";
|
||||
this.chkAlwaysShowPanelTabs.UseVisualStyleBackColor = true;
|
||||
@@ -60,7 +60,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
this.chkIdentifyQuickConnectTabs.AutoSize = true;
|
||||
this.chkIdentifyQuickConnectTabs.Location = new System.Drawing.Point(3, 95);
|
||||
this.chkIdentifyQuickConnectTabs.Name = "chkIdentifyQuickConnectTabs";
|
||||
this.chkIdentifyQuickConnectTabs.Size = new System.Drawing.Size(293, 17);
|
||||
this.chkIdentifyQuickConnectTabs.Size = new System.Drawing.Size(315, 17);
|
||||
this.chkIdentifyQuickConnectTabs.TabIndex = 4;
|
||||
this.chkIdentifyQuickConnectTabs.Text = global::mRemoteNG.Language.strIdentifyQuickConnectTabs;
|
||||
this.chkIdentifyQuickConnectTabs.UseVisualStyleBackColor = true;
|
||||
@@ -71,7 +71,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
this.chkOpenNewTabRightOfSelected.AutoSize = true;
|
||||
this.chkOpenNewTabRightOfSelected.Location = new System.Drawing.Point(3, 26);
|
||||
this.chkOpenNewTabRightOfSelected.Name = "chkOpenNewTabRightOfSelected";
|
||||
this.chkOpenNewTabRightOfSelected.Size = new System.Drawing.Size(280, 17);
|
||||
this.chkOpenNewTabRightOfSelected.Size = new System.Drawing.Size(309, 17);
|
||||
this.chkOpenNewTabRightOfSelected.TabIndex = 1;
|
||||
this.chkOpenNewTabRightOfSelected.Text = "Open new tab to the right of the currently selected tab";
|
||||
this.chkOpenNewTabRightOfSelected.UseVisualStyleBackColor = true;
|
||||
@@ -82,7 +82,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
this.chkAlwaysShowPanelSelectionDlg.AutoSize = true;
|
||||
this.chkAlwaysShowPanelSelectionDlg.Location = new System.Drawing.Point(3, 141);
|
||||
this.chkAlwaysShowPanelSelectionDlg.Name = "chkAlwaysShowPanelSelectionDlg";
|
||||
this.chkAlwaysShowPanelSelectionDlg.Size = new System.Drawing.Size(317, 17);
|
||||
this.chkAlwaysShowPanelSelectionDlg.Size = new System.Drawing.Size(347, 17);
|
||||
this.chkAlwaysShowPanelSelectionDlg.TabIndex = 6;
|
||||
this.chkAlwaysShowPanelSelectionDlg.Text = "Always show panel selection dialog when opening connectins";
|
||||
this.chkAlwaysShowPanelSelectionDlg.UseVisualStyleBackColor = true;
|
||||
@@ -93,7 +93,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
this.chkShowLogonInfoOnTabs.AutoSize = true;
|
||||
this.chkShowLogonInfoOnTabs.Location = new System.Drawing.Point(3, 49);
|
||||
this.chkShowLogonInfoOnTabs.Name = "chkShowLogonInfoOnTabs";
|
||||
this.chkShowLogonInfoOnTabs.Size = new System.Drawing.Size(203, 17);
|
||||
this.chkShowLogonInfoOnTabs.Size = new System.Drawing.Size(226, 17);
|
||||
this.chkShowLogonInfoOnTabs.TabIndex = 2;
|
||||
this.chkShowLogonInfoOnTabs.Text = "Show logon information on tab names";
|
||||
this.chkShowLogonInfoOnTabs.UseVisualStyleBackColor = true;
|
||||
@@ -104,7 +104,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
this.chkDoubleClickClosesTab.AutoSize = true;
|
||||
this.chkDoubleClickClosesTab.Location = new System.Drawing.Point(3, 118);
|
||||
this.chkDoubleClickClosesTab.Name = "chkDoubleClickClosesTab";
|
||||
this.chkDoubleClickClosesTab.Size = new System.Drawing.Size(159, 17);
|
||||
this.chkDoubleClickClosesTab.Size = new System.Drawing.Size(170, 17);
|
||||
this.chkDoubleClickClosesTab.TabIndex = 5;
|
||||
this.chkDoubleClickClosesTab.Text = "Double click on tab closes it";
|
||||
this.chkDoubleClickClosesTab.UseVisualStyleBackColor = true;
|
||||
@@ -115,7 +115,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
this.chkShowProtocolOnTabs.AutoSize = true;
|
||||
this.chkShowProtocolOnTabs.Location = new System.Drawing.Point(3, 72);
|
||||
this.chkShowProtocolOnTabs.Name = "chkShowProtocolOnTabs";
|
||||
this.chkShowProtocolOnTabs.Size = new System.Drawing.Size(166, 17);
|
||||
this.chkShowProtocolOnTabs.Size = new System.Drawing.Size(180, 17);
|
||||
this.chkShowProtocolOnTabs.TabIndex = 3;
|
||||
this.chkShowProtocolOnTabs.Text = "Show protocols on tab names";
|
||||
this.chkShowProtocolOnTabs.UseVisualStyleBackColor = true;
|
||||
@@ -126,7 +126,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
this.chkCreateEmptyPanelOnStart.AutoSize = true;
|
||||
this.chkCreateEmptyPanelOnStart.Location = new System.Drawing.Point(3, 164);
|
||||
this.chkCreateEmptyPanelOnStart.Name = "chkCreateEmptyPanelOnStart";
|
||||
this.chkCreateEmptyPanelOnStart.Size = new System.Drawing.Size(253, 17);
|
||||
this.chkCreateEmptyPanelOnStart.Size = new System.Drawing.Size(271, 17);
|
||||
this.chkCreateEmptyPanelOnStart.TabIndex = 7;
|
||||
this.chkCreateEmptyPanelOnStart.Text = "Create an empty panel when mRemoteNG starts";
|
||||
this.chkCreateEmptyPanelOnStart.UseVisualStyleBackColor = true;
|
||||
@@ -136,7 +136,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
//
|
||||
this.txtBoxPanelName.Location = new System.Drawing.Point(43, 200);
|
||||
this.txtBoxPanelName.Name = "txtBoxPanelName";
|
||||
this.txtBoxPanelName.Size = new System.Drawing.Size(213, 20);
|
||||
this.txtBoxPanelName.Size = new System.Drawing.Size(213, 22);
|
||||
this.txtBoxPanelName.TabIndex = 8;
|
||||
//
|
||||
// lblPanelName
|
||||
@@ -144,7 +144,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
this.lblPanelName.AutoSize = true;
|
||||
this.lblPanelName.Location = new System.Drawing.Point(40, 184);
|
||||
this.lblPanelName.Name = "lblPanelName";
|
||||
this.lblPanelName.Size = new System.Drawing.Size(66, 13);
|
||||
this.lblPanelName.Size = new System.Drawing.Size(69, 13);
|
||||
this.lblPanelName.TabIndex = 9;
|
||||
this.lblPanelName.Text = "Panel name:";
|
||||
//
|
||||
@@ -162,6 +162,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
this.Controls.Add(this.chkShowLogonInfoOnTabs);
|
||||
this.Controls.Add(this.chkDoubleClickClosesTab);
|
||||
this.Controls.Add(this.chkShowProtocolOnTabs);
|
||||
this.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.Name = "TabsPanelsPage";
|
||||
this.Size = new System.Drawing.Size(610, 490);
|
||||
this.ResumeLayout(false);
|
||||
|
||||
120
mRemoteV1/UI/Forms/OptionsPages/TabsPanelsPage.resx
Normal file
120
mRemoteV1/UI/Forms/OptionsPages/TabsPanelsPage.resx
Normal file
@@ -0,0 +1,120 @@
|
||||
<?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>
|
||||
</root>
|
||||
@@ -33,7 +33,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
this.btnThemeDelete = new mRemoteNG.UI.Controls.Base.NGButton();
|
||||
this.btnThemeNew = new mRemoteNG.UI.Controls.Base.NGButton();
|
||||
this.cboTheme = new mRemoteNG.UI.Controls.Base.NGComboBox();
|
||||
this.themeEnableCombo = new mRemoteNG.UI.Controls.Base.NGCheckBox();
|
||||
this.themeEnableChk = new mRemoteNG.UI.Controls.Base.NGCheckBox();
|
||||
this.listPalette = new mRemoteNG.UI.Controls.Base.NGListView();
|
||||
this.keyCol = ((BrightIdeasSoftware.OLVColumn)(new BrightIdeasSoftware.OLVColumn()));
|
||||
this.ColorCol = ((BrightIdeasSoftware.OLVColumn)(new BrightIdeasSoftware.OLVColumn()));
|
||||
@@ -84,18 +84,19 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
this.cboTheme.TabIndex = 0;
|
||||
this.cboTheme.SelectionChangeCommitted += new System.EventHandler(this.cboTheme_SelectionChangeCommitted);
|
||||
//
|
||||
// themeEnableCombo
|
||||
// themeEnableChk
|
||||
//
|
||||
this.themeEnableCombo._mice = mRemoteNG.UI.Controls.Base.NGCheckBox.MouseState.HOVER;
|
||||
this.themeEnableCombo.AutoSize = true;
|
||||
this.themeEnableCombo.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.themeEnableCombo.Location = new System.Drawing.Point(3, 3);
|
||||
this.themeEnableCombo.Name = "themeEnableCombo";
|
||||
this.themeEnableCombo.Size = new System.Drawing.Size(175, 22);
|
||||
this.themeEnableCombo.TabIndex = 5;
|
||||
this.themeEnableCombo.Text = "Enable Themes";
|
||||
this.themeEnableCombo.UseVisualStyleBackColor = true;
|
||||
this.themeEnableCombo.CheckedChanged += new System.EventHandler(this.themeEnableCombo_CheckedChanged);
|
||||
this.themeEnableChk._mice = mRemoteNG.UI.Controls.Base.NGCheckBox.MouseState.HOVER;
|
||||
this.themeEnableChk.AutoSize = true;
|
||||
this.themeEnableChk.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.themeEnableChk.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.themeEnableChk.Location = new System.Drawing.Point(3, 3);
|
||||
this.themeEnableChk.Name = "themeEnableChk";
|
||||
this.themeEnableChk.Size = new System.Drawing.Size(140, 22);
|
||||
this.themeEnableChk.TabIndex = 5;
|
||||
this.themeEnableChk.Text = "Enable Themes";
|
||||
this.themeEnableChk.UseVisualStyleBackColor = true;
|
||||
this.themeEnableChk.CheckedChanged += new System.EventHandler(this.ThemeEnableChkCheckedChanged);
|
||||
//
|
||||
// listPalette
|
||||
//
|
||||
@@ -143,9 +144,9 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
//
|
||||
this.labelRestart.AutoSize = true;
|
||||
this.labelRestart.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.labelRestart.Location = new System.Drawing.Point(184, 0);
|
||||
this.labelRestart.Location = new System.Drawing.Point(149, 0);
|
||||
this.labelRestart.Name = "labelRestart";
|
||||
this.labelRestart.Size = new System.Drawing.Size(417, 28);
|
||||
this.labelRestart.Size = new System.Drawing.Size(452, 28);
|
||||
this.labelRestart.TabIndex = 4;
|
||||
this.labelRestart.Text = "Warning: Restart is required to disable the themes or to completely apply a new o" +
|
||||
"ne";
|
||||
@@ -171,10 +172,10 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
// tableLayoutPanel2
|
||||
//
|
||||
this.tableLayoutPanel2.ColumnCount = 2;
|
||||
this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 30F));
|
||||
this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 70F));
|
||||
this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 24.33775F));
|
||||
this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 75.66225F));
|
||||
this.tableLayoutPanel2.Controls.Add(this.labelRestart, 1, 0);
|
||||
this.tableLayoutPanel2.Controls.Add(this.themeEnableCombo, 0, 0);
|
||||
this.tableLayoutPanel2.Controls.Add(this.themeEnableChk, 0, 0);
|
||||
this.tableLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.tableLayoutPanel2.Location = new System.Drawing.Point(3, 459);
|
||||
this.tableLayoutPanel2.Name = "tableLayoutPanel2";
|
||||
@@ -206,6 +207,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
|
||||
this.Controls.Add(this.tlpMain);
|
||||
this.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.Name = "ThemePage";
|
||||
this.Size = new System.Drawing.Size(610, 490);
|
||||
((System.ComponentModel.ISupportInitialize)(this.listPalette)).EndInit();
|
||||
@@ -219,7 +221,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
internal Controls.Base.NGButton btnThemeDelete;
|
||||
internal Controls.Base.NGButton btnThemeNew;
|
||||
internal Controls.Base.NGComboBox cboTheme;
|
||||
private Controls.Base.NGCheckBox themeEnableCombo;
|
||||
private Controls.Base.NGCheckBox themeEnableChk;
|
||||
private Controls.Base.NGListView listPalette;
|
||||
private Controls.Base.NGLabel labelRestart;
|
||||
private BrightIdeasSoftware.OLVColumn keyCol;
|
||||
|
||||
@@ -3,7 +3,6 @@ using System.Windows.Forms;
|
||||
using mRemoteNG.Themes;
|
||||
using System.Linq;
|
||||
using System.Collections.Generic;
|
||||
using System.Drawing;
|
||||
using BrightIdeasSoftware;
|
||||
using mRemoteNG.UI.Forms.Input;
|
||||
|
||||
@@ -13,10 +12,10 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
{
|
||||
|
||||
#region Private Fields
|
||||
private ThemeManager _themeManager;
|
||||
private ThemeInfo _oriTheme;
|
||||
private bool _oriActiveTheming;
|
||||
List<ThemeInfo> modifiedThemes = new List<ThemeInfo>();
|
||||
private readonly ThemeManager _themeManager;
|
||||
private readonly ThemeInfo _oriTheme;
|
||||
private readonly bool _oriActiveTheming;
|
||||
private readonly List<ThemeInfo> modifiedThemes = new List<ThemeInfo>();
|
||||
#endregion
|
||||
|
||||
public ThemePage()
|
||||
@@ -44,7 +43,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
btnThemeDelete.Text = Language.strOptionsThemeButtonDelete;
|
||||
btnThemeNew.Text = Language.strOptionsThemeButtonNew;
|
||||
labelRestart.Text = Language.strOptionsThemeThemeChaangeWarning;
|
||||
themeEnableCombo.Text = Language.strOptionsThemeEnableTheming;
|
||||
themeEnableChk.Text = Language.strOptionsThemeEnableTheming;
|
||||
}
|
||||
|
||||
private new void ApplyTheme()
|
||||
@@ -56,6 +55,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
|
||||
public override void LoadSettings()
|
||||
{
|
||||
themeEnableChk.CheckedChanged -= ThemeEnableChkCheckedChanged;
|
||||
base.SaveSettings();
|
||||
//At first we cannot create or delete themes, depends later on the type of selected theme
|
||||
btnThemeNew.Enabled = false;
|
||||
@@ -72,15 +72,16 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
//Load theming active property and disable controls
|
||||
if (_themeManager.ThemingActive)
|
||||
{
|
||||
themeEnableCombo.Checked = true;
|
||||
themeEnableChk.Checked = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
themeEnableCombo.Checked = false;
|
||||
themeEnableChk.Checked = false;
|
||||
cboTheme.Enabled = false;
|
||||
// reset to the default theme when disabling theme support
|
||||
_themeManager.ActiveTheme = _themeManager.DefaultTheme;
|
||||
}
|
||||
themeEnableChk.CheckedChanged += ThemeEnableChkCheckedChanged;
|
||||
}
|
||||
|
||||
private void ListPalette_FormatCell(object sender, FormatCellEventArgs e)
|
||||
@@ -172,21 +173,19 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
private void btnThemeNew_Click(object sender, EventArgs e)
|
||||
{
|
||||
var name = _themeManager.ActiveTheme.Name;
|
||||
using (FrmInputBox frmInputBox = new FrmInputBox(Language.strOptionsThemeNewThemeCaption, Language.strOptionsThemeNewThemeText, ref name))
|
||||
using (var frmInputBox = new FrmInputBox(Language.strOptionsThemeNewThemeCaption, Language.strOptionsThemeNewThemeText, ref name))
|
||||
{
|
||||
DialogResult dr = frmInputBox.ShowDialog();
|
||||
if (dr == DialogResult.OK)
|
||||
var dr = frmInputBox.ShowDialog();
|
||||
if (dr != DialogResult.OK) return;
|
||||
if (_themeManager.isThemeNameOk(frmInputBox.returnValue))
|
||||
{
|
||||
if (_themeManager.isThemeNameOk(frmInputBox.returnValue))
|
||||
{
|
||||
var addedTheme = _themeManager.addTheme(_themeManager.ActiveTheme, frmInputBox.returnValue);
|
||||
_themeManager.ActiveTheme = addedTheme;
|
||||
LoadSettings();
|
||||
}
|
||||
else
|
||||
{
|
||||
TaskDialog.CTaskDialog.ShowTaskDialogBox(this, Language.strErrors, Language.strOptionsThemeNewThemeError, "", "", "", "", "", "", TaskDialog.ETaskDialogButtons.Ok, TaskDialog.ESysIcons.Error, TaskDialog.ESysIcons.Information, 0);
|
||||
}
|
||||
var addedTheme = _themeManager.addTheme(_themeManager.ActiveTheme, frmInputBox.returnValue);
|
||||
_themeManager.ActiveTheme = addedTheme;
|
||||
LoadSettings();
|
||||
}
|
||||
else
|
||||
{
|
||||
TaskDialog.CTaskDialog.ShowTaskDialogBox(this, Language.strErrors, Language.strOptionsThemeNewThemeError, "", "", "", "", "", "", TaskDialog.ETaskDialogButtons.Ok, TaskDialog.ESysIcons.Error, TaskDialog.ESysIcons.Information, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -207,26 +206,28 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
|
||||
#endregion
|
||||
|
||||
private void themeEnableCombo_CheckedChanged(object sender, EventArgs e)
|
||||
private void ThemeEnableChkCheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (themeEnableCombo.Checked)
|
||||
if (themeEnableChk.Checked)
|
||||
{
|
||||
_themeManager.ThemingActive = true;
|
||||
if(_themeManager.ThemingActive)
|
||||
|
||||
if(_themeManager.ThemesCount > 0)
|
||||
{
|
||||
themeEnableCombo.Checked = true;
|
||||
_themeManager.ThemingActive = true;
|
||||
cboTheme.Enabled = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
TaskDialog.CTaskDialog.ShowTaskDialogBox(this, Language.strErrors, Language.strOptionsThemeErrorNoThemes, "", "", "", "", "", "", TaskDialog.ETaskDialogButtons.Ok, TaskDialog.ESysIcons.Error, TaskDialog.ESysIcons.Information, 0);
|
||||
themeEnableCombo.Checked = false;
|
||||
themeEnableChk.Checked = false;
|
||||
_themeManager.ThemingActive = false;
|
||||
cboTheme.Enabled = false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
_themeManager.ThemingActive = false;
|
||||
themeEnableCombo.Checked = false;
|
||||
themeEnableChk.Checked = false;
|
||||
cboTheme.Enabled = false;
|
||||
}
|
||||
LoadSettings();
|
||||
|
||||
120
mRemoteV1/UI/Forms/OptionsPages/ThemePage.resx
Normal file
120
mRemoteV1/UI/Forms/OptionsPages/ThemePage.resx
Normal file
@@ -0,0 +1,120 @@
|
||||
<?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>
|
||||
</root>
|
||||
@@ -96,7 +96,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
this.chkCheckForUpdatesOnStartup.AutoSize = true;
|
||||
this.chkCheckForUpdatesOnStartup.Location = new System.Drawing.Point(3, 4);
|
||||
this.chkCheckForUpdatesOnStartup.Name = "chkCheckForUpdatesOnStartup";
|
||||
this.chkCheckForUpdatesOnStartup.Size = new System.Drawing.Size(113, 17);
|
||||
this.chkCheckForUpdatesOnStartup.Size = new System.Drawing.Size(120, 17);
|
||||
this.chkCheckForUpdatesOnStartup.TabIndex = 0;
|
||||
this.chkCheckForUpdatesOnStartup.Text = "Check for updates";
|
||||
this.chkCheckForUpdatesOnStartup.UseVisualStyleBackColor = true;
|
||||
@@ -132,7 +132,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
this.lblReleaseChannel.Location = new System.Drawing.Point(0, 3);
|
||||
this.lblReleaseChannel.Margin = new System.Windows.Forms.Padding(3);
|
||||
this.lblReleaseChannel.Name = "lblReleaseChannel";
|
||||
this.lblReleaseChannel.Size = new System.Drawing.Size(91, 13);
|
||||
this.lblReleaseChannel.Size = new System.Drawing.Size(95, 13);
|
||||
this.lblReleaseChannel.TabIndex = 0;
|
||||
this.lblReleaseChannel.Text = "Release Channel:";
|
||||
//
|
||||
@@ -184,7 +184,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
this.txtProxyAddress.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||
this.txtProxyAddress.Location = new System.Drawing.Point(110, 4);
|
||||
this.txtProxyAddress.Name = "txtProxyAddress";
|
||||
this.txtProxyAddress.Size = new System.Drawing.Size(240, 20);
|
||||
this.txtProxyAddress.Size = new System.Drawing.Size(240, 22);
|
||||
this.txtProxyAddress.TabIndex = 1;
|
||||
//
|
||||
// lblProxyPort
|
||||
@@ -211,7 +211,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
0,
|
||||
0});
|
||||
this.numProxyPort.Name = "numProxyPort";
|
||||
this.numProxyPort.Size = new System.Drawing.Size(64, 20);
|
||||
this.numProxyPort.Size = new System.Drawing.Size(64, 22);
|
||||
this.numProxyPort.TabIndex = 3;
|
||||
this.numProxyPort.Value = new decimal(new int[] {
|
||||
80,
|
||||
@@ -225,7 +225,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
this.chkUseProxyForAutomaticUpdates.AutoSize = true;
|
||||
this.chkUseProxyForAutomaticUpdates.Location = new System.Drawing.Point(6, 0);
|
||||
this.chkUseProxyForAutomaticUpdates.Name = "chkUseProxyForAutomaticUpdates";
|
||||
this.chkUseProxyForAutomaticUpdates.Size = new System.Drawing.Size(168, 17);
|
||||
this.chkUseProxyForAutomaticUpdates.Size = new System.Drawing.Size(176, 17);
|
||||
this.chkUseProxyForAutomaticUpdates.TabIndex = 0;
|
||||
this.chkUseProxyForAutomaticUpdates.Text = "Use a proxy server to connect";
|
||||
this.chkUseProxyForAutomaticUpdates.UseVisualStyleBackColor = true;
|
||||
@@ -238,7 +238,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
this.chkUseProxyAuthentication.Enabled = false;
|
||||
this.chkUseProxyAuthentication.Location = new System.Drawing.Point(27, 70);
|
||||
this.chkUseProxyAuthentication.Name = "chkUseProxyAuthentication";
|
||||
this.chkUseProxyAuthentication.Size = new System.Drawing.Size(216, 17);
|
||||
this.chkUseProxyAuthentication.Size = new System.Drawing.Size(234, 17);
|
||||
this.chkUseProxyAuthentication.TabIndex = 2;
|
||||
this.chkUseProxyAuthentication.Text = "This proxy server requires authentication";
|
||||
this.chkUseProxyAuthentication.UseVisualStyleBackColor = true;
|
||||
@@ -270,7 +270,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
this.txtProxyUsername.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||
this.txtProxyUsername.Location = new System.Drawing.Point(110, 4);
|
||||
this.txtProxyUsername.Name = "txtProxyUsername";
|
||||
this.txtProxyUsername.Size = new System.Drawing.Size(240, 20);
|
||||
this.txtProxyUsername.Size = new System.Drawing.Size(240, 22);
|
||||
this.txtProxyUsername.TabIndex = 1;
|
||||
//
|
||||
// lblProxyPassword
|
||||
@@ -287,7 +287,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
this.txtProxyPassword.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
|
||||
this.txtProxyPassword.Location = new System.Drawing.Point(110, 30);
|
||||
this.txtProxyPassword.Name = "txtProxyPassword";
|
||||
this.txtProxyPassword.Size = new System.Drawing.Size(240, 20);
|
||||
this.txtProxyPassword.Size = new System.Drawing.Size(240, 22);
|
||||
this.txtProxyPassword.TabIndex = 3;
|
||||
this.txtProxyPassword.UseSystemPasswordChar = true;
|
||||
//
|
||||
@@ -320,6 +320,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
|
||||
this.Controls.Add(this.lblUpdatesExplanation);
|
||||
this.Controls.Add(this.pnlUpdateCheck);
|
||||
this.Controls.Add(this.pnlProxy);
|
||||
this.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.Name = "UpdatesPage";
|
||||
this.Size = new System.Drawing.Size(610, 490);
|
||||
this.pnlUpdateCheck.ResumeLayout(false);
|
||||
|
||||
120
mRemoteV1/UI/Forms/OptionsPages/UpdatesPage.resx
Normal file
120
mRemoteV1/UI/Forms/OptionsPages/UpdatesPage.resx
Normal file
@@ -0,0 +1,120 @@
|
||||
<?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>
|
||||
</root>
|
||||
31
mRemoteV1/UI/Forms/PasswordForm.Designer.cs
generated
31
mRemoteV1/UI/Forms/PasswordForm.Designer.cs
generated
@@ -48,18 +48,18 @@ namespace mRemoteNG.UI.Forms
|
||||
// lblPassword
|
||||
//
|
||||
this.lblPassword.AutoSize = true;
|
||||
this.lblPassword.Location = new System.Drawing.Point(73, 10);
|
||||
this.lblPassword.Location = new System.Drawing.Point(73, 9);
|
||||
this.lblPassword.Name = "lblPassword";
|
||||
this.lblPassword.Size = new System.Drawing.Size(56, 13);
|
||||
this.lblPassword.Size = new System.Drawing.Size(59, 13);
|
||||
this.lblPassword.TabIndex = 1;
|
||||
this.lblPassword.Text = "Password:";
|
||||
//
|
||||
// lblVerify
|
||||
//
|
||||
this.lblVerify.AutoSize = true;
|
||||
this.lblVerify.Location = new System.Drawing.Point(73, 49);
|
||||
this.lblVerify.Location = new System.Drawing.Point(73, 50);
|
||||
this.lblVerify.Name = "lblVerify";
|
||||
this.lblVerify.Size = new System.Drawing.Size(36, 13);
|
||||
this.lblVerify.Size = new System.Drawing.Size(38, 13);
|
||||
this.lblVerify.TabIndex = 3;
|
||||
this.lblVerify.Text = "Verify:";
|
||||
//
|
||||
@@ -67,7 +67,7 @@ namespace mRemoteNG.UI.Forms
|
||||
//
|
||||
this.btnOK._mice = mRemoteNG.UI.Controls.Base.NGButton.MouseState.HOVER;
|
||||
this.btnOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.btnOK.Location = new System.Drawing.Point(219, 128);
|
||||
this.btnOK.Location = new System.Drawing.Point(215, 124);
|
||||
this.btnOK.Name = "btnOK";
|
||||
this.btnOK.Size = new System.Drawing.Size(75, 23);
|
||||
this.btnOK.TabIndex = 7;
|
||||
@@ -80,7 +80,7 @@ namespace mRemoteNG.UI.Forms
|
||||
this.btnCancel._mice = mRemoteNG.UI.Controls.Base.NGButton.MouseState.HOVER;
|
||||
this.btnCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
|
||||
this.btnCancel.Location = new System.Drawing.Point(300, 128);
|
||||
this.btnCancel.Location = new System.Drawing.Point(296, 124);
|
||||
this.btnCancel.Name = "btnCancel";
|
||||
this.btnCancel.Size = new System.Drawing.Size(75, 23);
|
||||
this.btnCancel.TabIndex = 6;
|
||||
@@ -94,9 +94,9 @@ namespace mRemoteNG.UI.Forms
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.tableLayoutPanel1.SetColumnSpan(this.lblStatus, 2);
|
||||
this.lblStatus.ForeColor = System.Drawing.Color.Red;
|
||||
this.lblStatus.Location = new System.Drawing.Point(73, 88);
|
||||
this.lblStatus.Location = new System.Drawing.Point(73, 91);
|
||||
this.lblStatus.Name = "lblStatus";
|
||||
this.lblStatus.Size = new System.Drawing.Size(302, 13);
|
||||
this.lblStatus.Size = new System.Drawing.Size(298, 13);
|
||||
this.lblStatus.TabIndex = 5;
|
||||
this.lblStatus.Text = "Status";
|
||||
this.lblStatus.TextAlign = System.Drawing.ContentAlignment.TopRight;
|
||||
@@ -105,7 +105,7 @@ namespace mRemoteNG.UI.Forms
|
||||
// pbLock
|
||||
//
|
||||
this.pbLock.Image = global::mRemoteNG.Resources.Lock;
|
||||
this.pbLock.Location = new System.Drawing.Point(3, 13);
|
||||
this.pbLock.Location = new System.Drawing.Point(3, 12);
|
||||
this.pbLock.Name = "pbLock";
|
||||
this.tableLayoutPanel1.SetRowSpan(this.pbLock, 6);
|
||||
this.pbLock.Size = new System.Drawing.Size(64, 64);
|
||||
@@ -118,10 +118,10 @@ namespace mRemoteNG.UI.Forms
|
||||
this.txtVerify.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.tableLayoutPanel1.SetColumnSpan(this.txtVerify, 2);
|
||||
this.txtVerify.Location = new System.Drawing.Point(73, 65);
|
||||
this.txtVerify.Location = new System.Drawing.Point(73, 66);
|
||||
this.txtVerify.Name = "txtVerify";
|
||||
this.txtVerify.SelectAllOnFocus = true;
|
||||
this.txtVerify.Size = new System.Drawing.Size(302, 20);
|
||||
this.txtVerify.Size = new System.Drawing.Size(298, 22);
|
||||
this.txtVerify.TabIndex = 4;
|
||||
this.txtVerify.UseSystemPasswordChar = true;
|
||||
this.txtVerify.TextChanged += new System.EventHandler(this.txtPassword_TextChanged);
|
||||
@@ -131,10 +131,10 @@ namespace mRemoteNG.UI.Forms
|
||||
this.txtPassword.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.tableLayoutPanel1.SetColumnSpan(this.txtPassword, 2);
|
||||
this.txtPassword.Location = new System.Drawing.Point(73, 26);
|
||||
this.txtPassword.Location = new System.Drawing.Point(73, 25);
|
||||
this.txtPassword.Name = "txtPassword";
|
||||
this.txtPassword.SelectAllOnFocus = true;
|
||||
this.txtPassword.Size = new System.Drawing.Size(302, 20);
|
||||
this.txtPassword.Size = new System.Drawing.Size(298, 22);
|
||||
this.txtPassword.TabIndex = 2;
|
||||
this.txtPassword.UseSystemPasswordChar = true;
|
||||
this.txtPassword.TextChanged += new System.EventHandler(this.txtPassword_TextChanged);
|
||||
@@ -164,7 +164,7 @@ namespace mRemoteNG.UI.Forms
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle());
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 83.33334F));
|
||||
this.tableLayoutPanel1.Size = new System.Drawing.Size(378, 154);
|
||||
this.tableLayoutPanel1.Size = new System.Drawing.Size(374, 150);
|
||||
this.tableLayoutPanel1.TabIndex = 8;
|
||||
//
|
||||
// PasswordForm
|
||||
@@ -173,9 +173,10 @@ namespace mRemoteNG.UI.Forms
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
|
||||
this.CancelButton = this.btnCancel;
|
||||
this.ClientSize = new System.Drawing.Size(378, 154);
|
||||
this.ClientSize = new System.Drawing.Size(374, 150);
|
||||
this.ControlBox = false;
|
||||
this.Controls.Add(this.tableLayoutPanel1);
|
||||
this.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
|
||||
this.MaximizeBox = false;
|
||||
this.MinimizeBox = false;
|
||||
|
||||
@@ -98,7 +98,8 @@ namespace mRemoteNG.UI.Forms
|
||||
btnOK.Text = Language.strButtonOK;
|
||||
}
|
||||
|
||||
private bool VerifyNewPassword()
|
||||
// ReSharper disable once UnusedMethodReturnValue.Local
|
||||
private bool VerifyNewPassword()
|
||||
{
|
||||
if (txtPassword.Text.Length >= 3)
|
||||
{
|
||||
|
||||
@@ -13,28 +13,20 @@ namespace mRemoteNG.UI.Forms
|
||||
DefaultValue(false)]private bool _SelectAllOnFocus;
|
||||
public bool SelectAllOnFocus
|
||||
{
|
||||
get
|
||||
{
|
||||
return _SelectAllOnFocus;
|
||||
}
|
||||
set
|
||||
{
|
||||
_SelectAllOnFocus = value;
|
||||
}
|
||||
}
|
||||
get => _SelectAllOnFocus;
|
||||
set => _SelectAllOnFocus = value;
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Protected Methods
|
||||
protected override void OnEnter(EventArgs e)
|
||||
{
|
||||
base.OnEnter(e);
|
||||
|
||||
if (MouseButtons == MouseButtons.None)
|
||||
{
|
||||
SelectAll();
|
||||
_focusHandled = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (MouseButtons != MouseButtons.None) return;
|
||||
SelectAll();
|
||||
_focusHandled = true;
|
||||
}
|
||||
|
||||
protected override void OnLeave(EventArgs e)
|
||||
{
|
||||
@@ -46,20 +38,29 @@ namespace mRemoteNG.UI.Forms
|
||||
protected override void OnMouseUp(MouseEventArgs e)
|
||||
{
|
||||
base.OnMouseUp(e);
|
||||
|
||||
if (!_focusHandled)
|
||||
{
|
||||
if (SelectionLength == 0)
|
||||
{
|
||||
SelectAll();
|
||||
}
|
||||
_focusHandled = true;
|
||||
}
|
||||
}
|
||||
|
||||
if (_focusHandled) return;
|
||||
if (SelectionLength == 0)
|
||||
{
|
||||
SelectAll();
|
||||
}
|
||||
_focusHandled = true;
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Private Fields
|
||||
private bool _focusHandled;
|
||||
#endregion
|
||||
}
|
||||
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// TextBox
|
||||
//
|
||||
this.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
123
mRemoteV1/UI/Forms/TextBox.resx
Normal file
123
mRemoteV1/UI/Forms/TextBox.resx
Normal file
@@ -0,0 +1,123 @@
|
||||
<?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>
|
||||
<metadata name="$this.TrayLargeIcon" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
</root>
|
||||
@@ -66,7 +66,7 @@
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 80F));
|
||||
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 30F));
|
||||
this.tableLayoutPanel1.Size = new System.Drawing.Size(534, 311);
|
||||
this.tableLayoutPanel1.Size = new System.Drawing.Size(534, 334);
|
||||
this.tableLayoutPanel1.TabIndex = 0;
|
||||
//
|
||||
// labelExceptionCaught
|
||||
@@ -84,9 +84,9 @@
|
||||
//
|
||||
this.buttonClose.DialogResult = System.Windows.Forms.DialogResult.Cancel;
|
||||
this.buttonClose.Dock = System.Windows.Forms.DockStyle.Right;
|
||||
this.buttonClose.Location = new System.Drawing.Point(427, 284);
|
||||
this.buttonClose.Location = new System.Drawing.Point(427, 306);
|
||||
this.buttonClose.Name = "buttonClose";
|
||||
this.buttonClose.Size = new System.Drawing.Size(74, 24);
|
||||
this.buttonClose.Size = new System.Drawing.Size(74, 25);
|
||||
this.buttonClose.TabIndex = 1;
|
||||
this.buttonClose.Text = "Close";
|
||||
this.buttonClose.UseVisualStyleBackColor = true;
|
||||
@@ -96,19 +96,19 @@
|
||||
//
|
||||
this.tableLayoutPanel1.SetColumnSpan(this.textBoxStackTrace, 2);
|
||||
this.textBoxStackTrace.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.textBoxStackTrace.Location = new System.Drawing.Point(33, 128);
|
||||
this.textBoxStackTrace.Location = new System.Drawing.Point(33, 132);
|
||||
this.textBoxStackTrace.Multiline = true;
|
||||
this.textBoxStackTrace.Name = "textBoxStackTrace";
|
||||
this.textBoxStackTrace.ReadOnly = true;
|
||||
this.textBoxStackTrace.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
|
||||
this.textBoxStackTrace.Size = new System.Drawing.Size(468, 150);
|
||||
this.textBoxStackTrace.Size = new System.Drawing.Size(468, 168);
|
||||
this.textBoxStackTrace.TabIndex = 0;
|
||||
//
|
||||
// labelStackTraceHeader
|
||||
//
|
||||
this.labelStackTraceHeader.AutoSize = true;
|
||||
this.labelStackTraceHeader.Dock = System.Windows.Forms.DockStyle.Bottom;
|
||||
this.labelStackTraceHeader.Location = new System.Drawing.Point(33, 112);
|
||||
this.labelStackTraceHeader.Location = new System.Drawing.Point(33, 116);
|
||||
this.labelStackTraceHeader.Name = "labelStackTraceHeader";
|
||||
this.labelStackTraceHeader.Size = new System.Drawing.Size(388, 13);
|
||||
this.labelStackTraceHeader.TabIndex = 4;
|
||||
@@ -133,15 +133,15 @@
|
||||
this.textBoxExceptionMessage.Name = "textBoxExceptionMessage";
|
||||
this.textBoxExceptionMessage.ReadOnly = true;
|
||||
this.textBoxExceptionMessage.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
|
||||
this.textBoxExceptionMessage.Size = new System.Drawing.Size(468, 33);
|
||||
this.textBoxExceptionMessage.Size = new System.Drawing.Size(468, 37);
|
||||
this.textBoxExceptionMessage.TabIndex = 6;
|
||||
//
|
||||
// buttonCopyAll
|
||||
//
|
||||
this.buttonCopyAll.Dock = System.Windows.Forms.DockStyle.Right;
|
||||
this.buttonCopyAll.Location = new System.Drawing.Point(346, 284);
|
||||
this.buttonCopyAll.Location = new System.Drawing.Point(346, 306);
|
||||
this.buttonCopyAll.Name = "buttonCopyAll";
|
||||
this.buttonCopyAll.Size = new System.Drawing.Size(75, 24);
|
||||
this.buttonCopyAll.Size = new System.Drawing.Size(75, 25);
|
||||
this.buttonCopyAll.TabIndex = 7;
|
||||
this.buttonCopyAll.Text = "Copy All";
|
||||
this.buttonCopyAll.UseVisualStyleBackColor = true;
|
||||
@@ -163,9 +163,10 @@
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
|
||||
this.CancelButton = this.buttonClose;
|
||||
this.ClientSize = new System.Drawing.Size(534, 311);
|
||||
this.ClientSize = new System.Drawing.Size(534, 334);
|
||||
this.ControlBox = false;
|
||||
this.Controls.Add(this.tableLayoutPanel1);
|
||||
this.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.MinimumSize = new System.Drawing.Size(550, 350);
|
||||
this.Name = "UnhandledExceptionWindow";
|
||||
this.ShowInTaskbar = false;
|
||||
|
||||
5
mRemoteV1/UI/Forms/frmChoosePanel.Designer.cs
generated
5
mRemoteV1/UI/Forms/frmChoosePanel.Designer.cs
generated
@@ -79,7 +79,7 @@ namespace mRemoteNG.UI.Forms
|
||||
this.btnNew.UseVisualStyleBackColor = true;
|
||||
this.btnNew.Click += new System.EventHandler(this.btnNew_Click);
|
||||
//
|
||||
// frmChoosePanel
|
||||
// FrmChoosePanel
|
||||
//
|
||||
this.AcceptButton = this.btnOK;
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
@@ -89,11 +89,12 @@ namespace mRemoteNG.UI.Forms
|
||||
this.Controls.Add(this.btnNew);
|
||||
this.Controls.Add(this.btnOK);
|
||||
this.Controls.Add(this.cbPanels);
|
||||
this.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
|
||||
this.Icon = global::mRemoteNG.Resources.Panels_Icon;
|
||||
this.MaximizeBox = false;
|
||||
this.MinimizeBox = false;
|
||||
this.Name = "frmChoosePanel";
|
||||
this.Name = "FrmChoosePanel";
|
||||
this.ShowInTaskbar = false;
|
||||
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
|
||||
this.Text = "Select Panel";
|
||||
|
||||
@@ -69,16 +69,14 @@ namespace mRemoteNG.UI.Forms
|
||||
private void btnNew_Click(object sender, System.EventArgs e)
|
||||
{
|
||||
var pnlName = Language.strNewPanel;
|
||||
using (FrmInputBox frmInputBox = new FrmInputBox(Language.strNewPanel, Language.strPanelName + ":", ref pnlName))
|
||||
using (var frmInputBox = new FrmInputBox(Language.strNewPanel, Language.strPanelName + ":", ref pnlName))
|
||||
{
|
||||
DialogResult dr = frmInputBox.ShowDialog();
|
||||
if (dr == DialogResult.OK && !string.IsNullOrEmpty(frmInputBox.returnValue))
|
||||
{
|
||||
_panelAdder.AddPanel(frmInputBox.returnValue);
|
||||
AddAvailablePanels();
|
||||
cbPanels.SelectedItem = frmInputBox.returnValue;
|
||||
cbPanels.Focus();
|
||||
}
|
||||
var dr = frmInputBox.ShowDialog();
|
||||
if (dr != DialogResult.OK || string.IsNullOrEmpty(frmInputBox.returnValue)) return;
|
||||
_panelAdder.AddPanel(frmInputBox.returnValue);
|
||||
AddAvailablePanels();
|
||||
cbPanels.SelectedItem = frmInputBox.returnValue;
|
||||
cbPanels.Focus();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
1
mRemoteV1/UI/Forms/frmMain.Designer.cs
generated
1
mRemoteV1/UI/Forms/frmMain.Designer.cs
generated
@@ -191,6 +191,7 @@ namespace mRemoteNG.UI.Forms
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
|
||||
this.ClientSize = new System.Drawing.Size(1129, 571);
|
||||
this.Controls.Add(this.tsContainer);
|
||||
this.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
|
||||
this.MainMenuStrip = this.msMain;
|
||||
this.MinimumSize = new System.Drawing.Size(400, 400);
|
||||
|
||||
5
mRemoteV1/UI/Forms/frmOptions.Designer.cs
generated
5
mRemoteV1/UI/Forms/frmOptions.Designer.cs
generated
@@ -135,7 +135,7 @@
|
||||
this.PageName.ImageAspectName = "IconImage";
|
||||
this.PageName.IsEditable = false;
|
||||
//
|
||||
// frmOptions
|
||||
// FrmOptions
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
|
||||
@@ -146,11 +146,12 @@
|
||||
this.Controls.Add(this.lstOptionPages);
|
||||
this.Controls.Add(this.splitter1);
|
||||
this.Controls.Add(this.pnlBottom);
|
||||
this.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Fixed3D;
|
||||
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
|
||||
this.MaximizeBox = false;
|
||||
this.MinimizeBox = false;
|
||||
this.Name = "frmOptions";
|
||||
this.Name = "FrmOptions";
|
||||
this.ShowInTaskbar = false;
|
||||
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
|
||||
this.Text = "mRemoteNG Options";
|
||||
|
||||
@@ -3,7 +3,6 @@ using System.Diagnostics;
|
||||
using System.Windows.Forms;
|
||||
using mRemoteNG.App;
|
||||
using mRemoteNG.App.Info;
|
||||
using mRemoteNG.Connection;
|
||||
|
||||
namespace mRemoteNG.UI.Menu
|
||||
{
|
||||
|
||||
@@ -445,15 +445,13 @@ namespace mRemoteNG.UI.Menu
|
||||
if (Runtime.WindowList == null || Runtime.WindowList.Count == 0) return;
|
||||
foreach (BaseWindow window in Runtime.WindowList)
|
||||
{
|
||||
var connectionWindow = window as ConnectionWindow;
|
||||
if (connectionWindow == null)
|
||||
if (!(window is ConnectionWindow connectionWindow))
|
||||
return;
|
||||
|
||||
var icList = new List<InterfaceControl>();
|
||||
foreach (Crownwood.Magic.Controls.TabPage tab in connectionWindow.TabController.TabPages)
|
||||
{
|
||||
var tag = tab.Tag as InterfaceControl;
|
||||
if (tag != null)
|
||||
if (tab.Tag is InterfaceControl tag)
|
||||
{
|
||||
icList.Add(tag);
|
||||
}
|
||||
|
||||
@@ -158,8 +158,7 @@ namespace mRemoteNG.UI.Menu
|
||||
//
|
||||
_mMenViewJumpToConnectionsConfig.Image = Resources.Root;
|
||||
_mMenViewJumpToConnectionsConfig.Name = "mMenViewJumpToConnectionsConfig";
|
||||
_mMenViewJumpToConnectionsConfig.ShortcutKeys = ((Keys)(((Keys.Control | Keys.Alt)
|
||||
| Keys.C)));
|
||||
_mMenViewJumpToConnectionsConfig.ShortcutKeys = Keys.Control | Keys.Alt | Keys.C;
|
||||
_mMenViewJumpToConnectionsConfig.Size = new System.Drawing.Size(258, 22);
|
||||
_mMenViewJumpToConnectionsConfig.Text = Language.strMenuConnectionsAndConfig;
|
||||
_mMenViewJumpToConnectionsConfig.Click += mMenViewJumpToConnectionsConfig_Click;
|
||||
@@ -168,8 +167,7 @@ namespace mRemoteNG.UI.Menu
|
||||
//
|
||||
_mMenViewJumpToErrorsInfos.Image = Resources.InformationSmall;
|
||||
_mMenViewJumpToErrorsInfos.Name = "mMenViewJumpToErrorsInfos";
|
||||
_mMenViewJumpToErrorsInfos.ShortcutKeys = ((Keys)(((Keys.Control | Keys.Alt)
|
||||
| Keys.E)));
|
||||
_mMenViewJumpToErrorsInfos.ShortcutKeys = Keys.Control | Keys.Alt | Keys.E;
|
||||
_mMenViewJumpToErrorsInfos.Size = new System.Drawing.Size(258, 22);
|
||||
_mMenViewJumpToErrorsInfos.Text = Language.strMenuNotifications;
|
||||
_mMenViewJumpToErrorsInfos.Click += mMenViewJumpToErrorsInfos_Click;
|
||||
|
||||
@@ -97,9 +97,9 @@ namespace mRemoteNG.UI.Panels
|
||||
{
|
||||
var conW = (ConnectionWindow)((ToolStripMenuItem)sender).Tag;
|
||||
var nTitle = "";
|
||||
using (FrmInputBox frmInputBox = new FrmInputBox(Language.strNewTitle, Language.strNewTitle + ":", ref nTitle))
|
||||
using (var frmInputBox = new FrmInputBox(Language.strNewTitle, Language.strNewTitle + ":", ref nTitle))
|
||||
{
|
||||
DialogResult dr = frmInputBox.ShowDialog();
|
||||
var dr = frmInputBox.ShowDialog();
|
||||
if (dr == DialogResult.OK && string.IsNullOrEmpty(frmInputBox.returnValue))
|
||||
conW.SetFormText(frmInputBox.returnValue);
|
||||
}
|
||||
@@ -146,8 +146,7 @@ namespace mRemoteNG.UI.Panels
|
||||
if (tagEnumeration == null) return;
|
||||
foreach (var obj in tagEnumeration)
|
||||
{
|
||||
var screen1 = obj as Screen;
|
||||
if (screen1 != null)
|
||||
if (obj is Screen screen1)
|
||||
{
|
||||
screen = screen1;
|
||||
}
|
||||
|
||||
@@ -28,7 +28,13 @@ namespace mRemoteNG.UI.TaskDialog
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
components = new System.ComponentModel.Container();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// CommandButton
|
||||
//
|
||||
this.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
123
mRemoteV1/UI/TaskDialog/CommandButton.resx
Normal file
123
mRemoteV1/UI/TaskDialog/CommandButton.resx
Normal file
@@ -0,0 +1,123 @@
|
||||
<?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>
|
||||
<metadata name="$this.TrayLargeIcon" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>False</value>
|
||||
</metadata>
|
||||
</root>
|
||||
@@ -32,11 +32,20 @@ namespace mRemoteNG.UI.TaskDialog
|
||||
public ESysIcons MainIcon { get; set; } = ESysIcons.Question;
|
||||
public ESysIcons FooterIcon { get; set; } = ESysIcons.Warning;
|
||||
|
||||
public string Title { get { return Text; } set { Text = value; } }
|
||||
public string MainInstruction { get { return _mainInstruction; } set { _mainInstruction = value; Invalidate(); } }
|
||||
public string Content { get { return lbContent.Text; } set { lbContent.Text = value; } }
|
||||
public string ExpandedInfo { get { return lbExpandedInfo.Text; } set { lbExpandedInfo.Text = value; } }
|
||||
public string Footer { get { return lbFooter.Text; } set { lbFooter.Text = value; } }
|
||||
public string Title { get => Text;
|
||||
set => Text = value;
|
||||
}
|
||||
public string MainInstruction { get => _mainInstruction;
|
||||
set { _mainInstruction = value; Invalidate(); } }
|
||||
public string Content { get => lbContent.Text;
|
||||
set => lbContent.Text = value;
|
||||
}
|
||||
public string ExpandedInfo { get => lbExpandedInfo.Text;
|
||||
set => lbExpandedInfo.Text = value;
|
||||
}
|
||||
public string Footer { get => lbFooter.Text;
|
||||
set => lbFooter.Text = value;
|
||||
}
|
||||
public int DefaultButtonIndex { get; set; }
|
||||
|
||||
public string RadioButtons { get; set; } = "";
|
||||
@@ -57,8 +66,12 @@ namespace mRemoteNG.UI.TaskDialog
|
||||
|
||||
public ETaskDialogButtons Buttons { get; set; } = ETaskDialogButtons.YesNoCancel;
|
||||
|
||||
public string VerificationText { get { return cbVerify.Text; } set { cbVerify.Text = value; } }
|
||||
public bool VerificationCheckBoxChecked { get { return cbVerify.Checked; } set { cbVerify.Checked = value; } }
|
||||
public string VerificationText { get => cbVerify.Text;
|
||||
set => cbVerify.Text = value;
|
||||
}
|
||||
public bool VerificationCheckBoxChecked { get => cbVerify.Checked;
|
||||
set => cbVerify.Checked = value;
|
||||
}
|
||||
|
||||
private bool Expanded { get; set; }
|
||||
|
||||
@@ -123,7 +136,7 @@ namespace mRemoteNG.UI.TaskDialog
|
||||
formHeight += pnlMainInstruction.Height;
|
||||
|
||||
// Setup Content
|
||||
pnlContent.Visible = (Content != "");
|
||||
pnlContent.Visible = Content != "";
|
||||
if (Content != "")
|
||||
{
|
||||
AdjustLabelHeight(lbContent);
|
||||
@@ -131,7 +144,7 @@ namespace mRemoteNG.UI.TaskDialog
|
||||
formHeight += pnlContent.Height;
|
||||
}
|
||||
|
||||
var showVerifyCheckbox = (cbVerify.Text != "");
|
||||
var showVerifyCheckbox = cbVerify.Text != "";
|
||||
cbVerify.Visible = showVerifyCheckbox;
|
||||
|
||||
// Setup Expanded Info and Buttons panels
|
||||
@@ -147,8 +160,8 @@ namespace mRemoteNG.UI.TaskDialog
|
||||
AdjustLabelHeight(lbExpandedInfo);
|
||||
pnlExpandedInfo.Height = lbExpandedInfo.Height + _display.ScaleHeight(4);
|
||||
pnlExpandedInfo.Visible = Expanded;
|
||||
lbShowHideDetails.Text = (Expanded ? " Hide details" : " Show details");
|
||||
lbShowHideDetails.ImageIndex = (Expanded ? 0 : 3);
|
||||
lbShowHideDetails.Text = Expanded ? " Hide details" : " Show details";
|
||||
lbShowHideDetails.ImageIndex = Expanded ? 0 : 3;
|
||||
if (!showVerifyCheckbox)
|
||||
pnlButtons.Height = _display.ScaleHeight(40);
|
||||
if (Expanded)
|
||||
@@ -156,19 +169,18 @@ namespace mRemoteNG.UI.TaskDialog
|
||||
}
|
||||
|
||||
// Setup RadioButtons
|
||||
pnlRadioButtons.Visible = (RadioButtons != "");
|
||||
pnlRadioButtons.Visible = RadioButtons != "";
|
||||
if (RadioButtons != "")
|
||||
{
|
||||
var arr = RadioButtons.Split('|');
|
||||
var pnlHeight = _display.ScaleHeight(12);
|
||||
for (var i = 0; i < arr.Length; i++)
|
||||
{
|
||||
var rb = new NGRadioButton();
|
||||
rb.Parent = pnlRadioButtons;
|
||||
rb.Location = new Point(_display.ScaleWidth(60), _display.ScaleHeight(4) + (i * rb.Height));
|
||||
var rb = new NGRadioButton {Parent = pnlRadioButtons};
|
||||
rb.Location = new Point(_display.ScaleWidth(60), _display.ScaleHeight(4) + i * rb.Height);
|
||||
rb.Text = arr[i];
|
||||
rb.Tag = i;
|
||||
rb.Checked = (DefaultButtonIndex == i);
|
||||
rb.Checked = DefaultButtonIndex == i;
|
||||
rb.Width = Width - rb.Left - _display.ScaleWidth(15);
|
||||
pnlHeight += rb.Height;
|
||||
_radioButtonCtrls.Add(rb);
|
||||
@@ -178,7 +190,7 @@ namespace mRemoteNG.UI.TaskDialog
|
||||
}
|
||||
|
||||
// Setup CommandButtons
|
||||
pnlCommandButtons.Visible = (CommandButtons != "");
|
||||
pnlCommandButtons.Visible = CommandButtons != "";
|
||||
if (CommandButtons != "")
|
||||
{
|
||||
var arr = CommandButtons.Split('|');
|
||||
@@ -186,9 +198,10 @@ namespace mRemoteNG.UI.TaskDialog
|
||||
var pnlHeight = _display.ScaleHeight(16);
|
||||
for (var i = 0; i < arr.Length; i++)
|
||||
{
|
||||
var btn = new CommandButton();
|
||||
btn.Parent = pnlCommandButtons;
|
||||
btn.Location = new Point(_display.ScaleWidth(50), t);
|
||||
var btn = new CommandButton
|
||||
{
|
||||
Parent = pnlCommandButtons, Location = new Point(_display.ScaleWidth(50), t)
|
||||
};
|
||||
if (_isVista) // <- tweak font if vista
|
||||
btn.Font = new Font(btn.Font, FontStyle.Regular);
|
||||
btn.Text = arr[i];
|
||||
@@ -266,17 +279,17 @@ namespace mRemoteNG.UI.TaskDialog
|
||||
throw new ArgumentOutOfRangeException();
|
||||
}
|
||||
|
||||
ControlBox = (Buttons == ETaskDialogButtons.Cancel ||
|
||||
Buttons == ETaskDialogButtons.Close ||
|
||||
Buttons == ETaskDialogButtons.OkCancel ||
|
||||
Buttons == ETaskDialogButtons.YesNoCancel);
|
||||
ControlBox = Buttons == ETaskDialogButtons.Cancel ||
|
||||
Buttons == ETaskDialogButtons.Close ||
|
||||
Buttons == ETaskDialogButtons.OkCancel ||
|
||||
Buttons == ETaskDialogButtons.YesNoCancel;
|
||||
|
||||
if (!showVerifyCheckbox && ExpandedInfo == "" && Buttons == ETaskDialogButtons.None)
|
||||
pnlButtons.Visible = false;
|
||||
else
|
||||
formHeight += pnlButtons.Height;
|
||||
|
||||
pnlFooter.Visible = (Footer != "");
|
||||
pnlFooter.Visible = Footer != "";
|
||||
if (Footer != "")
|
||||
{
|
||||
AdjustLabelHeight(lbFooter);
|
||||
@@ -392,25 +405,25 @@ namespace mRemoteNG.UI.TaskDialog
|
||||
//--------------------------------------------------------------------------------
|
||||
private void lbDetails_MouseEnter(object sender, EventArgs e)
|
||||
{
|
||||
lbShowHideDetails.ImageIndex = (Expanded ? 1 : 4);
|
||||
lbShowHideDetails.ImageIndex = Expanded ? 1 : 4;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------
|
||||
private void lbDetails_MouseLeave(object sender, EventArgs e)
|
||||
{
|
||||
lbShowHideDetails.ImageIndex = (Expanded ? 0 : 3);
|
||||
lbShowHideDetails.ImageIndex = Expanded ? 0 : 3;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------
|
||||
private void lbDetails_MouseUp(object sender, MouseEventArgs e)
|
||||
{
|
||||
lbShowHideDetails.ImageIndex = (Expanded ? 1 : 4);
|
||||
lbShowHideDetails.ImageIndex = Expanded ? 1 : 4;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------
|
||||
private void lbDetails_MouseDown(object sender, MouseEventArgs e)
|
||||
{
|
||||
lbShowHideDetails.ImageIndex = (Expanded ? 2 : 5);
|
||||
lbShowHideDetails.ImageIndex = Expanded ? 2 : 5;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------
|
||||
@@ -418,7 +431,7 @@ namespace mRemoteNG.UI.TaskDialog
|
||||
{
|
||||
Expanded = !Expanded;
|
||||
pnlExpandedInfo.Visible = Expanded;
|
||||
lbShowHideDetails.Text = (Expanded ? " Hide details" : " Show details");
|
||||
lbShowHideDetails.Text = Expanded ? " Hide details" : " Show details";
|
||||
if (Expanded)
|
||||
Height += pnlExpandedInfo.Height;
|
||||
else
|
||||
|
||||
@@ -29,7 +29,7 @@ namespace mRemoteNG.UI.Window
|
||||
}
|
||||
#endregion
|
||||
|
||||
internal new void ApplyTheme()
|
||||
internal void ApplyTheme()
|
||||
{
|
||||
_themeManager = ThemeManager.getInstance();
|
||||
if (!_themeManager.ThemingActive) return;
|
||||
@@ -37,21 +37,34 @@ namespace mRemoteNG.UI.Window
|
||||
ForeColor = _themeManager.ActiveTheme.ExtendedPalette.getColor("Dialog_Foreground");
|
||||
}
|
||||
|
||||
|
||||
|
||||
#region Private Methods
|
||||
/*
|
||||
private void Base_Load(object sender, EventArgs e)
|
||||
{
|
||||
FrmMain.Default.ShowHidePanelTabs();
|
||||
}
|
||||
*/
|
||||
|
||||
/*
|
||||
private void Base_FormClosed(object sender, System.Windows.Forms.FormClosedEventArgs e)
|
||||
{
|
||||
FrmMain.Default.ShowHidePanelTabs(this);
|
||||
}
|
||||
*/
|
||||
/*
|
||||
private void Base_Load(object sender, EventArgs e)
|
||||
{
|
||||
FrmMain.Default.ShowHidePanelTabs();
|
||||
}
|
||||
*/
|
||||
|
||||
/*
|
||||
private void Base_FormClosed(object sender, System.Windows.Forms.FormClosedEventArgs e)
|
||||
{
|
||||
FrmMain.Default.ShowHidePanelTabs(this);
|
||||
}
|
||||
*/
|
||||
#endregion
|
||||
}
|
||||
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// BaseWindow
|
||||
//
|
||||
this.ClientSize = new System.Drawing.Size(284, 261);
|
||||
this.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||
this.Name = "BaseWindow";
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
120
mRemoteV1/UI/Window/BaseWindow.resx
Normal file
120
mRemoteV1/UI/Window/BaseWindow.resx
Normal file
@@ -0,0 +1,120 @@
|
||||
<?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>
|
||||
</root>
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user