summaryrefslogtreecommitdiffstats
path: root/index.ahk
diff options
context:
space:
mode:
authorbreadcat2013-08-18 21:30:55 +0100
committerbreadcat2013-08-18 21:30:55 +0100
commitdc5766eb2a7ae82cd6caaf0102c44117e4e0e814 (patch)
tree0a12e370356ce46a8078fc6df8c1a3aa76c8edf9 /index.ahk
parentbd39cc3a13fd2f1a97d323c2ed12e735143c0568 (diff)
downloadahka-dc5766eb2a7ae82cd6caaf0102c44117e4e0e814.tar.gz
ahka-dc5766eb2a7ae82cd6caaf0102c44117e4e0e814.tar.bz2
ahka-dc5766eb2a7ae82cd6caaf0102c44117e4e0e814.zip
Add MouseWin, Add auto reload on file change
Diffstat (limited to 'index.ahk')
-rw-r--r--index.ahk79
1 files changed, 78 insertions, 1 deletions
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