mirror of
https://github.com/konvajs/konva.git
synced 2025-09-19 19:07:59 +08:00
added new getTextSize(), getTextWidth(), and getTextHeight() methods
This commit is contained in:
31
dist/kinetic-core.js
vendored
31
dist/kinetic-core.js
vendored
@@ -2508,9 +2508,8 @@ Kinetic.Text = function(config) {
|
|||||||
var context = this.getContext();
|
var context = this.getContext();
|
||||||
context.font = this.fontStyle + ' ' + this.fontSize + 'pt ' + this.fontFamily;
|
context.font = this.fontStyle + ' ' + this.fontSize + 'pt ' + this.fontFamily;
|
||||||
context.textBaseline = 'middle';
|
context.textBaseline = 'middle';
|
||||||
var metrics = context.measureText(this.text);
|
var textHeight = this.getTextHeight();
|
||||||
var textHeight = textHeight = parseInt(this.fontSize, 10);
|
var textWidth = this.getTextWidth();
|
||||||
var textWidth = metrics.width;
|
|
||||||
var p = this.padding;
|
var p = this.padding;
|
||||||
var x = 0;
|
var x = 0;
|
||||||
var y = 0;
|
var y = 0;
|
||||||
@@ -2699,6 +2698,32 @@ Kinetic.Text.prototype = {
|
|||||||
*/
|
*/
|
||||||
getText: function() {
|
getText: function() {
|
||||||
return this.text;
|
return this.text;
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* get text width in pixels
|
||||||
|
*/
|
||||||
|
getTextWidth: function() {
|
||||||
|
return this.getTextSize().width;
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* get text height in pixels
|
||||||
|
*/
|
||||||
|
getTextHeight: function() {
|
||||||
|
return this.getTextSize().height;
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* get text size in pixels
|
||||||
|
*/
|
||||||
|
getTextSize: function() {
|
||||||
|
var context = this.getContext();
|
||||||
|
context.save();
|
||||||
|
context.font = this.fontStyle + ' ' + this.fontSize + 'pt ' + this.fontFamily;
|
||||||
|
var metrics = context.measureText(this.text);
|
||||||
|
context.restore();
|
||||||
|
return {
|
||||||
|
width: metrics.width,
|
||||||
|
height: parseInt(this.fontSize, 10)
|
||||||
|
};
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
// extend Shape
|
// extend Shape
|
||||||
|
2
dist/kinetic-core.min.js
vendored
2
dist/kinetic-core.min.js
vendored
File diff suppressed because one or more lines are too long
@@ -36,9 +36,8 @@ Kinetic.Text = function(config) {
|
|||||||
var context = this.getContext();
|
var context = this.getContext();
|
||||||
context.font = this.fontStyle + ' ' + this.fontSize + 'pt ' + this.fontFamily;
|
context.font = this.fontStyle + ' ' + this.fontSize + 'pt ' + this.fontFamily;
|
||||||
context.textBaseline = 'middle';
|
context.textBaseline = 'middle';
|
||||||
var metrics = context.measureText(this.text);
|
var textHeight = this.getTextHeight();
|
||||||
var textHeight = textHeight = parseInt(this.fontSize, 10);
|
var textWidth = this.getTextWidth();
|
||||||
var textWidth = metrics.width;
|
|
||||||
var p = this.padding;
|
var p = this.padding;
|
||||||
var x = 0;
|
var x = 0;
|
||||||
var y = 0;
|
var y = 0;
|
||||||
@@ -227,6 +226,32 @@ Kinetic.Text.prototype = {
|
|||||||
*/
|
*/
|
||||||
getText: function() {
|
getText: function() {
|
||||||
return this.text;
|
return this.text;
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* get text width in pixels
|
||||||
|
*/
|
||||||
|
getTextWidth: function() {
|
||||||
|
return this.getTextSize().width;
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* get text height in pixels
|
||||||
|
*/
|
||||||
|
getTextHeight: function() {
|
||||||
|
return this.getTextSize().height;
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* get text size in pixels
|
||||||
|
*/
|
||||||
|
getTextSize: function() {
|
||||||
|
var context = this.getContext();
|
||||||
|
context.save();
|
||||||
|
context.font = this.fontStyle + ' ' + this.fontSize + 'pt ' + this.fontFamily;
|
||||||
|
var metrics = context.measureText(this.text);
|
||||||
|
context.restore();
|
||||||
|
return {
|
||||||
|
width: metrics.width,
|
||||||
|
height: parseInt(this.fontSize, 10)
|
||||||
|
};
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
// extend Shape
|
// extend Shape
|
||||||
|
@@ -905,7 +905,7 @@ Test.prototype.tests = {
|
|||||||
layer.add(rect);
|
layer.add(rect);
|
||||||
stage.add(layer);
|
stage.add(layer);
|
||||||
},
|
},
|
||||||
'SHAPES - add text': function(containerId) {
|
'Text - add text': function(containerId) {
|
||||||
var stage = new Kinetic.Stage({
|
var stage = new Kinetic.Stage({
|
||||||
container: containerId,
|
container: containerId,
|
||||||
width: 578,
|
width: 578,
|
||||||
@@ -971,6 +971,35 @@ Test.prototype.tests = {
|
|||||||
test(text.getTextStroke() === 'red', 'text stroke should be red');
|
test(text.getTextStroke() === 'red', 'text stroke should be red');
|
||||||
test(text.getTextStrokeWidth() === 10, 'test stroke width should be 10');
|
test(text.getTextStrokeWidth() === 10, 'test stroke width should be 10');
|
||||||
},
|
},
|
||||||
|
'Text - get metrics': function(containerId) {
|
||||||
|
var stage = new Kinetic.Stage({
|
||||||
|
container: containerId,
|
||||||
|
width: 578,
|
||||||
|
height: 200
|
||||||
|
});
|
||||||
|
var layer = new Kinetic.Layer();
|
||||||
|
|
||||||
|
var text = new Kinetic.Text({
|
||||||
|
x: stage.width / 2,
|
||||||
|
y: stage.height / 2,
|
||||||
|
text: 'Hello World!',
|
||||||
|
fontSize: 60,
|
||||||
|
fontFamily: 'Calibri',
|
||||||
|
fontStyle: 'normal',
|
||||||
|
textFill: 'green',
|
||||||
|
fontStyle: 'italic',
|
||||||
|
align: 'center',
|
||||||
|
verticalAlign: 'middle'
|
||||||
|
});
|
||||||
|
|
||||||
|
layer.add(text);
|
||||||
|
stage.add(layer);
|
||||||
|
|
||||||
|
test(text.getTextSize().width === 407, 'text width should be 407px');
|
||||||
|
test(text.getTextSize().height === 60, 'text height should be 60px');
|
||||||
|
test(text.getTextWidth() === 407, 'text width should be 407px');
|
||||||
|
test(text.getTextHeight() === 60, 'text height should be 60px');
|
||||||
|
},
|
||||||
'SHAPES - get shape name': function(containerId) {
|
'SHAPES - get shape name': function(containerId) {
|
||||||
var stage = new Kinetic.Stage({
|
var stage = new Kinetic.Stage({
|
||||||
container: containerId,
|
container: containerId,
|
||||||
|
Reference in New Issue
Block a user