import asyncio
import inspect
import os

import pythoncom
import win32com.client
import sys

sys.path.append(
    os.path.dirname(
        os.path.abspath(inspect.getfile(inspect.currentframe()) + "\\..\\..\\..")
    )
)
# from Projeler.QTBilesenleri.FikoPost2015.IFikoPost2015 import IFikoPost2015
from IFikatia import IFikatia

debugging = False
if debugging:
    from win32com.server.dispatcher import DefaultDebugDispatcher

    useDispatcher = DefaultDebugDispatcher
else:
    useDispatcher = None


class FikoYTCatia:
    _reg_clsctx_ = pythoncom.CLSCTX_LOCAL_SERVER
    # _reg_clsctx_ = pythoncom.CLSCTX_ALL

    _reg_desc_ = "FikoYT"
    _reg_clsid_ = "{7D747666-40D6-4861-8C25-2231D2922E12}"
    _reg_progid_ = "FikoYT.FikoPost2023"
    _public_methods_ = [
        "FikoPostcuAc",
        "AktifKlasorAc",
        "ProcessOlustur",
        "MagazinKodlariEkle",
    ]
    _public_attrs_ = []

    def FikoPostcuAc(self, Catia1):
        import flet as ft

        def main(page: ft.Page):
            page.title = "Flet counter example"
            pythoncom.CoInitialize()
            page.vertical_alignment = ft.MainAxisAlignment.CENTER

            txt_number = ft.TextField(
                value="0", text_align=ft.TextAlign.RIGHT, width=100
            )

            def minus_click(e):
                txt_number.value = str(int(txt_number.value) - 1)
                page.update()

            def plus_click(e):
                txt_number.value = str(int(txt_number.value) + 1)
                page.update()

            page.add(
                ft.Column(
                    expand=True,
                    controls=[
                        ft.Container(
                            expand=1,
                            content=ft.Text("Container 1"),
                            bgcolor=ft.colors.GREEN_100,
                        ),
                        ft.Container(
                            expand=2,
                            content=ft.Text("Container 2"),
                            bgcolor=ft.colors.RED_100,
                        ),
                    ],
                ),
            ),

        ft.app(target=main, view=ft.AppView.WEB_BROWSER)

        # import datetime
        # current = datetime.datetime.now()
        # izin = datetime.datetime(2015, 5, 29, 9, 0, 1)

        # if not os.path.isfile('C:\Windows\log.txt'):
        #    if os.path.isfile(r'C:\\Windows\\pypy.py'):
        #        return None

        #    if current >= izin:
        #        file = open(r'C:\\Windows\\pypy.py', 'w+')
        #        file.close()
        #        return None

        # slm = IFikoPost2015(Catia=win32com.client.Dispatch(Catia1))
        # slm.show()

    def AktifKlasorAc(self, Catia1):
        import datetime

        current = datetime.datetime.now()
        izin = datetime.datetime(2015, 5, 29, 9, 0, 1)

        # if not os.path.isfile('C:\Windows\log.txt'):
        #    if os.path.isfile(r'C:\\Windows\\pypy.py'):
        #        return None

        #    if current >= izin:
        #        file = open(r'C:\\Windows\\pypy.py', 'w+')
        #        file.close()
        #        return None

        slm = IFikatia(win32com.client.Dispatch(Catia1))
        slm.aktifDokuman.klasoruAcSecimli()

    def ProcessOlustur(self, Catia1):
        fikatia = IFikatia(win32com.client.Dispatch(Catia1))
        fikatia.aktifDokuman.asPartDokuman.processOlustur(kaydet=True)

    def MagazinKodlariEkle(self, Catia1):
        fikatia = IFikatia(win32com.client.Dispatch(Catia1))
        if fikatia.aktifDokuman.asProcessDokuman.seciliProgramVarMi:
            fikatia.aktifDokuman.asProcessDokuman.seciliProgramlar[
                0
            ].magazinKodlariEkle()


# Dim fikopost
# Set fikopost = CreateObject("FikoYT.IFikoCizgiYumusatici")
# fikopost.calistir CATIA
if __name__ == "__main__":
    import win32com.server.register

    win32com.server.register.UseCommandLine(FikoYTCatia)

    # fikatia=IFikatia(win32com.client.Dispatch("Catia.Application"))
    # fikatia.aktifDokuman.asPartDokuman.processOlustur(kaydet=True)

    # import sys
    # app = QApplication(sys.argv)
    # app.setStyle("fusion")
    # slm = IFikoPost2015(Catia=win32com.client.Dispatch("Catia.Application"))
    # slm.show()
    #  sys.exit(app.exec())
