Testing a Merge fix

This commit is contained in:
Eric Vasquez
2024-11-10 18:24:17 -06:00
parent 63fe0846aa
commit 1eafad0159
37 changed files with 1605 additions and 2013 deletions

View File

@@ -1,14 +1,12 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.30907.101
# Visual Studio Version 17
VisualStudioVersion = 17.10.35201.131
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Eve-O-Preview", "Eve-O-Preview\Eve-O-Preview.csproj", "{6CA62DF3-8589-484C-8BC8-F763CA66BBB1}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Eve-O-Mock", "Eve-O-Mock\Eve-O-Mock.csproj", "{BE2C3A13-CC19-4525-895F-381DD71C5833}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Build", "..\build\Build.csproj", "{68083BCC-92B8-4A73-BFD2-0DE619873F86}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Build|Any CPU = Build|Any CPU
@@ -26,10 +24,6 @@ Global
{BE2C3A13-CC19-4525-895F-381DD71C5833}.Debug|Any CPU.Build.0 = Debug|Any CPU
{BE2C3A13-CC19-4525-895F-381DD71C5833}.Release|Any CPU.ActiveCfg = Release|Any CPU
{BE2C3A13-CC19-4525-895F-381DD71C5833}.Release|Any CPU.Build.0 = Release|Any CPU
{68083BCC-92B8-4A73-BFD2-0DE619873F86}.Build|Any CPU.ActiveCfg = Build|Any CPU
{68083BCC-92B8-4A73-BFD2-0DE619873F86}.Build|Any CPU.Build.0 = Build|Any CPU
{68083BCC-92B8-4A73-BFD2-0DE619873F86}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{68083BCC-92B8-4A73-BFD2-0DE619873F86}.Release|Any CPU.ActiveCfg = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8" ?>
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8"/>
</startup>
</configuration>
</configuration>

View File

@@ -9,10 +9,11 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>EveOMock</RootNamespace>
<AssemblyName>ExeFile</AssemblyName>
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<WarningLevel>4</WarningLevel>
<TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>

View File

@@ -19,7 +19,7 @@ namespace EveOMock.Properties {
// class via a tool like ResGen or Visual Studio.
// To add or remove a member, edit your .ResX file then rerun ResGen
// with the /str option, or rebuild your VS project.
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Resources {

View File

@@ -12,7 +12,7 @@ namespace EveOMock.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "14.0.0.0")]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.10.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));

View File

@@ -58,6 +58,7 @@ namespace EveOPreview.Configuration.Implementation
this.EnableClientLayoutTracking = false;
this.HideActiveClientThumbnail = false;
this.MinimizeInactiveClients = false;
this.MinimizeInactiveClientsAnimation = false;
this.ShowThumbnailsAlwaysOnTop = true;
this.EnablePerClientThumbnailLayouts = false;
@@ -73,14 +74,23 @@ namespace EveOPreview.Configuration.Implementation
this.ThumbnailZoomEnabled = false;
this.ThumbnailZoomFactor = 2;
this.ThumbnailZoomAnchor = ZoomAnchor.NW;
this.OverlayLabelAnchor = ZoomAnchor.NW;
this.ShowThumbnailOverlays = true;
this.ShowThumbnailOverlays = true;
this.ShowThumbnailFrames = false;
this.LockThumbnailLocation = false;
this.EnableActiveClientHighlight = false;
this.ThumbnailSnapToGrid = true;
this.ThumbnailSnapToGridSizeX = 100;
this.ThumbnailSnapToGridSizeY = 50;
this.EnableActiveClientHighlight = false;
this.ActiveClientHighlightColor = Color.GreenYellow;
this.ActiveClientHighlightThickness = 3;
this.OverlayLabelColor = Color.Orange;
this.OverlayLabelSize = 10;
this.LoginThumbnailLocation = new Point(5, 5);
}
@@ -134,6 +144,7 @@ namespace EveOPreview.Configuration.Implementation
public bool HideActiveClientThumbnail { get; set; }
public bool MinimizeInactiveClients { get; set; }
public bool MinimizeInactiveClientsAnimation { get; set; }
public bool ShowThumbnailsAlwaysOnTop { get; set; }
public bool EnablePerClientThumbnailLayouts
@@ -163,14 +174,20 @@ namespace EveOPreview.Configuration.Implementation
public bool ThumbnailZoomEnabled { get; set; }
public int ThumbnailZoomFactor { get; set; }
public ZoomAnchor ThumbnailZoomAnchor { get; set; }
public ZoomAnchor OverlayLabelAnchor { get; set; }
public bool ShowThumbnailOverlays { get; set; }
public bool ShowThumbnailFrames { get; set; }
public bool LockThumbnailLocation { get; set; }
public bool ThumbnailSnapToGrid { get; set; }
public int ThumbnailSnapToGridSizeX { get; set; }
public int ThumbnailSnapToGridSizeY { get; set; }
public bool EnableActiveClientHighlight { get; set; }
public Color ActiveClientHighlightColor { get; set; }
public Color OverlayLabelColor { get; set; }
public int OverlayLabelSize { get; set; }
public int ActiveClientHighlightThickness { get; set; }
[JsonProperty("LoginThumbnailLocation")]

