/*
文件名:enum_system.nut
路径:Core/ENUM/enum_system.nut
创建日期:2024-12-01	20:34
文件用途:系统枚举
*/
_DEBUG_ <- true;


enum MouseButton {
    Left ///< 鼠标左键
    Right ///< 鼠标右键
    Middle ///< 鼠标中键

    Last
};
enum KeyCode {
    nknown ///< 未知
    p ///< 上键
    Left ///< 左键
    Right ///< 右键
    Down ///< 下键
    Enter ///< 回车键
    Space ///< 空格键
    Esc ///< 退出键
    Ctrl ///< CTRL键
    Shift ///< SHIFT键
    Alt ///< ALT键
    Tab ///< TAB键
    Delete ///< 删除键
    Back ///< 退格键
    Super ///< Cmd|Super|Windows键

    A ///< A键
    B ///< B键
    C ///< C键
    D ///< D键
    E ///< E键
    F ///< F键
    G ///< G键
    H ///< H键
    I ///< I键
    J ///< J键
    K ///< K键
    L ///< L键
    M ///< M键
    N ///< N键
    O ///< O键
    P ///< P键
    Q ///< Q键
    R ///< R键
    S ///< S键
    T ///< T键

    V ///< V键
    W ///< W键
    X ///< X键
    Y ///< Y键
    Z ///< Z键

    Num0 ///< 数字0键
    Num1 ///< 数字1键
    Num2 ///< 数字2键
    Num3 ///< 数字3键
    Num4 ///< 数字4键
    Num5 ///< 数字5键
    Num6 ///< 数字6键
    Num7 ///< 数字7键
    Num8 ///< 数字8键
    Num9 ///< 数字9键

    Numpad0 ///< 数字小键盘0键
    Numpad1 ///< 数字小键盘1键
    Numpad2 ///< 数字小键盘2键
    Numpad3 ///< 数字小键盘3键
    Numpad4 ///< 数字小键盘4键
    Numpad5 ///< 数字小键盘5键
    Numpad6 ///< 数字小键盘6键
    Numpad7 ///< 数字小键盘7键
    Numpad8 ///< 数字小键盘8键
    Numpad9 ///< 数字小键盘9键

    F1 ///< F1键
    F2 ///< F2键
    F3 ///< F3键
    F4 ///< F4键
    F5 ///< F5键
    F6 ///< F6键
    F7 ///< F7键
    F8 ///< F8键
    F9 ///< F9键
    F10 ///< F10键
    F11 ///< F11键
    F12 ///< F12键

    Last
};

enum SOCKET_CALLBACK_TYPE {
    onConnect ///< 连接成功
    onReceive ///< 接收到数据
    onReceiveBinary ///< 接收到二进制数据
    onClose ///< 连接关闭

    Last
};

/**
 * \~chinese
 * @brief 字体粗细值
 */
enum FontWeight {
    Thin = 100
    ExtraLight = 200
    Light = 300
    Normal = 400 ///< 正常
    Medium = 500
    Bold = 700 ///< 加粗
    ExtraBold = 800
    Black = 900
    ExtraBlack = 950
};

/**
 * \~chinese
 * @brief 字体形态
 */
enum FontPosture {
    Normal ///< 正常
    Oblique ///< 倾斜体
    Italic ///< 斜体
};

/**
 * \~chinese
 * @brief 字体拉伸
 */
enum FontStretch {
    Unknown
    UltraCondensed
    ExtraCondensed
    Condensed ///< 压缩
    SemiCondensed
    Normal ///< 正常
    SemiExpanded
    Expanded ///< 扩大
    ExtraExpanded
    UltraExpanded
};

/// \~chinese
/// @brief 常见颜色枚举
enum Color {
    Black = 0x000000
    Blue = 0x0000FF
    BlueViolet = 0x8A2BE2
    Brown = 0xA52A2A
    Chocolate = 0xD2691E
    DarkBlue = 0x00008B
    DarkGray = 0xA9A9A9
    DarkGreen = 0x006400
    DarkOrange = 0xFF8C00
    DarkRed = 0x8B0000
    DarkViolet = 0x9400D3
    ForestGreen = 0x228B22
    Gold = 0xFFD700
    Gray = 0x808080
    Green = 0x008000
    GreenYellow = 0xADFF2F
    LightBlue = 0xADD8E6
    LightCyan = 0xE0FFFF
    LightGreen = 0x90EE90
    LightGray = 0xD3D3D3
    LightPink = 0xFFB6C1
    LightSeaGreen = 0x20B2AA
    LightSkyBlue = 0x87CEFA
    LightYellow = 0xFFFFE0
    Orange = 0xFFA500
    OrangeRed = 0xFF4500
    Pink = 0xFFC0CB
    Purple = 0x800080
    Red = 0xFF0000
    Silver = 0xC0C0C0
    SkyBlue = 0x87CEEB
    Snow = 0xFFFAFA
    Violet = 0xEE82EE
    Wheat = 0xF5DEB3
    White = 0xFFFFFF
    WhiteSmoke = 0xF5F5F5
    Wood = 0xDEB887
    Yellow = 0xFFFF00
    YellowGreen = 0x9ACD32
};

/**
 * \~chinese
 * @brief 文本对齐方式
 */
enum TextAlign {
    Left ///< 左对齐
    Right ///< 右对齐
    Center ///< 居中对齐
    Justified ///< 两端对齐
};

/// \~chinese
/// @brief 线条端点样式
/// @details 线条端点样式表示线段端点部分的形状
enum CapStyle {
    Flat ///< 扁端点
    Square ///< 方形端点，方形突出部分等于线段宽度的一半
    Round ///< 圆形端点，圆直径等于线段宽度
    Triangle ///< 三角样式，三角斜边长度等于线段宽度
};

/// \~chinese
/// @brief 线条交点样式
/// @details 线条交点样式表示两条线相交部分的形状
enum LineJoinStyle {
    Miter ///< 斜切样式
    Bevel ///< 斜角样式
    Round ///< 圆角样式
};

/// \~chinese
/// @brief 线条虚线样式
/// @details 线条虚线样式表示线段的间隙
enum DashStyle {
    Solid ///< 无间断的实线
    Dash ///< 斜角样式
    Dot ///< 圆角样式
    DashDot ///< 圆角样式
    DashDotDot ///< 圆角样式
};