| <?xml version="1.0" encoding="UTF-8" ?> |
| <!-- |
| Licensed to the Apache Software Foundation (ASF) under one |
| or more contributor license agreements. See the NOTICE file |
| distributed with this work for additional information |
| regarding copyright ownership. The ASF licenses this file |
| to you under the Apache License, Version 2.0 (the |
| "License"); you may not use this file except in compliance |
| with the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, |
| software distributed under the License is distributed on an |
| "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| KIND, either express or implied. See the License for the |
| specific language governing permissions and limitations |
| under the License. |
| |
| --> |
| <library> |
| |
| <!-- |
| |
| <class name="drawViewNew" extends="drawview" cachebitmap="false" x="-1" y="-1" > |
| --> |
| <class name="panelBoundBox" extends="drawview" cachebitmap="false" > |
| |
| <handler name="oncontext"> |
| var numberColor = this.stringRgbToInteger(canvas.getThemeColor('basebgcolorizer')); |
| var fillColor = this.stringRgbToInteger(canvas.getThemeColor('baseMousecolorizer')); |
| this.drawBody(this,0,0,this.width,this.height,fillColor,2); |
| this.drawDottedLine(this,0,0,this.width,0,numberColor,2); |
| this.drawDottedLine(this,this.width,0,this.width,this.height,numberColor,2); |
| this.drawDottedLine(this,this.width,this.height,0,this.height,numberColor,2); |
| this.drawDottedLine(this,0,this.height,0,0,numberColor,2); |
| </handler> |
| |
| <method name="stringRgbToInteger" args="rgb"> |
| <![CDATA[ |
| var red=(rgb >> 16) & 0xFF; |
| var green=(rgb >> 8) & 0xFF; |
| var blue=rgb & 0xFF; |
| return (red * 65536 + green * 256 + blue); |
| ]]> |
| </method> |
| |
| <method name="drawBody" args="targetObj,x1,y1,x2,y2,fill,lineWidth"> |
| <![CDATA[ |
| |
| //if ($debug) Debug.write("drawBody: ",targetObj,lineWidth); |
| |
| targetObj.lineWidth = lineWidth; |
| targetObj.beginPath(); |
| targetObj.moveTo(x1,y1); |
| targetObj.lineTo(x1,y2); |
| targetObj.lineTo(x2,y2); |
| targetObj.lineTo(x2,y1); |
| targetObj.lineTo (x1,y1); |
| targetObj.closePath(); |
| |
| targetObj.fillStyle = fill; |
| targetObj.fill(); |
| |
| ]]> |
| </method> |
| |
| <method name="drawDottedLine" args="targetObj,startx,starty,endx,endy,stroke,lineWidth"> |
| <![CDATA[ |
| //var drawObj = new lz.drawview(targetObj,{width:this.width,height:this.height}); |
| //if ($debug) Debug.write("drawDottedLine: ",targetObj,startx,starty,endx,endy,stroke,lineWidth); |
| Math.linearTween = function (t, b, c, d) { |
| return c*t/d + b; |
| }; |
| |
| //if($debug) Debug.write("drawDashLine: ",tObject); |
| var tx = endx; |
| var ty = endy; |
| var sx = startx; |
| var sy = starty; |
| var distance = Math.sqrt(Math.pow(tx-sx,2)+Math.pow(ty-sy,2)); |
| var steps = Math.floor(distance / 5 ); |
| //if($debug) Debug.write("steps: ",steps); |
| var gap = false; |
| //if($debug) Debug.write("gap1: ",gap); |
| for (var i = 1; i<=steps; ++i) { |
| var ctx = Math.linearTween(i, sx, tx-sx,steps); //equations by R.Penner! |
| var cty = Math.linearTween(i, sy, ty-sy,steps); |
| //if($debug) Debug.write("gap2: ",gap); |
| gap = !gap; //abwechselnd luecke/nichtluecke |
| if(!gap) { |
| //if($debug) Debug.write(csx,csy,"|",ctx,cty); |
| targetObj.strokeStyle = stroke; |
| targetObj.lineWidth = lineWidth; |
| targetObj.beginPath(); |
| targetObj.moveTo(csx,csy); |
| targetObj.lineTo(ctx,cty); |
| targetObj.stroke(); |
| } |
| csx =ctx; |
| csy = cty; |
| } |
| ]]> |
| </method> |
| |
| </class> |
| |
| </library> |