diff --git a/CanvasTextWrapper.js b/CanvasTextWrapper.js index 95a5423..1d2a18c 100644 --- a/CanvasTextWrapper.js +++ b/CanvasTextWrapper.js @@ -73,6 +73,7 @@ setFont(--fontSize); lineHeight = fontSize; + wrap(); } else { wrap(); } diff --git a/CanvasTextWrapper.min.js b/CanvasTextWrapper.min.js index df7b21d..d583d3e 100644 --- a/CanvasTextWrapper.min.js +++ b/CanvasTextWrapper.min.js @@ -3,4 +3,4 @@ * Version: 0.4.0 * MIT License (http://www.opensource.org/licenses/mit-license.html) */ -!function(a){function b(a,b,c){"use strict";function d(){t=q.font.match(/\d+(px|em|%)/g)?+q.font.match(/\d+(px|em|%)/g)[0].match(/\d+/g):18,u=0,v=[],w=[],x={x:0,y:0},f(t),g(),o(),e()}function e(){if(q.sizeToFill){var a=b.trim().split(/\s+/).length,c=0;do f(++c),y=c,h();while(C>u&&v.join(" ").split(/\s+/).length==a);f(--c),y=c}else h();q.justifyLines&&"auto"===q.lineBreak&&k(),n(),l()}function f(a){var b=q.sizeToFill?s.font.split(/\b\d+px\b/i):q.font.split(/\b\d+px\b/i);s.font=b[0]+a+"px"+b[1]}function g(){isNaN(q.lineHeight)?-1!==q.lineHeight.toString().indexOf("px")?y=parseInt(q.lineHeight):-1!==q.lineHeight.toString().indexOf("%")&&(y=parseInt(q.lineHeight)/100*t):y=t*q.lineHeight}function h(){if(q.allowNewLine)for(var a=b.trim().split("\n"),c=0,d=0;cB){for(var g=0;s.measureText(b+a[f][g]).width<=B&&ga)&&(a=c,b=d);var e,f,g,h,i,j=" ";for(d=0;d=e))){v[d]=v[d].trim().split(/\s+/).join(j),f=s.measureText(j).width,g=(a-s.measureText(v[d]).width)/f,h=g/(e-1),i="";for(var k=0;h>k;k++)i+=j;v[d]=v[d].trim().split(j).join(i)}}function l(){for(var a=0;au&&v.join(" ").split(/\s+/).length==a);f(--c),y=c,h()}else h();q.justifyLines&&"auto"===q.lineBreak&&k(),n(),l()}function f(a){var b=q.sizeToFill?s.font.split(/\b\d+px\b/i):q.font.split(/\b\d+px\b/i);s.font=b[0]+a+"px"+b[1]}function g(){isNaN(q.lineHeight)?-1!==q.lineHeight.toString().indexOf("px")?y=parseInt(q.lineHeight):-1!==q.lineHeight.toString().indexOf("%")&&(y=parseInt(q.lineHeight)/100*t):y=t*q.lineHeight}function h(){if(q.allowNewLine)for(var a=b.trim().split("\n"),c=0,d=0;cB){for(var g=0;s.measureText(b+a[f][g]).width<=B&&ga)&&(a=c,b=d);var e,f,g,h,i,j=" ";for(d=0;d=e))){v[d]=v[d].trim().split(/\s+/).join(j),f=s.measureText(j).width,g=(a-s.measureText(v[d]).width)/f,h=g/(e-1),i="";for(var k=0;h>k;k++)i+=j;v[d]=v[d].trim().split(j).join(i)}}function l(){for(var a=0;a - - - - - - - - - - diff --git a/package.json b/package.json index f0ef193..a0527e5 100644 --- a/package.json +++ b/package.json @@ -14,6 +14,9 @@ "bugs": { "url": "https://github.com/namniak/CanvasTextWrapper/issues" }, + "scripts": { + "test": "beefy test/test.js --live --open" + }, "devDependencies": { "grunt-contrib-uglify": "^0.9.1", "uglify-save-license": "^0.4.1" diff --git a/test/test.js b/test/test.js new file mode 100644 index 0000000..dd11f7f --- /dev/null +++ b/test/test.js @@ -0,0 +1,29 @@ +var CanvasTextWrapper = require('../CanvasTextWrapper').CanvasTextWrapper; + +var body = document.getElementsByTagName('body')[0]; +body.style.margin = 0; + +var canvas = document.createElement('canvas'); +canvas.width = 600; +canvas.height = 600; +canvas.style.position = 'absolute'; +canvas.style.left = '50%'; +canvas.style.top = '50%'; +canvas.style.transform = 'translateX(-50%) translateY(-50%)'; + +body.appendChild(canvas); + +var ctx = canvas.getContext('2d'); +var gradient = ctx.createLinearGradient(0, 0, canvas.width, 0); +gradient.addColorStop('0.2', 'magenta'); +gradient.addColorStop('0.5', 'blue'); +gradient.addColorStop('0.7', 'purple'); +ctx.fillStyle = gradient; + +var opts = { + sizeToFill: true, + textAlign: 'center', + verticalAlign: 'middle' +}; + +CanvasTextWrapper(canvas, 'What an awesome library!', opts); \ No newline at end of file