/*
文件名:Font.nut
路径:Core/BaseClass/TextObject/Font.nut
创建日期:2024-12-01	19:54
文件用途:字体对象
*/
__Font__Map__ <- {};
class Font extends CL_BaseObject {

    function _typeof() {
        return "font_data";
    }

    /*
     * @函数作用: 构造函数
     * @参数 不传参默认使用系统默认字体
     * @参数 1: 字体名称
     * @参数 2: 字体大小
     * @参数 3: 字体粗细    (可选)
     * @参数 4: 字体倾斜    (可选)
     * @参数 5: 字体拉伸    (可选)
     * @返回值
     */
    constructor(...) {
        local vargc = vargv.len();
        //通过参数构造字体
        if (vargc > 0) {
            local family_name = vargv[0];
            local size = vargv[1];
            local weight = FontWeight.Normal;
            if (vargc >= 3) weight = vargv[2];
            local posture = FontPosture.Normal;
            if (vargc >= 4) posture = vargv[3];
            local stretch = FontStretch.Normal;
            if (vargc >= 5) stretch = vargv[4];
            C_Object = Font_CreateFont(family_name, size, weight, posture, stretch);
        }
        //初始化系统默认字体
        else {
            C_Object = Font_CreateFont();
        }
        base.constructor(C_Object);
    }

    function PreLoad(name) {
        Font_PreloadFont(name);
    }

    //注册到全局表
    function Register(Id) {
        __Font__Map__[Id] <- this;
    }

}