diff --git a/mRemoteV1/Resources/Themes/ColorMapTheme.Designer.cs b/mRemoteV1/Resources/Themes/ColorMapTheme.Designer.cs index 89c9eed16..691e92c03 100644 --- a/mRemoteV1/Resources/Themes/ColorMapTheme.Designer.cs +++ b/mRemoteV1/Resources/Themes/ColorMapTheme.Designer.cs @@ -168,6 +168,87 @@ namespace mRemoteNG { } } + /// + /// Looks up a localized string similar to /Themes/Theme/Category[@Name='CommonControls']/Color[@Name='CheckBoxBackground']/Background/@Source. + /// + internal static string CheckBox_Background { + get { + return ResourceManager.GetString("CheckBox_Background", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to /Themes/Theme/Category[@Name='CommonControls']/Color[@Name='CheckBoxBorder']/Background/@Source. + /// + internal static string CheckBox_Border { + get { + return ResourceManager.GetString("CheckBox_Border", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to /Themes/Theme/Category[@Name='CommonControls']/Color[@Name='CheckBoxBorderDisabled']/Background/@Source. + /// + internal static string CheckBox_Border_Disabled { + get { + return ResourceManager.GetString("CheckBox_Border_Disabled", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to /Themes/Theme/Category[@Name='CommonControls']/Color[@Name='CheckBoxBorderHover']/Background/@Source. + /// + internal static string CheckBox_Border_Hover { + get { + return ResourceManager.GetString("CheckBox_Border_Hover", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to /Themes/Theme/Category[@Name='CommonControls']/Color[@Name='CheckBoxBorderPressed']/Background/@Source. + /// + internal static string CheckBox_Border_Pressed { + get { + return ResourceManager.GetString("CheckBox_Border_Pressed", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to /Themes/Theme/Category[@Name='CommonControls']/Color[@Name='CheckBoxGlyph']/Background/@Source. + /// + internal static string CheckBox_Glyph { + get { + return ResourceManager.GetString("CheckBox_Glyph", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to /Themes/Theme/Category[@Name='CommonControls']/Color[@Name='CheckBoxGlyphDisabled']/Background/@Source. + /// + internal static string CheckBox_Glyph_Disabled { + get { + return ResourceManager.GetString("CheckBox_Glyph_Disabled", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to /Themes/Theme/Category[@Name='CommonControls']/Color[@Name='CheckBoxText']/Background/@Source. + /// + internal static string CheckBox_Text { + get { + return ResourceManager.GetString("CheckBox_Text", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to /Themes/Theme/Category[@Name='CommonControls']/Color[@Name='CheckBoxTextDisabled']/Background/@Source. + /// + internal static string CheckBox_Text_Disabled { + get { + return ResourceManager.GetString("CheckBox_Text_Disabled", resourceCulture); + } + } + /// /// Looks up a localized string similar to /Themes/Theme/Category[@Name='Text Editor Text Marker Items']/Color[@Name='compiler error']/Background/@Source. /// @@ -186,6 +267,60 @@ namespace mRemoteNG { } } + /// + /// Looks up a localized string similar to /Themes/Theme/Category[@Name='CommonControls']/Color[@Name='InnerTabActiveBackground']/Background/@Source. + /// + internal static string GroupBox_Backgorund { + get { + return ResourceManager.GetString("GroupBox_Backgorund", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to /Themes/Theme/Category[@Name='CommonControls']/Color[@Name='InnerTabInactiveBackground']/Background/@Source. + /// + internal static string GroupBox_Disabled_Background { + get { + return ResourceManager.GetString("GroupBox_Disabled_Background", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to /Themes/Theme/Category[@Name='CommonControls']/Color[@Name='InnerTabInactiveText']/Background/@Source. + /// + internal static string GroupBox_Disabled_Foreground { + get { + return ResourceManager.GetString("GroupBox_Disabled_Foreground", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to /Themes/Theme/Category[@Name='CommonControls']/Color[@Name='InnerTabInactiveBorder']/Background/@Source. + /// + internal static string GroupBox_Disabled_Line { + get { + return ResourceManager.GetString("GroupBox_Disabled_Line", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to /Themes/Theme/Category[@Name='CommonControls']/Color[@Name='InnerTabActiveText']/Background/@Source. + /// + internal static string GroupBox_Foreground { + get { + return ResourceManager.GetString("GroupBox_Foreground", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to /Themes/Theme/Category[@Name='CommonControls']/Color[@Name='InnerTabActiveBorder']/Background/@Source. + /// + internal static string GroupBox_Line { + get { + return ResourceManager.GetString("GroupBox_Line", resourceCulture); + } + } + /// /// Looks up a localized string similar to /Themes/Theme/Category[@Name='Cider']/Color[@Name='ListBackground']/Background/@Source. /// diff --git a/mRemoteV1/Resources/Themes/ColorMapTheme.resx b/mRemoteV1/Resources/Themes/ColorMapTheme.resx index 7845c074e..5ac7269be 100644 --- a/mRemoteV1/Resources/Themes/ColorMapTheme.resx +++ b/mRemoteV1/Resources/Themes/ColorMapTheme.resx @@ -153,12 +153,57 @@ /Themes/Theme/Category[@Name='CommonControls']/Color[@Name='ButtonPressed']/Foreground/@Source + + /Themes/Theme/Category[@Name='CommonControls']/Color[@Name='CheckBoxBackground']/Background/@Source + + + /Themes/Theme/Category[@Name='CommonControls']/Color[@Name='CheckBoxBorder']/Background/@Source + + + /Themes/Theme/Category[@Name='CommonControls']/Color[@Name='CheckBoxBorderDisabled']/Background/@Source + + + /Themes/Theme/Category[@Name='CommonControls']/Color[@Name='CheckBoxBorderHover']/Background/@Source + + + /Themes/Theme/Category[@Name='CommonControls']/Color[@Name='CheckBoxBorderPressed']/Background/@Source + + + /Themes/Theme/Category[@Name='CommonControls']/Color[@Name='CheckBoxGlyph']/Background/@Source + + + /Themes/Theme/Category[@Name='CommonControls']/Color[@Name='CheckBoxGlyphDisabled']/Background/@Source + + + /Themes/Theme/Category[@Name='CommonControls']/Color[@Name='CheckBoxText']/Background/@Source + + + /Themes/Theme/Category[@Name='CommonControls']/Color[@Name='CheckBoxTextDisabled']/Background/@Source + /Themes/Theme/Category[@Name='Text Editor Text Marker Items']/Color[@Name='compiler error']/Background/@Source /Themes/Theme/Category[@Name='Text Editor Text Marker Items']/Color[@Name='compiler error']/Foreground/@Source + + /Themes/Theme/Category[@Name='CommonControls']/Color[@Name='InnerTabActiveBackground']/Background/@Source + + + /Themes/Theme/Category[@Name='CommonControls']/Color[@Name='InnerTabInactiveBackground']/Background/@Source + + + /Themes/Theme/Category[@Name='CommonControls']/Color[@Name='InnerTabInactiveText']/Background/@Source + + + /Themes/Theme/Category[@Name='CommonControls']/Color[@Name='InnerTabInactiveBorder']/Background/@Source + + + /Themes/Theme/Category[@Name='CommonControls']/Color[@Name='InnerTabActiveText']/Background/@Source + + + /Themes/Theme/Category[@Name='CommonControls']/Color[@Name='InnerTabActiveBorder']/Background/@Source + /Themes/Theme/Category[@Name='Cider']/Color[@Name='ListBackground']/Background/@Source diff --git a/mRemoteV1/Resources/Themes/darcula.vstheme b/mRemoteV1/Resources/Themes/darcula.vstheme index 01619f317..0633cbe28 100644 --- a/mRemoteV1/Resources/Themes/darcula.vstheme +++ b/mRemoteV1/Resources/Themes/darcula.vstheme @@ -614,8 +614,8 @@ - - + + @@ -661,7 +661,7 @@ - + @@ -2550,7 +2550,7 @@ - + @@ -2611,10 +2611,10 @@ - + - + @@ -2623,7 +2623,7 @@ - + @@ -2758,10 +2758,10 @@ - + - + @@ -8049,7 +8049,7 @@ - + diff --git a/mRemoteV1/Resources/Themes/vs2015blue.vstheme b/mRemoteV1/Resources/Themes/vs2015blue.vstheme index 08b065fe2..ce567bfa1 100644 --- a/mRemoteV1/Resources/Themes/vs2015blue.vstheme +++ b/mRemoteV1/Resources/Themes/vs2015blue.vstheme @@ -24,7 +24,7 @@ - + diff --git a/mRemoteV1/Resources/Themes/vs2015dark.vstheme b/mRemoteV1/Resources/Themes/vs2015dark.vstheme index 1bc0aa9dd..e22f6e178 100644 --- a/mRemoteV1/Resources/Themes/vs2015dark.vstheme +++ b/mRemoteV1/Resources/Themes/vs2015dark.vstheme @@ -721,7 +721,7 @@ - + diff --git a/mRemoteV1/Themes/MremoteNGPaletteLoader.cs b/mRemoteV1/Themes/MremoteNGPaletteLoader.cs index c24b8d08a..7712e6fb3 100644 --- a/mRemoteV1/Themes/MremoteNGPaletteLoader.cs +++ b/mRemoteV1/Themes/MremoteNGPaletteLoader.cs @@ -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 ) { diff --git a/mRemoteV1/UI/Controls/Base/NGButton.cs b/mRemoteV1/UI/Controls/Base/NGButton.cs index bbf5fc027..3f9550ccd 100644 --- a/mRemoteV1/UI/Controls/Base/NGButton.cs +++ b/mRemoteV1/UI/Controls/Base/NGButton.cs @@ -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); } } diff --git a/mRemoteV1/UI/Controls/Base/NGCheckBox.cs b/mRemoteV1/UI/Controls/Base/NGCheckBox.cs new file mode 100644 index 000000000..944f7726a --- /dev/null +++ b/mRemoteV1/UI/Controls/Base/NGCheckBox.cs @@ -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); + + + } + + } +} + diff --git a/mRemoteV1/UI/Controls/Base/NGGroupBox.cs b/mRemoteV1/UI/Controls/Base/NGGroupBox.cs new file mode 100644 index 000000000..d79260023 --- /dev/null +++ b/mRemoteV1/UI/Controls/Base/NGGroupBox.cs @@ -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); + } + } +} diff --git a/mRemoteV1/UI/Controls/Base/NGLabel.cs b/mRemoteV1/UI/Controls/Base/NGLabel.cs index 531de87e1..634bd8d60 100644 --- a/mRemoteV1/UI/Controls/Base/NGLabel.cs +++ b/mRemoteV1/UI/Controls/Base/NGLabel.cs @@ -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); diff --git a/mRemoteV1/UI/Controls/Base/NGTextBox.cs b/mRemoteV1/UI/Controls/Base/NGTextBox.cs new file mode 100644 index 000000000..27678d470 --- /dev/null +++ b/mRemoteV1/UI/Controls/Base/NGTextBox.cs @@ -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(); + } + + + } +} diff --git a/mRemoteV1/UI/Forms/OptionsPages/ThemePage.cs b/mRemoteV1/UI/Forms/OptionsPages/ThemePage.cs index 4289495ed..d4c435001 100644 --- a/mRemoteV1/UI/Forms/OptionsPages/ThemePage.cs +++ b/mRemoteV1/UI/Forms/OptionsPages/ThemePage.cs @@ -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(); } diff --git a/mRemoteV1/UI/Window/ExternalToolsWindow.Designer.cs b/mRemoteV1/UI/Window/ExternalToolsWindow.Designer.cs index 96e733532..7d900e63a 100644 --- a/mRemoteV1/UI/Window/ExternalToolsWindow.Designer.cs +++ b/mRemoteV1/UI/Window/ExternalToolsWindow.Designer.cs @@ -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; } } diff --git a/mRemoteV1/UI/Window/ExternalToolsWindow.cs b/mRemoteV1/UI/Window/ExternalToolsWindow.cs index 7cbb6afa6..43336b19a 100644 --- a/mRemoteV1/UI/Window/ExternalToolsWindow.cs +++ b/mRemoteV1/UI/Window/ExternalToolsWindow.cs @@ -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(); 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 } } + + \ No newline at end of file diff --git a/mRemoteV1/UI/Window/ExternalToolsWindow.resx b/mRemoteV1/UI/Window/ExternalToolsWindow.resx index f2d94fc4b..be385a189 100644 --- a/mRemoteV1/UI/Window/ExternalToolsWindow.resx +++ b/mRemoteV1/UI/Window/ExternalToolsWindow.resx @@ -112,21 +112,24 @@ 2.0 - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + + 177, 17 + + + 357, 17 + + 17, 17 - - 197, 17 - - + 54 - + AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA diff --git a/mRemoteV1/mRemoteV1.csproj b/mRemoteV1/mRemoteV1.csproj index 206746b2c..c3c4abad0 100644 --- a/mRemoteV1/mRemoteV1.csproj +++ b/mRemoteV1/mRemoteV1.csproj @@ -344,9 +344,18 @@ Component + + Component + + + Component + Component + + Component + Component