Widow
/trunk/Widow/WindowRescale.cs/WindowRescale.cs |
@@ -0,0 +1,92 @@ |
using System; |
|
namespace Widow |
{ |
public class WindowRescale : IDisposable |
{ |
#region Public Enums, Properties and Fields |
|
public bool OnWindowCreate { get; set; } |
|
public MainForm Form { get; set; } |
|
#endregion |
|
#region Private Delegates, Events, Enums, Properties, Indexers and Fields |
|
private Windows.Windows Windows { get; } |
|
#endregion |
|
#region Constructors, Destructors and Finalizers |
|
public WindowRescale() |
{ |
} |
|
public WindowRescale(MainForm mainForm) : this() |
{ |
Form = mainForm; |
|
Form.WindowCreated += Form_WindowCreated; |
} |
|
public WindowRescale(MainForm mainForm, Windows.Windows windows) : this(mainForm) |
{ |
Windows = windows; |
} |
|
public void Dispose() |
{ |
Form.WindowCreated -= Form_WindowCreated; |
} |
|
#endregion |
|
#region Event Handlers |
|
private void Form_WindowCreated(object sender, WindowCreatedEventArgs e) |
{ |
if (!OnWindowCreate) |
{ |
return; |
} |
|
foreach (var window in Windows.Window) |
{ |
if (window.Name != e.Name) |
{ |
continue; |
} |
|
var hWnd = Helpers.FindWindowByTitle(window.Name); |
if (hWnd == IntPtr.Zero) |
{ |
continue; |
} |
|
Natives.MoveWindow(hWnd, window.Left, window.Top, window.Width, window.Height, true); |
} |
} |
|
#endregion |
|
#region Public Methods |
|
public void Apply() |
{ |
foreach (var window in Windows.Window) |
{ |
var hWnd = Helpers.FindWindowByTitle(window.Name); |
if (hWnd == IntPtr.Zero) |
{ |
continue; |
} |
|
Natives.MoveWindow(hWnd, window.Left, window.Top, window.Width, window.Height, true); |
} |
} |
|
#endregion |
} |
} |