New file |
0,0 → 1,98 |
/* |
Copyright (c) 2004-2006, The Dojo Foundation |
All Rights Reserved. |
|
Licensed under the Academic Free License version 2.1 or above OR the |
modified BSD license. For more information on Dojo licensing, see: |
|
http://dojotoolkit.org/community/licensing.shtml |
*/ |
|
dojo.provide("dojo.widget.SvgButton"); |
dojo.require("dojo.experimental"); |
dojo.experimental("dojo.widget.SvgButton"); |
dojo.widget.SvgButton = function () { |
dojo.widget.DomButton.call(this); |
dojo.widget.SvgWidget.call(this); |
this.onFoo = function () { |
alert("bar"); |
}; |
this.label = "huzzah!"; |
this.setLabel = function (x, y, textSize, label, shape) { |
var coords = dojo.widget.SvgButton.prototype.coordinates(x, y, textSize, label, shape); |
var textString = ""; |
switch (shape) { |
case "ellipse": |
textString = "<text x='" + coords[6] + "' y='" + coords[7] + "'>" + label + "</text>"; |
break; |
case "rectangle": |
textString = ""; |
break; |
case "circle": |
textString = ""; |
break; |
} |
return textString; |
}; |
this.fillInTemplate = function (x, y, textSize, label, shape) { |
this.textSize = textSize || 12; |
this.label = label; |
var textWidth = this.label.length * this.textSize; |
}; |
}; |
dojo.inherits(dojo.widget.SvgButton, dojo.widget.DomButton); |
dojo.widget.SvgButton.prototype.shapeString = function (x, y, textSize, label, shape) { |
switch (shape) { |
case "ellipse": |
var coords = dojo.widget.SvgButton.prototype.coordinates(x, y, textSize, label, shape); |
return "<ellipse cx='" + coords[4] + "' cy='" + coords[5] + "' rx='" + coords[2] + "' ry='" + coords[3] + "'/>"; |
break; |
case "rect": |
return ""; |
break; |
case "circle": |
return ""; |
break; |
} |
}; |
dojo.widget.SvgButton.prototype.coordinates = function (x, y, textSize, label, shape) { |
switch (shape) { |
case "ellipse": |
var buttonWidth = label.length * textSize; |
var buttonHeight = textSize * 2.5; |
var rx = buttonWidth / 2; |
var ry = buttonHeight / 2; |
var cx = rx + x; |
var cy = ry + y; |
var textX = cx - rx * textSize / 25; |
var textY = cy * 1.1; |
return [buttonWidth, buttonHeight, rx, ry, cx, cy, textX, textY]; |
break; |
case "rectangle": |
return ""; |
break; |
case "circle": |
return ""; |
break; |
} |
}; |
dojo.widget.SvgButton.prototype.labelString = function (x, y, textSize, label, shape) { |
var textString = ""; |
var coords = dojo.widget.SvgButton.prototype.coordinates(x, y, textSize, label, shape); |
switch (shape) { |
case "ellipse": |
textString = "<text x='" + coords[6] + "' y='" + coords[7] + "'>" + label + "</text>"; |
break; |
case "rectangle": |
textString = ""; |
break; |
case "circle": |
textString = ""; |
break; |
} |
return textString; |
}; |
dojo.widget.SvgButton.prototype.templateString = function (x, y, textSize, label, shape) { |
return "<g class='dojoButton' dojoAttachEvent='onClick; onMouseMove: onFoo;' dojoAttachPoint='labelNode'>" + dojo.widgets.SVGButton.prototype.shapeString(x, y, textSize, label, shape) + dojo.widget.SVGButton.prototype.labelString(x, y, textSize, label, shape) + "</g>"; |
}; |
|