Subversion Repositories Applications.papyrus

Rev

Rev 1318 | Blame | Compare with Previous | Last modification | View Log | RSS feed

/*
        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>";
};