Widow

Subversion Repositories:
Compare Path: Rev
With Path: Rev
?path1? @ 6  →  ?path2? @ 7
/trunk/Widow/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
}
}