View File

@@ -26,6 +26,7 @@ namespace EveOPreview.Configuration
bool EnableClientLayoutTracking { get; set; }
bool HideActiveClientThumbnail { get; set; }
bool MinimizeInactiveClients { get; set; }
bool MinimizeInactiveClientsAnimation { get; set; }
bool ShowThumbnailsAlwaysOnTop { get; set; }
bool EnablePerClientThumbnailLayouts { get; set; }
@@ -41,13 +42,20 @@ namespace EveOPreview.Configuration
bool ThumbnailZoomEnabled { get; set; }
int ThumbnailZoomFactor { get; set; }
ZoomAnchor ThumbnailZoomAnchor { get; set; }
ZoomAnchor OverlayLabelAnchor { get; set; }
bool ShowThumbnailOverlays { get; set; }
bool ShowThumbnailFrames { get; set; }
bool LockThumbnailLocation { get; set; }
bool ThumbnailSnapToGrid { get; set; }
int ThumbnailSnapToGridSizeX { get; set; }
int ThumbnailSnapToGridSizeY { get; set; }
bool EnableActiveClientHighlight { get; set; }
Color ActiveClientHighlightColor { get; set; }
int ActiveClientHighlightThickness { get; set; }
Color OverlayLabelColor { get; set; }
int OverlayLabelSize { get; set; }
Point LoginThumbnailLocation { get; set; }

View File

@@ -9,8 +9,13 @@
<OutputType>WinExe</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>EveOPreview</RootNamespace>
<<<<<<< HEAD
<AssemblyName>EVE-O-Preview</AssemblyName>
<TargetFrameworkVersion>v4.6.2</TargetFrameworkVersion>
=======
<AssemblyName>EVE-O Preview</AssemblyName>
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
>>>>>>> windows-build-pr-merg
<NuGetPackageImportStamp>
</NuGetPackageImportStamp>
<TargetFrameworkProfile />
@@ -98,6 +103,7 @@
<UseVSHostingProcess>false</UseVSHostingProcess>
<LangVersion>7.3</LangVersion>
<ErrorReport>prompt</ErrorReport>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<ItemGroup>
<Reference Include="Microsoft.CSharp" />
@@ -152,6 +158,7 @@
<Compile Include="Services\Implementation\DwmThumbnail.cs" />
<Compile Include="Services\Interface\IDwmThumbnail.cs" />
<Compile Include="Services\Interface\InteropConstants.cs" />
<Compile Include="Services\Interop\ANIMATIONINFO.cs" />
<Compile Include="Services\Interop\DWM_BLURBEHIND.cs" />
<Compile Include="Services\Interop\DWM_THUMBNAIL_PROPERTIES.cs" />
<Compile Include="Services\Interop\DWM_TNP_CONSTANTS.cs" />

View File

