All pastes #1757397 Raw Edit

ChromeTabsScroll.ahk

public text v1 · immutable
#1757397 ·published 2010-01-19 13:36 UTC
rendered paste body
; ChromeTabsScroll.ahk
; script for AutoHotKey
; switch tabs by scroll and maximize window by double click
; on tab for Google Chrome

#NoEnv
#SingleInstance force

IsChromeTabBar(winmax, xaxis, yaxis) {
	; boundaries for normal window on vista/win7
	topMin = 8
	topMax = 42
	if (winmax == 1) {
		; top edge is offscreen
		topMin = 8
		topMax = 30
	}
	
	; TODO also clip on left or right < 8
	if (yaxis >= topMin and yaxis <= topMax)
		return 1
	else
		return 0
}

#IfWinActive ahk_class Chrome_WindowImpl_0
	; scroll on tab bar to switch tabs
	~$WheelDown::
	~$WheelUp::
		MouseGetPos,, yaxis,winid
		WinGet, winmax,MinMax,ahk_id %winid%
		if not IsChromeTabBar(winmax,-1,yaxis)
			return
		ifEqual, A_ThisHotkey,~$WheelDown, Send ^{PgDn}
		else Send ^{PgUp}
		return
	; double click on tab to maximize
	~LButton::
		MouseGetPos,, yaxis,winid
		if (A_PriorHotkey == A_ThisHotkey and A_TimeSincePriorHotkey < 320) {
			if not IsChromeTabBar(winMaxOld,-1,yaxis)
				return
			Sleep 100
			WinGet, winMaxNew,MinMax,ahk_id %winid%
			if (winMaxOld == winMaxNew) {
				if (winMaxNew == 0)
					WinMaximize
				else
					WinRestore
			}
		} else {
			WinGet, winMaxOld,MinMax,ahk_id %winid%
		}
		return
#IfWinActive

; what a shitty language ;(