|
|
|
|
@@ -47,6 +47,13 @@
|
|
|
|
|
AutoForwardTimer := 0 ; Timer reference for TriggerAutoForward
|
|
|
|
|
AutoForwardRunning := false ; Flag to prevent re-entrancy
|
|
|
|
|
AutoForwardTimerPending := false ; Flag to prevent multiple timers from being scheduled
|
|
|
|
|
CharacterNameOverlay := 0 ; GUI overlay for displaying current character name
|
|
|
|
|
CharacterNameOverlayLastText := "" ; Track last displayed text to prevent flashing
|
|
|
|
|
CharacterNameOverlayX := 0 ; Stored X position for dragging
|
|
|
|
|
CharacterNameOverlayY := 0 ; Stored Y position for dragging
|
|
|
|
|
CharacterNameOverlayDragging := false ; Flag for drag state
|
|
|
|
|
CharacterNameOverlayOffsetX := 0 ; Drag offset X
|
|
|
|
|
CharacterNameOverlayOffsetY := 0 ; Drag offset Y
|
|
|
|
|
|
|
|
|
|
__New() {
|
|
|
|
|
|
|
|
|
|
@@ -101,6 +108,7 @@
|
|
|
|
|
|
|
|
|
|
;The Main Timer who checks for new EVE Windows or closes Windows
|
|
|
|
|
SetTimer(ObjBindMethod(This, "HandleMainTimer"), 50)
|
|
|
|
|
SetTimer(ObjBindMethod(This, "UpdateCharacterNameOverlay"), 500)
|
|
|
|
|
This.Save_Settings_Delay_Timer := ObjBindMethod(This, "SaveJsonToFile")
|
|
|
|
|
;Timer property to remove Thumbnails for closed EVE windows
|
|
|
|
|
This.DestroyThumbnails := ObjBindMethod(This, "EvEWindowDestroy")
|
|
|
|
|
@@ -110,9 +118,120 @@
|
|
|
|
|
This.Register_Hotkey_Groups()
|
|
|
|
|
This.BorderActive := 0
|
|
|
|
|
This.ClientsInCharScreen := Map()
|
|
|
|
|
|
|
|
|
|
; Create character name overlay
|
|
|
|
|
This.CreateCharacterNameOverlay()
|
|
|
|
|
|
|
|
|
|
return This
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
CreateCharacterNameOverlay() {
|
|
|
|
|
This.CharacterNameOverlay := Gui("+LastFound -Caption +ToolWindow AlwaysOnTop -SysMenu", "CharacterNameOverlay")
|
|
|
|
|
This.CharacterNameOverlay.BackColor := "040101"
|
|
|
|
|
This.CharacterNameOverlay.MarginX := 20
|
|
|
|
|
This.CharacterNameOverlay.MarginY := 10
|
|
|
|
|
This.CharacterNameOverlay.SetFont("s24 w700 cFFFFFF", "Arial")
|
|
|
|
|
nameCtrl := This.CharacterNameOverlay.Add("Text", "vCharacterNameText w300 Center", "")
|
|
|
|
|
nameCtrl.Opt("+Background040101")
|
|
|
|
|
nameCtrl.OnEvent("Click", ObjBindMethod(This, "CharacterNameOverlay_Drag"))
|
|
|
|
|
This.CharacterNameOverlay.SetFont("s14 w400 cAAAAAA", "Arial")
|
|
|
|
|
hotkeyCtrl := This.CharacterNameOverlay.Add("Text", "vCharacterHotkeyText w300 Center", "")
|
|
|
|
|
hotkeyCtrl.Opt("+Background040101")
|
|
|
|
|
hotkeyCtrl.OnEvent("Click", ObjBindMethod(This, "CharacterNameOverlay_Drag"))
|
|
|
|
|
WinSetTransColor("040101", This.CharacterNameOverlay.Hwnd)
|
|
|
|
|
This.CharacterNameOverlayX := This.CharacterNameOverlayPosition["x"] ? This.CharacterNameOverlayPosition["x"] : A_ScreenWidth - 340
|
|
|
|
|
This.CharacterNameOverlayY := This.CharacterNameOverlayPosition["y"] ? This.CharacterNameOverlayPosition["y"] : 20
|
|
|
|
|
SetTimer(ObjBindMethod(This, "CharacterNameOverlay_CheckDrag"), 10)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
UpdateCharacterNameOverlay() {
|
|
|
|
|
if (!This.CharacterNameOverlay)
|
|
|
|
|
return
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
if (WinActive(This.EVEExe)) {
|
|
|
|
|
activeTitle := This.CleanTitle(WinGetTitle("A"))
|
|
|
|
|
if (activeTitle != "" && activeTitle != This.CharacterNameOverlayLastText) {
|
|
|
|
|
This.CharacterNameOverlayLastText := activeTitle
|
|
|
|
|
This.CharacterNameOverlay["CharacterNameText"].Text := activeTitle
|
|
|
|
|
|
|
|
|
|
hotkeyText := ""
|
|
|
|
|
hotkeyValue := This._Hotkeys[activeTitle]
|
|
|
|
|
if (hotkeyValue && hotkeyValue != "" && hotkeyValue != 0) {
|
|
|
|
|
hotkeyText := hotkeyValue
|
|
|
|
|
}
|
|
|
|
|
This.CharacterNameOverlay["CharacterHotkeyText"].Text := hotkeyText
|
|
|
|
|
|
|
|
|
|
This.CharacterNameOverlay.Show("w340 NoActivate")
|
|
|
|
|
if (This.CharacterNameOverlayX = 0)
|
|
|
|
|
This.CharacterNameOverlayX := A_ScreenWidth - 340
|
|
|
|
|
WinMove(This.CharacterNameOverlayX, This.CharacterNameOverlayY, , , This.CharacterNameOverlay.Hwnd)
|
|
|
|
|
if (!GetKeyState("LButton", "P"))
|
|
|
|
|
WinSetExStyle("+0x20", This.CharacterNameOverlay.Hwnd)
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
} else if (This.CharacterNameOverlayLastText != "") {
|
|
|
|
|
This.CharacterNameOverlayLastText := ""
|
|
|
|
|
This.CharacterNameOverlay.Show("Hide")
|
|
|
|
|
}
|
|
|
|
|
} catch {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
CharacterNameOverlay_CheckDrag() {
|
|
|
|
|
if (!This.CharacterNameOverlay)
|
|
|
|
|
return
|
|
|
|
|
|
|
|
|
|
if (!WinExist("ahk_id " This.CharacterNameOverlay.Hwnd))
|
|
|
|
|
return
|
|
|
|
|
|
|
|
|
|
MouseGetPos(&mx, &my)
|
|
|
|
|
WinGetPos(&wx, &wy, &ww, &wh, This.CharacterNameOverlay.Hwnd)
|
|
|
|
|
|
|
|
|
|
if (mx >= wx && mx <= wx + ww && my >= wy && my <= wy + wh) {
|
|
|
|
|
if (GetKeyState("LButton", "P")) {
|
|
|
|
|
WinSetExStyle("-0x20", This.CharacterNameOverlay.Hwnd)
|
|
|
|
|
if (!This.CharacterNameOverlayDragging) {
|
|
|
|
|
This.CharacterNameOverlayDragging := true
|
|
|
|
|
CoordMode("Mouse", "Screen")
|
|
|
|
|
MouseGetPos(&startX, &startY)
|
|
|
|
|
WinGetPos(&winX, &winY, , , This.CharacterNameOverlay.Hwnd)
|
|
|
|
|
This.CharacterNameOverlayOffsetX := startX - winX
|
|
|
|
|
This.CharacterNameOverlayOffsetY := startY - winY
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
MouseGetPos(¤tX, ¤tY)
|
|
|
|
|
newX := currentX - This.CharacterNameOverlayOffsetX
|
|
|
|
|
newY := currentY - This.CharacterNameOverlayOffsetY
|
|
|
|
|
if (newX < 0)
|
|
|
|
|
newX := 0
|
|
|
|
|
if (newY < 0)
|
|
|
|
|
newY := 0
|
|
|
|
|
if (newX + 340 > A_ScreenWidth)
|
|
|
|
|
newX := A_ScreenWidth - 340
|
|
|
|
|
WinMove(newX, newY, , , This.CharacterNameOverlay.Hwnd)
|
|
|
|
|
This.CharacterNameOverlayX := newX
|
|
|
|
|
This.CharacterNameOverlayY := newY
|
|
|
|
|
This.CharacterNameOverlayPosition["x"] := newX
|
|
|
|
|
This.CharacterNameOverlayPosition["y"] := newY
|
|
|
|
|
SetTimer(This.Save_Settings_Delay_Timer, -200)
|
|
|
|
|
} else {
|
|
|
|
|
if (This.CharacterNameOverlayDragging) {
|
|
|
|
|
This.CharacterNameOverlayDragging := false
|
|
|
|
|
WinSetExStyle("+0x20", This.CharacterNameOverlay.Hwnd)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
if (This.CharacterNameOverlayDragging && !GetKeyState("LButton", "P")) {
|
|
|
|
|
This.CharacterNameOverlayDragging := false
|
|
|
|
|
WinSetExStyle("+0x20", This.CharacterNameOverlay.Hwnd)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
CharacterNameOverlay_Drag(*) {
|
|
|
|
|
; Handler for click events - but we use timer-based dragging instead
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
HandleMainTimer() {
|
|
|
|
|
static HideShowToggle := 0, WinList := {}
|
|
|
|
|
@@ -166,6 +285,7 @@
|
|
|
|
|
if ((DllCall("IsIconic","UInt", WinActive("ahk_exe exefile.exe")) || ActiveProcessName != "exefile.exe") && !HideShowToggle && This.HideThumbnailsOnLostFocus) {
|
|
|
|
|
SetTimer(This.CheckforActiveWindow, -500)
|
|
|
|
|
HideShowToggle := 1
|
|
|
|
|
This.UpdateCharacterNameOverlay()
|
|
|
|
|
}
|
|
|
|
|
else if ( ActiveProcessName = "exefile.exe" && !DllCall("IsIconic","UInt", WinActive("ahk_exe exefile.exe"))) {
|
|
|
|
|
Ahwnd := WinExist("A")
|
|
|
|
|
@@ -185,7 +305,6 @@
|
|
|
|
|
This.ShowActiveBorder(Ahwnd)
|
|
|
|
|
This.UpdateThumb_AfterActivation(, Ahwnd)
|
|
|
|
|
This.BorderActive := Ahwnd
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|