from enum import Enum, unique

CommonColors_Backgnd = [
    "#FF0000",  # 红色
    "#00FF00",  # 绿色
    "#0000FF",  # 蓝色
    "#FFFF00",  # 黄色
    "#FF00FF",  # 品红
    "#00FFFF",  # 青色
    "#FFA500",  # 橙色
    "#800080",  # 紫色
    "#FFC0CB",  # 粉色
    "#008000",  # 深绿色
    "#000080",  # 深蓝色
    "#800000",  # 深红色
    "#808000",  # 橄榄色
    "#008080",  # 青色
    "#808080",  # 灰色
    "#FF0080",  # 玫瑰红
    "#0080FF",  # 天蓝色
    "#FF8000",  # 橙红色
    "#8000FF",  # 紫罗兰
    "#00FF80"   # 海绿色
]

CommonColors_Foregnd = [
    "#FFFFFF",  # 红色背景 -> 白色文字
    "#000000",  # 绿色背景 -> 黑色文字
    "#FFFFFF",  # 蓝色背景 -> 白色文字
    "#000000",  # 黄色背景 -> 黑色文字
    "#FFFFFF",  # 品红背景 -> 白色文字
    "#000000",  # 青色背景 -> 黑色文字
    "#000000",  # 橙色背景 -> 黑色文字
    "#FFFFFF",  # 紫色背景 -> 白色文字
    "#000000",  # 粉色背景 -> 黑色文字
    "#FFFFFF",  # 深绿色背景 -> 白色文字
    "#FFFFFF",  # 深蓝色背景 -> 白色文字
    "#FFFFFF",  # 深红色背景 -> 白色文字
    "#FFFFFF",  # 橄榄色背景 -> 白色文字
    "#FFFFFF",  # 青色背景 -> 白色文字
    "#FFFFFF",  # 灰色背景 -> 白色文字
    "#FFFFFF",  # 玫瑰红背景 -> 白色文字
    "#000000",  # 天蓝色背景 -> 黑色文字
    "#000000",  # 橙红色背景 -> 黑色文字
    "#FFFFFF",  # 紫罗兰背景 -> 白色文字
    "#000000"   # 海绿色背景 -> 黑色文字
]

@unique
class LabellingKind(Enum):
    Unknown = 0
    Select = 1
    Create = 2
    TempDrag = 3
    TempResize = 4
    TempRotate = 5

@unique
class Meta(Enum):
    Unknown = 0
    Line = 1
    Rectangle = 2
    Ellipse = 3
    Polygon = 4
    Text = 5

@unique
class AiAlg(Enum):
    Unknown = 0
    FashionMNIST = 1,
    ColorDetector = 2,
    Face = 3,
    Coco8 = 4


@unique
class Response(Enum):
    OK = (0, "OK - 响应成功")
    DEBUG = (1, "DEBUG - 正常调试")
    WARNING = (2, "FAIL - 响应警告")
    ERROR = (3, "ERROR - 响应错误")
    EXCEPTION = (4, "EXCEPTION - 响应异常")
    CRITICAL = (5, "CRITICAL - 响应严重错误")
        
class Flag(Enum):
    Paint = True
    Client = False

        
class Align(Enum):
    Left = 0
    Top = 1
    Right = 2
    Bottom = 3
    Client = 4
    Custom = 5
    
class Anchor(Enum):
    Left = 1
    Top = 2
    Right = 4
    Bottom = 8
    
class IconPos(Enum):
    NoIcon = 0
    OnlyIcon = 1
    IconLeft = 2
    IconRight = 3
    IconTop = 4
    IconBottom = 5
    
class ControlEvent(Enum):
    MouseEnter = 0
    MouseLeave = 1
    MouseMove = 2
    MouseDown = 3
    MouseUp = 4
    Click = 5
    DblClick = 6
    