using System;
using System.Drawing;
// The 'windowHandle' parameter will contain the window handle for the:
// - Active window when run by hotkey
// - Window Location target when run by a Window Location rule
// - TitleBar Button owner when run by a TitleBar Button
// - Jump List owner when run from a Taskbar Jump List
// - Currently focused window if none of these match
public static class DisplayFusionFunction
{
public static void Run(IntPtr windowHandle)
{
//check to see if there was an error, if there was, exit function
if (windowHandle == IntPtr.Zero) return;
//get the position of the window in the monitor, and the current monitor
Rectangle windowRect = BFS.Window.GetBounds(windowHandle);
Rectangle monitorRect = BFS.Monitor.GetMonitorWorkAreaByWindow(windowHandle);
int iFinalWinW = monitorRect.Width / 4;
int iFinalWinH = monitorRect.Height/3;
int iFinalWinX = ((windowRect.X < iFinalWinW ? monitorRect.X : ((windowRect.X-iFinalWinW)/ iFinalWinW+1) * iFinalWinW));
int iFinalWinY = ((windowRect.Y < iFinalWinH ? monitorRect.Y : ((windowRect.Y-iFinalWinH)/ iFinalWinH+1) * iFinalWinH));
if (( iFinalWinX + 2*iFinalWinW) > monitorRect.Width ) {
iFinalWinX = monitorRect.X;
iFinalWinY += iFinalWinH;
} else iFinalWinX += iFinalWinW;
iFinalWinY = iFinalWinY +iFinalWinH > monitorRect.Height ? monitorRect.Y: iFinalWinY;
BFS.Window.SetSizeAndLocation(windowHandle, iFinalWinX, iFinalWinY, iFinalWinW, iFinalWinH );
}
}