Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;On a 1 second poll
- ; If Chrome window is active
- ; Get mouse position
- ; Get Chrome header area bounds
- ; If mouse position is in the Chrome header area bounds and bookmarks are expanded or mouse position is not in the Chrome header area bounds and bookmarks aren't expanded
- ; Send Chrome bookmark toggle combo
- ; End If
- ; End If
- ;Loop
- #include <MsgBoxConstants.au3>
- #include "AssocArrays.au3"
- Global $avTopBarHeight
- AssocArrayCreate($avTopBarHeight, 5)
- While 1
- $hWnd = WinActive("[CLASS:Chrome_WidgetWin_1]")
- $aControlPos = ControlGetPos($hWnd, "", "Chrome_RenderWidgetHostHWND1")
- If $hWnd And Not @error Then
- Local $aMousePos = MouseGetPos()
- Local $aBoundPos[4]
- $aBoundPos[0] = WinGetPos($hWnd)[1]
- $aBoundPos[1] = $aBoundPos[0] + (WinGetPos($hWnd)[3] - ControlGetPos($hWnd, "", "Chrome_RenderWidgetHostHWND1")[3])
- $aBoundPos[2] = WinGetPos($hWnd)[0]
- $aBoundPos[3] = $aBoundPos[2] + WinGetPos($hWnd)[2]
- If (Not AssocArrayExists($avTopBarHeight, "" & $hWnd & "." & BitAND(WinGetState($hWnd), 32))) Then
- AssocArrayAssign($avTopBarHeight, "" & $hWnd & "." & BitAND(WinGetState($hWnd), 32), $aBoundPos[1] - $aBoundPos[0]) ;Assumes bookmarks are currently not expanded
- EndIf
- If (IsInside($aMousePos, $aBoundPos) And Not IsOpen($aBoundPos, $hWnd)) Then
- Sleep(100)
- Send("^+b")
- Sleep(50)
- EndIf
- If (Not IsInside($aMousePos, $aBoundPos) And IsOpen($aBoundPos, $hWnd)) Then
- Sleep(100)
- Send("^+b")
- Sleep(50)
- EndIf
- EndIf
- sleep(100)
- WEnd
- Func IsOpen(ByRef $vBoundPos, ByRef $hWnd)
- Local $iMinTopBarHeight = AssocArrayGet($avTopBarHeight, "" & $hWnd & "." & BitAND(WinGetState($hWnd), 32))
- Local $iCurrentTopBarHeight = $vBoundPos[1] - $vBoundPos[0]
- If ($iMinTopBarHeight > $iCurrentTopBarHeight And $iCurrentTopBarHeight > 0) Then
- AssocArrayAssign($avTopBarHeight, "" & $hWnd & "." & BitAND(WinGetState($hWnd), 32), $iCurrentTopBarHeight)
- Return 0
- EndIf
- If ($iMinTopBarHeight = $iCurrentTopBarHeight) Then
- Return 0
- EndIf
- If ($iMinTopBarHeight < $iCurrentTopBarHeight) Then
- Return 1
- EndIf
- EndFunc
- Func IsInside(ByRef $vMousePos, ByRef $vBoundPos)
- Return ($vMousePos[0] < $vBoundPos[3] And $vMousePos[0] > $vBoundPos[2] And $vMousePos[1] < $vBoundPos[1] And $vMousePos[1] > $vBoundPos[0])
- EndFunc
Advertisement