-
Notifications
You must be signed in to change notification settings - Fork 430
/
vml-canvas-element.js
45 lines (41 loc) · 1.5 KB
/
vml-canvas-element.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
jvm.VMLCanvasElement = function(container, width, height){
this.classPrefix = 'VML';
jvm.VMLCanvasElement.parentClass.call(this, 'group');
jvm.AbstractCanvasElement.apply(this, arguments);
this.node.style.position = 'absolute';
};
jvm.inherits(jvm.VMLCanvasElement, jvm.VMLElement);
jvm.mixin(jvm.VMLCanvasElement, jvm.AbstractCanvasElement);
jvm.VMLCanvasElement.prototype.setSize = function(width, height){
var paths,
groups,
i,
l;
this.width = width;
this.height = height;
this.node.style.width = width + "px";
this.node.style.height = height + "px";
this.node.coordsize = width+' '+height;
this.node.coordorigin = "0 0";
if (this.rootElement) {
paths = this.rootElement.node.getElementsByTagName('shape');
for(i = 0, l = paths.length; i < l; i++) {
paths[i].coordsize = width+' '+height;
paths[i].style.width = width+'px';
paths[i].style.height = height+'px';
}
groups = this.node.getElementsByTagName('group');
for(i = 0, l = groups.length; i < l; i++) {
groups[i].coordsize = width+' '+height;
groups[i].style.width = width+'px';
groups[i].style.height = height+'px';
}
}
};
jvm.VMLCanvasElement.prototype.applyTransformParams = function(scale, transX, transY) {
this.scale = scale;
this.transX = transX;
this.transY = transY;
this.rootElement.node.coordorigin = (this.width-transX-this.width/100)+','+(this.height-transY-this.height/100);
this.rootElement.node.coordsize = this.width/scale+','+this.height/scale;
};