blob: 8147042b03e31f1f26edd69cefd598dd06cfaf9c [file] [log] [blame]
/*
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>";
};