From dc5766eb2a7ae82cd6caaf0102c44117e4e0e814 Mon Sep 17 00:00:00 2001 From: breadcat Date: Sun, 18 Aug 2013 21:30:55 +0100 Subject: Add MouseWin, Add auto reload on file change --- index.ahk | 79 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 78 insertions(+), 1 deletion(-) (limited to 'index.ahk') diff --git a/index.ahk b/index.ahk index 2ee4568..5fda807 100644 --- a/index.ahk +++ b/index.ahk @@ -4,6 +4,10 @@ ;environment #NoEnv #SingleInstance,Force +SetTimer, ScriptReload, 1000 +SetWinDelay,2 +CoordMode,Mouse +return SetWorkingDir, C:\Users\%A_UserName% ;keystates @@ -82,4 +86,77 @@ return ;includes #Include, %A_ScriptDir%\appspecific.ahk ;too many to include in index, deserves separating -#Include, %A_ScriptDir%\functions.ahk ;functions don't belong in index \ No newline at end of file +#Include, %A_ScriptDir%\functions.ahk ;functions don't belong in index + +;auto-reload on change +ScriptReload: +{ + FileGetAttrib, FileAttribs, %A_ScriptFullPath% + IfInString, FileAttribs, A + { + FileSetAttrib, -A, %A_ScriptFullPath% + TrayTip, Reloading Script..., %A_ScriptName%, , 1 + Sleep, 1000 + Reload + TrayTip + } + Return +} + +;kde-windows (Easy Window Dragging -- KDE style (requires XP/2k/NT) -- by Jonny) +!LButton:: +MouseGetPos,KDE_X1,KDE_Y1,KDE_id +WinGet,KDE_Win,MinMax,ahk_id %KDE_id% +If KDE_Win + WinRestore, A +WinGetPos,KDE_WinX1,KDE_WinY1,,,ahk_id %KDE_id% +Loop +{ + GetKeyState,KDE_Button,LButton,P ; Break if button has been released. + If KDE_Button = U + break + MouseGetPos,KDE_X2,KDE_Y2 ; Get the current mouse position. + KDE_X2 -= KDE_X1 ; Obtain an offset from the initial mouse position. + KDE_Y2 -= KDE_Y1 + KDE_WinX2 := (KDE_WinX1 + KDE_X2) ; Apply this offset to the window position. + KDE_WinY2 := (KDE_WinY1 + KDE_Y2) + WinMove,ahk_id %KDE_id%,,%KDE_WinX2%,%KDE_WinY2% ; Move the window to the new position. +} +return + +!RButton:: +MouseGetPos,KDE_X1,KDE_Y1,KDE_id +WinGet,KDE_Win,MinMax,ahk_id %KDE_id% +If KDE_Win + WinRestore, A +; Get the initial window position and size. +WinGetPos,KDE_WinX1,KDE_WinY1,KDE_WinW,KDE_WinH,ahk_id %KDE_id% +; Define the window region the mouse is currently in. +; The four regions are Up and Left, Up and Right, Down and Left, Down and Right. +If (KDE_X1 < KDE_WinX1 + KDE_WinW / 2) + KDE_WinLeft := 1 +Else + KDE_WinLeft := -1 +If (KDE_Y1 < KDE_WinY1 + KDE_WinH / 2) + KDE_WinUp := 1 +Else + KDE_WinUp := -1 +Loop +{ + GetKeyState,KDE_Button,RButton,P ; Break if button has been released. + If KDE_Button = U + break + MouseGetPos,KDE_X2,KDE_Y2 ; Get the current mouse position. + ; Get the current window position and size. + WinGetPos,KDE_WinX1,KDE_WinY1,KDE_WinW,KDE_WinH,ahk_id %KDE_id% + KDE_X2 -= KDE_X1 ; Obtain an offset from the initial mouse position. + KDE_Y2 -= KDE_Y1 + ; Then, act according to the defined region. + WinMove,ahk_id %KDE_id%,, KDE_WinX1 + (KDE_WinLeft+1)/2*KDE_X2 ; X of resized window + , KDE_WinY1 + (KDE_WinUp+1)/2*KDE_Y2 ; Y of resized window + , KDE_WinW - KDE_WinLeft *KDE_X2 ; W of resized window + , KDE_WinH - KDE_WinUp *KDE_Y2 ; H of resized window + KDE_X1 := (KDE_X2 + KDE_X1) ; Reset the initial position for the next iteration. + KDE_Y1 := (KDE_Y2 + KDE_Y1) +} +return -- cgit v1.2.3