from fastapi import FastAPI
import pyautogui
import win32gui
import re


class WindowMgr:
    """Encapsulates some calls to the winapi for window management"""

    def __init__ (self):
        """Constructor"""
        self._handle = None

    def find_window(self, class_name, window_name=None):
        """find a window by its class_name"""
        self._handle = win32gui.FindWindow(class_name, window_name)

    def _window_enum_callback(self, hwnd, wildcard):
        """Pass to win32gui.EnumWindows() to check all the opened windows"""
        if re.match(wildcard, str(win32gui.GetWindowText(hwnd))) is not None:
            self._handle = hwnd

    def find_window_wildcard(self, wildcard):
        """find a window whose title matches the wildcard regex"""
        self._handle = None
        win32gui.EnumWindows(self._window_enum_callback, wildcard)

    def set_foreground(self):
        """put the window in the foreground"""
        win32gui.SetForegroundWindow(self._handle)



app = FastAPI()
state="OFF"

@app.get("/")
def read_root():
    global state
    if state=="OFF":
        w = WindowMgr()
        w.find_window_wildcard(".*Zoom Meeting.*")
        w.set_foreground()
        pyautogui.keyDown("alt")
        pyautogui.press("s")
        pyautogui.keyUp("alt")
        position = pyautogui.position()
        pyautogui.moveTo(20,20)
        pyautogui.click('PowerPointImage.png',clicks=2)
        ##pyautogui.position(position[0],position[1])
        state="ON"
        print(state)
    elif state=="ON":
        w = WindowMgr()
        w.find_window_wildcard(".*Meetingsteuerungen.*")
        w.set_foreground() 
        pyautogui.keyDown("alt")
        pyautogui.press("s")
        pyautogui.keyUp("alt")
        state="OFF"
        print(state)  
    return state
