import sys

sys.coinit_flags = 0

from typing import Any, List, Optional, Union
import flet as ft
from flet_core.control import Control, OptionalNumber
from flet_core.ref import Ref
from flet_core.types import (
    AnimationValue,
    ClipBehavior,
    OffsetValue,
    ResponsiveNumber,
    RotateValue,
    ScaleValue,
)
import flet as ft
from flet import (
    AppBar,
    ElevatedButton,
    Page,
    Text,
    View,
    colors,
    Row,
    MainAxisAlignment,
    CrossAxisAlignment,
    Image,
    ImageFit,
    TextAlign,
    Column,
    TextField,
    KeyboardType,
    icons,
    Slider,
    ProgressBar,
    OutlinedButton,
    IconButton,
    BottomSheet,
    Container,
    AlertDialog,
    ButtonStyle,
    TextButton,
    Icon,
    ListView,
    ListTile,
    PopupMenuButton,
    PopupMenuItem,
    Padding,
    Checkbox,
    alignment,
    BlendMode,
    LinearGradient,
    ShaderMask,
    Rotate,
    Divider,
    Alignment,
    border,
    border_radius,
    Offset,
    TextStyle,
    UserControl,
    BoxShadow,
    TextOverflow,
    FontWeight,
    VerticalDivider,
    SafeArea,
)
import pythoncom
from IProgram import IProgram

from IProgramlar import IProgramlar
from IFikatia import IFikatia


class FikatiaItem(ft.UserControl):
    def __init__(self, fikatia, mainPage):
        super().__init__()
        # fikatia=IFikatia(fikatia,fikatia)
        fikatia.marshalHazirla()
        self.fikatia: IFikatia = fikatia
        self.mainPage = mainPage

    def build(self):
        return ft.Container(
            Row(
                [
                    Container(
                        width=28,
                        height=28,
                        border_radius=0,
                        padding=0,
                        alignment=alignment.center,
                        image_src=f"/resimler/Nc.png",
                    ),
                    Column(
                        controls=[
                            Text(
                                f"{self.fikatia.dokumanlar.sayisi}",
                                text_align=TextAlign.CENTER,
                                weight=FontWeight.BOLD,
                            ),
                            Text(
                                f"📂 {self.fikatia.ismi}",
                                text_align=TextAlign.CENTER,
                                overflow=TextOverflow.ELLIPSIS,
                                no_wrap=False,
                                max_lines=2,
                            ),
                            Container(
                                Row(
                                    # expand=1,
                                    # spacing=2,
                                    # padding=3,
                                    # auto_scroll=False,
                                    # divider_thickness=0,
                                    # horizontal=True,
                                    spacing=2,
                                    controls=[
                                        Container(
                                            Text("📂"),
                                            width=16,
                                            height=16,
                                            alignment=alignment.center,
                                            # bgcolor=colors.BLUE_100,
                                            # border=border.all(1, colors.BLUE_400),
                                            border_radius=border_radius.all(5),
                                            ink=True,
                                            padding=0,
                                            on_click=lambda e: self.bosInk(),
                                        ),
                                        Container(
                                            Text("💾"),
                                            width=16,
                                            height=16,
                                            alignment=alignment.center,
                                            # bgcolor=colors.BLUE_100,
                                            # border=border.all(1, colors.BLUE_400),
                                            border_radius=border_radius.all(5),
                                            ink=True,
                                            padding=0,
                                            on_click=lambda e: self.bosInk(),
                                        ),
                                        Container(
                                            Text("📦"),
                                            width=16,
                                            height=16,
                                            alignment=alignment.center,
                                            # bgcolor=colors.BLUE_100,
                                            # border=border.all(1, colors.BLUE_400),
                                            border_radius=border_radius.all(5),
                                            ink=True,
                                            padding=0,
                                            on_click=lambda e: self.bosInk(),
                                        ),
                                        Container(
                                            Text("🗑️"),
                                            width=16,
                                            height=16,
                                            alignment=alignment.center,
                                            # bgcolor=colors.BLUE_100,
                                            # border=border.all(1, colors.BLUE_400),
                                            border_radius=border_radius.all(5),
                                            ink=True,
                                            padding=0,
                                            on_click=lambda e: self.bosInk(),
                                        ),
                                        Container(
                                            Text("📼"),
                                            width=16,
                                            height=16,
                                            alignment=alignment.center,
                                            # bgcolor=colors.BLUE_100,
                                            # border=border.all(1, colors.BLUE_400),
                                            border_radius=border_radius.all(5),
                                            ink=True,
                                            padding=0,
                                            on_click=lambda e: self.bosInk(),
                                        ),
                                        Container(
                                            Text("🧹"),
                                            width=16,
                                            height=16,
                                            alignment=alignment.center,
                                            # bgcolor=colors.BLUE_100,
                                            # border=border.all(1, colors.BLUE_400),
                                            border_radius=border_radius.all(5),
                                            ink=True,
                                            padding=0,
                                            on_click=lambda e: self.bosInk(),
                                        ),
                                        Container(
                                            Text("✍️"),
                                            width=16,
                                            height=16,
                                            alignment=alignment.center,
                                            # bgcolor=colors.BLUE_100,
                                            # border=border.all(1, colors.BLUE_400),
                                            border_radius=border_radius.all(5),
                                            ink=True,
                                            padding=0,
                                            on_click=lambda e: self.bosInk(),
                                        ),
                                        Container(
                                            Text("💎"),
                                            width=16,
                                            height=16,
                                            alignment=alignment.center,
                                            # bgcolor=colors.BLUE_100,
                                            # border=border.all(1, colors.BLUE_400),
                                            border_radius=border_radius.all(5),
                                            ink=True,
                                            padding=0,
                                            on_click=lambda e: self.tiklandi(),
                                        ),
                                    ],
                                ),
                                height=20,
                                padding=0,
                            ),
                        ],
                        spacing=0,
                    ),
                ],
                spacing=0,
                alignment=MainAxisAlignment.START,
                vertical_alignment=CrossAxisAlignment.START,
            ),
            alignment=ft.alignment.center_left,
            # bgcolor=colors.BLUE_100,
            # border=border.all(1, colors.BLUE_400),
            border_radius=ft.border_radius.all(5),
            ink=True,
            on_click=self.bosInk,
        )

    def bosInk(self, *args, **kwargs):
        pass

    def tiklandi(self, *args, **kwargs):
        pythoncom.CoInitializeEx(pythoncom.COINIT_MULTITHREADED)
        self.fikatia.marshalOku()
        print(self.fikatia.aktifEt())
        pythoncom.CoUninitialize()
