예제 #1
0
        protected bool UpdateAppWinData(AppWinData appWinData, HwndObject hwndObj)
        {
            string title = GetTitle(hwndObj);

            appWinData.IsPresent = true;
            appWinData.WinTitle  = title;
            return(hwndObj.ResetPosition());
        }
예제 #2
0
 public AppInfo(AppData appData, AppWinData appWinData)
 {
     ProcName  = appData.ProcName;
     PID       = appData.PID;
     ProcTitle = appData.ProcTitle;
     WinTitle  = appWinData.WinTitle;
     Location  = appWinData.HwndObj.Location;
     Size      = appWinData.HwndObj.Size;
     IsMain    = appData.IsMainWindow(appWinData);
 }
예제 #3
0
 public void Move(AppWinData appWinData)
 {
     if (Windows.Count > 1 && !MainHwndObjs.Contains(appWinData.HwndObj))
     {
         int        mainHwndIdx = IdxOfMainWindowInRange(appWinData.HwndObj); // index will always be valid
         HwndObject mainHwndObj = MainHwndObjs[mainHwndIdx];
         if (IsWindowPosDiff(mainHwndObj, appWinData.HwndObj) || IsWindowSizeDiff(mainHwndObj, appWinData.HwndObj))
         {
             appWinData.HwndObj.Rect = mainHwndObj.Rect;
         }
     }
 }
예제 #4
0
 public void UpdateMainWindows(AppWinData appWinData)
 {
     if (MainHwndObjs.Count == 0)
     {
         MainHwndObjs.Add(appWinData.HwndObj);
     }
     else
     {
         int mainHwndIdx = IdxOfMainWindowInRange(appWinData.HwndObj);
         if (mainHwndIdx < 0)
         {
             MainHwndObjs.Add(appWinData.HwndObj);
         }
         else if (IsWindowOnLeft(MainHwndObjs[mainHwndIdx], appWinData.HwndObj))
         {
             MainHwndObjs[mainHwndIdx] = appWinData.HwndObj;
         }
     }
 }
예제 #5
0
 public bool IsMainWindow(AppWinData appWinData)
 {
     return(MainHwndObjs.Contains(appWinData.HwndObj));
 }
예제 #6
0
 protected bool IsWindowOnLeft(AppWinData appWinDataMain, AppWinData appWinData)
 {
     return(appWinData.HwndObj.Rect.X < appWinDataMain.HwndObj.Rect.X);
 }