Jump to content

Sky Slate Blueberry Blackcurrant Watermelon Strawberry Orange Banana Apple Emerald Chocolate
Photo

Mouse Gesture Script with Tooltip Program Launcher


  • Please log in to reply
No replies to this topic
Red Hat Boy
  • Members
  • 121 posts
  • Last active: May 02 2014 06:44 PM
  • Joined: 10 Apr 2008
Basically, it's this script with the ability to accept middle clicks and a built-in program launcher. I thought it was pretty neat. Example gestures included.

; ========================================================================
; ============================ Mouse Gestures ============================
; ========================================================================
; Simple Mouse Gestures
; http://www.autohotkey.com/forum/viewtopic.php?t=25330&postdays=0&postorder=asc&start=0

; for the program launcher
NumOfProggies = 4
Proggy1s = Calculator
Proggy1 = calc.exe
Proggy2s = Foobar 2000
Proggy2 = C:\Program Files\foobar2000\foobar2000.exe
Proggy3s = Notepad
Proggy3 = notepad.exe
Proggy4s = Notepad++
Proggy4 = C:\freeware\text\Notepad Plus\notepad++.exe


xbutton1::
rbutton::
if getkeystate("rbutton","p")
xbutton=
else
xbutton=x    ;add an "x" if using 4th mouse button
hotkey, lbutton, on      ;disables normal left click
if (window1<>window0)     
   window2:=window1                ;window1 is the window underneath the current gesture, window2 is from the previous gesture   
mousegetpos,xpos1, ypos1,window1   
gesture=      ;clear previous tracking results
settimer, gesture, 10
GestureMode = 1
return

xbutton1 up::
rbutton up::
if not gesturemode
   return
settimer, gesture, off
hotkey, lbutton, off      ;re-enables normal left click
GestureMode = 0
gesture := "g" . xbutton . gesture   ;eg. gdr = gesture down right
if islabel(gesture)              ;checks if gesture is labelled
   gosub, %gesture%         ; eg. gosub, gdr
return

gesture:
if SubStr(gesture, 0)="w"  ;if using wheel, this stops mouse drift stopping gesture
   return           
mousegetpos,xpos2, ypos2
dx:=xpos2-xpos1     
dy:=ypos1-ypos2     
if (abs(dy)>=abs(dx))   
   {
   if (dy>0)
      track=u  ;track is up
   else
      track=d     ;down   
   }
else
   {
   if (dx>0)
      track=r      ;right
   else
      track=l      ;left
   }
if (abs(dy)<4 and abs(dx)<4)
   track=         ;not tracking at all if no significant change in x or y
xpos1:=xpos2
ypos1:=ypos2
if (track<>SubStr(gesture, 0, 1))     ;ignore track if not changing since previous track
   gesture := gesture . track
return

lbutton::         ;registers a left click. terminates the gesture
gesture := gesture . "c"
gosub, rbutton up    ;delete this line if you don't want left clicks to terminate the gesture
gesturemode=0        ;delete this line if you don't want left clicks to terminate the gesture
return

WheelUp::
wheeldir=wheelup
gosub, wheel
return

WheelDown::
wheeldir=wheeldown
gosub, wheel
return

MButton::
wheeldir=mbutton
gosub, wheel
return

wheel:
If GestureMode ;we're currently recording a gesture
{
   If (SubStr(gesture, 0) <> "w")
       gesture := "g" . xbutton . gesture . "w"   
   if islabel(gesture)
      gosub, %gesture%
}
Else ;we're not recording a gesture so just do a wheelup or wheeldown
{
Sendinput {%wheeldir%}
}
Return


g:          ;normal right click
click, right, xpos1, ypos1
exit


ProggyListUp:
n += 1
if n > %NumOfProggies%
	n = 1
Goto ProggyNextStep
ProggyListDown:
n -= 1
if n < 1
	n = %NumOfProggies%
ProggyNextStep:
Display := Proggy%n%s
Launch := Proggy%n%
ToolTip, %Display%
;SetTimer, ToolKill, -2200
SetTimer, ProggyToolTip, 20
return

ProggySend:
  SetTimer, ProggyToolTip, Off
ToolTip
Run, %Launch%
return

ProggyToolTip:
if GetKeyState("RButton", "P")
  {
  Sleep, 10
  ToolTip, %Display%
  }
else
  {
  ToolTip
  SetTimer, ProggyToolTip, Off
  }
return

; ----- Actual Gestures -----
; end normal gestures (not wheel gestures) with an "exit" instead of "return". 


gw:	; Mini-Program Launcher. Hold Right-Click and scroll through programs with wheel. Middle Click to launch.
ToolTip, Scroll the wheel to select a program
if wheeldir=wheelup
Goto ProggyListUp
else if wheeldir=wheeldown
Goto ProggyListDown
else if wheeldir=mbutton
Goto ProggySend
return


glw:	;change volume with wheel - gesture left then use wheel keeping the right button down   
if wheeldir=wheelup
Send {Volume_Up}
else if wheeldir=wheeldown
Send {Volume_Down}
else if wheeldir=mbutton
Send {Volume_Mute}
return    ;end wheel gestures with a "return" NOT "exit"    !!!!!!!!


grw:	; Media Next/Back/Play/Pause controls
if wheeldir=wheelup
Send {Media_Next}
else if wheeldir=wheeldown
Send {Media_Prev}
else if wheeldir=mbutton
Send {Media_Play_Pause}
return


guw:	; Zoom in/out in Firefox 3
if wheeldir=wheelup
Send {Ctrl down}{+}{Ctrl up}
else if wheeldir=wheeldown
Send {Ctrl down}-{Ctrl up}
else if wheeldir=mbutton
Msgbox Zoom in/out in Firefox 3`n`nGesture Up + Wheel: Scroll up for zooming in, down for zooming out`n(ctrl+, ctrl-)
return





glr:	; Run URL/Shortcut Paster
Run C:\freeware\system utils\AutoHotkey\#scripts\#sub\mouselink gui shortcuts.ahk
exit

glrlr:	; Run Xplorer2
Run C:\freeware\system utils\file managers\xplorer2_lite\xplorer2_lite.exe
exit

gudu:	; Run Screen Lock
Run C:\freeware\system utils\AutoHotkey\#scripts\#sub\screen lock (instant).ahk
exit

guru:	; Run Notepad++
Run C:\freeware\text\Notepad Plus\notepad++.exe
exit

gudlr:	; close the current window
WinClose, A
exit

gul:	; toggle alwaysontop
WinSet, AlwaysOnTop, Toggle, A
exit

You do not have permission to read this signature...