function parsePlainText(text, font, padding, truncate) {
	        text != null && (text += '');

	        var lineHeight = getLineHeight(font);
	        var lines = text ? text.split('\n') : [];
	        var height = lines.length * lineHeight;
	        var outerHeight = height;

	        if (padding) {
	            outerHeight += padding[0] + padding[2];
	        }

	        if (text && truncate) {
	            var truncOuterHeight = truncate.outerHeight;
	            var truncOuterWidth = truncate.outerWidth;
	            if (truncOuterHeight != null && outerHeight > truncOuterHeight) {
	                text = '';
	                lines = [];
	            }
	            else if (truncOuterWidth != null) {
	                var options = prepareTruncateOptions(
	                    truncOuterWidth - (padding ? padding[1] + padding[3] : 0),
	                    font,
	                    truncate.ellipsis,
	                    {minChar: truncate.minChar, placeholder: truncate.placeholder}
	                );

	                // FIXME
	                // It is not appropriate that every line has '...' when truncate multiple lines.
	                for (var i = 0, len = lines.length; i < len; i++) {
	                    lines[i] = truncateSingleLine(lines[i], options);
	                }
	            }
	        }

	        return {
	            lines: lines,
	            height: height,
	            outerHeight: outerHeight,
	            lineHeight: lineHeight
	        };
	    }
@public
@param {string} text
@param {string} font
@param {Object} [truncate]
@return {Object} block: {lineHeight, lines, height, outerHeight}
 Notice: for performance, do not calculate outerWidth util needed.