@@ -107,6 +107,7 @@ namespace EveOPreview.Presenters
this.View.EnableClientLayoutTracking = this._configuration.EnableClientLayoutTracking;
this.View.HideActiveClientThumbnail = this._configuration.HideActiveClientThumbnail;
this.View.MinimizeInactiveClients = this._configuration.MinimizeInactiveClients;
this.View.MinimizeInactiveClientsAnimation = this._configuration.MinimizeInactiveClientsAnimation;
this.View.ShowThumbnailsAlwaysOnTop = this._configuration.ShowThumbnailsAlwaysOnTop;
this.View.HideThumbnailsOnLostFocus = this._configuration.HideThumbnailsOnLostFocus;
this.View.EnablePerClientThumbnailLayouts = this._configuration.EnablePerClientThumbnailLayouts;
@@ -117,9 +118,14 @@ namespace EveOPreview.Presenters
this.View.EnableThumbnailZoom = this._configuration.ThumbnailZoomEnabled;
this.View.ThumbnailZoomFactor = this._configuration.ThumbnailZoomFactor;
this.View.ThumbnailZoomAnchor = ViewZoomAnchorConverter.Convert(this._configuration.ThumbnailZoomAnchor);
this.View.OverlayLabelAnchor = ViewZoomAnchorConverter.Convert(this._configuration.OverlayLabelAnchor);
this.View.ShowThumbnailOverlays = this._configuration.ShowThumbnailOverlays;
this.View.ShowThumbnailFrames = this._configuration.ShowThumbnailFrames;
this.View.LockThumbnailLocation = this._configuration.LockThumbnailLocation;
this.View.ThumbnailSnapToGrid = this._configuration.ThumbnailSnapToGrid;
this.View.ThumbnailSnapToGridSizeX = this._configuration.ThumbnailSnapToGridSizeX;
this.View.ThumbnailSnapToGridSizeY = this._configuration.ThumbnailSnapToGridSizeY;
this.View.EnableActiveClientHighlight = this._configuration.EnableActiveClientHighlight;
this.View.ActiveClientHighlightColor = this._configuration.ActiveClientHighlightColor;
}
@@ -133,7 +139,8 @@ namespace EveOPreview.Presenters
this._configuration.EnableClientLayoutTracking = this.View.EnableClientLayoutTracking;
this._configuration.HideActiveClientThumbnail = this.View.HideActiveClientThumbnail;
this._configuration.MinimizeInactiveClients = this.View.MinimizeInactiveClients;
this._configuration.ShowThumbnailsAlwaysOnTop = this.View.ShowThumbnailsAlwaysOnTop;
this._configuration.MinimizeInactiveClientsAnimation = this.View.MinimizeInactiveClientsAnimation;
this._configuration.ShowThumbnailsAlwaysOnTop = this.View.ShowThumbnailsAlwaysOnTop;
this._configuration.HideThumbnailsOnLostFocus = this.View.HideThumbnailsOnLostFocus;
this._configuration.EnablePerClientThumbnailLayouts = this.View.EnablePerClientThumbnailLayouts;
@@ -142,6 +149,7 @@ namespace EveOPreview.Presenters
this._configuration.ThumbnailZoomEnabled = this.View.EnableThumbnailZoom;
this._configuration.ThumbnailZoomFactor = this.View.ThumbnailZoomFactor;
this._configuration.ThumbnailZoomAnchor = ViewZoomAnchorConverter.Convert(this.View.ThumbnailZoomAnchor);
this._configuration.OverlayLabelAnchor = ViewZoomAnchorConverter.Convert(this.View.OverlayLabelAnchor);
this._configuration.ShowThumbnailOverlays = this.View.ShowThumbnailOverlays;
if (this._configuration.ShowThumbnailFrames != this.View.ShowThumbnailFrames)
@@ -150,9 +158,17 @@ namespace EveOPreview.Presenters
await this._mediator.Publish(new ThumbnailFrameSettingsUpdated());
}
this._configuration.EnableActiveClientHighlight = this.View.EnableActiveClientHighlight;
this._configuration.LockThumbnailLocation = this.View.LockThumbnailLocation;
this._configuration.ThumbnailSnapToGrid = this.View.ThumbnailSnapToGrid;
this._configuration.ThumbnailSnapToGridSizeX = this.View.ThumbnailSnapToGridSizeX;
this._configuration.ThumbnailSnapToGridSizeY = this.View.ThumbnailSnapToGridSizeY;
this._configuration.EnableActiveClientHighlight = this.View.EnableActiveClientHighlight;
this._configuration.ActiveClientHighlightColor = this.View.ActiveClientHighlightColor;
this._configuration.OverlayLabelColor = this.View.OverlayLabelColor;
this._configuration.OverlayLabelSize = this.View.OverlayLabelSize;
this._configurationStorage.Save();
this.View.RefreshZoomSettings();

View File

@@ -12,7 +12,7 @@ using System.Runtime.InteropServices;
[assembly: AssemblyCulture("")]
[assembly: ComVisible(false)]
[assembly: Guid("04f08f8d-9e98-423b-acdb-4effb31c0d35")]
[assembly: AssemblyVersion("8.0.0.0")]
[assembly: AssemblyFileVersion("8.0.0.0")]
[assembly: AssemblyVersion("8.0.1.0")]
[assembly: AssemblyFileVersion("8.0.1.0")]
[assembly: CLSCompliant(false)]

View File

