Added more custo controls, external tools window list redesigned, external tools window finished

This commit is contained in:
CamAlvar
2017-07-18 09:43:30 -05:00
parent 9225df85da
commit a3894323db
16 changed files with 920 additions and 447 deletions

View File

@@ -168,6 +168,87 @@ namespace mRemoteNG {
}
}
/// <summary>
/// Looks up a localized string similar to /Themes/Theme/Category[@Name=&apos;CommonControls&apos;]/Color[@Name=&apos;CheckBoxBackground&apos;]/Background/@Source.
/// </summary>
internal static string CheckBox_Background {
get {
return ResourceManager.GetString("CheckBox_Background", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to /Themes/Theme/Category[@Name=&apos;CommonControls&apos;]/Color[@Name=&apos;CheckBoxBorder&apos;]/Background/@Source.
/// </summary>
internal static string CheckBox_Border {
get {
return ResourceManager.GetString("CheckBox_Border", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to /Themes/Theme/Category[@Name=&apos;CommonControls&apos;]/Color[@Name=&apos;CheckBoxBorderDisabled&apos;]/Background/@Source.
/// </summary>
internal static string CheckBox_Border_Disabled {
get {
return ResourceManager.GetString("CheckBox_Border_Disabled", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to /Themes/Theme/Category[@Name=&apos;CommonControls&apos;]/Color[@Name=&apos;CheckBoxBorderHover&apos;]/Background/@Source.
/// </summary>
internal static string CheckBox_Border_Hover {
get {
return ResourceManager.GetString("CheckBox_Border_Hover", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to /Themes/Theme/Category[@Name=&apos;CommonControls&apos;]/Color[@Name=&apos;CheckBoxBorderPressed&apos;]/Background/@Source.
/// </summary>
internal static string CheckBox_Border_Pressed {
get {
return ResourceManager.GetString("CheckBox_Border_Pressed", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to /Themes/Theme/Category[@Name=&apos;CommonControls&apos;]/Color[@Name=&apos;CheckBoxGlyph&apos;]/Background/@Source.
/// </summary>
internal static string CheckBox_Glyph {
get {
return ResourceManager.GetString("CheckBox_Glyph", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to /Themes/Theme/Category[@Name=&apos;CommonControls&apos;]/Color[@Name=&apos;CheckBoxGlyphDisabled&apos;]/Background/@Source.
/// </summary>
internal static string CheckBox_Glyph_Disabled {
get {
return ResourceManager.GetString("CheckBox_Glyph_Disabled", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to /Themes/Theme/Category[@Name=&apos;CommonControls&apos;]/Color[@Name=&apos;CheckBoxText&apos;]/Background/@Source.
/// </summary>
internal static string CheckBox_Text {
get {
return ResourceManager.GetString("CheckBox_Text", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to /Themes/Theme/Category[@Name=&apos;CommonControls&apos;]/Color[@Name=&apos;CheckBoxTextDisabled&apos;]/Background/@Source.
/// </summary>
internal static string CheckBox_Text_Disabled {
get {
return ResourceManager.GetString("CheckBox_Text_Disabled", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to /Themes/Theme/Category[@Name=&apos;Text Editor Text Marker Items&apos;]/Color[@Name=&apos;compiler error&apos;]/Background/@Source.
/// </summary>
@@ -186,6 +267,60 @@ namespace mRemoteNG {
}
}
/// <summary>
/// Looks up a localized string similar to /Themes/Theme/Category[@Name=&apos;CommonControls&apos;]/Color[@Name=&apos;InnerTabActiveBackground&apos;]/Background/@Source.
/// </summary>
internal static string GroupBox_Backgorund {
get {
return ResourceManager.GetString("GroupBox_Backgorund", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to /Themes/Theme/Category[@Name=&apos;CommonControls&apos;]/Color[@Name=&apos;InnerTabInactiveBackground&apos;]/Background/@Source.
/// </summary>
internal static string GroupBox_Disabled_Background {
get {
return ResourceManager.GetString("GroupBox_Disabled_Background", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to /Themes/Theme/Category[@Name=&apos;CommonControls&apos;]/Color[@Name=&apos;InnerTabInactiveText&apos;]/Background/@Source.
/// </summary>
internal static string GroupBox_Disabled_Foreground {
get {
return ResourceManager.GetString("GroupBox_Disabled_Foreground", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to /Themes/Theme/Category[@Name=&apos;CommonControls&apos;]/Color[@Name=&apos;InnerTabInactiveBorder&apos;]/Background/@Source.
/// </summary>
internal static string GroupBox_Disabled_Line {
get {
return ResourceManager.GetString("GroupBox_Disabled_Line", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to /Themes/Theme/Category[@Name=&apos;CommonControls&apos;]/Color[@Name=&apos;InnerTabActiveText&apos;]/Background/@Source.
/// </summary>
internal static string GroupBox_Foreground {
get {
return ResourceManager.GetString("GroupBox_Foreground", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to /Themes/Theme/Category[@Name=&apos;CommonControls&apos;]/Color[@Name=&apos;InnerTabActiveBorder&apos;]/Background/@Source.
/// </summary>
internal static string GroupBox_Line {
get {
return ResourceManager.GetString("GroupBox_Line", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to /Themes/Theme/Category[@Name=&apos;Cider&apos;]/Color[@Name=&apos;ListBackground&apos;]/Background/@Source.
/// </summary>

View File

@@ -153,12 +153,57 @@
<data name="Button_Pressed_Foreground" xml:space="preserve">
<value>/Themes/Theme/Category[@Name='CommonControls']/Color[@Name='ButtonPressed']/Foreground/@Source</value>
</data>
<data name="CheckBox_Background" xml:space="preserve">
<value>/Themes/Theme/Category[@Name='CommonControls']/Color[@Name='CheckBoxBackground']/Background/@Source</value>
</data>
<data name="CheckBox_Border" xml:space="preserve">
<value>/Themes/Theme/Category[@Name='CommonControls']/Color[@Name='CheckBoxBorder']/Background/@Source</value>
</data>
<data name="CheckBox_Border_Disabled" xml:space="preserve">
<value>/Themes/Theme/Category[@Name='CommonControls']/Color[@Name='CheckBoxBorderDisabled']/Background/@Source</value>
</data>
<data name="CheckBox_Border_Hover" xml:space="preserve">
<value>/Themes/Theme/Category[@Name='CommonControls']/Color[@Name='CheckBoxBorderHover']/Background/@Source</value>
</data>
<data name="CheckBox_Border_Pressed" xml:space="preserve">
<value>/Themes/Theme/Category[@Name='CommonControls']/Color[@Name='CheckBoxBorderPressed']/Background/@Source</value>
</data>
<data name="CheckBox_Glyph" xml:space="preserve">
<value>/Themes/Theme/Category[@Name='CommonControls']/Color[@Name='CheckBoxGlyph']/Background/@Source</value>
</data>
<data name="CheckBox_Glyph_Disabled" xml:space="preserve">
<value>/Themes/Theme/Category[@Name='CommonControls']/Color[@Name='CheckBoxGlyphDisabled']/Background/@Source</value>
</data>
<data name="CheckBox_Text" xml:space="preserve">
<value>/Themes/Theme/Category[@Name='CommonControls']/Color[@Name='CheckBoxText']/Background/@Source</value>
</data>
<data name="CheckBox_Text_Disabled" xml:space="preserve">
<value>/Themes/Theme/Category[@Name='CommonControls']/Color[@Name='CheckBoxTextDisabled']/Background/@Source</value>
</data>
<data name="ErrorText_Background" xml:space="preserve">
<value>/Themes/Theme/Category[@Name='Text Editor Text Marker Items']/Color[@Name='compiler error']/Background/@Source</value>
</data>
<data name="ErrorText_Foreground" xml:space="preserve">
<value>/Themes/Theme/Category[@Name='Text Editor Text Marker Items']/Color[@Name='compiler error']/Foreground/@Source</value>
</data>
<data name="GroupBox_Backgorund" xml:space="preserve">
<value>/Themes/Theme/Category[@Name='CommonControls']/Color[@Name='InnerTabActiveBackground']/Background/@Source</value>
</data>
<data name="GroupBox_Disabled_Background" xml:space="preserve">
<value>/Themes/Theme/Category[@Name='CommonControls']/Color[@Name='InnerTabInactiveBackground']/Background/@Source</value>
</data>
<data name="GroupBox_Disabled_Foreground" xml:space="preserve">
<value>/Themes/Theme/Category[@Name='CommonControls']/Color[@Name='InnerTabInactiveText']/Background/@Source</value>
</data>
<data name="GroupBox_Disabled_Line" xml:space="preserve">
<value>/Themes/Theme/Category[@Name='CommonControls']/Color[@Name='InnerTabInactiveBorder']/Background/@Source</value>
</data>
<data name="GroupBox_Foreground" xml:space="preserve">
<value>/Themes/Theme/Category[@Name='CommonControls']/Color[@Name='InnerTabActiveText']/Background/@Source</value>
</data>
<data name="GroupBox_Line" xml:space="preserve">
<value>/Themes/Theme/Category[@Name='CommonControls']/Color[@Name='InnerTabActiveBorder']/Background/@Source</value>
</data>
<data name="List_Background" xml:space="preserve">
<value>/Themes/Theme/Category[@Name='Cider']/Color[@Name='ListBackground']/Background/@Source</value>
</data>

View File

@@ -614,8 +614,8 @@
<Foreground Type="CT_RAW" Source="FFFFFFFF" />
</Color>
<Color Name="ListHeader">
<Background Type="CT_RAW" Source="FF464A4D" />
<Foreground Type="CT_RAW" Source="FFBBBBBB" />
<Background Type="CT_RAW" Source="FF44475A" />
<Foreground Type="CT_RAW" Source="FF7BFA50" />
</Color>
<Color Name="Dialog">
<Background Type="CT_RAW" Source="FF464A4D" />
@@ -661,7 +661,7 @@
<Background Type="CT_RAW" Source="FF999999" />
</Color>
<Color Name="ListBackground">
<Background Type="CT_RAW" Source="FFFFFFFF" />
<Background Type="CT_RAW" Source="FF282A36" />
</Color>
<Color Name="Toolbar">
<Background Type="CT_RAW" Source="FF464A4D" />
@@ -2550,7 +2550,7 @@
<Background Type="CT_RAW" Source="FF4B6EAF" />
</Color>
<Color Name="ButtonPressed">
<Background Type="CT_RAW" Source="FF007ACC" />
<Background Type="CT_RAW" Source="FF6272A4" />
<Foreground Type="CT_RAW" Source="FFBBBBBB" />
</Color>
<Color Name="ButtonBorderPressed">
@@ -2611,10 +2611,10 @@
<Background Type="CT_RAW" Source="FF999999" />
</Color>
<Color Name="CheckBoxBorderHover">
<Background Type="CT_RAW" Source="FF4B6EAF" />
<Background Type="CT_RAW" Source="FFFF79C6" />
</Color>
<Color Name="CheckBoxBorderPressed">
<Background Type="CT_RAW" Source="FF4B6EAF" />
<Background Type="CT_RAW" Source="FF44475A" />
</Color>
<Color Name="CheckBoxBorderDisabled">
<Background Type="CT_RAW" Source="FF474B4F" />
@@ -2623,7 +2623,7 @@
<Background Type="CT_RAW" Source="FF4B6EAF" />
</Color>
<Color Name="CheckBoxGlyph">
<Background Type="CT_RAW" Source="FFBBBBBB" />
<Background Type="CT_RAW" Source="FFFF79C6" />
</Color>
<Color Name="CheckBoxGlyphHover">
<Background Type="CT_RAW" Source="FFBBBBBB" />
@@ -2758,10 +2758,10 @@
<Background Type="CT_RAW" Source="FF3E3E40" />
</Color>
<Color Name="InnerTabActiveBorder">
<Background Type="CT_RAW" Source="FF3E3E40" />
<Background Type="CT_RAW" Source="FFF993BD" />
</Color>
<Color Name="InnerTabActiveText">
<Background Type="CT_RAW" Source="FFBBBBBB" />
<Background Type="CT_RAW" Source="FFF993BD" />
</Color>
<Color Name="InnerTabInactiveBackground">
<Background Type="CT_RAW" Source="FF3C3F41" />
@@ -8049,7 +8049,7 @@
<Foreground Type="CT_RAW" Source="FF424242" />
</Color>
<Color Name="ListItemForeground">
<Background Type="CT_RAW" Source="FFF1F1F1" />
<Background Type="CT_RAW" Source="FFF993BD" />
</Color>
<Color Name="ListItemDisabledForeground">
<Background Type="CT_RAW" Source="FF666666" />

View File

@@ -24,7 +24,7 @@
</Color>
<Color Name="AIGrayText">
<Background Type="CT_RAW" Source="FF555555" />
</Color>
</Color>
<Color Name="Success">
<Background Type="CT_RAW" Source="FF008000" />
</Color>

View File

@@ -721,7 +721,7 @@
<Background Type="CT_RAW" Source="FF007ACC" />
</Color>
<Color Name="ButtonHover">
<Background Type="CT_RAW" Source="FF3F3F46" />
<Background Type="CT_RAW" Source="FF585862" />
<Foreground Type="CT_RAW" Source="FFF1F1F1" />
</Color>
<Color Name="ButtonBorderHover">

View File

@@ -44,7 +44,6 @@ namespace mRemoteNG.Themes
string colorName = entry.Key.ToString();
String xmlQueryPath = (String)entry.Value;
XmlNodeList colorNodeList = _xml.DocumentElement.FirstChild.SelectNodes(xmlQueryPath);
//XmlNodeList colorNodeList = _xml.SelectNodes("/Themes/Theme/Category[@Name='Cider']/Color[@Name='ListItemSelectedBorder']/Background/@Source");
String color = colorNodeList.Count > 0 ? colorNodeList[0].Value : null;
if (color != null )
{

View File

@@ -1,6 +1,8 @@
using mRemoteNG.Themes;
using System.ComponentModel;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Drawing.Text;
using System.Windows.Forms;
namespace mRemoteNG.UI.Controls.Base
@@ -54,8 +56,11 @@ namespace mRemoteNG.UI.Controls.Base
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
if (DesignMode) return;
if (DesignMode)
{
base.OnPaint(e);
return;
}
Color back;
Color fore;
Color border;
@@ -89,6 +94,8 @@ namespace mRemoteNG.UI.Controls.Base
}
e.Graphics.FillRectangle(new SolidBrush(back), e.ClipRectangle);
e.Graphics.DrawRectangle(new Pen(border, 1), 0, 0, base.Width - 1, base.Height - 1);
e.Graphics.SmoothingMode = SmoothingMode.AntiAlias;
e.Graphics.TextRenderingHint = TextRenderingHint.AntiAlias;
TextRenderer.DrawText(e.Graphics, this.Text, Font, ClientRectangle, fore, TextFormatFlags.HorizontalCenter | TextFormatFlags.VerticalCenter);
}
}

View File

@@ -0,0 +1,122 @@
using mRemoteNG.Themes;
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Drawing.Text;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace mRemoteNG.UI.Controls.Base
{
class NGCheckBox : CheckBox
{
private ThemeManager _themeManager;
public enum MouseState
{
HOVER,
DOWN,
OUT
}
public MouseState _mice { get; set; }
protected override void OnCreateControl()
{
base.OnCreateControl();
if (DesignMode) return;
_themeManager = ThemeManager.getInstance();
_mice = MouseState.OUT;
MouseEnter += (sender, args) =>
{
_mice = MouseState.HOVER;
Invalidate();
};
MouseLeave += (sender, args) =>
{
_mice = MouseState.OUT;
Invalidate();
};
MouseDown += (sender, args) =>
{
if (args.Button == MouseButtons.Left)
{
_mice = MouseState.DOWN;
Invalidate();
}
};
MouseUp += (sender, args) =>
{
_mice = MouseState.OUT;
Invalidate();
};
}
protected override void OnPaint(PaintEventArgs e)
{
if (DesignMode)
{
base.OnPaint(e);
return;
}
//Get the colors
Color back;
Color fore;
Color glyph;
Color checkBack;
Color checkBorder;
back = _themeManager.ActiveTheme.ExtendedPalette.getColor("CheckBox_Background");
if (Enabled)
{
glyph = _themeManager.ActiveTheme.ExtendedPalette.getColor("CheckBox_Glyph");
fore = _themeManager.ActiveTheme.ExtendedPalette.getColor("CheckBox_Text");
switch (_mice)
{
case MouseState.HOVER:
checkBorder = _themeManager.ActiveTheme.ExtendedPalette.getColor("CheckBox_Border_Hover");
break;
case MouseState.DOWN:
checkBorder = _themeManager.ActiveTheme.ExtendedPalette.getColor("CheckBox_Border_Pressed");
break;
default:
checkBorder = _themeManager.ActiveTheme.ExtendedPalette.getColor("CheckBox_Border");
break;
}
}
else
{
fore = _themeManager.ActiveTheme.ExtendedPalette.getColor("CheckBox_Text_Disabled");
glyph = _themeManager.ActiveTheme.ExtendedPalette.getColor("CheckBox_Glyph_Disabled");
checkBorder = _themeManager.ActiveTheme.ExtendedPalette.getColor("CheckBox_Border_Disabled");
}
e.Graphics.Clear(Parent.BackColor);
using (Pen p = new Pen(checkBorder))
{
Rectangle boxRect = new Rectangle(0, Height / 2 - 7, 11, 11);
e.Graphics.FillRectangle(new SolidBrush(back), boxRect);
e.Graphics.DrawRectangle(p, boxRect);
}
if (Checked)
{
e.Graphics.DrawString("ü", new Font("Wingdings", 9f), new SolidBrush(glyph), -1, 1);
}
Rectangle textRect = new Rectangle(16, 0, Width - 16, Height);
TextRenderer.DrawText(e.Graphics, Text, Font, textRect, fore, Parent.BackColor, TextFormatFlags.PathEllipsis);
}
}
}

View File

@@ -0,0 +1,84 @@
using mRemoteNG.Themes;
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Windows.Forms.VisualStyles;
namespace mRemoteNG.UI.Controls.Base
{
//Groupbox is colored using the innerTab colors as the vstheme doesnt have explicit groupbox palettes (at least completes)
class NGGroupBox : GroupBox
{
private ThemeManager _themeManager;
protected override void OnCreateControl()
{
base.OnCreateControl();
if (DesignMode) return;
_themeManager = ThemeManager.getInstance();
}
protected override void OnPaint(PaintEventArgs e)
{
if (DesignMode)
{
base.OnPaint(e);
return;
}
//Reusing the textbox colors
Color titleColor = _themeManager.ActiveTheme.ExtendedPalette.getColor("GroupBox_Foreground");
Color backColor = _themeManager.ActiveTheme.ExtendedPalette.getColor("GroupBox_Backgorund");
Color lineColor = _themeManager.ActiveTheme.ExtendedPalette.getColor("GroupBox_Line");
if (!Enabled)
{
titleColor = _themeManager.ActiveTheme.ExtendedPalette.getColor("GroupBox_Disabled_Foreground");
backColor = _themeManager.ActiveTheme.ExtendedPalette.getColor("GroupBox_Disabled_Background");
lineColor = _themeManager.ActiveTheme.ExtendedPalette.getColor("GroupBox_Disabled_Line");
}
GroupBoxState state = base.Enabled ? GroupBoxState.Normal : GroupBoxState.Disabled;
TextFormatFlags flags = TextFormatFlags.PreserveGraphicsTranslateTransform | TextFormatFlags.PreserveGraphicsClipping | TextFormatFlags.TextBoxControl |TextFormatFlags.WordBreak;
if (!this.ShowKeyboardCues)
flags |= TextFormatFlags.HidePrefix;
if (this.RightToLeft == RightToLeft.Yes)
flags |= TextFormatFlags.RightToLeft | TextFormatFlags.Right;
Rectangle bounds = new Rectangle(0, 0, base.Width, base.Height);
Rectangle rectangle = bounds;
rectangle.Width -= 8;
Size size = TextRenderer.MeasureText(e.Graphics, Text, Font, new Size(rectangle.Width, rectangle.Height), flags);
rectangle.Width = size.Width;
rectangle.Height = size.Height;
if ((flags & TextFormatFlags.Right) == TextFormatFlags.Right)
rectangle.X = (bounds.Right - rectangle.Width) - 8;
else
rectangle.X += 8;
TextRenderer.DrawText(e.Graphics, Text, Font, rectangle, titleColor, flags);
if (rectangle.Width > 0)
rectangle.Inflate(2, 0);
using (var pen = new Pen(lineColor))
{
int num = bounds.Top + (Font.Height / 2);
//Left line
e.Graphics.DrawLine(pen, bounds.Left + Padding.Left , num - Padding.Top, bounds.Left + Padding.Left, bounds.Height - Padding.Bottom);
//Bottom line
e.Graphics.DrawLine(pen, bounds.Left + Padding.Left, bounds.Height - Padding.Bottom, bounds.Width -Padding.Right, bounds.Height -Padding.Bottom);
//Beside text line
e.Graphics.DrawLine(pen, bounds.Left +Padding.Left, num - Padding.Top, rectangle.X - 3, num - Padding.Top);
//Top line cutted
e.Graphics.DrawLine(pen, rectangle.X + rectangle.Width + 2, num - Padding.Top, bounds.Width - Padding.Right, num - Padding.Top);
//Right line
e.Graphics.DrawLine(pen, bounds.Width - Padding.Right, num - Padding.Top, bounds.Width - Padding.Right, bounds.Height - Padding.Bottom);
}
RaisePaintEvent(this, e);
}
}
}

View File

@@ -1,5 +1,7 @@
using mRemoteNG.Themes;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Drawing.Text;
using System.Windows.Forms;
namespace mRemoteNG.UI.Controls.Base
@@ -21,8 +23,14 @@ namespace mRemoteNG.UI.Controls.Base
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
if (DesignMode) return;
if (DesignMode)
{
base.OnPaint(e);
return;
}
e.Graphics.SmoothingMode = SmoothingMode.AntiAlias;
e.Graphics.TextRenderingHint = TextRenderingHint.AntiAlias;
if (Enabled)
{
TextRenderer.DrawText(e.Graphics, this.Text, Font, ClientRectangle, ForeColor, TextFormatFlags.Left | TextFormatFlags.VerticalCenter);

View File

@@ -0,0 +1,45 @@
using mRemoteNG.Themes;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace mRemoteNG.UI.Controls.Base
{
//This class is only minimally themed as textboxes onPaint are hard to theme (system controls most of the drawing process
class NGTextBox : TextBox
{
private ThemeManager _themeManager;
protected override void OnCreateControl()
{
base.OnCreateControl();
if (DesignMode) return;
_themeManager = ThemeManager.getInstance();
BorderStyle = BorderStyle.FixedSingle;
}
protected override void OnEnabledChanged(EventArgs e)
{
if (DesignMode) return;
_themeManager = ThemeManager.getInstance();
if (base.Enabled)
{
ForeColor = _themeManager.ActiveTheme.ExtendedPalette.getColor("TextBox_Foreground");
BackColor = _themeManager.ActiveTheme.ExtendedPalette.getColor("TextBox_Background");
}
else
{
BackColor = _themeManager.ActiveTheme.ExtendedPalette.getColor("TextBox_Disabled_Background");
}
base.OnEnabledChanged(e);
Invalidate();
}
}
}

View File

@@ -49,8 +49,8 @@ namespace mRemoteNG.UI.Forms.OptionsPages
{
base.SaveSettings();
_themeManager.SaveThemes(_themeList);
Settings.Default.ThemeName = _themeManager.ActiveTheme.Name;
//_themeManager.SaveThemes(_themeList);
//Settings.Default.ThemeName = _themeManager.ActiveTheme.Name;
Settings.Default.Save();
}

View File

@@ -4,370 +4,398 @@ namespace mRemoteNG.UI.Window
public partial class ExternalToolsWindow : BaseWindow
{
#region Windows Form Designer generated code
internal System.Windows.Forms.ColumnHeader FilenameColumnHeader;
internal System.Windows.Forms.ColumnHeader ArgumentsColumnHeader;
internal System.Windows.Forms.GroupBox PropertiesGroupBox;
internal System.Windows.Forms.TextBox DisplayNameTextBox;
internal BrightIdeasSoftware.OLVColumn FilenameColumnHeader;
internal BrightIdeasSoftware.OLVColumn DisplayNameColumnHeader;
internal BrightIdeasSoftware.OLVColumn ArgumentsColumnHeader;
internal BrightIdeasSoftware.OLVColumn WaitForExitColumnHeader;
internal BrightIdeasSoftware.OLVColumn TryToIntegrateColumnHeader;
internal Controls.Base.NGGroupBox PropertiesGroupBox;
internal Controls.Base.NGTextBox DisplayNameTextBox;
internal Controls.Base.NGLabel DisplayNameLabel;
internal System.Windows.Forms.TextBox ArgumentsCheckBox;
internal System.Windows.Forms.TextBox FilenameTextBox;
internal Controls.Base.NGTextBox ArgumentsCheckBox;
internal Controls.Base.NGTextBox FilenameTextBox;
internal Controls.Base.NGLabel ArgumentsLabel;
internal Controls.Base.NGLabel FilenameLabel;
internal Controls.Base.NGButton BrowseButton;
internal System.Windows.Forms.ColumnHeader DisplayNameColumnHeader;
internal Controls.Base.NGButton BrowseButton;
internal System.Windows.Forms.ContextMenuStrip ToolsContextMenuStrip;
private System.ComponentModel.Container components = null;
internal System.Windows.Forms.ToolStripMenuItem NewToolMenuItem;
internal System.Windows.Forms.ToolStripMenuItem DeleteToolMenuItem;
internal System.Windows.Forms.ToolStripSeparator ToolStripSeparator1;
internal System.Windows.Forms.ToolStripMenuItem LaunchToolMenuItem;
internal System.Windows.Forms.ColumnHeader WaitForExitColumnHeader;
internal System.Windows.Forms.CheckBox WaitForExitCheckBox;
internal System.Windows.Forms.ToolStripMenuItem LaunchToolMenuItem;
internal Controls.Base.NGCheckBox WaitForExitCheckBox;
internal Controls.Base.NGLabel OptionsLabel;
internal System.Windows.Forms.CheckBox TryToIntegrateCheckBox;
internal System.Windows.Forms.ColumnHeader TryToIntegrateColumnHeader;
internal System.Windows.Forms.ListView ToolsListView;
internal Controls.Base.NGCheckBox TryToIntegrateCheckBox;
internal BrightIdeasSoftware.ObjectListView ToolsListObjView;
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
this.Load += new System.EventHandler(ExternalTools_Load);
base.FormClosed += new System.Windows.Forms.FormClosedEventHandler(ExternalTools_FormClosed);
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ExternalToolsWindow));
this.ToolsListView = new System.Windows.Forms.ListView();
this.ToolsListView.SelectedIndexChanged += new System.EventHandler(this.ToolsListView_SelectedIndexChanged);
this.ToolsListView.DoubleClick += new System.EventHandler(this.ToolsListView_DoubleClick);
this.DisplayNameColumnHeader = (System.Windows.Forms.ColumnHeader) (new System.Windows.Forms.ColumnHeader());
this.FilenameColumnHeader = (System.Windows.Forms.ColumnHeader) (new System.Windows.Forms.ColumnHeader());
this.ArgumentsColumnHeader = (System.Windows.Forms.ColumnHeader) (new System.Windows.Forms.ColumnHeader());
this.WaitForExitColumnHeader = (System.Windows.Forms.ColumnHeader) (new System.Windows.Forms.ColumnHeader());
this.TryToIntegrateColumnHeader = (System.Windows.Forms.ColumnHeader) (new System.Windows.Forms.ColumnHeader());
this.ToolsContextMenuStrip = new System.Windows.Forms.ContextMenuStrip(this.components);
this.NewToolMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.NewToolMenuItem.Click += new System.EventHandler(this.NewTool_Click);
this.DeleteToolMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.DeleteToolMenuItem.Click += new System.EventHandler(this.DeleteTool_Click);
this.ToolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
this.LaunchToolMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.LaunchToolMenuItem.Click += new System.EventHandler(this.LaunchTool_Click);
this.PropertiesGroupBox = new System.Windows.Forms.GroupBox();
this.TryToIntegrateCheckBox = new System.Windows.Forms.CheckBox();
this.TryToIntegrateCheckBox.Click += new System.EventHandler(this.PropertyControl_ChangedOrLostFocus);
this.TryToIntegrateCheckBox.CheckedChanged += new System.EventHandler(this.TryToIntegrateCheckBox_CheckedChanged);
this.OptionsLabel = new Controls.Base.NGLabel();
this.WaitForExitCheckBox = new System.Windows.Forms.CheckBox();
this.WaitForExitCheckBox.LostFocus += new System.EventHandler(this.PropertyControl_ChangedOrLostFocus);
this.WaitForExitCheckBox.Click += new System.EventHandler(this.PropertyControl_ChangedOrLostFocus);
this.BrowseButton = new Controls.Base.NGButton();
this.BrowseButton.LostFocus += new System.EventHandler(this.PropertyControl_ChangedOrLostFocus);
this.BrowseButton.Click += new System.EventHandler(this.BrowseButton_Click);
this.ArgumentsCheckBox = new System.Windows.Forms.TextBox();
this.ArgumentsCheckBox.LostFocus += new System.EventHandler(this.PropertyControl_ChangedOrLostFocus);
this.FilenameTextBox = new System.Windows.Forms.TextBox();
this.FilenameTextBox.LostFocus += new System.EventHandler(this.PropertyControl_ChangedOrLostFocus);
this.DisplayNameTextBox = new System.Windows.Forms.TextBox();
this.DisplayNameTextBox.LostFocus += new System.EventHandler(this.PropertyControl_ChangedOrLostFocus);
this.ArgumentsLabel = new Controls.Base.NGLabel();
this.FilenameLabel = new UI.Controls.Base.NGLabel();
this.DisplayNameLabel = new Controls.Base.NGLabel();
this.ToolStripContainer = new System.Windows.Forms.ToolStripContainer();
this.ToolStrip = new System.Windows.Forms.ToolStrip();
this.NewToolToolstripButton = new System.Windows.Forms.ToolStripButton();
this.NewToolToolstripButton.Click += new System.EventHandler(this.NewTool_Click);
this.DeleteToolToolstripButton = new System.Windows.Forms.ToolStripButton();
this.DeleteToolToolstripButton.Click += new System.EventHandler(this.DeleteTool_Click);
this.ToolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator();
this.LaunchToolToolstripButton = new System.Windows.Forms.ToolStripButton();
this.LaunchToolToolstripButton.Click += new System.EventHandler(this.LaunchTool_Click);
this.ToolsContextMenuStrip.SuspendLayout();
this.PropertiesGroupBox.SuspendLayout();
this.ToolStripContainer.ContentPanel.SuspendLayout();
this.ToolStripContainer.TopToolStripPanel.SuspendLayout();
this.ToolStripContainer.SuspendLayout();
this.ToolStrip.SuspendLayout();
this.SuspendLayout();
//
//Theming support
//
this.components = new System.ComponentModel.Container();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ExternalToolsWindow));
this.ToolsListObjView = new BrightIdeasSoftware.ObjectListView();
this.DisplayNameColumnHeader = ((BrightIdeasSoftware.OLVColumn)(new BrightIdeasSoftware.OLVColumn()));
this.FilenameColumnHeader = ((BrightIdeasSoftware.OLVColumn)(new BrightIdeasSoftware.OLVColumn()));
this.ArgumentsColumnHeader = ((BrightIdeasSoftware.OLVColumn)(new BrightIdeasSoftware.OLVColumn()));
this.WaitForExitColumnHeader = ((BrightIdeasSoftware.OLVColumn)(new BrightIdeasSoftware.OLVColumn()));
this.TryToIntegrateColumnHeader = ((BrightIdeasSoftware.OLVColumn)(new BrightIdeasSoftware.OLVColumn()));
this.ToolsContextMenuStrip = new System.Windows.Forms.ContextMenuStrip(this.components);
this.NewToolMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.DeleteToolMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.ToolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
this.LaunchToolMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.PropertiesGroupBox = new mRemoteNG.UI.Controls.Base.NGGroupBox();
this.TryToIntegrateCheckBox = new mRemoteNG.UI.Controls.Base.NGCheckBox();
this.OptionsLabel = new mRemoteNG.UI.Controls.Base.NGLabel();
this.WaitForExitCheckBox = new mRemoteNG.UI.Controls.Base.NGCheckBox();
this.BrowseButton = new mRemoteNG.UI.Controls.Base.NGButton();
this.ArgumentsCheckBox = new mRemoteNG.UI.Controls.Base.NGTextBox();
this.FilenameTextBox = new mRemoteNG.UI.Controls.Base.NGTextBox();
this.DisplayNameTextBox = new mRemoteNG.UI.Controls.Base.NGTextBox();
this.ArgumentsLabel = new mRemoteNG.UI.Controls.Base.NGLabel();
this.FilenameLabel = new mRemoteNG.UI.Controls.Base.NGLabel();
this.DisplayNameLabel = new mRemoteNG.UI.Controls.Base.NGLabel();
this.ToolStripContainer = new System.Windows.Forms.ToolStripContainer();
this.ToolStrip = new System.Windows.Forms.ToolStrip();
this.NewToolToolstripButton = new System.Windows.Forms.ToolStripButton();
this.DeleteToolToolstripButton = new System.Windows.Forms.ToolStripButton();
this.ToolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator();
this.LaunchToolToolstripButton = new System.Windows.Forms.ToolStripButton();
this.vsToolStripExtender = new WeifenLuo.WinFormsUI.Docking.VisualStudioToolStripExtender(this.components);
//
//ToolsListView
//
this.ToolsListView.Anchor = (System.Windows.Forms.AnchorStyles) (((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right);
this.ToolsListView.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.ToolsListView.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {this.DisplayNameColumnHeader, this.FilenameColumnHeader, this.ArgumentsColumnHeader, this.WaitForExitColumnHeader, this.TryToIntegrateColumnHeader});
this.ToolsListView.ContextMenuStrip = this.ToolsContextMenuStrip;
this.ToolsListView.FullRowSelect = true;
this.ToolsListView.GridLines = true;
this.ToolsListView.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.Nonclickable;
this.ToolsListView.HideSelection = false;
this.ToolsListView.Location = new System.Drawing.Point(0, 0);
this.ToolsListView.Name = "ToolsListView";
this.ToolsListView.Size = new System.Drawing.Size(684, 157);
this.ToolsListView.Sorting = System.Windows.Forms.SortOrder.Ascending;
this.ToolsListView.TabIndex = 0;
this.ToolsListView.UseCompatibleStateImageBehavior = false;
this.ToolsListView.View = System.Windows.Forms.View.Details;
//
//DisplayNameColumnHeader
//
this.DisplayNameColumnHeader.Text = "Display Name";
this.DisplayNameColumnHeader.Width = 130;
//
//FilenameColumnHeader
//
this.FilenameColumnHeader.Text = "Filename";
this.FilenameColumnHeader.Width = 200;
//
//ArgumentsColumnHeader
//
this.ArgumentsColumnHeader.Text = "Arguments";
this.ArgumentsColumnHeader.Width = 160;
//
//WaitForExitColumnHeader
//
this.WaitForExitColumnHeader.Text = "Wait for exit";
this.WaitForExitColumnHeader.Width = 75;
//
//TryToIntegrateColumnHeader
//
this.TryToIntegrateColumnHeader.Text = "Try To Integrate";
this.TryToIntegrateColumnHeader.Width = 95;
//
//ToolsContextMenuStrip
//
this.ToolsContextMenuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {this.NewToolMenuItem, this.DeleteToolMenuItem, this.ToolStripSeparator1, this.LaunchToolMenuItem});
this.ToolsContextMenuStrip.Name = "cMenApps";
this.ToolsContextMenuStrip.Size = new System.Drawing.Size(221, 76);
//
//NewToolMenuItem
//
this.NewToolMenuItem.Image = Resources.ExtApp_Add;
this.NewToolMenuItem.Name = "NewToolMenuItem";
this.NewToolMenuItem.ShortcutKeys = (System.Windows.Forms.Keys) (System.Windows.Forms.Keys.Shift | System.Windows.Forms.Keys.F4);
this.NewToolMenuItem.Size = new System.Drawing.Size(220, 22);
this.NewToolMenuItem.Text = "New External Tool";
//
//DeleteToolMenuItem
//
this.DeleteToolMenuItem.Image = Resources.ExtApp_Delete;
this.DeleteToolMenuItem.Name = "DeleteToolMenuItem";
this.DeleteToolMenuItem.ShortcutKeys = System.Windows.Forms.Keys.Delete;
this.DeleteToolMenuItem.Size = new System.Drawing.Size(220, 22);
this.DeleteToolMenuItem.Text = "Delete External Tool...";
//
//ToolStripSeparator1
//
this.ToolStripSeparator1.Name = "ToolStripSeparator1";
this.ToolStripSeparator1.Size = new System.Drawing.Size(217, 6);
//
//LaunchToolMenuItem
//
this.LaunchToolMenuItem.Image = Resources.ExtApp_Start;
this.LaunchToolMenuItem.Name = "LaunchToolMenuItem";
this.LaunchToolMenuItem.Size = new System.Drawing.Size(220, 22);
this.LaunchToolMenuItem.Text = "Launch External Tool";
//
//PropertiesGroupBox
//
this.PropertiesGroupBox.Anchor = (System.Windows.Forms.AnchorStyles) ((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right);
this.PropertiesGroupBox.Controls.Add(this.TryToIntegrateCheckBox);
this.PropertiesGroupBox.Controls.Add(this.OptionsLabel);
this.PropertiesGroupBox.Controls.Add(this.WaitForExitCheckBox);
this.PropertiesGroupBox.Controls.Add(this.BrowseButton);
this.PropertiesGroupBox.Controls.Add(this.ArgumentsCheckBox);
this.PropertiesGroupBox.Controls.Add(this.FilenameTextBox);
this.PropertiesGroupBox.Controls.Add(this.DisplayNameTextBox);
this.PropertiesGroupBox.Controls.Add(this.ArgumentsLabel);
this.PropertiesGroupBox.Controls.Add(this.FilenameLabel);
this.PropertiesGroupBox.Controls.Add(this.DisplayNameLabel);
this.PropertiesGroupBox.Enabled = false;
this.PropertiesGroupBox.Location = new System.Drawing.Point(3, 163);
this.PropertiesGroupBox.Name = "PropertiesGroupBox";
this.PropertiesGroupBox.Size = new System.Drawing.Size(678, 132);
this.PropertiesGroupBox.TabIndex = 1;
this.PropertiesGroupBox.TabStop = false;
this.PropertiesGroupBox.Text = "External Tool Properties";
//
//TryToIntegrateCheckBox
//
this.TryToIntegrateCheckBox.AutoSize = true;
this.TryToIntegrateCheckBox.Location = new System.Drawing.Point(280, 106);
this.TryToIntegrateCheckBox.Name = "TryToIntegrateCheckBox";
this.TryToIntegrateCheckBox.Size = new System.Drawing.Size(97, 17);
this.TryToIntegrateCheckBox.TabIndex = 9;
this.TryToIntegrateCheckBox.Text = "Try to integrate";
this.TryToIntegrateCheckBox.UseVisualStyleBackColor = true;
//
//OptionsLabel
//
this.OptionsLabel.AutoSize = true;
this.OptionsLabel.Location = new System.Drawing.Point(58, 107);
this.OptionsLabel.Name = "OptionsLabel";
this.OptionsLabel.Size = new System.Drawing.Size(46, 13);
this.OptionsLabel.TabIndex = 7;
this.OptionsLabel.Text = "Options:";
this.OptionsLabel.TextAlign = System.Drawing.ContentAlignment.TopRight;
//
//WaitForExitCheckBox
//
this.WaitForExitCheckBox.AutoSize = true;
this.WaitForExitCheckBox.Location = new System.Drawing.Point(110, 106);
this.WaitForExitCheckBox.Name = "WaitForExitCheckBox";
this.WaitForExitCheckBox.Size = new System.Drawing.Size(82, 17);
this.WaitForExitCheckBox.TabIndex = 8;
this.WaitForExitCheckBox.Text = "Wait for exit";
this.WaitForExitCheckBox.UseVisualStyleBackColor = true;
//
//BrowseButton
//
this.BrowseButton.Anchor = (System.Windows.Forms.AnchorStyles) (System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right);
this.BrowseButton.Location = new System.Drawing.Point(574, 45);
this.BrowseButton.Name = "BrowseButton";
this.BrowseButton.Size = new System.Drawing.Size(95, 23);
this.BrowseButton.TabIndex = 4;
this.BrowseButton.Text = "Browse...";
this.BrowseButton.UseVisualStyleBackColor = true;
//
//ArgumentsCheckBox
//
this.ArgumentsCheckBox.Anchor = (System.Windows.Forms.AnchorStyles) ((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right);
this.ArgumentsCheckBox.Location = new System.Drawing.Point(110, 76);
this.ArgumentsCheckBox.Name = "ArgumentsCheckBox";
this.ArgumentsCheckBox.Size = new System.Drawing.Size(559, 20);
this.ArgumentsCheckBox.TabIndex = 6;
//
//FilenameTextBox
//
this.FilenameTextBox.Anchor = (System.Windows.Forms.AnchorStyles) ((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right);
this.FilenameTextBox.Location = new System.Drawing.Point(110, 47);
this.FilenameTextBox.Name = "FilenameTextBox";
this.FilenameTextBox.Size = new System.Drawing.Size(458, 20);
this.FilenameTextBox.TabIndex = 3;
//
//DisplayNameTextBox
//
this.DisplayNameTextBox.Anchor = (System.Windows.Forms.AnchorStyles) ((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right);
this.DisplayNameTextBox.Location = new System.Drawing.Point(110, 19);
this.DisplayNameTextBox.Name = "DisplayNameTextBox";
this.DisplayNameTextBox.Size = new System.Drawing.Size(559, 20);
this.DisplayNameTextBox.TabIndex = 1;
//
//ArgumentsLabel
//
this.ArgumentsLabel.AutoSize = true;
this.ArgumentsLabel.Location = new System.Drawing.Point(44, 79);
this.ArgumentsLabel.Name = "ArgumentsLabel";
this.ArgumentsLabel.Size = new System.Drawing.Size(60, 13);
this.ArgumentsLabel.TabIndex = 5;
this.ArgumentsLabel.Text = "Arguments:";
this.ArgumentsLabel.TextAlign = System.Drawing.ContentAlignment.TopRight;
//
//FilenameLabel
//
this.FilenameLabel.AutoSize = true;
this.FilenameLabel.Location = new System.Drawing.Point(52, 50);
this.FilenameLabel.Name = "FilenameLabel";
this.FilenameLabel.Size = new System.Drawing.Size(52, 13);
this.FilenameLabel.TabIndex = 2;
this.FilenameLabel.Text = "Filename:";
this.FilenameLabel.TextAlign = System.Drawing.ContentAlignment.TopRight;
//
//DisplayNameLabel
//
this.DisplayNameLabel.AutoSize = true;
this.DisplayNameLabel.Location = new System.Drawing.Point(29, 22);
this.DisplayNameLabel.Name = "DisplayNameLabel";
this.DisplayNameLabel.Size = new System.Drawing.Size(75, 13);
this.DisplayNameLabel.TabIndex = 0;
this.DisplayNameLabel.Text = "Display Name:";
this.DisplayNameLabel.TextAlign = System.Drawing.ContentAlignment.TopRight;
//
//ToolStripContainer
//
//
//ToolStripContainer.ContentPanel
//
this.ToolStripContainer.ContentPanel.Controls.Add(this.PropertiesGroupBox);
this.ToolStripContainer.ContentPanel.Controls.Add(this.ToolsListView);
this.ToolStripContainer.ContentPanel.Size = new System.Drawing.Size(684, 298);
this.ToolStripContainer.Dock = System.Windows.Forms.DockStyle.Fill;
this.ToolStripContainer.Location = new System.Drawing.Point(0, 0);
this.ToolStripContainer.Name = "ToolStripContainer";
this.ToolStripContainer.Size = new System.Drawing.Size(684, 323);
this.ToolStripContainer.TabIndex = 0;
this.ToolStripContainer.Text = "ToolStripContainer";
//
//ToolStripContainer.TopToolStripPanel
//
this.ToolStripContainer.TopToolStripPanel.Controls.Add(this.ToolStrip);
//
//ToolStrip
//
this.ToolStrip.Dock = System.Windows.Forms.DockStyle.None;
this.ToolStrip.GripStyle = System.Windows.Forms.ToolStripGripStyle.Hidden;
this.ToolStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {this.NewToolToolstripButton, this.DeleteToolToolstripButton, this.ToolStripSeparator2, this.LaunchToolToolstripButton});
this.ToolStrip.Location = new System.Drawing.Point(3, 0);
this.ToolStrip.Name = "ToolStrip";
this.ToolStrip.Size = new System.Drawing.Size(186, 25);
this.ToolStrip.TabIndex = 0;
//
//NewToolToolstripButton
//
this.NewToolToolstripButton.Image = Resources.ExtApp_Add;
this.NewToolToolstripButton.ImageTransparentColor = System.Drawing.Color.Magenta;
this.NewToolToolstripButton.Name = "NewToolToolstripButton";
this.NewToolToolstripButton.Size = new System.Drawing.Size(51, 22);
this.NewToolToolstripButton.Text = "New";
//
//DeleteToolToolstripButton
//
this.DeleteToolToolstripButton.Image = Resources.ExtApp_Delete;
this.DeleteToolToolstripButton.ImageTransparentColor = System.Drawing.Color.Magenta;
this.DeleteToolToolstripButton.Name = "DeleteToolToolstripButton";
this.DeleteToolToolstripButton.Size = new System.Drawing.Size(60, 22);
this.DeleteToolToolstripButton.Text = "Delete";
//
//ToolStripSeparator2
//
this.ToolStripSeparator2.Name = "ToolStripSeparator2";
this.ToolStripSeparator2.Size = new System.Drawing.Size(6, 25);
//
//LaunchToolToolstripButton
//
this.LaunchToolToolstripButton.Image = Resources.ExtApp_Start;
this.LaunchToolToolstripButton.ImageTransparentColor = System.Drawing.Color.Magenta;
this.LaunchToolToolstripButton.Name = "LaunchToolToolstripButton";
this.LaunchToolToolstripButton.Size = new System.Drawing.Size(66, 22);
this.LaunchToolToolstripButton.Text = "Launch";
//
//ExternalTools
//
this.ClientSize = new System.Drawing.Size(684, 323);
this.Controls.Add(this.ToolStripContainer);
this.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, System.Convert.ToByte(0));
this.Icon = (System.Drawing.Icon) (resources.GetObject("$this.Icon"));
this.Name = "ExternalTools";
this.TabText = "External Applications";
this.Text = "External Tools";
this.ToolsContextMenuStrip.ResumeLayout(false);
this.PropertiesGroupBox.ResumeLayout(false);
this.PropertiesGroupBox.PerformLayout();
this.ToolStripContainer.ContentPanel.ResumeLayout(false);
this.ToolStripContainer.TopToolStripPanel.ResumeLayout(false);
this.ToolStripContainer.TopToolStripPanel.PerformLayout();
this.ToolStripContainer.ResumeLayout(false);
this.ToolStripContainer.PerformLayout();
this.ToolStrip.ResumeLayout(false);
this.ToolStrip.PerformLayout();
this.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.ToolsListObjView)).BeginInit();
this.ToolsContextMenuStrip.SuspendLayout();
this.PropertiesGroupBox.SuspendLayout();
this.ToolStripContainer.ContentPanel.SuspendLayout();
this.ToolStripContainer.TopToolStripPanel.SuspendLayout();
this.ToolStripContainer.SuspendLayout();
this.ToolStrip.SuspendLayout();
this.SuspendLayout();
//
// ToolsListObjView
//
this.ToolsListObjView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.ToolsListObjView.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.ToolsListObjView.CellEditUseWholeCell = false;
this.ToolsListObjView.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
this.DisplayNameColumnHeader,
this.FilenameColumnHeader,
this.ArgumentsColumnHeader,
this.WaitForExitColumnHeader,
this.TryToIntegrateColumnHeader});
this.ToolsListObjView.ContextMenuStrip = this.ToolsContextMenuStrip;
this.ToolsListObjView.Cursor = System.Windows.Forms.Cursors.Default;
this.ToolsListObjView.FullRowSelect = true;
this.ToolsListObjView.GridLines = true;
this.ToolsListObjView.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.Nonclickable;
this.ToolsListObjView.HideSelection = false;
this.ToolsListObjView.Location = new System.Drawing.Point(0, 0);
this.ToolsListObjView.Name = "ToolsListObjView";
this.ToolsListObjView.Size = new System.Drawing.Size(684, 157);
this.ToolsListObjView.Sorting = System.Windows.Forms.SortOrder.Ascending;
this.ToolsListObjView.TabIndex = 0;
this.ToolsListObjView.UseCompatibleStateImageBehavior = false;
this.ToolsListObjView.View = System.Windows.Forms.View.Details;
this.ToolsListObjView.SelectedIndexChanged += new System.EventHandler(this.ToolsListObjView_SelectedIndexChanged);
this.ToolsListObjView.DoubleClick += new System.EventHandler(this.ToolsListObjView_DoubleClick);
//
// DisplayNameColumnHeader
//
this.DisplayNameColumnHeader.AspectName = "DisplayName";
this.DisplayNameColumnHeader.Text = "Display Name";
this.DisplayNameColumnHeader.Width = 130;
//
// FilenameColumnHeader
//
this.FilenameColumnHeader.AspectName = "FileName";
this.FilenameColumnHeader.Text = "Filename";
this.FilenameColumnHeader.Width = 200;
//
// ArgumentsColumnHeader
//
this.ArgumentsColumnHeader.AspectName = "Arguments";
this.ArgumentsColumnHeader.FillsFreeSpace = true;
this.ArgumentsColumnHeader.Text = "Arguments";
this.ArgumentsColumnHeader.Width = 160;
//
// WaitForExitColumnHeader
//
this.WaitForExitColumnHeader.AspectName = "WaitForExit";
this.WaitForExitColumnHeader.Text = "Wait for exit";
this.WaitForExitColumnHeader.Width = 95;
//
// TryToIntegrateColumnHeader
//
this.TryToIntegrateColumnHeader.AspectName = "TryIntegrate";
this.TryToIntegrateColumnHeader.Text = "Try To Integrate";
this.TryToIntegrateColumnHeader.Width = 95;
//
// ToolsContextMenuStrip
//
this.ToolsContextMenuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.NewToolMenuItem,
this.DeleteToolMenuItem,
this.ToolStripSeparator1,
this.LaunchToolMenuItem});
this.ToolsContextMenuStrip.Name = "cMenApps";
this.ToolsContextMenuStrip.Size = new System.Drawing.Size(220, 76);
//
// NewToolMenuItem
//
this.NewToolMenuItem.Image = global::mRemoteNG.Resources.ExtApp_Add;
this.NewToolMenuItem.Name = "NewToolMenuItem";
this.NewToolMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Shift | System.Windows.Forms.Keys.F4)));
this.NewToolMenuItem.Size = new System.Drawing.Size(219, 22);
this.NewToolMenuItem.Text = "New External Tool";
this.NewToolMenuItem.Click += new System.EventHandler(this.NewTool_Click);
//
// DeleteToolMenuItem
//
this.DeleteToolMenuItem.Image = global::mRemoteNG.Resources.ExtApp_Delete;
this.DeleteToolMenuItem.Name = "DeleteToolMenuItem";
this.DeleteToolMenuItem.ShortcutKeys = System.Windows.Forms.Keys.Delete;
this.DeleteToolMenuItem.Size = new System.Drawing.Size(219, 22);
this.DeleteToolMenuItem.Text = "Delete External Tool...";
this.DeleteToolMenuItem.Click += new System.EventHandler(this.DeleteTool_Click);
//
// ToolStripSeparator1
//
this.ToolStripSeparator1.Name = "ToolStripSeparator1";
this.ToolStripSeparator1.Size = new System.Drawing.Size(216, 6);
//
// LaunchToolMenuItem
//
this.LaunchToolMenuItem.Image = global::mRemoteNG.Resources.ExtApp_Start;
this.LaunchToolMenuItem.Name = "LaunchToolMenuItem";
this.LaunchToolMenuItem.Size = new System.Drawing.Size(219, 22);
this.LaunchToolMenuItem.Text = "Launch External Tool";
this.LaunchToolMenuItem.Click += new System.EventHandler(this.LaunchTool_Click);
//
// PropertiesGroupBox
//
this.PropertiesGroupBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.PropertiesGroupBox.Controls.Add(this.TryToIntegrateCheckBox);
this.PropertiesGroupBox.Controls.Add(this.OptionsLabel);
this.PropertiesGroupBox.Controls.Add(this.WaitForExitCheckBox);
this.PropertiesGroupBox.Controls.Add(this.BrowseButton);
this.PropertiesGroupBox.Controls.Add(this.ArgumentsCheckBox);
this.PropertiesGroupBox.Controls.Add(this.FilenameTextBox);
this.PropertiesGroupBox.Controls.Add(this.DisplayNameTextBox);
this.PropertiesGroupBox.Controls.Add(this.ArgumentsLabel);
this.PropertiesGroupBox.Controls.Add(this.FilenameLabel);
this.PropertiesGroupBox.Controls.Add(this.DisplayNameLabel);
this.PropertiesGroupBox.Enabled = false;
this.PropertiesGroupBox.Location = new System.Drawing.Point(0, 153);
this.PropertiesGroupBox.Name = "PropertiesGroupBox";
this.PropertiesGroupBox.Size = new System.Drawing.Size(684, 145);
this.PropertiesGroupBox.TabIndex = 1;
this.PropertiesGroupBox.TabStop = false;
this.PropertiesGroupBox.Text = "External Tool Properties";
//
// TryToIntegrateCheckBox
//
this.TryToIntegrateCheckBox._mice = mRemoteNG.UI.Controls.Base.NGCheckBox.MouseState.HOVER;
this.TryToIntegrateCheckBox.AutoSize = true;
this.TryToIntegrateCheckBox.Location = new System.Drawing.Point(280, 106);
this.TryToIntegrateCheckBox.Name = "TryToIntegrateCheckBox";
this.TryToIntegrateCheckBox.Size = new System.Drawing.Size(103, 17);
this.TryToIntegrateCheckBox.TabIndex = 9;
this.TryToIntegrateCheckBox.Text = "Try to integrate";
this.TryToIntegrateCheckBox.UseVisualStyleBackColor = true;
this.TryToIntegrateCheckBox.CheckedChanged += new System.EventHandler(this.TryToIntegrateCheckBox_CheckedChanged);
this.TryToIntegrateCheckBox.Click += new System.EventHandler(this.PropertyControl_ChangedOrLostFocus);
//
// OptionsLabel
//
this.OptionsLabel.AutoSize = true;
this.OptionsLabel.Location = new System.Drawing.Point(51, 107);
this.OptionsLabel.Name = "OptionsLabel";
this.OptionsLabel.Size = new System.Drawing.Size(52, 13);
this.OptionsLabel.TabIndex = 7;
this.OptionsLabel.Text = "Options:";
this.OptionsLabel.TextAlign = System.Drawing.ContentAlignment.TopRight;
//
// WaitForExitCheckBox
//
this.WaitForExitCheckBox._mice = mRemoteNG.UI.Controls.Base.NGCheckBox.MouseState.HOVER;
this.WaitForExitCheckBox.AutoSize = true;
this.WaitForExitCheckBox.Location = new System.Drawing.Point(110, 106);
this.WaitForExitCheckBox.Name = "WaitForExitCheckBox";
this.WaitForExitCheckBox.Size = new System.Drawing.Size(89, 17);
this.WaitForExitCheckBox.TabIndex = 8;
this.WaitForExitCheckBox.Text = "Wait for exit";
this.WaitForExitCheckBox.UseVisualStyleBackColor = true;
this.WaitForExitCheckBox.Click += new System.EventHandler(this.PropertyControl_ChangedOrLostFocus);
this.WaitForExitCheckBox.LostFocus += new System.EventHandler(this.PropertyControl_ChangedOrLostFocus);
//
// BrowseButton
//
this.BrowseButton._mice = mRemoteNG.UI.Controls.Base.NGButton.MouseState.HOVER;
this.BrowseButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.BrowseButton.Location = new System.Drawing.Point(580, 45);
this.BrowseButton.Name = "BrowseButton";
this.BrowseButton.Size = new System.Drawing.Size(95, 23);
this.BrowseButton.TabIndex = 4;
this.BrowseButton.Text = "Browse...";
this.BrowseButton.UseVisualStyleBackColor = true;
this.BrowseButton.Click += new System.EventHandler(this.BrowseButton_Click);
this.BrowseButton.LostFocus += new System.EventHandler(this.PropertyControl_ChangedOrLostFocus);
//
// ArgumentsCheckBox
//
this.ArgumentsCheckBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.ArgumentsCheckBox.Location = new System.Drawing.Point(110, 76);
this.ArgumentsCheckBox.Name = "ArgumentsCheckBox";
this.ArgumentsCheckBox.Size = new System.Drawing.Size(565, 22);
this.ArgumentsCheckBox.TabIndex = 6;
this.ArgumentsCheckBox.LostFocus += new System.EventHandler(this.PropertyControl_ChangedOrLostFocus);
//
// FilenameTextBox
//
this.FilenameTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.FilenameTextBox.Location = new System.Drawing.Point(110, 47);
this.FilenameTextBox.Name = "FilenameTextBox";
this.FilenameTextBox.Size = new System.Drawing.Size(464, 22);
this.FilenameTextBox.TabIndex = 3;
this.FilenameTextBox.LostFocus += new System.EventHandler(this.PropertyControl_ChangedOrLostFocus);
//
// DisplayNameTextBox
//
this.DisplayNameTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.DisplayNameTextBox.Location = new System.Drawing.Point(110, 19);
this.DisplayNameTextBox.Name = "DisplayNameTextBox";
this.DisplayNameTextBox.Size = new System.Drawing.Size(565, 22);
this.DisplayNameTextBox.TabIndex = 1;
this.DisplayNameTextBox.LostFocus += new System.EventHandler(this.PropertyControl_ChangedOrLostFocus);
//
// ArgumentsLabel
//
this.ArgumentsLabel.AutoSize = true;
this.ArgumentsLabel.Location = new System.Drawing.Point(33, 79);
this.ArgumentsLabel.Name = "ArgumentsLabel";
this.ArgumentsLabel.Size = new System.Drawing.Size(66, 13);
this.ArgumentsLabel.TabIndex = 5;
this.ArgumentsLabel.Text = "Arguments:";
this.ArgumentsLabel.TextAlign = System.Drawing.ContentAlignment.TopRight;
//
// FilenameLabel
//
this.FilenameLabel.AutoSize = true;
this.FilenameLabel.Location = new System.Drawing.Point(44, 50);
this.FilenameLabel.Name = "FilenameLabel";
this.FilenameLabel.Size = new System.Drawing.Size(56, 13);
this.FilenameLabel.TabIndex = 2;
this.FilenameLabel.Text = "Filename:";
this.FilenameLabel.TextAlign = System.Drawing.ContentAlignment.TopRight;
//
// DisplayNameLabel
//
this.DisplayNameLabel.AutoSize = true;
this.DisplayNameLabel.Location = new System.Drawing.Point(21, 22);
this.DisplayNameLabel.Name = "DisplayNameLabel";
this.DisplayNameLabel.Size = new System.Drawing.Size(79, 13);
this.DisplayNameLabel.TabIndex = 0;
this.DisplayNameLabel.Text = "Display Name:";
this.DisplayNameLabel.TextAlign = System.Drawing.ContentAlignment.TopRight;
//
// ToolStripContainer
//
//
// ToolStripContainer.ContentPanel
//
this.ToolStripContainer.ContentPanel.Controls.Add(this.PropertiesGroupBox);
this.ToolStripContainer.ContentPanel.Controls.Add(this.ToolsListObjView);
this.ToolStripContainer.ContentPanel.Size = new System.Drawing.Size(684, 298);
this.ToolStripContainer.Dock = System.Windows.Forms.DockStyle.Fill;
this.ToolStripContainer.Location = new System.Drawing.Point(0, 0);
this.ToolStripContainer.Name = "ToolStripContainer";
this.ToolStripContainer.Size = new System.Drawing.Size(684, 323);
this.ToolStripContainer.TabIndex = 0;
this.ToolStripContainer.Text = "ToolStripContainer";
//
// ToolStripContainer.TopToolStripPanel
//
this.ToolStripContainer.TopToolStripPanel.BackColor = System.Drawing.SystemColors.Control;
this.ToolStripContainer.TopToolStripPanel.Controls.Add(this.ToolStrip);
//
// ToolStrip
//
this.ToolStrip.Dock = System.Windows.Forms.DockStyle.None;
this.ToolStrip.GripStyle = System.Windows.Forms.ToolStripGripStyle.Hidden;
this.ToolStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.NewToolToolstripButton,
this.DeleteToolToolstripButton,
this.ToolStripSeparator2,
this.LaunchToolToolstripButton});
this.ToolStrip.Location = new System.Drawing.Point(3, 0);
this.ToolStrip.Name = "ToolStrip";
this.ToolStrip.Size = new System.Drawing.Size(186, 25);
this.ToolStrip.TabIndex = 0;
//
// NewToolToolstripButton
//
this.NewToolToolstripButton.Image = global::mRemoteNG.Resources.ExtApp_Add;
this.NewToolToolstripButton.ImageTransparentColor = System.Drawing.Color.Magenta;
this.NewToolToolstripButton.Name = "NewToolToolstripButton";
this.NewToolToolstripButton.Size = new System.Drawing.Size(51, 22);
this.NewToolToolstripButton.Text = "New";
this.NewToolToolstripButton.Click += new System.EventHandler(this.NewTool_Click);
//
// DeleteToolToolstripButton
//
this.DeleteToolToolstripButton.Image = global::mRemoteNG.Resources.ExtApp_Delete;
this.DeleteToolToolstripButton.ImageTransparentColor = System.Drawing.Color.Magenta;
this.DeleteToolToolstripButton.Name = "DeleteToolToolstripButton";
this.DeleteToolToolstripButton.Size = new System.Drawing.Size(60, 22);
this.DeleteToolToolstripButton.Text = "Delete";
this.DeleteToolToolstripButton.Click += new System.EventHandler(this.DeleteTool_Click);
//
// ToolStripSeparator2
//
this.ToolStripSeparator2.Name = "ToolStripSeparator2";
this.ToolStripSeparator2.Size = new System.Drawing.Size(6, 25);
//
// LaunchToolToolstripButton
//
this.LaunchToolToolstripButton.Image = global::mRemoteNG.Resources.ExtApp_Start;
this.LaunchToolToolstripButton.ImageTransparentColor = System.Drawing.Color.Magenta;
this.LaunchToolToolstripButton.Name = "LaunchToolToolstripButton";
this.LaunchToolToolstripButton.Size = new System.Drawing.Size(66, 22);
this.LaunchToolToolstripButton.Text = "Launch";
this.LaunchToolToolstripButton.Click += new System.EventHandler(this.LaunchTool_Click);
//
// vsToolStripExtender
//
this.vsToolStripExtender.DefaultRenderer = null;
//
// ExternalToolsWindow
//
this.ClientSize = new System.Drawing.Size(684, 323);
this.Controls.Add(this.ToolStripContainer);
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.Name = "ExternalToolsWindow";
this.TabText = "External Applications";
this.Text = "External Tools";
this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.ExternalTools_FormClosed);
this.Load += new System.EventHandler(this.ExternalTools_Load);
((System.ComponentModel.ISupportInitialize)(this.ToolsListObjView)).EndInit();
this.ToolsContextMenuStrip.ResumeLayout(false);
this.PropertiesGroupBox.ResumeLayout(false);
this.PropertiesGroupBox.PerformLayout();
this.ToolStripContainer.ContentPanel.ResumeLayout(false);
this.ToolStripContainer.TopToolStripPanel.ResumeLayout(false);
this.ToolStripContainer.TopToolStripPanel.PerformLayout();
this.ToolStripContainer.ResumeLayout(false);
this.ToolStripContainer.PerformLayout();
this.ToolStrip.ResumeLayout(false);
this.ToolStrip.PerformLayout();
this.ResumeLayout(false);
}
internal System.Windows.Forms.ToolStripContainer ToolStripContainer;
internal System.Windows.Forms.ToolStrip ToolStrip;
@@ -377,5 +405,7 @@ namespace mRemoteNG.UI.Window
internal System.Windows.Forms.ToolStripButton LaunchToolToolstripButton;
private WeifenLuo.WinFormsUI.Docking.VisualStudioToolStripExtender vsToolStripExtender;
#endregion
private System.ComponentModel.IContainer components;
}
}

View File

@@ -8,6 +8,8 @@ using WeifenLuo.WinFormsUI.Docking;
using mRemoteNG.UI.Forms;
using mRemoteNG.Themes;
using System.Drawing;
using BrightIdeasSoftware;
using mRemoteNG.UI.Controls;
namespace mRemoteNG.UI.Window
{
@@ -19,21 +21,22 @@ namespace mRemoteNG.UI.Window
public ExternalToolsWindow()
{
InitializeComponent();
InitializeComponent();
WindowType = WindowType.ExternalApps;
DockPnl = new DockContent();
_themeManager = ThemeManager.getInstance();
ApplyTheme();
_externalAppsSaver = new ExternalAppsSaver();
}
#region Private Methods
#region Event Handlers
private void ExternalTools_Load(object sender, EventArgs e)
private void ExternalTools_Load(object sender, EventArgs e)
{
ApplyLanguage();
UpdateToolsListView();
ApplyTheme();
UpdateToolsListObjView();
}
private void ExternalTools_FormClosed(object sender, FormClosedEventArgs e)
@@ -47,7 +50,7 @@ namespace mRemoteNG.UI.Window
{
var externalTool = new ExternalTool(Language.strExternalToolDefaultName);
Runtime.ExternalToolsService.ExternalTools.Add(externalTool);
UpdateToolsListView(externalTool);
UpdateToolsListObjView(externalTool);
DisplayNameTextBox.Focus();
}
catch (Exception ex)
@@ -61,13 +64,13 @@ namespace mRemoteNG.UI.Window
try
{
string message;
if (ToolsListView.SelectedItems.Count == 1)
if (ToolsListObjView.SelectedItems.Count == 1)
{
message = string.Format(Language.strConfirmDeleteExternalTool, ToolsListView.SelectedItems[0].Text);
message = string.Format(Language.strConfirmDeleteExternalTool, ToolsListObjView.SelectedItems[0].Text);
}
else if (ToolsListView.SelectedItems.Count > 1)
else if (ToolsListObjView.SelectedItems.Count > 1)
{
message = string.Format(Language.strConfirmDeleteExternalToolMultiple, ToolsListView.SelectedItems.Count);
message = string.Format(Language.strConfirmDeleteExternalToolMultiple, ToolsListObjView.SelectedItems.Count);
}
else
{
@@ -79,14 +82,14 @@ namespace mRemoteNG.UI.Window
return;
}
foreach (ListViewItem listViewItem in ToolsListView.SelectedItems)
foreach (Object toDeleteObj in ToolsListObjView.SelectedObjects)
{
var externalTool = listViewItem.Tag as ExternalTool;
var externalTool = toDeleteObj as ExternalTool;
if (externalTool == null) continue;
Runtime.ExternalToolsService.ExternalTools.Remove(externalTool);
listViewItem.Remove();
}
}
UpdateToolsListObjView();
}
catch (Exception ex)
{
Runtime.MessageCollector.AddExceptionMessage("UI.Window.ExternalTools.DeleteTool_Click() failed.", ex);
@@ -98,14 +101,14 @@ namespace mRemoteNG.UI.Window
LaunchTool();
}
private void ToolsListView_SelectedIndexChanged(object sender, EventArgs e)
private void ToolsListObjView_SelectedIndexChanged(object sender, EventArgs e)
{
try
{
if (ToolsListView.SelectedItems.Count == 1)
if (ToolsListObjView.SelectedItems.Count == 1)
{
PropertiesGroupBox.Enabled = true;
_selectedTool = ToolsListView.SelectedItems[0].Tag as ExternalTool;
_selectedTool = ToolsListObjView.SelectedObjects[0] as ExternalTool;
if (_selectedTool == null)
{
return;
@@ -124,13 +127,13 @@ namespace mRemoteNG.UI.Window
}
catch (Exception ex)
{
Runtime.MessageCollector.AddExceptionMessage("UI.Window.ExternalTools.ToolsListView_SelectedIndexChanged() failed.", ex);
Runtime.MessageCollector.AddExceptionMessage("UI.Window.ExternalTools.ToolsListObjView_SelectedIndexChanged() failed.", ex);
}
}
private void ToolsListView_DoubleClick(object sender, EventArgs e)
private void ToolsListObjView_DoubleClick(object sender, EventArgs e)
{
if (ToolsListView.SelectedItems.Count > 0)
if (ToolsListObjView.SelectedItems.Count > 0)
{
LaunchTool();
}
@@ -151,7 +154,7 @@ namespace mRemoteNG.UI.Window
_selectedTool.WaitForExit = WaitForExitCheckBox.Checked;
_selectedTool.TryIntegrate = TryToIntegrateCheckBox.Checked;
UpdateToolsListView();
UpdateToolsListObjView();
}
catch (Exception ex)
{
@@ -225,39 +228,38 @@ namespace mRemoteNG.UI.Window
private void ApplyTheme()
{
vsToolStripExtender.SetStyle(ToolStrip, _themeManager.ActiveTheme.Version, _themeManager.ActiveTheme.Theme);
vsToolStripExtender.SetStyle(ToolsContextMenuStrip, _themeManager.ActiveTheme.Version, _themeManager.ActiveTheme.Theme);
//Apply the extended palette
ToolStripContainer.TopToolStripPanel.BackColor= _themeManager.ActiveTheme.Theme.ColorPalette.CommandBarMenuDefault.Background;
ToolStripContainer.TopToolStripPanel.ForeColor= _themeManager.ActiveTheme.Theme.ColorPalette.CommandBarMenuDefault.Text;
ToolStripContainer.TopToolStripPanel.BackColor = _themeManager.ActiveTheme.Theme.ColorPalette.CommandBarMenuDefault.Background;
ToolStripContainer.TopToolStripPanel.ForeColor = _themeManager.ActiveTheme.Theme.ColorPalette.CommandBarMenuDefault.Text;
PropertiesGroupBox.BackColor = _themeManager.ActiveTheme.Theme.ColorPalette.CommandBarMenuDefault.Background;
PropertiesGroupBox.ForeColor = _themeManager.ActiveTheme.Theme.ColorPalette.CommandBarMenuDefault.Text;
DisplayNameTextBox.BackColor = _themeManager.ActiveTheme.ExtendedPalette.getColor("List_Item_Background");
DisplayNameTextBox.ForeColor = _themeManager.ActiveTheme.ExtendedPalette.getColor("List_Item_Foreground");
FilenameTextBox.BackColor = _themeManager.ActiveTheme.ExtendedPalette.getColor("List_Item_Background");
FilenameTextBox.ForeColor = _themeManager.ActiveTheme.ExtendedPalette.getColor("List_Item_Foreground");
ArgumentsCheckBox.BackColor = _themeManager.ActiveTheme.ExtendedPalette.getColor("List_Item_Background");
ArgumentsCheckBox.ForeColor = _themeManager.ActiveTheme.ExtendedPalette.getColor("List_Item_Foreground");
BrowseButton.BackColor = _themeManager.ActiveTheme.ExtendedPalette.getColor("Button_Background");
BrowseButton.ForeColor = _themeManager.ActiveTheme.ExtendedPalette.getColor("Button_Foreground");
ToolsListView.BackColor = _themeManager.ActiveTheme.ExtendedPalette.getColor("List_Item_Background");
ToolsListView.ForeColor = _themeManager.ActiveTheme.ExtendedPalette.getColor("List_Header_Foreground");
//Experimental
//Toollist coloring
ToolsListObjView.BackColor = _themeManager.ActiveTheme.ExtendedPalette.getColor("List_Background");
ToolsListObjView.ForeColor = _themeManager.ActiveTheme.ExtendedPalette.getColor("List_Item_Foreground");
ToolsListObjView.SelectedBackColor = _themeManager.ActiveTheme.ExtendedPalette.getColor("List_Item_Selected_Background");
ToolsListObjView.SelectedForeColor = _themeManager.ActiveTheme.ExtendedPalette.getColor("List_Item_Selected_Foreground");
ToolsListObjView.HeaderUsesThemes = false;
ToolsListObjView.AlwaysGroupByColumn = this.FilenameColumnHeader;
HeaderFormatStyle headerStylo = new HeaderFormatStyle();
headerStylo.Normal.BackColor = _themeManager.ActiveTheme.ExtendedPalette.getColor("List_Header_Background");
headerStylo.Normal.ForeColor = _themeManager.ActiveTheme.ExtendedPalette.getColor("List_Header_Foreground");
ToolsListObjView.HeaderFormatStyle = headerStylo;
}
private void UpdateToolsListView(ExternalTool selectTool = null)
private void UpdateToolsListObjView(ExternalTool selectTool = null)
{
try
{
var selectedTools = new List<ExternalTool>();
if (selectTool == null)
{
foreach (ListViewItem listViewItem in ToolsListView.SelectedItems)
foreach (Object listViewItem in ToolsListObjView.SelectedObjects)
{
var externalTool = listViewItem.Tag as ExternalTool;
var externalTool = listViewItem as ExternalTool;
if (externalTool != null)
{
selectedTools.Add(externalTool);
@@ -269,43 +271,25 @@ namespace mRemoteNG.UI.Window
selectedTools.Add(selectTool);
}
ToolsListView.BeginUpdate();
ToolsListView.Items.Clear();
foreach (var externalTool in Runtime.ExternalToolsService.ExternalTools)
{
var listViewItem = new ListViewItem {Text = externalTool.DisplayName};
listViewItem.SubItems.Add(externalTool.FileName);
listViewItem.SubItems.Add(externalTool.Arguments);
listViewItem.SubItems.Add(externalTool.WaitForExit.ToString());
listViewItem.SubItems.Add(externalTool.TryIntegrate.ToString());
listViewItem.Tag = externalTool;
ToolsListView.Items.Add(listViewItem);
if (selectedTools.Contains(externalTool))
{
listViewItem.Selected = true;
}
}
ToolsListView.EndUpdate();
ToolsListObjView.BeginUpdate();
ToolsListObjView.Items.Clear();
ToolsListObjView.SetObjects(Runtime.ExternalToolsService.ExternalTools);
ToolsListObjView.EndUpdate();
}
catch (Exception ex)
{
Runtime.MessageCollector.AddExceptionMessage("UI.Window.ExternalTools.PopulateToolsListView()", ex);
Runtime.MessageCollector.AddExceptionMessage("UI.Window.ExternalTools.PopulateToolsListObjView()", ex);
}
}
private void LaunchTool()
{
try
{
foreach (ListViewItem listViewItem in ToolsListView.SelectedItems)
try
{
foreach (Object listViewObject in ToolsListObjView.SelectedObjects)
{
var externalTool = listViewItem.Tag as ExternalTool;
externalTool?.Start();
((ExternalTool)listViewObject).Start();
}
}
catch (Exception ex)
@@ -316,4 +300,6 @@ namespace mRemoteNG.UI.Window
#endregion
}
}

View File

@@ -112,21 +112,24 @@
<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="ToolsContextMenuStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<metadata name="ToolsContextMenuStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>177, 17</value>
</metadata>
<metadata name="ToolStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>357, 17</value>
</metadata>
<metadata name="vsToolStripExtender.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="ToolStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>197, 17</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>54</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

View File

@@ -344,9 +344,18 @@
<Compile Include="UI\Controls\Base\NGButton.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="UI\Controls\Base\NGCheckBox.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="UI\Controls\Base\NGGroupBox.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="UI\Controls\Base\NGLabel.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="UI\Controls\Base\NGTextBox.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="UI\Controls\ConnectionContextMenu.cs">
<SubType>Component</SubType>
</Compile>