Processing Ajax...

Title
Close Dialog

Message

Confirm
Close Dialog

Confirm
Close Dialog

Move window to the left side, middle, or right side with the 33% width, 100% height

Description
This function will move the window to the left, middle, or right 1/3 of the screen.
Language
C#.net
Minimum Version
Created By
david69669
Contributors
-
Date Created
Nov 9, 2018
Date Last Modified
Nov 9, 2018

Scripted Function (Macro) Code

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 iFinalWinX = monitorRect.X;
                     int iFinalWinY = monitorRect.Y;
                     int iFinalWinW = monitorRect.Width / 3;
                     int iFinalWinH = monitorRect.Height; 

                     if(        windowRect.X == iFinalWinX  
                     /*        && windowRect.Y == iFinalWinY
                                &&      windowRect.Width == iFinalWinW
                                &&      windowRect.Height == iFinalWinH */)                  {
                                iFinalWinX = monitorRect.X + iFinalWinW;  
                     } else if (windowRect.X == iFinalWinX + iFinalWinW) 
                     { iFinalWinX = monitorRect.X + 2*iFinalWinW;
                     } else if (windowRect.X == iFinalWinX + 2*iFinalWinW) {
                                iFinalWinX = monitorRect.X;
                     }                                

                     BFS.Window.SetSizeAndLocation(windowHandle, iFinalWinX, iFinalWinY, iFinalWinW, iFinalWinH );
           }
}