From 607fbcbeac2c0ace52d00634dafbe0e963f1986b Mon Sep 17 00:00:00 2001 From: Izakbar Date: Sun, 26 Jan 2025 13:06:31 +0000 Subject: [PATCH 1/5] #46 fix bug with minimum preview size on startup #47 treat click on overlay text same as click on main preview --- src/Eve-O-Preview/Properties/AssemblyInfo.cs | 4 ++-- src/Eve-O-Preview/View/Implementation/MainForm.cs | 4 ++-- .../View/Implementation/ThumbnailOverlay.Designer.cs | 1 + .../View/Implementation/ThumbnailView.Designer.cs | 2 +- 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/Eve-O-Preview/Properties/AssemblyInfo.cs b/src/Eve-O-Preview/Properties/AssemblyInfo.cs index 9c4041c..f3bb6e1 100644 --- a/src/Eve-O-Preview/Properties/AssemblyInfo.cs +++ b/src/Eve-O-Preview/Properties/AssemblyInfo.cs @@ -12,7 +12,7 @@ using System.Runtime.InteropServices; [assembly: AssemblyCulture("")] [assembly: ComVisible(false)] [assembly: Guid("04f08f8d-9e98-423b-acdb-4effb31c0d35")] -[assembly: AssemblyVersion("8.0.1.5")] -[assembly: AssemblyFileVersion("8.0.1.5")] +[assembly: AssemblyVersion("8.0.1.6")] +[assembly: AssemblyFileVersion("8.0.1.6")] [assembly: CLSCompliant(false)] \ No newline at end of file diff --git a/src/Eve-O-Preview/View/Implementation/MainForm.cs b/src/Eve-O-Preview/View/Implementation/MainForm.cs index 129e01a..379007e 100644 --- a/src/Eve-O-Preview/View/Implementation/MainForm.cs +++ b/src/Eve-O-Preview/View/Implementation/MainForm.cs @@ -28,8 +28,8 @@ namespace EveOPreview.View this._overlayLabelMap = new Dictionary(); this._cachedThumbnailZoomAnchor = ViewZoomAnchor.NW; this._suppressEvents = false; - this._minimumSize = new Size(80, 60); - this._maximumSize = new Size(80, 60); + this._minimumSize = new Size(20, 20); + this._maximumSize = new Size(20, 20); InitializeComponent(); diff --git a/src/Eve-O-Preview/View/Implementation/ThumbnailOverlay.Designer.cs b/src/Eve-O-Preview/View/Implementation/ThumbnailOverlay.Designer.cs index b1668ae..e53f3e1 100644 --- a/src/Eve-O-Preview/View/Implementation/ThumbnailOverlay.Designer.cs +++ b/src/Eve-O-Preview/View/Implementation/ThumbnailOverlay.Designer.cs @@ -57,6 +57,7 @@ this.OverlayLabel.Size = new System.Drawing.Size(25, 13); this.OverlayLabel.TabIndex = 1; this.OverlayLabel.Text = "..."; + this.OverlayLabel.MouseUp += new System.Windows.Forms.MouseEventHandler(this.OverlayArea_Click); // // ThumbnailOverlay // diff --git a/src/Eve-O-Preview/View/Implementation/ThumbnailView.Designer.cs b/src/Eve-O-Preview/View/Implementation/ThumbnailView.Designer.cs index 697d424..575e5a1 100644 --- a/src/Eve-O-Preview/View/Implementation/ThumbnailView.Designer.cs +++ b/src/Eve-O-Preview/View/Implementation/ThumbnailView.Designer.cs @@ -28,7 +28,7 @@ namespace EveOPreview.View this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.SizableToolWindow; this.MaximizeBox = false; this.MinimizeBox = false; - this.MinimumSize = new System.Drawing.Size(64, 64); + this.MinimumSize = new System.Drawing.Size(20, 20); this.Name = "ThumbnailView"; this.Opacity = 0.1D; this.ShowIcon = false; From 7ec1aceb5481f031f7e2a8405c7e95556b562b23 Mon Sep 17 00:00:00 2001 From: Izakbar Date: Wed, 5 Feb 2025 09:33:40 +0000 Subject: [PATCH 2/5] #49 cycle through eve clients at toon selection page #9 Allow EveO to preview other executables --- .../Implementation/ThumbnailConfiguration.cs | 11 ++++- .../Interface/IThumbnailConfiguration.cs | 1 + src/Eve-O-Preview/Properties/AssemblyInfo.cs | 4 +- .../Services/Implementation/ProcessMonitor.cs | 11 +++-- .../Implementation/ThumbnailManager.cs | 43 +++++++++++++++++-- 5 files changed, 60 insertions(+), 10 deletions(-) diff --git a/src/Eve-O-Preview/Configuration/Implementation/ThumbnailConfiguration.cs b/src/Eve-O-Preview/Configuration/Implementation/ThumbnailConfiguration.cs index 3144ead..888e2c0 100644 --- a/src/Eve-O-Preview/Configuration/Implementation/ThumbnailConfiguration.cs +++ b/src/Eve-O-Preview/Configuration/Implementation/ThumbnailConfiguration.cs @@ -1,4 +1,5 @@ -using System.Collections.Generic; +using System; +using System.Collections.Generic; using System.Drawing; using System.Linq; using System.Windows.Forms; @@ -60,6 +61,8 @@ namespace EveOPreview.Configuration.Implementation this.DisableThumbnail = new Dictionary(); this.PriorityClients = new List(); + this.ExecutablesToPreview = new List { "exefile" }; + this.MinimizeToTray = false; this.ThumbnailRefreshPeriod = 500; this.ThumbnailResizeTimeoutPeriod = 500; @@ -224,6 +227,8 @@ namespace EveOPreview.Configuration.Implementation private Dictionary DisableThumbnail { get; set; } [JsonProperty] private List PriorityClients { get; set; } + [JsonProperty] + private List ExecutablesToPreview { get; set; } public Point GetThumbnailLocation(string currentClient, string activeClient, Point defaultLocation) { @@ -326,6 +331,10 @@ namespace EveOPreview.Configuration.Implementation { return this.PriorityClients.Contains(currentClient); } + public bool IsExecutableToPreview(string processName) + { + return this.ExecutablesToPreview.Any(s => s.Equals(processName, StringComparison.OrdinalIgnoreCase)); + } public bool IsThumbnailDisabled(string currentClient) { diff --git a/src/Eve-O-Preview/Configuration/Interface/IThumbnailConfiguration.cs b/src/Eve-O-Preview/Configuration/Interface/IThumbnailConfiguration.cs index e95d1cd..4cb3653 100644 --- a/src/Eve-O-Preview/Configuration/Interface/IThumbnailConfiguration.cs +++ b/src/Eve-O-Preview/Configuration/Interface/IThumbnailConfiguration.cs @@ -73,6 +73,7 @@ namespace EveOPreview.Configuration Keys StringToKey(string hotkey); bool IsPriorityClient(string currentClient); + bool IsExecutableToPreview(string processName); bool IsThumbnailDisabled(string currentClient); void ToggleThumbnail(string currentClient, bool isDisabled); diff --git a/src/Eve-O-Preview/Properties/AssemblyInfo.cs b/src/Eve-O-Preview/Properties/AssemblyInfo.cs index f3bb6e1..166b385 100644 --- a/src/Eve-O-Preview/Properties/AssemblyInfo.cs +++ b/src/Eve-O-Preview/Properties/AssemblyInfo.cs @@ -12,7 +12,7 @@ using System.Runtime.InteropServices; [assembly: AssemblyCulture("")] [assembly: ComVisible(false)] [assembly: Guid("04f08f8d-9e98-423b-acdb-4effb31c0d35")] -[assembly: AssemblyVersion("8.0.1.6")] -[assembly: AssemblyFileVersion("8.0.1.6")] +[assembly: AssemblyVersion("8.0.1.7")] +[assembly: AssemblyFileVersion("8.0.1.7")] [assembly: CLSCompliant(false)] \ No newline at end of file diff --git a/src/Eve-O-Preview/Services/Implementation/ProcessMonitor.cs b/src/Eve-O-Preview/Services/Implementation/ProcessMonitor.cs index 2bf9008..2de2e7f 100644 --- a/src/Eve-O-Preview/Services/Implementation/ProcessMonitor.cs +++ b/src/Eve-O-Preview/Services/Implementation/ProcessMonitor.cs @@ -1,4 +1,5 @@ -using System; +using EveOPreview.Configuration; +using System; using System.Collections.Generic; using System.Diagnostics; @@ -14,12 +15,14 @@ namespace EveOPreview.Services.Implementation #region Private fields private readonly IDictionary _processCache; private IProcessInfo _currentProcessInfo; + private readonly IThumbnailConfiguration _configuration; #endregion - public ProcessMonitor() + public ProcessMonitor(IThumbnailConfiguration configuration) { this._processCache = new Dictionary(512); - + this._configuration = configuration; + // This field cannot be initialized properly in constructor // At the moment this code is executed the main application window is not yet initialized this._currentProcessInfo = new ProcessInfo(IntPtr.Zero, ""); @@ -28,7 +31,7 @@ namespace EveOPreview.Services.Implementation private bool IsMonitoredProcess(string processName) { // This is a possible extension point - return String.Equals(processName, ProcessMonitor.DEFAULT_PROCESS_NAME, StringComparison.OrdinalIgnoreCase); + return _configuration.IsExecutableToPreview(processName); } private IProcessInfo GetCurrentProcessInfo() diff --git a/src/Eve-O-Preview/Services/Implementation/ThumbnailManager.cs b/src/Eve-O-Preview/Services/Implementation/ThumbnailManager.cs index 346f39f..f14077a 100644 --- a/src/Eve-O-Preview/Services/Implementation/ThumbnailManager.cs +++ b/src/Eve-O-Preview/Services/Implementation/ThumbnailManager.cs @@ -126,13 +126,46 @@ namespace EveOPreview.Services foreach (var t in clientOrder) { - if (t.Key == _activeClient.Title) + if (t.Key == _activeClient.Title && t.Key != "EVE") { setNextClient = true; lastClient = _thumbnailViews.FirstOrDefault(x => x.Value.Title == t.Key).Value; continue; } + // cycle through login screens ? + if (t.Key == _activeClient.Title && t.Key == "EVE") + { + lastClient = _thumbnailViews.FirstOrDefault(x => x.Value.Title == t.Key && x.Value.Id == _activeClient.Handle).Value; + if (lastClient == null) + { + setNextClient = true; + continue; + } + var possibleClients = (isForwards ? _thumbnailViews.OrderBy(x => x.Value.Id.ToInt64()) : _thumbnailViews.OrderByDescending(x => x.Value.Id.ToInt64())).Where(x => x.Value.Title == t.Key); + foreach (var pc in possibleClients) + { + if ( pc.Value.Id.Equals(lastClient.Id) ) + { + setNextClient = true; + continue; + } + + if (!setNextClient) + { + continue; + } + + // this is the next client (at login screen) + SetActive(pc); + return; + } + + // rolled off top of list - back to first (if any there!) + // set next client ? + continue; + } + if (!setNextClient) { continue; @@ -140,7 +173,9 @@ namespace EveOPreview.Services if (_thumbnailViews.Any(x => x.Value.Title == t.Key)) { - var ptr = _thumbnailViews.First(x => x.Value.Title == t.Key); + var ptr = t.Key.Equals("EVE") ? + (isForwards ? _thumbnailViews.OrderBy(x => x.Value.Id.ToInt64()) : _thumbnailViews.OrderByDescending(x => x.Value.Id.ToInt64())).First(x => x.Value.Title == t.Key) + : _thumbnailViews.First(x => x.Value.Title == t.Key); SetActive(ptr); return; } @@ -151,7 +186,9 @@ namespace EveOPreview.Services { if (_thumbnailViews.Any(x => x.Value.Title == t.Key)) { - var ptr = _thumbnailViews.First(x => x.Value.Title == t.Key); + var ptr = t.Key.Equals("EVE") ? + (isForwards ? _thumbnailViews.OrderBy(x => x.Value.Id.ToInt64()) : _thumbnailViews.OrderByDescending(x => x.Value.Id.ToInt64())).First(x => x.Value.Title == t.Key) + : _thumbnailViews.First(x => x.Value.Title == t.Key); SetActive(ptr); _activeClient = (ptr.Key, t.Key); return; From 8e7c7374f43b55201ebf72c7bc07556037109202 Mon Sep 17 00:00:00 2001 From: Izakbar Date: Wed, 5 Feb 2025 21:52:50 +0000 Subject: [PATCH 3/5] #51 allow hiding of preview for eve login screen clients updated README.md --- README.md | 2 ++ .../Implementation/ThumbnailConfiguration.cs | 2 ++ .../Configuration/Interface/IThumbnailConfiguration.cs | 1 + src/Eve-O-Preview/Properties/AssemblyInfo.cs | 4 ++-- .../Services/Implementation/ThumbnailManager.cs | 9 +++++++++ 5 files changed, 16 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index fb088e6..350ce88 100644 --- a/README.md +++ b/README.md @@ -148,11 +148,13 @@ Some of the application options are not exposed in the GUI. They can be adjusted | **CompatibilityMode** |
Enables the alternative render mode (see below)
The default value is **false**
For example: **"CompatibilityMode": true**
| | **EnableThumbnailSnap** |
Allows to disable thumbnails snap feature by setting its value to **false**
The default value is **true**
For example: **"EnableThumbnailSnap": true**
| | **HideThumbnailsDelay** |
Delay before thumbnails are hidden if the **General** -> **Hide previews when EVE client is not active** option is enabled
The delay is measured in thumbnail refresh periods
The default value is **2** (corresponds to 1 second delay)
For example: **"HideThumbnailsDelay": 2**
| +| **HideLoginClientThumbnail** |
Hide EVE login window clients. If an Eve online client is sat at character selection screen - hide the preview window for this client
The default value is **false**
For example: **"HideLoginClientThumbnail": false**
| | **PriorityClients** |
Allows to set a list of clients that are not auto-minimized on inactivity even if the **Minimize inactive EVE clients** option is enabled. Listed clients still can be minimized using Windows hotkeys or via _Ctrl+Click_ on the corresponding thumbnail
The default value is empty list **[]**
For example: **"PriorityClients": [ "EVE - Phrynohyas Tig-Rah", "EVE - Ondatra Patrouette" ]**
| | **ThumbnailMinimumSize** |
Minimum thumbnail size that can be set either via GUI or by resizing a thumbnail window. Value is written in the form "width, height"
The default value is **"100, 80"**.
For example: **"ThumbnailMinimumSize": "100, 80"**
| | **ThumbnailMaximumSize** |
Maximum thumbnail size that can be set either via GUI or by resizing a thumbnail window. Value is written in the form "width, height"
The default value is **"640, 400"**.
For example: **"ThumbnailMaximumSize": "640, 400"**
| | **ThumbnailRefreshPeriod** |
Thumbnail refresh period in milliseconds. This option accepts values between **300** and **1000** only.
The default value is **500** milliseconds.
For example: **"ThumbnailRefreshPeriod": 500**
| | **ThumbnailResizeTimeoutPeriod** |
Thumbnail Resize Timeout period in milliseconds. This option accepts values between **200** and **5000** only.
The default value is **500** milliseconds.
For example: **"ThumbnailResizeTimeoutPeriod": 500**. If you are having the preview windows resize incorrectly on startup increase this value.
| +| **ExecutablesToPreview** |
List of executables to display preview windows for. List of strings.
The default value is **"exefile"**.
For example: **"ExecutablesToPreview": ["exefile","wow","Diablo IV"]**. If you are having the preview windows resize incorrectly on startup increase this value.
|
diff --git a/src/Eve-O-Preview/Configuration/Implementation/ThumbnailConfiguration.cs b/src/Eve-O-Preview/Configuration/Implementation/ThumbnailConfiguration.cs index 888e2c0..8c952a4 100644 --- a/src/Eve-O-Preview/Configuration/Implementation/ThumbnailConfiguration.cs +++ b/src/Eve-O-Preview/Configuration/Implementation/ThumbnailConfiguration.cs @@ -73,6 +73,7 @@ namespace EveOPreview.Configuration.Implementation this.EnableClientLayoutTracking = false; this.HideActiveClientThumbnail = false; + this.HideLoginClientThumbnail = false; this.MinimizeInactiveClients = false; this.WindowsAnimationStyle = AnimationStyle.NoAnimation; this.ShowThumbnailsAlwaysOnTop = true; @@ -165,6 +166,7 @@ namespace EveOPreview.Configuration.Implementation } public bool HideActiveClientThumbnail { get; set; } + public bool HideLoginClientThumbnail { get; set; } public bool MinimizeInactiveClients { get; set; } public AnimationStyle WindowsAnimationStyle { get; set; } public bool ShowThumbnailsAlwaysOnTop { get; set; } diff --git a/src/Eve-O-Preview/Configuration/Interface/IThumbnailConfiguration.cs b/src/Eve-O-Preview/Configuration/Interface/IThumbnailConfiguration.cs index 4cb3653..df03cb9 100644 --- a/src/Eve-O-Preview/Configuration/Interface/IThumbnailConfiguration.cs +++ b/src/Eve-O-Preview/Configuration/Interface/IThumbnailConfiguration.cs @@ -26,6 +26,7 @@ namespace EveOPreview.Configuration bool EnableClientLayoutTracking { get; set; } bool HideActiveClientThumbnail { get; set; } + bool HideLoginClientThumbnail { get; set; } bool MinimizeInactiveClients { get; set; } AnimationStyle WindowsAnimationStyle { get; set; } bool ShowThumbnailsAlwaysOnTop { get; set; } diff --git a/src/Eve-O-Preview/Properties/AssemblyInfo.cs b/src/Eve-O-Preview/Properties/AssemblyInfo.cs index 166b385..5f93b2f 100644 --- a/src/Eve-O-Preview/Properties/AssemblyInfo.cs +++ b/src/Eve-O-Preview/Properties/AssemblyInfo.cs @@ -12,7 +12,7 @@ using System.Runtime.InteropServices; [assembly: AssemblyCulture("")] [assembly: ComVisible(false)] [assembly: Guid("04f08f8d-9e98-423b-acdb-4effb31c0d35")] -[assembly: AssemblyVersion("8.0.1.7")] -[assembly: AssemblyFileVersion("8.0.1.7")] +[assembly: AssemblyVersion("8.0.1.8")] +[assembly: AssemblyFileVersion("8.0.1.8")] [assembly: CLSCompliant(false)] \ No newline at end of file diff --git a/src/Eve-O-Preview/Services/Implementation/ThumbnailManager.cs b/src/Eve-O-Preview/Services/Implementation/ThumbnailManager.cs index f14077a..471ddfe 100644 --- a/src/Eve-O-Preview/Services/Implementation/ThumbnailManager.cs +++ b/src/Eve-O-Preview/Services/Implementation/ThumbnailManager.cs @@ -443,6 +443,15 @@ namespace EveOPreview.Services continue; } + if (this._configuration.HideLoginClientThumbnail && (view.Title == DEFAULT_CLIENT_TITLE )) + { + if (view.IsActive) + { + view.Hide(); + } + continue; + } + // No need to update Thumbnails while one of them is highlighted if (!this._isHoverEffectActive) { From e0482f7a056b3bd8f97e2322fcd1fe3d0ff6af62 Mon Sep 17 00:00:00 2001 From: Izakbar Date: Wed, 5 Feb 2025 21:55:28 +0000 Subject: [PATCH 4/5] # 52 Y snap value not saved in config when amended in GUI --- .../View/Implementation/MainForm.Designer.cs | 23 ++++++++++--------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/src/Eve-O-Preview/View/Implementation/MainForm.Designer.cs b/src/Eve-O-Preview/View/Implementation/MainForm.Designer.cs index 5650573..849e6e3 100644 --- a/src/Eve-O-Preview/View/Implementation/MainForm.Designer.cs +++ b/src/Eve-O-Preview/View/Implementation/MainForm.Designer.cs @@ -39,6 +39,7 @@ namespace EveOPreview.View System.Windows.Forms.TabControl ContentTabControl; System.Windows.Forms.TabPage GeneralTabPage; System.Windows.Forms.Panel GeneralSettingsPanel; + System.Windows.Forms.Label label4; System.Windows.Forms.TabPage ThumbnailTabPage; System.Windows.Forms.Panel ThumbnailSettingsPanel; System.Windows.Forms.Label HeigthLabel; @@ -59,7 +60,6 @@ namespace EveOPreview.View System.Windows.Forms.Label DescriptionLabel; System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm)); System.Windows.Forms.Label NameLabel; - System.Windows.Forms.Label label4; this.AnimationStyleCombo = new System.Windows.Forms.ComboBox(); this.MinimizeInactiveClientsCheckBox = new System.Windows.Forms.CheckBox(); this.EnableClientLayoutTrackingCheckBox = new System.Windows.Forms.CheckBox(); @@ -122,6 +122,7 @@ namespace EveOPreview.View ContentTabControl = new System.Windows.Forms.TabControl(); GeneralTabPage = new System.Windows.Forms.TabPage(); GeneralSettingsPanel = new System.Windows.Forms.Panel(); + label4 = new System.Windows.Forms.Label(); ThumbnailTabPage = new System.Windows.Forms.TabPage(); ThumbnailSettingsPanel = new System.Windows.Forms.Panel(); HeigthLabel = new System.Windows.Forms.Label(); @@ -141,7 +142,6 @@ namespace EveOPreview.View DocumentationLinkLabel = new System.Windows.Forms.Label(); DescriptionLabel = new System.Windows.Forms.Label(); NameLabel = new System.Windows.Forms.Label(); - label4 = new System.Windows.Forms.Label(); ContentTabControl.SuspendLayout(); GeneralTabPage.SuspendLayout(); GeneralSettingsPanel.SuspendLayout(); @@ -244,6 +244,15 @@ namespace EveOPreview.View GeneralSettingsPanel.TabIndex = 18; GeneralSettingsPanel.Paint += new System.Windows.Forms.PaintEventHandler(this.GeneralSettingsPanel_Paint); // + // label4 + // + label4.AutoSize = true; + label4.Location = new System.Drawing.Point(5, 100); + label4.Name = "label4"; + label4.Size = new System.Drawing.Size(79, 13); + label4.TabIndex = 27; + label4.Text = "Animation Style"; + // // AnimationStyleCombo // this.AnimationStyleCombo.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; @@ -407,6 +416,7 @@ namespace EveOPreview.View 0, 0, 0}); + this.ThumbnailSnapToGridSizeYNumericEdit.ValueChanged += new System.EventHandler(this.OptionChanged_Handler); // // SnapYLabel // @@ -1173,15 +1183,6 @@ namespace EveOPreview.View this.TrayMenu.Name = "contextMenuStrip1"; this.TrayMenu.Size = new System.Drawing.Size(152, 76); // - // label4 - // - label4.AutoSize = true; - label4.Location = new System.Drawing.Point(5, 100); - label4.Name = "label4"; - label4.Size = new System.Drawing.Size(79, 13); - label4.TabIndex = 27; - label4.Text = "Animation Style"; - // // MainForm // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); From 6d524e49f0b2588ce10f2e48103be56f06a4c4fd Mon Sep 17 00:00:00 2001 From: Izakbar Date: Wed, 5 Feb 2025 22:18:09 +0000 Subject: [PATCH 5/5] #4 add additional cyclegroups (1 thru 5 now available) updated README.md --- README.md | 18 ++++++-- .../Implementation/ThumbnailConfiguration.cs | 46 +++++++++++++++++++ .../Interface/IThumbnailConfiguration.cs | 12 +++++ .../Implementation/ThumbnailManager.cs | 9 ++++ 4 files changed, 81 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 350ce88..8906261 100644 --- a/README.md +++ b/README.md @@ -220,19 +220,29 @@ Next find the entry **CycleGroup1ForwardHotkeys**. Most probably it will look li You should modify this entry with a list of each of your clients replacing "Example DPS Toon 1", etc with the name of your character. The numbers on the right are used to force the order in which they cycle. If a character appears in the list but is not currently logged in, then it will simply be skipped. If a character does not appear in the list, then they will never become active when cycling clients. +If "EVE" is used instead of a character name - then this is taken to mean active clients with no active character (ie on character selection screen). This would allow you to setup a cycle group to go through clients at character selection screen. EVE-O Preview will cycle through all clients in this state. -By now you may have noticed that there are two groups. The above configuration can be followed for a second group by using the values **CycleGroup2ForwardHotkeys**, **CycleGroup2BackwardHotkeys**, and **CycleGroup2ForwardHotkeys** -This may provide useful if you want to have one HotKey to cycle through a group of DPS characters, while another HotKey cycles through support roles such as gate scouts, or a group of logi. +By now you may have noticed that there are multiple groups. The above configuration can be followed for a second group by using the values **CycleGroup2ForwardHotkeys**, **CycleGroup2BackwardHotkeys**, and **CycleGroup2ForwardHotkeys** +This may provide useful if you want to have one HotKey to cycle through a group of DPS characters, while another HotKey cycles through support roles such as gate scouts, or a group of logi. Cyclegroups are numbered 1 through 5. Alternatively you may not want to use any of these HotKeys. Please note that deleting the values in their entirety will simply result in them being automatically re-generated. Should you wish to remove these HotKeys completely, Simply set the values to empty, such as the example below: - "CycleGroup1ForwardHotkeys": [], + "CycleGroup1ForwardHotkeys": [], "CycleGroup1BackwardHotkeys": [], "CycleGroup1ClientsOrder": {}, "CycleGroup2ForwardHotkeys": [], "CycleGroup2BackwardHotkeys": [], - "CycleGroup2ClientsOrder": {} + "CycleGroup2ClientsOrder": {}, + "CycleGroup3ForwardHotkeys": [], + "CycleGroup3BackwardHotkeys": [], + "CycleGroup3ClientsOrder": {}, + "CycleGroup4ForwardHotkeys": [], + "CycleGroup4BackwardHotkeys": [], + "CycleGroup4ClientsOrder": {}, + "CycleGroup5ForwardHotkeys": [], + "CycleGroup5BackwardHotkeys": [], + "CycleGroup5ClientsOrder": {} **Hints** * Minimise the use of modifiers or standard keys to minimise issues with the client playing up. In the default example unusual Function keys (e.g. F14) are used which are then bound to a game pad or gaming mouse. diff --git a/src/Eve-O-Preview/Configuration/Implementation/ThumbnailConfiguration.cs b/src/Eve-O-Preview/Configuration/Implementation/ThumbnailConfiguration.cs index 8c952a4..642a828 100644 --- a/src/Eve-O-Preview/Configuration/Implementation/ThumbnailConfiguration.cs +++ b/src/Eve-O-Preview/Configuration/Implementation/ThumbnailConfiguration.cs @@ -36,6 +36,25 @@ namespace EveOPreview.Configuration.Implementation { "EVE - Example Tackle Toon 3", 3 } }; + this.CycleGroup3ForwardHotkeys = new List { "" }; + this.CycleGroup3BackwardHotkeys = new List { "" }; + this.CycleGroup3ClientsOrder = new Dictionary + { + { "EVE - cycle group 3", 1 }, + }; + this.CycleGroup4ForwardHotkeys = new List { "" }; + this.CycleGroup4BackwardHotkeys = new List { "" }; + this.CycleGroup4ClientsOrder = new Dictionary + { + { "EVE - cycle group 4", 1 }, + }; + this.CycleGroup5ForwardHotkeys = new List { "" }; + this.CycleGroup5BackwardHotkeys = new List { "" }; + this.CycleGroup5ClientsOrder = new Dictionary + { + { "EVE - cycle group 5", 1 }, + }; + this.PerClientActiveClientHighlightColor = new Dictionary { {"EVE - Example Toon 1", Color.Red}, @@ -133,6 +152,33 @@ namespace EveOPreview.Configuration.Implementation [JsonProperty("CycleGroup2ClientsOrder")] public Dictionary CycleGroup2ClientsOrder { get; set; } + [JsonProperty("CycleGroup3ForwardHotkeys")] + public List CycleGroup3ForwardHotkeys { get; set; } + + [JsonProperty("CycleGroup3BackwardHotkeys")] + public List CycleGroup3BackwardHotkeys { get; set; } + + [JsonProperty("CycleGroup3ClientsOrder")] + public Dictionary CycleGroup3ClientsOrder { get; set; } + + [JsonProperty("CycleGroup4ForwardHotkeys")] + public List CycleGroup4ForwardHotkeys { get; set; } + + [JsonProperty("CycleGroup4BackwardHotkeys")] + public List CycleGroup4BackwardHotkeys { get; set; } + + [JsonProperty("CycleGroup4ClientsOrder")] + public Dictionary CycleGroup4ClientsOrder { get; set; } + + [JsonProperty("CycleGroup5ForwardHotkeys")] + public List CycleGroup5ForwardHotkeys { get; set; } + + [JsonProperty("CycleGroup5BackwardHotkeys")] + public List CycleGroup5BackwardHotkeys { get; set; } + + [JsonProperty("CycleGroup5ClientsOrder")] + public Dictionary CycleGroup5ClientsOrder { get; set; } + [JsonProperty("PerClientActiveClientHighlightColor")] public Dictionary PerClientActiveClientHighlightColor { get; set; } diff --git a/src/Eve-O-Preview/Configuration/Interface/IThumbnailConfiguration.cs b/src/Eve-O-Preview/Configuration/Interface/IThumbnailConfiguration.cs index df03cb9..0273892 100644 --- a/src/Eve-O-Preview/Configuration/Interface/IThumbnailConfiguration.cs +++ b/src/Eve-O-Preview/Configuration/Interface/IThumbnailConfiguration.cs @@ -14,6 +14,18 @@ namespace EveOPreview.Configuration List CycleGroup2BackwardHotkeys { get; set; } Dictionary CycleGroup2ClientsOrder { get; set; } + List CycleGroup3ForwardHotkeys { get; set; } + List CycleGroup3BackwardHotkeys { get; set; } + Dictionary CycleGroup3ClientsOrder { get; set; } + + List CycleGroup4ForwardHotkeys { get; set; } + List CycleGroup4BackwardHotkeys { get; set; } + Dictionary CycleGroup4ClientsOrder { get; set; } + + List CycleGroup5ForwardHotkeys { get; set; } + List CycleGroup5BackwardHotkeys { get; set; } + Dictionary CycleGroup5ClientsOrder { get; set; } + Dictionary PerClientActiveClientHighlightColor { get; set; } Dictionary PerClientThumbnailSize { get; set; } diff --git a/src/Eve-O-Preview/Services/Implementation/ThumbnailManager.cs b/src/Eve-O-Preview/Services/Implementation/ThumbnailManager.cs index 471ddfe..bd425f7 100644 --- a/src/Eve-O-Preview/Services/Implementation/ThumbnailManager.cs +++ b/src/Eve-O-Preview/Services/Implementation/ThumbnailManager.cs @@ -81,6 +81,15 @@ namespace EveOPreview.Services RegisterCycleClientHotkey(this._configuration.CycleGroup2ForwardHotkeys?.Select(x => this._configuration.StringToKey(x)), true, this._configuration.CycleGroup2ClientsOrder); RegisterCycleClientHotkey(this._configuration.CycleGroup2BackwardHotkeys?.Select(x => this._configuration.StringToKey(x)), false, this._configuration.CycleGroup2ClientsOrder); + + RegisterCycleClientHotkey(this._configuration.CycleGroup3ForwardHotkeys?.Select(x => this._configuration.StringToKey(x)), true, this._configuration.CycleGroup3ClientsOrder); + RegisterCycleClientHotkey(this._configuration.CycleGroup3BackwardHotkeys?.Select(x => this._configuration.StringToKey(x)), false, this._configuration.CycleGroup3ClientsOrder); + + RegisterCycleClientHotkey(this._configuration.CycleGroup4ForwardHotkeys?.Select(x => this._configuration.StringToKey(x)), true, this._configuration.CycleGroup4ClientsOrder); + RegisterCycleClientHotkey(this._configuration.CycleGroup4BackwardHotkeys?.Select(x => this._configuration.StringToKey(x)), false, this._configuration.CycleGroup4ClientsOrder); + + RegisterCycleClientHotkey(this._configuration.CycleGroup5ForwardHotkeys?.Select(x => this._configuration.StringToKey(x)), true, this._configuration.CycleGroup5ClientsOrder); + RegisterCycleClientHotkey(this._configuration.CycleGroup5BackwardHotkeys?.Select(x => this._configuration.StringToKey(x)), false, this._configuration.CycleGroup5ClientsOrder); } public IThumbnailView GetClientByTitle(string title)