ok

Mini Shell

Direktori : /home/importfo/public_html/inddigmedia.in/jss/
Upload File :
Current File : /home/importfo/public_html/inddigmedia.in/jss/text.js

$.textLine = function(opt) {
    var textLength = opt.text.length,
        size = 5;
    for (var i = 0; i < textLength; i++) {
        var letter = $.definitions.letters[(opt.text.charAt(i))] || $.definitions.letters['unknown'];
        for (var y = 0; y < size; y++) {
            for (var x = 0; x < size; x++) {
                if (letter[y][x] === 1) {
                    opt.ctx.rect(opt.x + (x * opt.scale) + ((size * opt.scale) + opt.hspacing) * i, opt.y + y * opt.scale, opt.scale, opt.scale);
                }
            }
        }
    }
};

$.text = function(opt) {
    var size = 5,
        letterSize = size * opt.scale,
        lines = opt.text.split('\n'),
        linesCopy = lines.slice(0),
        lineCount = lines.length,
        longestLine = linesCopy.sort(function(a, b) {
            return b.length - a.length;
        })[0],
        textWidth = (longestLine.length * letterSize) + ((longestLine.length - 1) * opt.hspacing),
        textHeight = (lineCount * letterSize) + ((lineCount - 1) * opt.vspacing);

    var sx = opt.x,
        sy = opt.y,
        ex = opt.x + textWidth,
        ey = opt.y + textHeight;

    if (opt.halign == 'center') {
        sx = opt.x - textWidth / 2;
        ex = opt.x + textWidth / 2;
    } else if (opt.halign == 'right') {
        sx = opt.x - textWidth;
        ex = opt.x;
    }

    if (opt.valign == 'center') {
        sy = opt.y - textHeight / 2;
        ey = opt.y + textHeight / 2;
    } else if (opt.valign == 'bottom') {
        sy = opt.y - textHeight;
        ey = opt.y;
    }

    var cx = sx + textWidth / 2,
        cy = sy + textHeight / 2;

    if (opt.render) {
        for (var i = 0; i < lineCount; i++) {
            var line = lines[i],
                lineWidth = (line.length * letterSize) + ((line.length - 1) * opt.hspacing),
                x = opt.x,
                y = opt.y + (letterSize + opt.vspacing) * i;

            if (opt.halign == 'center') {
                x = opt.x - lineWidth / 2;
            } else if (opt.halign == 'right') {
                x = opt.x - lineWidth;
            }

            if (opt.valign == 'center') {
                y = y - textHeight / 2;
            } else if (opt.valign == 'bottom') {
                y = y - textHeight;
            }

            if (opt.snap) {
                x = Math.floor(x);
                y = Math.floor(y);
            }

            $.textLine({
                ctx: opt.ctx,
                x: x,
                y: y,
                text: line,
                hspacing: opt.hspacing,
                scale: opt.scale
            });
        }
    }

    return {
        sx: sx,
        sy: sy,
        cx: cx,
        cy: cy,
        ex: ex,
        ey: ey,
        width: textWidth,
        height: textHeight
    }
};;

Zerion Mini Shell 1.0