From 95d1a442bedeba383c9221394df3ad406fafb4f0 Mon Sep 17 00:00:00 2001 From: Ylian Saint-Hilaire Date: Wed, 2 Mar 2022 16:41:08 -0800 Subject: [PATCH] Improved multi-display selection. --- KVMViewer.Designer.cs | 30 +++-- KVMViewer.cs | 68 ++++++---- KVMViewer.resx | 142 +++++++++++++++----- MeshCentralRouter.csproj | 1 + Properties/Resources.Designer.cs | 10 ++ Properties/Resources.resx | 217 ++++++++++++++++--------------- Resources/icon-monitor1.png | Bin 0 -> 396 bytes Resources/icon-monitor1b.png | Bin 0 -> 339 bytes Resources/icon-monitor2.png | Bin 0 -> 461 bytes Resources/icon-monitor2b.png | Bin 0 -> 409 bytes Resources/monitor32.png | Bin 0 -> 848 bytes 11 files changed, 291 insertions(+), 177 deletions(-) create mode 100644 Resources/icon-monitor1.png create mode 100644 Resources/icon-monitor1b.png create mode 100644 Resources/icon-monitor2.png create mode 100644 Resources/icon-monitor2b.png create mode 100644 Resources/monitor32.png diff --git a/KVMViewer.Designer.cs b/KVMViewer.Designer.cs index c57a6e4..cee1679 100644 --- a/KVMViewer.Designer.cs +++ b/KVMViewer.Designer.cs @@ -51,11 +51,11 @@ namespace MeshCentralRouter this.toolStripStatusLabel1 = new System.Windows.Forms.ToolStripStatusLabel(); this.updateTimer = new System.Windows.Forms.Timer(this.components); this.topPanel = new System.Windows.Forms.Panel(); + this.extraButtonsPanel = new System.Windows.Forms.Panel(); this.splitButton = new System.Windows.Forms.Button(); this.clipOutboundButton = new System.Windows.Forms.Button(); this.clipInboundButton = new System.Windows.Forms.Button(); this.statsButton = new System.Windows.Forms.Button(); - this.displaySelectComboBox = new System.Windows.Forms.ComboBox(); this.settingsButton = new System.Windows.Forms.Button(); this.zoomButton = new System.Windows.Forms.Button(); this.cadButton = new System.Windows.Forms.Button(); @@ -68,6 +68,7 @@ namespace MeshCentralRouter this.consoleTimer = new System.Windows.Forms.Timer(this.components); this.mainToolTip = new System.Windows.Forms.ToolTip(this.components); this.resizeKvmControl = new MeshCentralRouter.KVMResizeControl(); + this.displaySelectorImageList = new System.Windows.Forms.ImageList(this.components); this.mainStatusStrip.SuspendLayout(); this.topPanel.SuspendLayout(); this.consentContextMenuStrip.SuspendLayout(); @@ -103,11 +104,11 @@ namespace MeshCentralRouter // topPanel // this.topPanel.BackColor = System.Drawing.SystemColors.Control; + this.topPanel.Controls.Add(this.extraButtonsPanel); this.topPanel.Controls.Add(this.splitButton); this.topPanel.Controls.Add(this.clipOutboundButton); this.topPanel.Controls.Add(this.clipInboundButton); this.topPanel.Controls.Add(this.statsButton); - this.topPanel.Controls.Add(this.displaySelectComboBox); this.topPanel.Controls.Add(this.settingsButton); this.topPanel.Controls.Add(this.zoomButton); this.topPanel.Controls.Add(this.cadButton); @@ -115,6 +116,11 @@ namespace MeshCentralRouter resources.ApplyResources(this.topPanel, "topPanel"); this.topPanel.Name = "topPanel"; // + // extraButtonsPanel + // + resources.ApplyResources(this.extraButtonsPanel, "extraButtonsPanel"); + this.extraButtonsPanel.Name = "extraButtonsPanel"; + // // splitButton // resources.ApplyResources(this.splitButton, "splitButton"); @@ -150,14 +156,6 @@ namespace MeshCentralRouter this.statsButton.UseVisualStyleBackColor = true; this.statsButton.Click += new System.EventHandler(this.statsButton_Click); // - // displaySelectComboBox - // - this.displaySelectComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - resources.ApplyResources(this.displaySelectComboBox, "displaySelectComboBox"); - this.displaySelectComboBox.Name = "displaySelectComboBox"; - this.displaySelectComboBox.TabStop = false; - this.displaySelectComboBox.SelectionChangeCommitted += new System.EventHandler(this.displaySelectComboBox_SelectionChangeCommitted); - // // settingsButton // resources.ApplyResources(this.settingsButton, "settingsButton"); @@ -243,6 +241,15 @@ namespace MeshCentralRouter this.resizeKvmControl.Enter += new System.EventHandler(this.resizeKvmControl_Enter); this.resizeKvmControl.Leave += new System.EventHandler(this.resizeKvmControl_Leave); // + // displaySelectorImageList + // + this.displaySelectorImageList.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("displaySelectorImageList.ImageStream"))); + this.displaySelectorImageList.TransparentColor = System.Drawing.Color.Transparent; + this.displaySelectorImageList.Images.SetKeyName(0, "icon-monitor1.png"); + this.displaySelectorImageList.Images.SetKeyName(1, "icon-monitor1b.png"); + this.displaySelectorImageList.Images.SetKeyName(2, "icon-monitor2.png"); + this.displaySelectorImageList.Images.SetKeyName(3, "icon-monitor2b.png"); + // // KVMViewer // resources.ApplyResources(this, "$this"); @@ -278,7 +285,6 @@ namespace MeshCentralRouter private Button cadButton; private Button zoomButton; private Button settingsButton; - private ComboBox displaySelectComboBox; private Label consoleMessage; private Timer consoleTimer; private Button statsButton; @@ -290,6 +296,8 @@ namespace MeshCentralRouter private ToolStripMenuItem askConsentToolStripMenuItem; private ToolStripMenuItem privacyBarToolStripMenuItem; private Button splitButton; + private Panel extraButtonsPanel; + private ImageList displaySelectorImageList; } } diff --git a/KVMViewer.cs b/KVMViewer.cs index 2f5976f..920f39e 100644 --- a/KVMViewer.cs +++ b/KVMViewer.cs @@ -45,6 +45,7 @@ namespace MeshCentralRouter private KVMViewerExtra[] extraDisplays = null; private System.Windows.Forms.Timer delayedConnectionTimer = null; private bool localAutoReconnect = true; + private Dictionary displaySelectionButtons = new Dictionary(); // Stats public long bytesIn = 0; @@ -52,16 +53,6 @@ namespace MeshCentralRouter public long bytesOut = 0; public long bytesOutCompressed = 0; - public class displayTag - { - public ushort num; - public string name; - - public displayTag(ushort num, string name) { this.num = num; this.name = name; } - - public override string ToString() { return name; } - } - public KVMViewer(MainForm parent, MeshCentralServer server, NodeClass node) { this.parent = parent; @@ -376,7 +367,7 @@ namespace MeshCentralRouter { case 0: // Disconnected mainToolStripStatusLabel.Text = Translate.T(Properties.Resources.Disconnected, lang); - displaySelectComboBox.Visible = false; + extraButtonsPanel.Visible = false; kvmControl.Visible = false; kvmControl.screenWidth = 0; kvmControl.screenHeight = 0; @@ -384,13 +375,13 @@ namespace MeshCentralRouter break; case 1: // Connecting mainToolStripStatusLabel.Text = Translate.T(Properties.Resources.Connecting, lang); - displaySelectComboBox.Visible = false; + extraButtonsPanel.Visible = false; kvmControl.Visible = false; connectButton.Text = Translate.T(Properties.Resources.Disconnect, lang); break; case 2: // Setup mainToolStripStatusLabel.Text = "Setup..."; - displaySelectComboBox.Visible = false; + extraButtonsPanel.Visible = false; kvmControl.Visible = false; connectButton.Text = Translate.T(Properties.Resources.Disconnect, lang); break; @@ -515,35 +506,57 @@ namespace MeshCentralRouter resizeKvmControl.ZoomToFit = !resizeKvmControl.ZoomToFit; } + /// + /// + /// + /// + /// private void resizeKvmControl_DisplaysReceived(object sender, EventArgs e) { if (kvmControl == null || kvmControl.displays.Count == 0) return; if (kvmControl.displays.Count > 0) { - displaySelectComboBox.Visible = true; - displaySelectComboBox.Items.Clear(); + extraButtonsPanel.Visible = true; + extraButtonsPanel.Controls.Clear(); + displaySelectionButtons.Clear(); foreach (ushort displayNum in kvmControl.displays) { - displayTag t; if (displayNum == 0xFFFF) { - t = new displayTag(displayNum, Translate.T(Properties.Resources.AllDisplays, lang)); - displaySelectComboBox.Items.Add(t); + Button b = new Button(); + b.ImageList = displaySelectorImageList; + b.ImageIndex = (kvmControl.currentDisp == displayNum) ? 2 : 3; // All displayes + b.Width = 32; + b.Height = 32; + mainToolTip.SetToolTip(b, Translate.T(Properties.Resources.AllDisplays, lang)); + b.Click += new System.EventHandler(this.displaySelectComboBox_SelectionChangeCommitted); + b.Tag = displayNum; + b.Dock = DockStyle.Left; + extraButtonsPanel.Controls.Add(b); + displaySelectionButtons.Add(displayNum, b); } else { - t = new displayTag(displayNum, string.Format(Translate.T(Properties.Resources.DisplayX, lang), displayNum)); - displaySelectComboBox.Items.Add(t); + Button b = new Button(); + b.ImageList = displaySelectorImageList; + b.ImageIndex = (kvmControl.currentDisp == displayNum) ? 0 : 1; // One display grayed out + b.Width = 32; + b.Height = 32; + mainToolTip.SetToolTip(b, string.Format(Translate.T(Properties.Resources.DisplayX, lang), displayNum)); + b.Click += new System.EventHandler(this.displaySelectComboBox_SelectionChangeCommitted); + b.Tag = displayNum; + b.Dock = DockStyle.Left; + extraButtonsPanel.Controls.Add(b); + displaySelectionButtons.Add(displayNum, b); } - - if (kvmControl.currentDisp == displayNum) { displaySelectComboBox.SelectedItem = t; } } } else { - displaySelectComboBox.Visible = false; - displaySelectComboBox.Items.Clear(); + extraButtonsPanel.Visible = false; + extraButtonsPanel.Controls.Clear(); + displaySelectionButtons.Clear(); } // If there are many displays and all displays is selected, enable split/join button. @@ -553,7 +566,10 @@ namespace MeshCentralRouter private void displaySelectComboBox_SelectionChangeCommitted(object sender, EventArgs e) { if (splitMode) { splitButton_Click(this, null); } - if (kvmControl != null) { kvmControl.SendDisplay(((displayTag)displaySelectComboBox.SelectedItem).num); } + if (kvmControl != null) { + ushort displayNum = (ushort)((Button)sender).Tag; + kvmControl.SendDisplay(displayNum); + } } private void resizeKvmControl_TouchEnabledChanged(object sender, EventArgs e) @@ -738,5 +754,7 @@ namespace MeshCentralRouter } } } + + } } diff --git a/KVMViewer.resx b/KVMViewer.resx index 270e7a6..d23caf2 100644 --- a/KVMViewer.resx +++ b/KVMViewer.resx @@ -171,6 +171,30 @@ 154, 17 + + Top, Left, Right + + + 383, 4 + + + 658, 32 + + + 10 + + + extraButtonsPanel + + + System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + topPanel + + + 0 + Top, Right @@ -205,7 +229,7 @@ topPanel - 0 + 1 Top, Right @@ -238,7 +262,7 @@ topPanel - 1 + 2 Top, Right @@ -277,7 +301,7 @@ topPanel - 2 + 3 Top, Right @@ -310,36 +334,6 @@ topPanel - 3 - - - 16 - - - 384, 6 - - - 4, 4, 4, 4 - - - 169, 24 - - - 5 - - - False - - - displaySelectComboBox - - - System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - topPanel - - 4 @@ -586,7 +580,7 @@ resizeKvmControl - MeshCentralRouter.KVMResizeControl, MeshCentralRouter, Version=1.8.8063.22517, Culture=neutral, PublicKeyToken=null + MeshCentralRouter.KVMResizeControl, MeshCentralRouter, Version=1.8.8096.29519, Culture=neutral, PublicKeyToken=null $this @@ -594,6 +588,80 @@ 2 + + 752, 17 + + + + AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w + LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 + ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAADs + DgAAAk1TRnQBSQFMAgEBBAEAARABAAEQAQABEAEAARABAAT/AREBAAj/AUIBTQE2BwABNgMAASgDAAFA + AwABIAMAAQEBAAEQBgABEP8A/wD/AP8A/wD/AP8A/wAiAAH3AV4BpQEUAaUBFAGlARQBpQEUAaUBFAGl + ARQB9wFeEAAB9wFeAaUBFAGlARQBpQEUAaUBFAGlARQBpQEUAfcBXhAAAfcBXgGlARQBpQEUAaUBFAGl + ARQBpQEUAaUBFAH3AV4QAAH3AV4BpQEUAaUBFAGlARQBpQEUAaUBFAGlARQB9wFeEAAB3gF7ARgBYwFr + AS0BYwEQAYQBEAFrAS0BGAFjAd4BexAAAd4BewEYAWMBawEtAYQBEAGEARABawEtARgBYwHeAXsQAAHe + AXsBGAFjAWsBLQFjARABhAEQAWsBLQEYAWMB3gF7EAAB3gF7ARgBYwFrAS0BhAEQAYQBEAFrAS0BGAFj + Ad4BexQAAXsBbwFkARABZAEQAVoBaxgAAXsBbwFjAQwBYwEMAVoBaxgAAXsBbwFkARABZAEQAVoBaxgA + AXsBbwFjAQwBYwEMAVoBawwAAZwBcwH3AV4B9wFeAfcBXgH3AV4B9wFeAWsBLQFiARABYgEQAWoBLQH3 + AV4B9wFeAfcBXgH3AV4B9wFeAZwBcwGcAXMB9wFeAfcBXgH3AV4B9wFeAfcBXgFrAS0BYwEMAWMBDAFr + AS0B9wFeAfcBXgH3AV4B9wFeAfcBXgGcAXMBnAFzAfcBXgH3AV4B9wFeAfcBXgH3AV4BawEtAWIBEAFi + ARABagEtAfcBXgH3AV4B9wFeAfcBXgH3AV4BnAFzAZwBcwH3AV4B9wFeAfcBXgH3AV4B9wFeAWsBLQFj + AQwBYwEMAWsBLQH3AV4B9wFeAfcBXgH3AV4B9wFeAZwBcwErARkB2gEeAdoBHgHaAR4B2gEeAdoBHgHa + AR4B2wEeAdsBHgHbAR4BugEeAboBHgHaAR4BugEeAdoBHgFMARkBCAEhAVIBSgFSAUoBUgFKAVIBSgFS + AUoBUgFKAVIBSgFSAUoBUgFKAVIBSgFSAUoBUgFKAVIBSgFSAUoBKQElASsBGQHaAR4B2gEeAdoBHgHa + AR4B2gEeAdoBHgHbAR4B2wEeAdsBHgG6AR4BugEeAdoBHgG6AR4B2gEeAUwBGQEIASEBUgFKAVIBSgFS + AUoBUgFKAVIBSgFSAUoBUgFKAVIBSgFSAUoBUgFKAVIBSgFSAUoBUgFKAVIBSgEpASUBbAEZAT8BIwE/ + ASMBPwEjAT8BIwE/ASMBPwEjAT8BIwE/ASMBPwEjAT8BIwE/ASMBPwEjAT8BIwE/ASMBbQEZASkBJQG1 + AVYBtQFWAbUBVgG1AVYBtQFWAbUBVgG1AVYBtQFWAbUBVgG1AVYBtQFWAbUBVgG1AVYBtQFWAUoBKQFs + ARkBPwEjAT8BIwE/ASMBPwEjAT8BIwE/ASMBPwEjAT8BIwE/ASMBPwEjAT8BIwE/ASMBPwEjAT8BIwFt + ARkBKQElAbUBVgG1AVYBtQFWAbUBVgG1AVYBtQFWAbUBVgG1AVYBtQFWAbUBVgG1AVYBtQFWAbUBVgG1 + AVYBSgEpAWwBGQE/ASMBPwEjAT8BIwE/ASMBPwEjAT8BIwE/ASMBPwEjAT8BIwE/ASMBPwEjAT8BIwE/ + ASMBPwEjAW0BGQEpASUBtQFWAbUBVgG1AVYBtQFWAbUBVgG1AVYBtQFWAbUBVgG1AVYBtQFWAbUBVgG1 + AVYBtQFWAbUBVgFKASkBbAEZAT8BIwE/ASMBPwEjAT8BIwE/ASMBPwEjAT8BIwE/ASMBPwEjAT8BIwE/ + ASMBPwEjAT8BIwE/ASMBbQEZASkBJQG1AVYBtQFWAbUBVgG1AVYBtQFWAbUBVgG1AVYBtQFWAbUBVgG1 + AVYBtQFWAbUBVgG1AVYBtQFWAUoBKQFsARkBPwEjAT8BIwE/ASMBPwEjAT8BIwE/ASMBPwEjAT8BIwE/ + ASMBPwEjAT8BIwE/ASMBPwEjAT8BIwFtARkBKQElAbUBVgG1AVYBtQFWAbUBVgG1AVYBtQFWAbUBVgG1 + AVYBtQFWAbUBVgG1AVYBtQFWAbUBVgG1AVYBSgEpAWwBGQH/ASYBfwEqAX8BKgF/ASoBfwEqAX8BKgH/ + ASYB/wEmAX8BKgF/ASoBfwEqAX8BKgF/ASoB/wEmAW0BGQEpASUBlAJSAUoBUgFKAVIBSgFSAUoBUgFK + AZQBUgGUAlIBSgFSAUoBUgFKAVIBSgFSAUoBlAFSAUoBKQFsARkBPwEjAT8BIwE/ASMBPwEjAT8BIwE/ + ASMBPwEjAT8BIwE/ASMBPwEjAT8BIwE/ASMBPwEjAT8BIwFtARkBKQElAbUBVgG1AVYBtQFWAbUBVgG1 + AVYBtQFWAbUBVgG1AVYBtQFWAbUBVgG1AVYBtQFWAbUBVgG1AVYBSgEpAWwBGQF/ASoBfwE8AX8BPAF/ + ATwBfwE8AX8BPAF/ASoBfwEqAX8BPAF/ATwBfwE8AX8BPAF/ATwBfwEqAW0BGQEpASUBUgJKASkBSgEp + AUoBKQFKASkBSgEpAVIBSgFSAkoBKQFKASkBSgEpAUoBKQFKASkBUgJKASkBbAEZAT8BIwE/ASMBPwEj + AT8BIwE/ASMBPwEjAT8BIwE/ASMBPwEjAT8BIwE/ASMBPwEjAT8BIwE/ASMBbQEZASkBJQG1AVYBtQFW + AbUBVgG1AVYBtQFWAbUBVgG1AVYBtQFWAbUBVgG1AVYBtQFWAbUBVgG1AVYBtQFWAUoBKQFsARkBfwEq + AX8BPAF/ATwBfwE8AX8BPAF/ATwBfwEqAX8BKgF/ATwBfwE8AX8BPAF/ATwBfwE8AX8BKgFtARkBKQEl + AVICSgEpAUoBKQFKASkBSgEpAUoBKQFSAUoBUgJKASkBSgEpAUoBKQFKASkBSgEpAVICSgEpAWwBGQE/ + ASMBPwEjAT8BIwE/ASMBPwEjAT8BIwE/ASMBPwEjAT8BIwE/ASMBPwEjAT8BIwE/ASMBPwEjAW0BGQEp + ASUBtQFWAbUBVgG1AVYBtQFWAbUBVgG1AVYBtQFWAbUBVgG1AVYBtQFWAbUBVgG1AVYBtQFWAbUBVgFK + ASkBbAEZAX8BKgF/ATwBfwE8AX8BPAF/ATwBfwE8AX8BKgF/ASoBfwE8AX8BPAF/ATwBfwE8AX8BPAF/ + ASoBbQEZASkBJQFSAkoBKQFKASkBSgEpAUoBKQFKASkBUgFKAVICSgEpAUoBKQFKASkBSgEpAUoBKQFS + AkoBKQFsARkBPwEjAT8BIwE/ASMBPwEjAT8BIwE/ASMBPwEjAT8BIwE/ASMBPwEjAT8BIwE/ASMBPwEj + AT8BIwFtARkBKQElAbUBVgG1AVYBtQFWAbUBVgG1AVYBtQFWAbUBVgG1AVYBtQFWAbUBVgG1AVYBtQFW + AbUBVgG1AVYBSgEpAWwBGQF/ASoBfwE8AX8BPAF/ATwBfwE8AX8BPAF/ASoBfwEqAX8BPAF/ATwBfwE8 + AX8BPAF/ATwBfwEqAW0BGQEpASUBUgJKASkBSgEpAUoBKQFKASkBSgEpAVIBSgFSAkoBKQFKASkBSgEp + AUoBKQFKASkBUgJKASkBbAEZAT8BIwE/ASMBPwEjAT8BIwE/ASMBPwEjAT8BIwE/ASMBPwEjAT8BIwE/ + ASMBPwEjAT8BIwE/ASMBbQEZASkBJQG1AVYBtQFWAbUBVgG1AVYBtQFWAbUBVgG1AVYBtQFWAbUBVgG1 + AVYBtQFWAbUBVgG1AVYBtQFWAUoBKQFsARkB/wEmAX8BKgF/ASoBfwEqAX8BKgF/ASoB/wEmAf8BJgF/ + ASoBfwEqAX8BKgF/ASoBfwEqAf8BJgFtARkBKQElAZQCUgFKAVIBSgFSAUoBUgFKAVIBSgGUAVIBlAJS + AUoBUgFKAVIBSgFSAUoBUgFKAZQBUgFKASkBbAEZAT8BIwE/ASMBPwEjAT8BIwE/ASMBPwEjAT8BIwE/ + ASMBPwEjAT8BIwE/ASMBPwEjAT8BIwE/ASMBbQEZASkBJQG1AVYBtQFWAbUBVgG1AVYBtQFWAbUBVgG1 + AVYBtQFWAbUBVgG1AVYBtQFWAbUBVgG1AVYBtQFWAUoBKQFsARkBPwEjAT8BIwE/ASMBPwEjAT8BIwE/ + ASMBPwEjAT8BIwE/ASMBPwEjAT8BIwE/ASMBPwEjAT8BIwFtARkBKQElAbUBVgG1AVYBtQFWAbUBVgG1 + AVYBtQFWAbUBVgG1AVYBtQFWAbUBVgG1AVYBtQFWAbUBVgG1AVYBSgEpAUwBGQE/ASMBPwEjAT8BIwE/ + ASMBPwEjAT8BIwE/ASMBPwEjAT8BIwE/ASMBPwEjAT8BIwE/ASMBPwEjAW0BGQEpASUBtQFWAbUBVgG1 + AVYBtQFWAbUBVgG1AVYBtQFWAbUBVgG1AVYBtQFWAbUBVgG1AVYBtQFWAbUBVgFKASkBTAEZAT8BIwE/ + ASMBPwEjAT8BIwE/ASMBPwEjAT8BIwE/ASMBPwEjAT8BIwE/ASMBPwEjAT8BIwE/ASMBbQEZASkBJQG1 + AVYBtQFWAbUBVgG1AVYBtQFWAbUBVgG1AVYBtQFWAbUBVgG1AVYBtQFWAbUBVgG1AVYBtQFWAUoBKQHw + AT0B6AEYAegBGAHoARgB6AEYAegBGAHoARgB6AEYAegBGAHoARgB6AEYAegBGAHoARgB6AEYAegBGAHv + AT0B7wE9AecBHAHnARwB5wEcAecBHAHnARwB5wEcAecBHAHnARwB5wEcAecBHAHnARwB5wEcAecBHAHn + ARwB7wE9AfABPQHoARgB6AEYAegBGAHoARgB6AEYAegBGAHoARgB6AEYAegBGAHoARgB6AEYAegBGAHo + ARgB6AEYAe8BPQHvAT0B5wEcAecBHAHnARwB5wEcAecBHAHnARwB5wEcAecBHAHnARwB5wEcAecBHAHn + ARwB5wEcAecBHAHvAT0BQgFNAT4HAAE+AwABKAMAAUADAAEgAwABAQEAAQEGAAEBFgAD/4EAAfABDwHw + AQ8B8AEPAfABDwHwAQ8B8AEPAfABDwHwAQ8B/AE/AfwBPwH8AT8B/AE/aAAL + + True @@ -1085,6 +1153,12 @@ System.Windows.Forms.ToolTip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + displaySelectorImageList + + + System.Windows.Forms.ImageList, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + KVMViewer diff --git a/MeshCentralRouter.csproj b/MeshCentralRouter.csproj index 341f63f..cf4c028 100644 --- a/MeshCentralRouter.csproj +++ b/MeshCentralRouter.csproj @@ -376,6 +376,7 @@ + diff --git a/Properties/Resources.Designer.cs b/Properties/Resources.Designer.cs index ab5d15a..42ad1d4 100644 --- a/Properties/Resources.Designer.cs +++ b/Properties/Resources.Designer.cs @@ -424,6 +424,16 @@ namespace MeshCentralRouter.Properties { } } + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap icon_monitor1 { + get { + object obj = ResourceManager.GetObject("icon-monitor1", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + /// /// Looks up a localized resource of type System.Drawing.Bitmap. /// diff --git a/Properties/Resources.resx b/Properties/Resources.resx index e1b095e..dd2d065 100644 --- a/Properties/Resources.resx +++ b/Properties/Resources.resx @@ -120,21 +120,18 @@ CIRA - - Toggle remote desktop connection - - - Unable to open file: {0} + + Change remote desktop settings - - ..\Resources\MeshCentral.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\Gear20.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - Connect + + ..\Resources\icon-clipboard-in.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - {0} Bytes + + ZIP Selected Files Denied @@ -142,12 +139,6 @@ Invalid username or password - - {0} bytes/sec - - - Slow - Display connection statistics @@ -157,14 +148,14 @@ ..\Resources\50-Computer.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + Almost done + Email sent - - Port {0} to {1}:{2} - - - {0} minutes left + + Rename Failed to start remote terminal session @@ -175,8 +166,8 @@ ..\Resources\Empty-Banner.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - PuTTY SSH client + + Received invalid network data {0} Mbytes/sec @@ -184,8 +175,8 @@ ..\Resources\refresh16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - No tools allowed + + ..\Resources\delete16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a Send Ctrl-Alt-Del to remote device @@ -193,20 +184,23 @@ Fast - - {0} seconds left + + , Recorded Session Search - - Overwrite 1 file? + + Send token to registered email address? Don't ask for {0} days. - - Rename + + Stopped + + + ..\Resources\MeshCentral.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a Connecting... @@ -214,11 +208,14 @@ MeshCentral + + ..\Resources\folderzip.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + Failed to start remote desktop session - - Received invalid network data + + Offline Email verification required @@ -229,20 +226,20 @@ Unable to write file: {0} + + WinSCP client + {0} Kbytes/sec Changing language will close this tool. Are you sure? - - Invalid download. + + Connected - - Remove {0} items? - - - Change remote desktop settings + + Close Send token to registered phone number? @@ -256,17 +253,20 @@ Push local clipboard to remote device - - Unable to bind to local port + + {0} minutes left - - ..\Resources\icon-clipboard-in.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + Toggle remote desktop connection - - ..\Resources\MC2-Banner.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + Local - - Error uploading file: {0} + + Join + + + Relay Disconnected @@ -280,8 +280,8 @@ Medium - - Remote - {0} + + PuTTY SSH client Pull clipboard from remote device @@ -295,26 +295,23 @@ Port {0} to port {1} - - Very slow - Remove 1 item? - - , {0} connections. + + Overwrite 1 file? (Individual Devices) - - ..\Resources\xinstall.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + Split Create Folder - - ..\Resources\arrowright16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + {0} Bytes Updating... @@ -334,8 +331,8 @@ {0} hours left - - ..\Resources\icon-clipboard-out.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + Invalid download. Waiting for user to grant access... @@ -346,26 +343,29 @@ All Displays - - ..\Resources\HelpRelayMap.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + {0} seconds left - - MeshCentral Router + + ..\Resources\xinstall.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Disconnect AMT - - Local + + Port {0} to {1}:{2} - - Relay + + Error uploading file: {0} ..\Resources\icons01.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - Unable to connect + + Remove {0} items? Setup... @@ -376,14 +376,17 @@ ..\Resources\arrowleft16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - Close + + Unable to connect - - , {0} users + + Unable to bind to local port - - Disconnect + + No tools allowed + + + ..\Resources\arrowright16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a Languages @@ -391,14 +394,17 @@ Local - {0} - - ..\Resources\Gear20.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + {0} bytes/sec - - Offline + + ..\Resources\icon-clipboard-out.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - , Recorded Session + + Very slow + + + MeshCentral Router {0} Byte @@ -409,49 +415,46 @@ ..\Resources\folderup16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\delete16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + Unable to open file: {0} - - WinSCP client + + ..\Resources\MC2-Banner.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a , 1 connection. + + Connect + Two-factor Authentication Agent - - Connected + + , {0} connections. + + + Remote - {0} Error downloading file: {0} - - Almost done + + ..\Resources\HelpRelayMap.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a Remote - - Send token to registered email address? + + Slow - - Stopped + + , {0} users - - ..\Resources\folderzip.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ZIP Selected Files - - - Join - - - Split + + ..\Resources\icon-monitor1.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a \ No newline at end of file diff --git a/Resources/icon-monitor1.png b/Resources/icon-monitor1.png new file mode 100644 index 0000000000000000000000000000000000000000..76380d010baf564fc447f6e8de81d94d9cde4e69 GIT binary patch literal 396 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBufiR<}hF1engQBO4V~B-+a!FyK_3wYz=coRpQ(R(6a^T#oFaRA&LsS@H+cE)|9}1?Oq@)UjXHjv|B&h^&b)Zp zrd{{{=ih%=`H=sz{esOBl0R5kh2r+ts`6hssi33t=fmma`rHjZ8xqg()Jyy`*krU} z}dgf3rHVL+Z!ouhEzyIxhcYgkTrZ+M&JZskE@YMhNBlzRr-`$6Q n^UK@qsr_DNAEGH>V8Fo8R2j{vBz_ghVqoxe^>bP0l+XkKiyxHe literal 0 HcmV?d00001 diff --git a/Resources/icon-monitor1b.png b/Resources/icon-monitor1b.png new file mode 100644 index 0000000000000000000000000000000000000000..8e7a6e6694c9075378ec787c8acb2384840c5073 GIT binary patch literal 339 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBuf-vKbiP>*~f-gK>978PplS>K1oLs5|WY&V=ggz=nGHrHIpz+h>$q&;@!J{_ix{pKIO`~!R6ck z|MdoJj89s&*ZwYJa|;a(-9O*H{?KP84@F^N;pT=0heNZ?^Pf1@Bqly=2g<}X1wdSFBhu zanq(v3Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!T6?F-m4}VWDKBl4J5O+$s^mxN|FdsWrTEp9~Yy`xhpd% zicywUL|r6-Jin4xeOh7kl~%%qeqHJZ(4{i%MXjtYQJLD`1mp=IDV00000NkvXXu0mjf D+jGtF literal 0 HcmV?d00001 diff --git a/Resources/icon-monitor2b.png b/Resources/icon-monitor2b.png new file mode 100644 index 0000000000000000000000000000000000000000..7810b97f5e67a5d9a4197b45bb238617a01a75e1 GIT binary patch literal 409 zcmV;K0cQS*P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!2kdb!2!6DYwZ940WL{IK~y+TV{~zG zIs5(lcOwQe02>?IIYvJ}zyHzE(NH1M!1CqG8JHLu8KGR#0Z1fSmBQZ{N!2TT<3 zyZ}5SEgXiiHYe z0A?r+2hPsU8Zt66IV>zJMZjDt0CJ6}sHl;$va$dWzj*NA!5gSjFu*W?i;FA&+qZ9Z zfByUt;Nak3U}a@x0I`9FIRK;c!@GCy_Cu8d0Rsa7GQN?HJhIAu00000NkvXXu0mjf D8XToO literal 0 HcmV?d00001 diff --git a/Resources/monitor32.png b/Resources/monitor32.png new file mode 100644 index 0000000000000000000000000000000000000000..d11f8744d46d56a4dc43bf38880e0bd238175076 GIT binary patch literal 848 zcmWkrZA=>l0KJM1oop-p;(Fh`_Ih`vAN1>by}Qy+x|U!e44ovHw57l(PRaVm6=SAL zjQ%h~C`0$FWLv@*AT7pq&5XpwE!hmeH-F7e=ElS&k{HD$c>D3*%X{zNd!P5EjvhJ) z9RvX2P%;tgmz9-4yxJslt+LP}i=xnfGy<${B2Q%V@>uwdFaT7}z5YD&irlUB^$c|F z@9(GIIv(J?LBZGQ=R%@S^0||oAaa4sn}a8E85km{U=I`NrNb$vGs#B#h>WWz z2OEgnV?!aUjdM9n(FEQ7j?2PGE+@r$+_THxxm8bT#XYm;nXPzBRc>zGJ^hXJbQ8*Q5(KT+>zem+P)`YrQq$47Ba8`?r(!nf*GkVO7Vnzry z>LD7%%m_-s2(Hzk>Q+OWmIQT#PD7(`2Zd zW1(=sF9@8EGLSyECn!ph&R{eg;W?j1rA8nahYXX$)Co6YC* zj~@T_M`QcZ=Ej3xpKNXIZ0+pqJbd~)t^}1DLjm5 zYIa6F(_j8jBD}VMFDc=2U)4hX zRR6@&ZMfV3%atqFsUN)8yfp0-udQ7E{_;h&<*cG!pDIoji}k6!y<%~1d+EQ0MrdOL Y0P262td9Z3ro1GO>`KK}Bk5262jk%ly#N3J literal 0 HcmV?d00001