import os
import sys
import time
import ctypes

sys.path.insert(0, r"c:\Projects\AutoPOE2")
from src.common.win32_window import attach_to_default_desktop, find_poe2_window
from src.common.virtual_display_manager import capture_virtual_display
from src.common.vision_ocr import safe_recognize_pil_sync

attach_to_default_desktop()
hwnd = find_poe2_window()
user32 = ctypes.windll.user32

VK_ESCAPE = 0x1B
SC_ESCAPE = 0x01
WM_KEYDOWN = 0x0100
WM_KEYUP = 0x0101

print(f"Dismissing modal dialog on PoE2 HWND: {hex(hwnd)}...")
# Send Escape to dismiss modal
user32.PostMessageW(hwnd, WM_KEYDOWN, VK_ESCAPE, (SC_ESCAPE << 16) | 1)
time.sleep(0.05)
user32.PostMessageW(hwnd, WM_KEYUP, VK_ESCAPE, (SC_ESCAPE << 16) | 0xC0000001)
time.sleep(0.5)

# Capture and check if modal is gone
img = capture_virtual_display()
img.save("captures/after_dismiss_modal.png")

res = safe_recognize_pil_sync(img)
lines = [l.get("text", "") for l in res.get("lines", [])]
has_modal = any("DESTROY" in l.upper() or "CANNOT DROP" in l.upper() for l in lines)
print(f"Is modal still present? {has_modal}")
for l in lines:
    if any(k in l.upper() for k in ["DESTROY", "CANNOT", "MAP DEVICE", "STASH"]):
        print("  Line:", l)
