Advertisement
FichteFoll

_SlideWin() and _SlideWinEx()

Aug 18th, 2011
211
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
AutoIt 4.42 KB | None | 0 0
  1. Func _SlideWin($hWnd, $sMode, $sSide)
  2.     ;$hWnd = Window to slide.
  3.     ;$sMode = Slide-In or -out (in|out)
  4.     ;$sSide = Side where you want the GUI to slide. (left|right|top|bottom)
  5.     ;; Author: Unknown
  6.  
  7.     Local $aWPos = WinGetPos($hWnd), $m = 0 - ($sMode = "in") + ($sMode = "out")
  8.     Local $h = 0 - ($sSide = "left") + ($sSide = "right"), $v = 0 - ($sSide = "top") + ($sSide = "bottom")
  9.  
  10.     WinMove($hWnd, "", _ ; Move GUI according to $sMode and $sSide.
  11.             0 - (($h = -1) * ($m = -1) * ($aWPos[2] - 10)) _
  12.              + (($h = 1) * (($h = 1) * @DesktopWidth - (10 * ($m = -1)) - ($m <> -1) * $aWPos[2])) _
  13.              + (($h = 0) * (($h = 0) * (@DesktopWidth / 2) - ($aWPos[2] / 2))) _
  14.             , _
  15.             0 - (($v = -1) * ($m = -1) * ($aWPos[3] - 10)) _
  16.              + (($v = 1) * (($v = 1) * @DesktopHeight - (10 * ($m = -1)) - ($m <> -1) * $aWPos[3])) _
  17.              + (($v = 0) * (($v = 0) * (@DesktopHeight / 2) - ($aWPos[3] / 2))) _
  18.             )
  19.  
  20.     $aWPos = WinGetPos($hWnd)
  21.     ; Slide GUI.
  22.     Switch $sSide
  23.         Case "left", "right"
  24.             Local $STEP = (((($h = 1) And ($m = 1)) Or (($h = -1) And ($m = -1))) - ((($h = -1) And ($m = 1)) Or (($h = 1) And ($m = -1)))) * 10
  25.             Local $FROM = $aWPos[0], $TO = $aWPos[0] _
  26.                      + (((($h = 1) And ($m = 1)) Or (($h = -1) And ($m = -1))) * ($aWPos[2])) _
  27.                      - (((($h = 1) And ($m = -1)) Or (($h = -1) And ($m = 1))) * ($aWPos[2])) - $STEP
  28.             For $i = $aWPos[0] To $TO Step $STEP
  29.                 WinMove($hWnd, "", $i, $aWPos[1])
  30.                 Sleep(10)
  31.             Next
  32.         Case "top", "bottom"
  33.             Local $STEP = (((($v = 1) And ($m = 1)) Or (($v = -1) And ($m = -1))) - ((($v = -1) And ($m = 1)) Or (($v = 1) And ($m = -1)))) * 10
  34.             Local $FROM = $aWPos[1], $TO = $aWPos[1] _
  35.                      + (((($v = 1) And ($m = 1)) Or (($v = -1) And ($m = -1))) * ($aWPos[3])) _
  36.                      - (((($v = 1) And ($m = -1)) Or (($v = -1) And ($m = 1))) * ($aWPos[3])) - $STEP
  37.             For $i = $aWPos[1] To $TO Step $STEP
  38.                 WinMove($hWnd, "", $aWPos[0], $i)
  39.                 Sleep(10)
  40.             Next
  41.     EndSwitch
  42. EndFunc   ;==>_SlideWin
  43.  
  44. Func _SlideWinEx($hWnd, $sMode, $sSide, $sVPos, $bMove = True)
  45.     ;$hWnd = Window to slide.
  46.     ;$sMode = Slide-In or -out (in|out)
  47.     ;$sSide = Side where you want the GUI to slide. (left|right|top|bottom)
  48.     ;$sVPos = vertical Position if $sSide = left|right. (top|mid|bottom)
  49.     ;$bMove = False if you don't want to move the window but just set to the startposition
  50.     ;; Author: Unknown (_SlideWinEx)
  51.     ;; Modified: FichteFoll
  52.  
  53.     Local $aWPos = WinGetPos($hWnd), $m = 0 - ($sMode = "in") + ($sMode = "out")
  54.     Local $h = 0 - ($sSide = "left") + ($sSide = "right"), $v = 0 - ($sSide = "top") + ($sSide = "bottom")
  55.     Local $hv = 0 - ($sVPos = "top") + ($sVPos = "bottom")
  56.  
  57.     Local $cx, $cy
  58.     $cx = 0 - (($h = -1) * ($m = -1) * ($aWPos[2] - 10)) _ ; $sSide = left
  59.              + (($h = 1) * (@DesktopWidth - (10 * ($m = -1)) - ($m <> -1) * $aWPos[2])) _ ; $sSide = right
  60.              + (($h = 0) * ((@DesktopWidth / 2) - ($aWPos[2] / 2))) ; $sSide = top|bottom
  61.  
  62.     $cy = 0 - (($v = -1) * ($m = -1) * ($aWPos[3] - 10)) _ ; $sSide = top
  63.              + (($v = 1) * (@DesktopHeight - (10 * ($m = -1)) - ($m <> -1) * $aWPos[3])) _ ; $sSide = bottom
  64.              + (($h <> 0) * ($hv = 0) * ((@DesktopHeight / 2) - ($aWPos[3] / 2))) _ ; vP = mid & $sSide = left|right
  65.              + (($h <> 0) * ($hv = 1) * (@DesktopHeight - $aWPos[3])) ; vP = bottom & $sSide = left|right
  66.     ; vP = top and left|right --> $cy = 0
  67.  
  68.  
  69.     ; Set GUI position according to $sMode, $sSide and $sVPos
  70.     If $bMove = False Then Return WinMove($hWnd, "", $cx, $cy)
  71.  
  72.     $aWPos = WinGetPos($hWnd)
  73.     ; Slide GUI.
  74.     Switch $sSide
  75.         Case "left", "right"
  76.             Local $STEP = (((($h = 1) And ($m = 1)) Or (($h = -1) And ($m = -1))) - ((($h = -1) And ($m = 1)) Or (($h = 1) And ($m = -1)))) * 10
  77.             Local $FROM = $aWPos[0], $TO = $aWPos[0] _
  78.                      + (((($h = 1) And ($m = 1)) Or (($h = -1) And ($m = -1))) * ($aWPos[2])) _
  79.                      - (((($h = 1) And ($m = -1)) Or (($h = -1) And ($m = 1))) * ($aWPos[2])) - $STEP
  80.             For $i = $aWPos[0] To $TO Step $STEP
  81.                 WinMove($hWnd, "", $i, $aWPos[1])
  82.                 Sleep(10)
  83.             Next
  84.         Case "top", "bottom"
  85.             Local $STEP = (((($v = 1) And ($m = 1)) Or (($v = -1) And ($m = -1))) - ((($v = -1) And ($m = 1)) Or (($v = 1) And ($m = -1)))) * 10
  86.             Local $FROM = $aWPos[1], $TO = $aWPos[1] _
  87.                      + (((($v = 1) And ($m = 1)) Or (($v = -1) And ($m = -1))) * ($aWPos[3])) _
  88.                      - (((($v = 1) And ($m = -1)) Or (($v = -1) And ($m = 1))) * ($aWPos[3])) - $STEP
  89.             For $i = $aWPos[1] To $TO Step $STEP
  90.                 WinMove($hWnd, "", $aWPos[0], $i)
  91.                 Sleep(10)
  92.             Next
  93.     EndSwitch
  94. EndFunc   ;==>_SlideWinEx
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement