You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@wookie.apache.org by ps...@apache.org on 2010/11/30 16:57:34 UTC

svn commit: r1040593 - in /incubator/wookie/trunk/widgets/sharedraw: index.html legal/flashcanvas_licence.txt scripts/draw.js scripts/flashcanvas.js scripts/flashcanvas.swf

Author: psharples
Date: Tue Nov 30 15:57:34 2010
New Revision: 1040593

URL: http://svn.apache.org/viewvc?rev=1040593&view=rev
Log:
Updated so widget now uses flashcanvas to render canvas in Internet Explorer. See WOOKIE-162

Added:
    incubator/wookie/trunk/widgets/sharedraw/legal/flashcanvas_licence.txt   (with props)
    incubator/wookie/trunk/widgets/sharedraw/scripts/flashcanvas.js   (with props)
    incubator/wookie/trunk/widgets/sharedraw/scripts/flashcanvas.swf   (with props)
Modified:
    incubator/wookie/trunk/widgets/sharedraw/index.html
    incubator/wookie/trunk/widgets/sharedraw/scripts/draw.js

Modified: incubator/wookie/trunk/widgets/sharedraw/index.html
URL: http://svn.apache.org/viewvc/incubator/wookie/trunk/widgets/sharedraw/index.html?rev=1040593&r1=1040592&r2=1040593&view=diff
==============================================================================
--- incubator/wookie/trunk/widgets/sharedraw/index.html (original)
+++ incubator/wookie/trunk/widgets/sharedraw/index.html Tue Nov 30 15:57:34 2010
@@ -23,6 +23,9 @@
       #container { position: relative; }
       #imageView { border: 1px solid #000; cursor: crosshair }
     --></style>
+	<!--[if lt IE 9]><script type="text/javascript" src="scripts/flashcanvas.js"></script><![endif]-->
+    <script type="text/javascript" src="scripts/sharedraw.js"></script>
+    <script type="text/javascript" src="scripts/draw.js"></script>    
   </head>
   <body onload="Controller.init()">
     <div id="container">
@@ -36,8 +39,5 @@
           href="http://www.konqueror.org">Konqueror</a>.</p>
       </canvas>
     </div>
-
-    <script type="text/javascript" src="scripts/sharedraw.js"></script>
-    <script type="text/javascript" src="scripts/draw.js"></script>
   </body>
 </html>
\ No newline at end of file

Added: incubator/wookie/trunk/widgets/sharedraw/legal/flashcanvas_licence.txt
URL: http://svn.apache.org/viewvc/incubator/wookie/trunk/widgets/sharedraw/legal/flashcanvas_licence.txt?rev=1040593&view=auto
==============================================================================
--- incubator/wookie/trunk/widgets/sharedraw/legal/flashcanvas_licence.txt (added)
+++ incubator/wookie/trunk/widgets/sharedraw/legal/flashcanvas_licence.txt Tue Nov 30 15:57:34 2010
@@ -0,0 +1,24 @@
+The MIT License
+
+Copyright (c) 2009-2010 FlashCanvas Project:
+
+ * Tim Cameron Ryan
+ * Shinya Muramatsu
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the "Software"),
+to deal in the Software without restriction, including without limitation
+the rights to use, copy, modify, merge, publish, distribute, sublicense,
+and/or sell copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+DEALINGS IN THE SOFTWARE.

Propchange: incubator/wookie/trunk/widgets/sharedraw/legal/flashcanvas_licence.txt
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: incubator/wookie/trunk/widgets/sharedraw/scripts/draw.js
URL: http://svn.apache.org/viewvc/incubator/wookie/trunk/widgets/sharedraw/scripts/draw.js?rev=1040593&r1=1040592&r2=1040593&view=diff
==============================================================================
--- incubator/wookie/trunk/widgets/sharedraw/scripts/draw.js (original)
+++ incubator/wookie/trunk/widgets/sharedraw/scripts/draw.js Tue Nov 30 15:57:34 2010
@@ -42,9 +42,17 @@ function init_canvas () {
     tool = new tool_pencil();
 
     // Attach the mousedown, mousemove and mouseup event listeners.
-    canvas.addEventListener('mousedown', ev_canvas, false);
-    canvas.addEventListener('mousemove', ev_canvas, false);
-    canvas.addEventListener('mouseup',   ev_canvas, false);
+	if (canvas.attachEvent) {
+    	canvas.attachEvent("onmousedown", ev_canvas, false);
+    	canvas.attachEvent('onmousemove', ev_canvas, false);
+    	canvas.attachEvent('onmouseup',   ev_canvas, false);	
+	}
+	else if (canvas.addEventListener) { 
+		// Attach the mousedown, mousemove and mouseup event listeners.
+		canvas.addEventListener('mousedown', ev_canvas, false);
+		canvas.addEventListener('mousemove', ev_canvas, false);
+		canvas.addEventListener('mouseup',   ev_canvas, false);
+	}    
   }
 
   function tool_pencil () {

Added: incubator/wookie/trunk/widgets/sharedraw/scripts/flashcanvas.js
URL: http://svn.apache.org/viewvc/incubator/wookie/trunk/widgets/sharedraw/scripts/flashcanvas.js?rev=1040593&view=auto
==============================================================================
--- incubator/wookie/trunk/widgets/sharedraw/scripts/flashcanvas.js (added)
+++ incubator/wookie/trunk/widgets/sharedraw/scripts/flashcanvas.js Tue Nov 30 15:57:34 2010
@@ -0,0 +1,26 @@
+/*
+ * FlashCanvas
+ *
+ * Copyright (c) 2009      Tim Cameron Ryan
+ * Copyright (c) 2009-2010 FlashCanvas Project
+ * Released under the MIT/X License
+ */
+window.ActiveXObject&&!window.CanvasRenderingContext2D&&function(h,i){function P(a){this.width=a}function y(a){this.id=a.C++}function p(a){this.G=a;this.id=a.C++}function q(a,b){this.canvas=a;this.B=b;this.d=a.uniqueID;this.D();this.C=0;this.t="";var c=this;setInterval(function(){l[c.d]===0&&c.e()},30)}function z(){if(i.readyState==="complete"){i.detachEvent(A,z);for(var a=i.getElementsByTagName(u),b=0,c=a.length;b<c;++b)v.initElement(a[b])}}function B(){var a=event.srcElement,b=a.parentNode;a.blur();
+b.focus()}function C(){var a=event.propertyName;if(a==="width"||a==="height"){var b=event.srcElement,c=b.getContext("2d"),d=parseInt(b[a]);if(isNaN(d)||d<0)d=a==="width"?300:150;else if(d===0)d=1;b.style[a]=d+"px";c.I(b.clientWidth,b.clientHeight)}}function D(){h.detachEvent(E,D);for(var a in o){var b=o[a],c=b.firstChild,d;for(d in c)if(typeof c[d]==="function")c[d]=k;for(d in b)if(typeof b[d]==="function")b[d]=k;c.detachEvent(F,B);b.detachEvent(G,C)}h[H]=k;h[I]=k;h[J]=k;h[K]=k;h[L]=k}function M(a){return(""+
+a).replace(/&/g,"&amp;").replace(/</g,"&lt;")}var k=null,u="canvas",H="CanvasRenderingContext2D",I="CanvasGradient",J="CanvasPattern",K="FlashCanvas",L="G_vmlCanvasManager",F="onfocus",G="onpropertychange",A="onreadystatechange",E="onunload",r=function(){var a=i.getElementsByTagName("script");a=a[a.length-1];return i.documentMode>=8?a.src:a.getAttribute("src",4)}().replace(/[^\/]+$/,"flashcanvas.swf"),e=new function(a){for(var b=0,c=a.length;b<c;b++)this[a[b]]=b}(["toDataURL","save","restore","scale",
+"rotate","translate","transform","setTransform","globalAlpha","globalCompositeOperation","strokeStyle","fillStyle","createLinearGradient","createRadialGradient","createPattern","lineWidth","lineCap","lineJoin","miterLimit","shadowOffsetX","shadowOffsetY","shadowBlur","shadowColor","clearRect","fillRect","strokeRect","beginPath","closePath","moveTo","lineTo","quadraticCurveTo","bezierCurveTo","arcTo","rect","arc","fill","stroke","clip","isPointInPath","font","textAlign","textBaseline","fillText","strokeText",
+"measureText","drawImage","createImageData","getImageData","putImageData","addColorStop","direction","resize"]),s={},l={},o={},t={};q.prototype={save:function(){this.b();this.c();this.m();this.l();this.z();this.w();this.F.push([this.f,this.g,this.A,this.u,this.j,this.h,this.i,this.k,this.p,this.q,this.n,this.o,this.v,this.r,this.s]);this.a.push(e.save)},restore:function(){var a=this.F;if(a.length){a=a.pop();this.globalAlpha=a[0];this.globalCompositeOperation=a[1];this.strokeStyle=a[2];this.fillStyle=
+a[3];this.lineWidth=a[4];this.lineCap=a[5];this.lineJoin=a[6];this.miterLimit=a[7];this.shadowOffsetX=a[8];this.shadowOffsetY=a[9];this.shadowBlur=a[10];this.shadowColor=a[11];this.font=a[12];this.textAlign=a[13];this.textBaseline=a[14]}this.a.push(e.restore)},scale:function(a,b){this.a.push(e.scale,a,b)},rotate:function(a){this.a.push(e.rotate,a)},translate:function(a,b){this.a.push(e.translate,a,b)},transform:function(a,b,c,d,f,g){this.a.push(e.transform,a,b,c,d,f,g)},setTransform:function(a,b,
+c,d,f,g){this.a.push(e.setTransform,a,b,c,d,f,g)},b:function(){var a=this.a;if(this.f!==this.globalAlpha){this.f=this.globalAlpha;a.push(e.globalAlpha,this.f)}if(this.g!==this.globalCompositeOperation){this.g=this.globalCompositeOperation;a.push(e.globalCompositeOperation,this.g)}},m:function(){if(this.A!==this.strokeStyle){var a=this.A=this.strokeStyle;this.a.push(e.strokeStyle,typeof a==="object"?a.id:a)}},l:function(){if(this.u!==this.fillStyle){var a=this.u=this.fillStyle;this.a.push(e.fillStyle,
+typeof a==="object"?a.id:a)}},createLinearGradient:function(a,b,c,d){this.a.push(e.createLinearGradient,a,b,c,d);return new p(this)},createRadialGradient:function(a,b,c,d,f,g){this.a.push(e.createRadialGradient,a,b,c,d,f,g);return new p(this)},createPattern:function(a,b){if(a.tagName.toUpperCase()==="IMG"){var c=a.getAttribute("src",2),d=this.d;this.a.push(e.createPattern,c,b);if(s[d]){this.e();++l[d]}return new y(this)}},z:function(){var a=this.a;if(this.j!==this.lineWidth){this.j=this.lineWidth;
+a.push(e.lineWidth,this.j)}if(this.h!==this.lineCap){this.h=this.lineCap;a.push(e.lineCap,this.h)}if(this.i!==this.lineJoin){this.i=this.lineJoin;a.push(e.lineJoin,this.i)}if(this.k!==this.miterLimit){this.k=this.miterLimit;a.push(e.miterLimit,this.k)}},c:function(){var a=this.a;if(this.p!==this.shadowOffsetX){this.p=this.shadowOffsetX;a.push(e.shadowOffsetX,this.p)}if(this.q!==this.shadowOffsetY){this.q=this.shadowOffsetY;a.push(e.shadowOffsetY,this.q)}if(this.n!==this.shadowBlur){this.n=this.shadowBlur;
+a.push(e.shadowBlur,this.n)}if(this.o!==this.shadowColor){this.o=this.shadowColor;a.push(e.shadowColor,this.o)}},clearRect:function(a,b,c,d){this.a.push(e.clearRect,a,b,c,d)},fillRect:function(a,b,c,d){this.b();this.c();this.l();this.a.push(e.fillRect,a,b,c,d)},strokeRect:function(a,b,c,d){this.b();this.c();this.m();this.z();this.a.push(e.strokeRect,a,b,c,d)},beginPath:function(){this.a.push(e.beginPath)},closePath:function(){this.a.push(e.closePath)},moveTo:function(a,b){this.a.push(e.moveTo,a,b)},
+lineTo:function(a,b){this.a.push(e.lineTo,a,b)},quadraticCurveTo:function(a,b,c,d){this.a.push(e.quadraticCurveTo,a,b,c,d)},bezierCurveTo:function(a,b,c,d,f,g){this.a.push(e.bezierCurveTo,a,b,c,d,f,g)},arcTo:function(a,b,c,d,f){this.a.push(e.arcTo,a,b,c,d,f)},rect:function(a,b,c,d){this.a.push(e.rect,a,b,c,d)},arc:function(a,b,c,d,f,g){this.a.push(e.arc,a,b,c,d,f,g?1:0)},fill:function(){this.b();this.c();this.l();this.a.push(e.fill)},stroke:function(){this.b();this.c();this.m();this.z();this.a.push(e.stroke)},
+clip:function(){this.a.push(e.clip)},w:function(){var a=this.a;if(this.v!==this.font)try{var b=t[this.d];b.style.font=this.v=this.font;var c=b.currentStyle;a.push(e.font,[c.fontStyle,c.fontWeight,b.offsetHeight,c.fontFamily].join(" "))}catch(d){}if(this.r!==this.textAlign){this.r=this.textAlign;a.push(e.textAlign,this.r)}if(this.s!==this.textBaseline){this.s=this.textBaseline;a.push(e.textBaseline,this.s)}if(this.t!==this.canvas.currentStyle.direction){this.t=this.canvas.currentStyle.direction;a.push(e.direction,
+this.t)}},fillText:function(a,b,c,d){this.b();this.l();this.c();this.w();this.a.push(e.fillText,M(a),b,c,d===void 0?Infinity:d)},strokeText:function(a,b,c,d){this.b();this.m();this.c();this.w();this.a.push(e.strokeText,M(a),b,c,d===void 0?Infinity:d)},measureText:function(a){var b=t[this.d];try{b.style.font=this.font}catch(c){}b.innerText=a.replace(/[ \n\f\r]/g,"\t");return new P(b.offsetWidth)},drawImage:function(a,b,c,d,f,g,m,j,w){if(a.tagName.toUpperCase()==="IMG"){var n=arguments.length,x=a.getAttribute("src",
+2),N=this.d;this.b();this.c();if(n===3)this.a.push(e.drawImage,n,x,b,c);else if(n===5)this.a.push(e.drawImage,n,x,b,c,d,f);else if(n===9)this.a.push(e.drawImage,n,x,b,c,d,f,g,m,j,w);else return;if(s[N]){this.e();++l[N]}}},D:function(){this.globalAlpha=this.f=1;this.globalCompositeOperation=this.g="source-over";this.fillStyle=this.u=this.strokeStyle=this.A="#000000";this.lineWidth=this.j=1;this.lineCap=this.h="butt";this.lineJoin=this.i="miter";this.miterLimit=this.k=10;this.shadowBlur=this.n=this.shadowOffsetY=
+this.q=this.shadowOffsetX=this.p=0;this.shadowColor=this.o="rgba(0,0,0,0)";this.font=this.v="10px sans-serif";this.textAlign=this.r="start";this.textBaseline=this.s="alphabetic";this.a=[];this.F=[]},H:function(){var a=this.a;this.a=[];return a},e:function(){var a=this.H();if(a.length>0)return eval(this.B.CallFunction('<invoke name="executeCommand" returntype="javascript"><arguments><string>'+a.join("&#0;")+"</string></arguments></invoke>"))},I:function(a,b){this.e();this.D();this.B.width=a;this.B.height=
+b;this.a.push(e.resize,a,b)}};p.prototype={addColorStop:function(a,b){this.G.a.push(e.addColorStop,this.id,a,b)}};var v={initElement:function(a){if(a.getContext)return a;var b=a.uniqueID,c="external"+b;s[b]=false;l[b]=1;a.innerHTML='<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="'+location.protocol+'//fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" width="100%" height="100%" id="'+c+'"><param name="allowScriptAccess" value="always"><param name="flashvars" value="id='+
+c+'"><param name="wmode" value="transparent"></object><span style="margin:0;padding:0;border:0;display:inline-block;position:static;height:1em;overflow:visible;white-space:nowrap"></span>';o[b]=a;var d=a.firstChild;t[b]=a.lastChild;var f=i.body.contains;if(f(a))d.movie=r;else var g=setInterval(function(){if(f(a)){clearInterval(g);d.movie=r}},0);if(i.compatMode==="BackCompat"||!h.XMLHttpRequest)t[b].style.overflow="hidden";var m=new q(a,d);a.getContext=function(j){return j==="2d"?m:k};a.toDataURL=
+function(j,w){j=j?j.toLowerCase():"image/png";j==="image/jpeg"?m.a.push(e.toDataURL,j,w||0.5):m.a.push(e.toDataURL,j);return m.e()};d.attachEvent(F,B);return a},saveImage:function(a){a.firstChild.saveImage()},setOptions:function(){},trigger:function(a,b){o[a].fireEvent("on"+b)},unlock:function(a,b){l[a]&&--l[a];if(b){var c=o[a],d=c.firstChild,f=parseInt(c.width),g=parseInt(c.height);if(isNaN(f)||f<0)f=300;if(isNaN(g)||g<0)g=150;c.style.width=f+"px";c.style.height=g+"px";d.width=c.width=f;d.height=
+c.height=g;d.resize(f,g);c.attachEvent(G,C);s[a]=true}}};i.createElement(u);i.createStyleSheet().cssText=u+"{display:inline-block;overflow:hidden;width:300px;height:150px}";i.attachEvent(A,z);h.attachEvent(E,D);if(r.indexOf(location.protocol+"//"+location.host+"/")===0){var O=new ActiveXObject("Microsoft.XMLHTTP");O.open("GET",r,false);O.send(k)}h[H]=q;h[I]=p;h[J]=y;h[K]=v;h[L]={init:function(){},init_:function(){},initElement:v.initElement};keep=q.measureText}(window,document);

Propchange: incubator/wookie/trunk/widgets/sharedraw/scripts/flashcanvas.js
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: incubator/wookie/trunk/widgets/sharedraw/scripts/flashcanvas.swf
URL: http://svn.apache.org/viewvc/incubator/wookie/trunk/widgets/sharedraw/scripts/flashcanvas.swf?rev=1040593&view=auto
==============================================================================
Binary file - no diff available.

Propchange: incubator/wookie/trunk/widgets/sharedraw/scripts/flashcanvas.swf
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream