?? svgbutton.js
字號:
/* 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*/// FIXME: not yet functionaldojo.provide("dojo.widget.SvgButton");dojo.require("dojo.widget.Button");dojo.widget.SvgButton = function(){ // FIXME: this is incomplete and doesn't work yet // if DOMButton turns into a mixin, we should subclass Button instead and // just mix in the DOMButton properties. dojo.widget.DomButton.call(this); dojo.widget.SvgWidget.call(this); // FIXME: freaking implement this already! this.onFoo = function(){ alert("bar"); } this.label = "huzzah!"; this.setLabel = function(x, y, textSize, label, shape){ //var labelNode = this.domNode.ownerDocument.createTextNode(this.label); //var textNode = this.domNode.ownerDocument.createElement("text"); 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>"; //textNode.setAttribute("x", coords[6]); //textNode.setAttribute("y", coords[7]); break; case "rectangle": //FIXME: implement textString = ""; //textNode.setAttribute("x", coords[6]); //textNode.setAttribute("y", coords[7]); break; case "circle": //FIXME: implement textString = ""; //textNode.setAttribute("x", coords[6]); //textNode.setAttribute("y", coords[7]); break; } //textNode.appendChild(labelNode); //this.domNode.appendChild(textNode); return textString; //alert(textNode.getComputedTextLength()); } this.fillInTemplate = function(x, y, textSize, label, shape){ // the idea is to set the text to the appropriate place given its length // and the template shape // FIXME: For now, assuming text sizes are integers in SVG units this.textSize = textSize || 12; this.label = label; // FIXEME: for now, I'm going to fake this... need to come up with a real way to // determine the actual width of the text, such as computedStyle var textWidth = this.label.length*this.textSize ; //this.setLabel(); }}dojo.inherits(dojo.widget.SvgButton, dojo.widget.DomButton);// FIXMEdojo.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": //FIXME: implement return ""; //return "<rect x='110' y='45' width='70' height='30'/>"; break; case "circle": //FIXME: implement return ""; //return "<circle cx='210' cy='60' r='23'/>"; 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": //FIXME: implement return ""; break; case "circle": //FIXME: implement 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": //FIXME: implement textString = ""; break; case "circle": //FIXME: implement 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>";}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -