summaryrefslogtreecommitdiff
path: root/js/dojo/dojox/drawing/tools/Ellipse.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/dojo/dojox/drawing/tools/Ellipse.js')
-rw-r--r--js/dojo/dojox/drawing/tools/Ellipse.js83
1 files changed, 83 insertions, 0 deletions
diff --git a/js/dojo/dojox/drawing/tools/Ellipse.js b/js/dojo/dojox/drawing/tools/Ellipse.js
new file mode 100644
index 0000000..927c0de
--- /dev/null
+++ b/js/dojo/dojox/drawing/tools/Ellipse.js
@@ -0,0 +1,83 @@
+//>>built
+// wrapped by build app
+define("dojox/drawing/tools/Ellipse", ["dijit","dojo","dojox"], function(dijit,dojo,dojox){
+dojo.provide("dojox.drawing.tools.Ellipse");
+
+dojox.drawing.tools.Ellipse = dojox.drawing.util.oo.declare(
+ // summary:
+ // A drawable Ellipse.
+ //
+ dojox.drawing.stencil.Ellipse,
+ function(){
+ // summary: constructor
+ },
+ {
+ draws:true,
+ onDrag: function(/*EventObject*/obj){
+ // summary: See stencil._Base.onDrag
+ //
+ var s = obj.start, e = obj;
+ var x = s.x < e.x ? s.x : e.x,
+ y = s.y < e.y ? s.y : e.y,
+ w = s.x < e.x ? e.x-s.x : s.x-e.x,
+ h = s.y < e.y ? e.y-s.y : s.y-e.y;
+
+ if(this.keys.shift){ w = h = Math.max(w,h); }
+ if(!this.keys.alt){ // ellipse is normally on center
+ x+=w/2; y+=h/2; w/=2; h/=2;
+ } else{
+ if(y - h < 0){ h = y; }
+ if(x - w < 0){ w = x; }
+ }
+
+ this.points = [
+ {x:x-w, y:y-h}, // TL
+ {x:x+w, y:y-h}, // TR
+ {x:x+w, y:y+h}, // BR
+ {x:x-w, y:y+h} // BL
+ ];
+ this.render();
+ },
+
+ onUp: function(/*EventObject*/obj){
+ // summary: See stencil._Base.onUp
+ //
+ if(this.created || !this._downOnCanvas){ return; }
+ this._downOnCanvas = false;
+ //Default shape on single click
+ if(!this.shape){
+ var s = obj.start, e = this.minimumSize*2;
+ this.data = {
+ cx: s.x+e,
+ cy: s.y+e,
+ rx: e,
+ ry: e
+ };
+ this.dataToPoints();
+ this.render();
+ }else{
+ // if too small, need to reset
+ var o = this.pointsToData();
+ console.log("Create a default shape here, pt to data: ",o);
+ if(o.rx*2<this.minimumSize && o.ry*2 < this.minimumSize){
+ this.remove(this.shape, this.hit);
+ return;
+ }
+ }
+
+ this.onRender(this);
+
+ }
+ }
+);
+
+dojox.drawing.tools.Ellipse.setup = {
+ // summary: See stencil._Base ToolsSetup
+ //
+ name:"dojox.drawing.tools.Ellipse",
+ tooltip:"Ellipse Tool",
+ iconClass:"iconEllipse"
+};
+
+dojox.drawing.register(dojox.drawing.tools.Ellipse.setup, "tool");
+});