@@ -19,7 +19,7 @@ namespace EveOPreview.Properties {
// class via a tool like ResGen or Visual Studio.
// To add or remove a member, edit your .ResX file then rerun ResGen
// with the /str option, or rebuild your VS project.
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0")]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Resources {

View File

@@ -102,7 +102,7 @@ namespace EveOPreview.Services
{
this.GetActiveClient()?.ClearBorder();
this._windowManager.ActivateWindow(newClient.Key);
this._windowManager.ActivateWindow(newClient.Key, this._configuration.MinimizeInactiveClientsAnimation);
this.SwitchActiveClient(newClient.Key, newClient.Value.Title);
newClient.Value.SetHighlight();
@@ -483,7 +483,7 @@ namespace EveOPreview.Services
// Minimize the currently active client if needed
if (this._configuration.MinimizeInactiveClients && !this._configuration.IsPriorityClient(this._activeClient.Title))
{
this._windowManager.MinimizeWindow(this._activeClient.Handle, false);
this._windowManager.MinimizeWindow(this._activeClient.Handle, this._configuration.MinimizeInactiveClientsAnimation);
}
this._activeClient = (foregroundClientHandle, foregroundClientTitle);
@@ -534,7 +534,7 @@ namespace EveOPreview.Services
Task.Run(() =>
{
this._windowManager.ActivateWindow(view.Id);
this._windowManager.ActivateWindow(view.Id, this._configuration.MinimizeInactiveClientsAnimation);
})
.ContinueWith((task) =>
{
@@ -549,7 +549,7 @@ namespace EveOPreview.Services
{
if (switchOut)
{
this._windowManager.ActivateWindow(this._externalApplication);
this._windowManager.ActivateWindow(this._externalApplication, this._configuration.MinimizeInactiveClientsAnimation);
}
else
{
@@ -558,7 +558,7 @@ namespace EveOPreview.Services
return;
}
this._windowManager.MinimizeWindow(view.Id, true);
this._windowManager.MinimizeWindow(view.Id, this._configuration.MinimizeInactiveClientsAnimation);
this.RefreshThumbnails();
}
}
@@ -740,7 +740,7 @@ namespace EveOPreview.Services
if (clientLayout.IsMaximized)
{
this._windowManager.MaximizeWindow(clientHandle);
this._windowManager.MaximizeWindow(clientHandle, this._configuration.MinimizeInactiveClientsAnimation);
}
else
{

View File

@@ -27,7 +27,7 @@ namespace EveOPreview.Services.Implementation
return User32NativeMethods.GetForegroundWindow();
}
public void ActivateWindow(IntPtr handle)
public void ActivateWindow(IntPtr handle, bool enableAnimation)
{
User32NativeMethods.SetForegroundWindow(handle);
User32NativeMethods.SetFocus(handle);
@@ -36,8 +36,30 @@ namespace EveOPreview.Services.Implementation
if ((style & InteropConstants.WS_MINIMIZE) == InteropConstants.WS_MINIMIZE)
{
User32NativeMethods.ShowWindowAsync(handle, InteropConstants.SW_RESTORE);
}
if (enableAnimation)
{
User32NativeMethods.ShowWindowAsync(handle, InteropConstants.SW_RESTORE);
}
else
{
ANIMATIONINFO param = new ANIMATIONINFO();
param.cbSize = (System.UInt32)Marshal.SizeOf(typeof(ANIMATIONINFO));
// Store the current Animation Setting
var ret = User32NativeMethods.SystemParametersInfo(User32NativeMethods.SPI_GETANIMATION, (System.Int32)Marshal.SizeOf(typeof(ANIMATIONINFO)), ref param, 0);
int currentAnimationSetting = param.iMinAnimate;
// Turn off Animation
param.iMinAnimate = 0;
ret = User32NativeMethods.SystemParametersInfo(User32NativeMethods.SPI_SETANIMATION, (System.Int32)Marshal.SizeOf(typeof(ANIMATIONINFO)), ref param, 0);
User32NativeMethods.ShowWindowAsync(handle, InteropConstants.SW_RESTORE);
// Restore current Animation Settings
param.iMinAnimate = currentAnimationSetting;
ret = User32NativeMethods.SystemParametersInfo(User32NativeMethods.SPI_SETANIMATION, (System.Int32)Marshal.SizeOf(typeof(ANIMATIONINFO)), ref param, 0);
}
}
}
public void MinimizeWindow(IntPtr handle, bool enableAnimation)
@@ -48,12 +70,23 @@ namespace EveOPreview.Services.Implementation
}
else
{
WINDOWPLACEMENT param = new WINDOWPLACEMENT();
param.length = Marshal.SizeOf(typeof(WINDOWPLACEMENT));
User32NativeMethods.GetWindowPlacement(handle, ref param);
param.showCmd = WINDOWPLACEMENT.SW_MINIMIZE;
User32NativeMethods.SetWindowPlacement(handle, ref param);
}
ANIMATIONINFO param = new ANIMATIONINFO();
param.cbSize = (System.UInt32)Marshal.SizeOf(typeof(ANIMATIONINFO));
// Store Current Animation Setting
var ret = User32NativeMethods.SystemParametersInfo(User32NativeMethods.SPI_GETANIMATION, (System.Int32)Marshal.SizeOf(typeof(ANIMATIONINFO)), ref param, 0);
int currentAnimationSetting = param.iMinAnimate;
// Turn off Animation
param.iMinAnimate = 0;
ret = User32NativeMethods.SystemParametersInfo(User32NativeMethods.SPI_SETANIMATION, (System.Int32)Marshal.SizeOf(typeof(ANIMATIONINFO)), ref param, 0);
User32NativeMethods.SendMessage(handle, InteropConstants.WM_SYSCOMMAND, InteropConstants.SC_MINIMIZE, 0);
// Restore current Animation Settings
param.iMinAnimate = currentAnimationSetting;
ret = User32NativeMethods.SystemParametersInfo(User32NativeMethods.SPI_SETANIMATION, (System.Int32)Marshal.SizeOf(typeof(ANIMATIONINFO)), ref param, 0);
}
}
public void MoveWindow(IntPtr handle, int left, int top, int width, int height)
@@ -61,10 +94,22 @@ namespace EveOPreview.Services.Implementation
User32NativeMethods.MoveWindow(handle, left, top, width, height, true);
}
public void MaximizeWindow(IntPtr handle)
public void MaximizeWindow(IntPtr handle, bool enableAnimation)
{
User32NativeMethods.ShowWindowAsync(handle, InteropConstants.SW_SHOWMAXIMIZED);
}
if (enableAnimation)
{
User32NativeMethods.ShowWindowAsync(handle, InteropConstants.SW_SHOWMAXIMIZED);
}
else
{
WINDOWPLACEMENT param = new WINDOWPLACEMENT();
param.length = Marshal.SizeOf(typeof(WINDOWPLACEMENT));
User32NativeMethods.GetWindowPlacement(handle, ref param);
param.showCmd = WINDOWPLACEMENT.SW_MINIMIZE;
User32NativeMethods.SetWindowPlacement(handle, ref param);
}
}
public (int Left, int Top, int Right, int Bottom) GetWindowPosition(IntPtr handle)
{

View File

@@ -8,10 +8,10 @@ namespace EveOPreview.Services
bool IsCompositionEnabled { get; }
IntPtr GetForegroundWindowHandle();
void ActivateWindow(IntPtr handle);
void ActivateWindow(IntPtr handle, bool enableAnimation);
void MinimizeWindow(IntPtr handle, bool enableAnimation);
void MoveWindow(IntPtr handle, int left, int top, int width, int height);
void MaximizeWindow(IntPtr handle);
void MaximizeWindow(IntPtr handle, bool enableAnimation);
(int Left, int Top, int Right, int Bottom) GetWindowPosition(IntPtr handle);
bool IsWindowMaximized(IntPtr handle);
bool IsWindowMinimized(IntPtr handle);

View File

@@ -0,0 +1,13 @@
using MediatR;
using System.Runtime.InteropServices;
namespace EveOPreview.Services.Interop
{
// Definition for Window Placement Structure
[StructLayout(LayoutKind.Sequential)]
struct ANIMATIONINFO
{
public uint cbSize;
public int iMinAnimate;
}
}

View File

@@ -5,6 +5,9 @@ namespace EveOPreview.Services.Interop
{
static class User32NativeMethods
{
public const uint SPI_SETANIMATION = 0x0049;
public const uint SPI_GETANIMATION = 0x0048;
[DllImport("user32.dll")]
public static extern IntPtr GetForegroundWindow();
@@ -60,5 +63,8 @@ namespace EveOPreview.Services.Interop
[DllImport("user32.dll")]
public static extern IntPtr ReleaseDC(IntPtr hWnd, IntPtr hdc);
[DllImport("user32.dll")]
public static extern long SystemParametersInfo(long uAction, int lpvParam, ref ANIMATIONINFO uParam, int fuWinIni);
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -10,7 +10,9 @@ namespace EveOPreview.View
#region Private fields
private readonly ApplicationContext _context;
private readonly Dictionary<ViewZoomAnchor, RadioButton> _zoomAnchorMap;
private readonly Dictionary<ViewZoomAnchor, RadioButton> _overlayLabelMap;
private ViewZoomAnchor _cachedThumbnailZoomAnchor;
private ViewZoomAnchor _cachedOverlayLabelAnchor;
private bool _suppressEvents;
private Size _minimumSize;
private Size _maximumSize;
@@ -20,6 +22,7 @@ namespace EveOPreview.View
{
this._context = context;
this._zoomAnchorMap = new Dictionary<ViewZoomAnchor, RadioButton>();
this._overlayLabelMap = new Dictionary<ViewZoomAnchor, RadioButton>();
this._cachedThumbnailZoomAnchor = ViewZoomAnchor.NW;
this._suppressEvents = false;
this._minimumSize = new Size(80, 60);
@@ -30,6 +33,7 @@ namespace EveOPreview.View
this.ThumbnailsList.DisplayMember = "Title";
this.InitZoomAnchorMap();
this.InitOverlayLabelMap();
}
public bool MinimizeToTray
@@ -74,6 +78,11 @@ namespace EveOPreview.View
get => this.MinimizeInactiveClientsCheckBox.Checked;
set => this.MinimizeInactiveClientsCheckBox.Checked = value;
}
public bool MinimizeInactiveClientsAnimation
{
get => this.MinimizeInactiveClientsAnimationCheckBox.Checked;
set => this.MinimizeInactiveClientsAnimationCheckBox.Checked = value;
}
public bool ShowThumbnailsAlwaysOnTop
{
@@ -149,6 +158,36 @@ namespace EveOPreview.View
}
}
public ViewZoomAnchor OverlayLabelAnchor
{
get
{
if (this._overlayLabelMap[this._cachedOverlayLabelAnchor].Checked)
{
return this._cachedOverlayLabelAnchor;
}
foreach (KeyValuePair<ViewZoomAnchor, RadioButton> valuePair in this._overlayLabelMap)
{
if (!valuePair.Value.Checked)
{
continue;
}
this._cachedOverlayLabelAnchor = valuePair.Key;
return this._cachedOverlayLabelAnchor;
}
// Default Value
return ViewZoomAnchor.NW;
}
set
{
this._cachedOverlayLabelAnchor = value;
this._overlayLabelMap[this._cachedOverlayLabelAnchor].Checked = true;
}
}
public bool ShowThumbnailOverlays
{
get => this.ShowThumbnailOverlaysCheckBox.Checked;
@@ -160,6 +199,26 @@ namespace EveOPreview.View
get => this.ShowThumbnailFramesCheckBox.Checked;
set => this.ShowThumbnailFramesCheckBox.Checked = value;
}
public bool LockThumbnailLocation
{
get => this.LockThumbnailLocationCheckbox.Checked;
set => this.LockThumbnailLocationCheckbox.Checked = value;
}
public bool ThumbnailSnapToGrid
{
get => this.ThumbnailSnapToGridCheckBox.Checked;
set => this.ThumbnailSnapToGridCheckBox.Checked = value;
}
public int ThumbnailSnapToGridSizeX
{
get => (int)ThumbnailSnapToGridSizeXNumericEdit.Value;
set => ThumbnailSnapToGridSizeXNumericEdit.Value = value;
}
public int ThumbnailSnapToGridSizeY
{
get => (int)ThumbnailSnapToGridSizeYNumericEdit.Value;
set => ThumbnailSnapToGridSizeYNumericEdit.Value = value;
}
public bool EnableActiveClientHighlight
{
@@ -178,6 +237,26 @@ namespace EveOPreview.View
}
private Color _activeClientHighlightColor;
public Color OverlayLabelColor
{
get => this._OverlayLabelColor;
set
{
this._OverlayLabelColor = value;
this.OverlayLabelColorButton.BackColor = value;
}
}
private Color _OverlayLabelColor;
public int OverlayLabelSize
{
get => (int)this.OverlayLabelSizeNumericEdit.Value;
set
{
this.OverlayLabelSizeNumericEdit.Value = value;
}
}
public new void Show()
{
// Registers the current instance as the application's Main Form
@@ -329,6 +408,22 @@ namespace EveOPreview.View
this.OptionChanged_Handler(sender, e);
}
private void OverlayLabelColorButton_Click(object sender, EventArgs e)
{
using (ColorDialog dialog = new ColorDialog())
{
dialog.Color = this.OverlayLabelColor;
if (dialog.ShowDialog() != DialogResult.OK)
{
return;
}
this.OverlayLabelColor = dialog.Color;
}
this.OptionChanged_Handler(sender, e);
}
private void ThumbnailsList_ItemCheck_Handler(object sender, ItemCheckEventArgs e)
{
if (!(this.ThumbnailsList.Items[e.Index] is IThumbnailDescription selectedItem))
@@ -391,5 +486,17 @@ namespace EveOPreview.View
this._zoomAnchorMap[ViewZoomAnchor.S] = this.ZoomAanchorSRadioButton;
this._zoomAnchorMap[ViewZoomAnchor.SE] = this.ZoomAanchorSERadioButton;
}
private void InitOverlayLabelMap()
{
this._overlayLabelMap[ViewZoomAnchor.NW] = this.OverlayLabelNWRadioButton;
this._overlayLabelMap[ViewZoomAnchor.N] = this.OverlayLabelNRadioButton;
this._overlayLabelMap[ViewZoomAnchor.NE] = this.OverlayLabelNERadioButton;
this._overlayLabelMap[ViewZoomAnchor.W] = this.OverlayLabelWRadioButton;
this._overlayLabelMap[ViewZoomAnchor.C] = this.OverlayLabelCRadioButton;
this._overlayLabelMap[ViewZoomAnchor.E] = this.OverlayLabelERadioButton;
this._overlayLabelMap[ViewZoomAnchor.SW] = this.OverlayLabelSWRadioButton;
this._overlayLabelMap[ViewZoomAnchor.S] = this.OverlayLabelSRadioButton;
this._overlayLabelMap[ViewZoomAnchor.SE] = this.OverlayLabelSERadioButton;
}
}
}

View File

@@ -132,215 +132,110 @@
<metadata name="ContentTabControl.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="ContentTabControl.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="GeneralTabPage.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="GeneralTabPage.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="GeneralSettingsPanel.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="GeneralSettingsPanel.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="MinimizeInactiveClientsCheckBox.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="EnableClientLayoutTrackingCheckBox.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="HideActiveClientThumbnailCheckBox.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="ShowThumbnailsAlwaysOnTopCheckBox.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="HideThumbnailsOnLostFocusCheckBox.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="EnablePerClientThumbnailsLayoutsCheckBox.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="MinimizeToTrayCheckBox.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="ThumbnailTabPage.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="ThumbnailTabPage.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="ThumbnailSettingsPanel.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="ThumbnailSettingsPanel.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="HeigthLabel.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="HeigthLabel.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="WidthLabel.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="WidthLabel.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="ThumbnailsWidthNumericEdit.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="ThumbnailsHeightNumericEdit.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="ThumbnailOpacityTrackBar.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="OpacityLabel.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="OpacityLabel.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="ZoomTabPage.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="ZoomSettingsPanel.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="ZoomSettingsPanel.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="ZoomFactorLabel.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="ZoomFactorLabel.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="ZoomAnchorPanel.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="ZoomAanchorNWRadioButton.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="ZoomAanchorNRadioButton.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="ZoomAanchorNERadioButton.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="ZoomAanchorWRadioButton.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="ZoomAanchorSERadioButton.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="ZoomAanchorCRadioButton.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="ZoomAanchorSRadioButton.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="ZoomAanchorERadioButton.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="ZoomAanchorSWRadioButton.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="ZoomAnchorLabel.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="ZoomAnchorLabel.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="EnableThumbnailZoomCheckBox.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="ThumbnailZoomFactorNumericEdit.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="OverlayTabPage.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="OverlayTabPage.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="OverlaySettingsPanel.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="OverlaySettingsPanel.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="HighlightColorLabel.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="ActiveClientHighlightColorButton.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="EnableActiveClientHighlightCheckBox.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="ShowThumbnailOverlaysCheckBox.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="ShowThumbnailFramesCheckBox.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="ClientsTabPage.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="ClientsTabPage.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="ClientsPanel.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="ClientsPanel.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="ThumbnailsList.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="ThumbnailsListLabel.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="ThumbnailsListLabel.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="AboutTabPage.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="AboutTabPage.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
<metadata name="AboutPanel.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="GeneralSettingsPanel.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="ThumbnailSettingsPanel.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="HeigthLabel.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="WidthLabel.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="OpacityLabel.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="HeigthLabel.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="WidthLabel.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="OpacityLabel.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="ZoomSettingsPanel.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="ZoomFactorLabel.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="ZoomAnchorLabel.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="ZoomFactorLabel.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="ZoomAnchorLabel.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="ClientsPanel.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="ThumbnailsListLabel.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="ThumbnailsListLabel.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="AboutPanel.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="AboutPanel.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="CreditMaintLabel.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="CreditMaintLabel.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="DocumentationLinkLabel.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="DocumentationLinkLabel.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="DescriptionLabel.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="DescriptionLabel.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
<metadata name="NameLabel.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="CreditMaintLabel.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="DocumentationLinkLabel.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="DescriptionLabel.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<data name="DescriptionLabel.Text" xml:space="preserve">
<value>An advanced task switcher for EVE Online clients.
@@ -352,18 +247,9 @@ The program does NOT
• interact with EVE Online except of;
- resizing or bringing it to the foreground</value>
</data>
<metadata name="VersionLabel.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="NameLabel.GenerateMember" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="NameLabel.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="DocumentationLink.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="NotifyIcon.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
@@ -909,9 +795,6 @@ The program does NOT
Af//4AAAAAAH///wAAAAAA////gAAAAAH////gAAAAB/////AAAAAP/////AAAAD/////+AAAAf//w==
</value>
</data>
<metadata name="$this.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>36</value>
</metadata>

View File

@@ -1,5 +1,6 @@
using System;
using System.Windows.Forms;
using EveOPreview.Configuration;
using EveOPreview.Services;
namespace EveOPreview.View
@@ -28,6 +29,66 @@ namespace EveOPreview.View
this.OverlayLabel.Text = label;
}
public void SetPropertiesOverlayLabel(int size, System.Drawing.Color c, ZoomAnchor anchor)
{
if (this.OverlayLabel.Font.Size != size)
{
this.OverlayLabel.Font = new System.Drawing.Font(this.OverlayLabel.Font.FontFamily, size);
}
this.OverlayLabel.ForeColor = c;
int margin = 5;
switch (anchor)
{
case ZoomAnchor.NW:
this.OverlayLabel.Left = margin;
this.OverlayLabel.Top = margin;
this.OverlayLabel.TextAlign = System.Drawing.ContentAlignment.TopLeft;
break;
case ZoomAnchor.N:
this.OverlayLabel.Left = (this.Width / 2) - (this.OverlayLabel.Width / 2);
this.OverlayLabel.Top = margin;
this.OverlayLabel.TextAlign = System.Drawing.ContentAlignment.TopCenter;
break;
case ZoomAnchor.NE:
this.OverlayLabel.Left = this.Width - this.OverlayLabel.Width - margin;
this.OverlayLabel.Top = margin;
this.OverlayLabel.TextAlign = System.Drawing.ContentAlignment.TopRight;
break;
case ZoomAnchor.W:
this.OverlayLabel.Left = margin;
this.OverlayLabel.Top = (this.Height / 2) - (this.OverlayLabel.Height / 2);
this.OverlayLabel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
break;
case ZoomAnchor.C:
this.OverlayLabel.Left = (this.Width / 2) - (this.OverlayLabel.Width / 2);
this.OverlayLabel.Top = (this.Height / 2) - (this.OverlayLabel.Height / 2);
this.OverlayLabel.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
break;
case ZoomAnchor.E:
this.OverlayLabel.Left = this.Width - this.OverlayLabel.Width - margin;
this.OverlayLabel.Top = (this.Height / 2) - (this.OverlayLabel.Height / 2);
this.OverlayLabel.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
break;
case ZoomAnchor.SW:
this.OverlayLabel.Left = margin;
this.OverlayLabel.Top = this.Height - this.OverlayLabel.Height - margin;
this.OverlayLabel.TextAlign = System.Drawing.ContentAlignment.BottomLeft;
break;
case ZoomAnchor.S:
this.OverlayLabel.Left = (this.Width / 2) - (this.OverlayLabel.Width / 2);
this.OverlayLabel.Top = this.Height - this.OverlayLabel.Height - margin;
this.OverlayLabel.TextAlign = System.Drawing.ContentAlignment.BottomCenter;
break;
case ZoomAnchor.SE:
this.OverlayLabel.Left = this.Width - this.OverlayLabel.Width - margin;
this.OverlayLabel.Top = this.Height - this.OverlayLabel.Height - margin;
this.OverlayLabel.TextAlign = System.Drawing.ContentAlignment.BottomRight;
break;
}
}
public void EnableOverlayLabel(bool enable)
{
this.OverlayLabel.Visible = enable;

View File

@@ -89,6 +89,7 @@ namespace EveOPreview.View
{
this.Text = value;
this._overlay.SetOverlayLabel(value.Replace("EVE - ", ""));
this._overlay.SetPropertiesOverlayLabel(_config.OverlayLabelSize, _config.OverlayLabelColor, _config.OverlayLabelAnchor);
SetDefaultBorderColor();
}
}
@@ -125,6 +126,8 @@ namespace EveOPreview.View
public Action<IntPtr, bool> ThumbnailDeactivated { get; set; }
private bool WindowMoved = false;
public void SetDefaultBorderColor()
{
this._myBorderColor = new Lazy<Color>(() =>
@@ -231,6 +234,9 @@ namespace EveOPreview.View
this.FormBorderStyle = style;
}
public void SetOverlayLabel()
{
}
public void SetTopMost(bool enableTopmost)
{
@@ -436,6 +442,9 @@ namespace EveOPreview.View
this._isLocationChanged = false;
this._overlay.Size = overlaySize;
this._overlay.SetPropertiesOverlayLabel(_config.OverlayLabelSize, _config.OverlayLabelColor, _config.OverlayLabelAnchor);
this._overlay.Location = overlayLocation;
this._overlay.Refresh();
}
@@ -507,6 +516,18 @@ namespace EveOPreview.View
if (e.Button == MouseButtons.Right)
{
this.ExitCustomMouseMode();
// Snap to Grid on release of mouse (if moved)
if (_config.ThumbnailSnapToGrid && this.WindowMoved)
{
var x = (int)Math.Round((double)this.Location.X / (double)_config.ThumbnailSnapToGridSizeX) * _config.ThumbnailSnapToGridSizeX;
var y = (int)Math.Round((double)this.Location.Y / (double)_config.ThumbnailSnapToGridSizeY) * _config.ThumbnailSnapToGridSizeY;
this.Location = new Point(x, y);
this._baseZoomLocation = this.Location;
this.WindowMoved = false;
}
}
}
@@ -555,18 +576,22 @@ namespace EveOPreview.View
int offsetY = mousePosition.Y - this._baseMousePosition.Y;
this._baseMousePosition = mousePosition;
// Left + Right buttons trigger thumbnail resize
// Right button only trigger thumbnail movement
if (leftButton && rightButton)
if (!_config.LockThumbnailLocation)
{
this.Size = new Size(this.Size.Width + offsetX, this.Size.Height + offsetY);
this._baseZoomSize = this.Size;
}
else
{
this.Location = new Point(this.Location.X + offsetX, this.Location.Y + offsetY);
this._baseZoomLocation = this.Location;
}
// Left + Right buttons trigger thumbnail resize
// Right button only trigger thumbnail movement
if (leftButton && rightButton)
{
this.Size = new Size(this.Size.Width + offsetX, this.Size.Height + offsetY);
this._baseZoomSize = this.Size;
}
else
{
this.Location = new Point(this.Location.X + offsetX, this.Location.Y + offsetY);
this._baseZoomLocation = this.Location;
this.WindowMoved = true;
}
}
}
private void ExitCustomMouseMode()

View File

@@ -17,7 +17,8 @@ namespace EveOPreview.View
bool EnableClientLayoutTracking { get; set; }
bool HideActiveClientThumbnail { get; set; }
bool MinimizeInactiveClients { get; set; }
bool ShowThumbnailsAlwaysOnTop { get; set; }
bool MinimizeInactiveClientsAnimation { get; set; }
bool ShowThumbnailsAlwaysOnTop { get; set; }
bool HideThumbnailsOnLostFocus { get; set; }
bool EnablePerClientThumbnailLayouts { get; set; }
@@ -26,12 +27,20 @@ namespace EveOPreview.View
bool EnableThumbnailZoom { get; set; }
int ThumbnailZoomFactor { get; set; }
ViewZoomAnchor ThumbnailZoomAnchor { get; set; }
ViewZoomAnchor OverlayLabelAnchor { get; set; }
bool ShowThumbnailOverlays { get; set; }
bool ShowThumbnailFrames { get; set; }
bool LockThumbnailLocation { get; set; }
bool ThumbnailSnapToGrid { get; set; }
int ThumbnailSnapToGridSizeX { get; set; }
int ThumbnailSnapToGridSizeY { get; set; }
bool EnableActiveClientHighlight { get; set; }
Color ActiveClientHighlightColor { get; set; }
Color OverlayLabelColor { get; set; }
int OverlayLabelSize { get; set; }
void SetDocumentationUrl(string url);
void SetVersionInfo(string version);

View File

@@ -20,6 +20,7 @@ namespace EveOPreview.View
void SetSizeLimitations(Size minimumSize, Size maximumSize);
void SetOpacity(double opacity);
void SetFrames(bool enable);
void SetOverlayLabel();
void SetTopMost(bool enableTopmost);
void SetHighlight();
void SetHighlight(bool enabled, int width);