| <?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> |
| |
| <include href="utils/states/resizestatemin.lzx"/> |
| |
| <!-- |
| The order of views is important in this class |
| otherwise the scrollbar of the swfPresentation would be not visible or partly overlayed |
| |
| |
| this is the selection Box for all Whiteboard Objects |
| --> |
| |
| <class name="boundingBoxAllRotationMarger" extends="view" |
| width="24" height="24" resource="bounding_item_rsc"> |
| |
| <attribute name="dragStarted" value="false" type="boolean"/> |
| |
| <handler name="onmouseover"> |
| lz.Cursor.setCursorGlobal("arrow_rotate_panel_cursor"); |
| </handler> |
| <handler name="onmouseout"> |
| lz.Cursor.unlock(); |
| </handler> |
| |
| <handler name="onx" args="x"> |
| this.doMoveDragPoint(); |
| </handler> |
| <handler name="ony" args="y"> |
| this.doMoveDragPoint(); |
| </handler> |
| |
| <method name="doMoveDragPoint"> |
| if (!this.dragStarted) { |
| return; |
| } |
| parent.doMoveDragPoint(this.x+12,this.y+12); |
| </method> |
| |
| <handler name="onmousedown"> |
| this.dragStarted = true; |
| parent.doStartDragPoint(); |
| this.dragger.apply(); |
| </handler> |
| <handler name="onmouseup"> |
| this.dragStarted = false; |
| this.dragger.remove(); |
| parent.endDrawClipArtDrag(); |
| lz.Cursor.unlock(); |
| </handler> |
| |
| <dragstate name="dragger" /> |
| |
| </class> |
| |
| <class name="boundingBoxAll" extends="view" focusable="true"> |
| |
| <!-- |
| <method name="removeIt"> |
| canvas._drawarea.setAttribute('boundingIsActive',true); |
| </method> |
| --> |
| <method name="removeIt"> |
| //Debug.write("removeIt +**********",this.isinited); |
| this.whiteboardRef.setAttribute('boundingIsActive',false); |
| if (this.rs) this.rs.remove(); |
| if (this.dragger) this.dragger.remove(); |
| this.destroy(); |
| </method> |
| |
| <attribute name="ex" value="0" type="number" /> |
| <attribute name="ey" value="0" type="number" /> |
| <attribute name="ewidth" value="0" type="number" /> |
| <attribute name="eheight" value="0" type="number" /> |
| |
| <attribute name="innerInsetScrollbars" value="0" type="number"/> |
| |
| <attribute name="startdragX" value="0" type="number" /> |
| <attribute name="startdragY" value="0" type="number" /> |
| <attribute name="startdragWidth" value="0" type="number" /> |
| <attribute name="startdragHeight" value="0" type="number" /> |
| |
| <attribute name="objRef" value="null" /> |
| <attribute name="whiteboardRef" value="null" /> |
| <attribute name="doHandlerUpdates" value="false" type="boolean" /> |
| <attribute name="boundingDoUpdateOnInit" value="true" type="boolean" /> |
| |
| <attribute name="canBeDragged" value="true" type="boolean" /> |
| <attribute name="canBeResized" value="true" type="boolean" /> |
| |
| <!--- Minimum width for the windowy, default: 60. |
| @keywords final --> |
| <attribute name="minwidth" value="2"/> |
| |
| <!--- Minimum height for the window, default: 50. |
| @keywords final --> |
| <attribute name="minheight" value="2"/> |
| |
| <method name="__LZRemoveItem" args="itemRef"> |
| this.whiteboardRef.deleteItemByName(this.objRef.name); |
| //Debug.write("__LZRemoveItem"); |
| </method> |
| |
| <handler name="oninit"> |
| <![CDATA[ |
| if (!this.boundingDoUpdateOnInit) { |
| if ($debug) Debug.write("DESTROY the clickable view"); |
| //this._innerDrag.destroy(); |
| } |
| |
| if (!this.canBeResized) { |
| this._gripperNoResize.setAttribute("visibility","visible"); |
| this._gripperResize.setAttribute("visibility","hidden"); |
| } |
| |
| this.setAttribute('x',this.ex); |
| this.setAttribute('y',this.ey); |
| this.setAttribute('width',this.ewidth); |
| this.setAttribute('height',this.eheight); |
| this.setStartValues(); |
| if ($debug) Debug.write("Update Property Panel Settings to Object Properties ",this.objRef.name); |
| |
| lz.Focus.setFocus(this, false); |
| |
| if (this.objRef.typeOfObject == "text") { |
| this._editText.setAttribute("visibility","visible"); |
| } |
| |
| //FIXME - Add Ellipse, Line and Free Draw Tool to it |
| if (this.objRef.name.indexOf('rectangle') >= 0){ |
| if ($debug) Debug.write("this.objRef._innerRect ",this.objRef._innerRect); |
| |
| if ($debug) Debug.write("strokeStyle: ",this.objRef._innerRect.strokeStyle); |
| if (this.objRef._innerRect.strokeStyle == '#000000') { |
| if ($debug) Debug.write("strokeStyle EMPTY "); |
| this.whiteboardRef.currentrectanglestrokeDis = -1; |
| } else { |
| this.whiteboardRef.currentrectanglestroke = this.objRef._innerRect.strokeStyle; |
| this.whiteboardRef.currentrectanglestrokeDis = 1; |
| } |
| |
| if ($debug) Debug.write("fillStyle: ",this.objRef._innerRect.fillStyle); |
| if (this.objRef._innerRect.fillStyle == '#000000') { |
| if ($debug) Debug.write("fillStyle EMPTY "); |
| this.whiteboardRef.currentrectanglestrokeFillDis = -1; |
| } else { |
| this.whiteboardRef.currentrectanglestrokeFill = this.objRef._innerRect.fillStyle; |
| this.whiteboardRef.currentrectanglestrokeFillDis = 1; |
| } |
| |
| if ($debug) Debug.write("lineWidth: ",this.objRef._innerRect.lineWidth); |
| this.whiteboardRef.currentrectangleineWidth = this.objRef._innerRect.lineWidth; |
| |
| } else if (this.objRef.name.indexOf('swf') >= 0) { |
| this.setAttribute("innerInsetScrollbars",16); |
| } else if (this.objRef.name.indexOf('clipart') >= 0) { |
| this.canBeResized = false; |
| this._gripperNoResize.setAttribute("visibility","visible"); |
| this._gripperResize.setAttribute("visibility","hidden"); |
| |
| new lz.boundingBoxAllRotationMarger(this,{ |
| x:this.objRef.clipart.clipArtEndx-12, |
| y:this.objRef.clipart.clipArtEndy-12 |
| }); |
| |
| } |
| |
| |
| this.whiteboardRef.parent.parent._propertyPanel.loadPanelByBoundingBox(this.whiteboardRef,this.objRef); |
| |
| this.doUpdateAction(); |
| ]]> |
| </handler> |
| |
| <method name="doStartDragPoint"> |
| this.whiteboardRef.setStartPoint(this.objRef.clipart.x+this.x,this.objRef.clipart.y+this.y); |
| </method> |
| |
| <method name="doMoveDragPoint" args="x,y"> |
| this.whiteboardRef.trackDrawClipArtDraw(this.x+x,this.y+y,this.objRef.clipart); |
| </method> |
| |
| <method name="endDrawClipArtDrag"> |
| this.whiteboardRef.endDrawClipArtDrag(this.objRef); |
| this.whiteboardRef.reselectShowObjectBounds(this.objRef.name); |
| </method> |
| |
| <!-- |
| Do update the Selection-Box, in case another Moderator or User has moved the Object |
| while you have it in focus |
| --> |
| <method name="sendRemoteUpdate" args="obj"> |
| <![CDATA[ |
| |
| if (this.objRef.name == obj.name) { |
| |
| this.resetValues(); |
| |
| } |
| |
| ]]> |
| </method> |
| |
| |
| <method name="resetValues"> |
| this.ex = this.objRef.x; |
| this.ey = this.objRef.y; |
| this.ewidth = this.objRef.width; |
| this.eheight = this.objRef.height; |
| this.setAttribute('x',this.objRef.x); |
| this.setAttribute('y',this.objRef.y); |
| this.setAttribute('width',this.objRef.width); |
| this.setAttribute('height',this.objRef.height); |
| this.setStartValues(); |
| </method> |
| |
| <method name="doUpdateAction" > |
| this.setAttribute('doHandlerUpdates',true); |
| if (this.boundingDoUpdateOnInit) { |
| this._innerDrag.onmousedown.sendEvent(); |
| } |
| </method> |
| |
| <handler name="onheight"> |
| if(this.doHandlerUpdates){ |
| this.objRef.setAttribute('height',this.height); |
| } |
| </handler> |
| |
| <handler name="onwidth"> |
| if(this.doHandlerUpdates){ |
| this.objRef.setAttribute('width',this.width); |
| } |
| </handler> |
| |
| <handler name="onx"> |
| if(this.doHandlerUpdates){ |
| |
| var tx = this.getAttributeRelative('x',objRef); |
| |
| if(this.objRef.parent.isSnapToGrid){ |
| tx = Math.round(tx/this.objRef.parent.gridWidth)*this.objRef.parent.gridWidth; |
| this.setAttribute("x",Math.round(this.x/this.objRef.parent.gridWidth)*this.objRef.parent.gridWidth) |
| } |
| |
| this.objRef.setAttribute('x',tx); |
| } |
| </handler> |
| |
| <handler name="ony"> |
| if(this.doHandlerUpdates){ |
| |
| var ty = this.getAttributeRelative('y',objRef); |
| |
| if(this.objRef.parent.isSnapToGrid){ |
| ty = Math.round(ty/this.objRef.parent.gridWidth)*this.objRef.parent.gridWidth; |
| this.setAttribute("y",Math.round(this.y/this.objRef.parent.gridWidth)*this.objRef.parent.gridWidth) |
| } |
| |
| this.objRef.setAttribute('y',ty); |
| } |
| </handler> |
| |
| <handler name="onkeydown" args="key"> |
| if ($debug) Debug.write("onkeydown ",key); |
| |
| //this.objRef.parent.UpdateByObject(this.objRef); |
| |
| if (key == 46) { |
| this.__LZRemoveItem(this.objRef); |
| } else if (key == 40) { |
| var shiftPressed = lz.Keys.isKeyDown("shift"); |
| if ($debug) Debug.write("shiftPressed ",shiftPressed); |
| this.doHandlerUpdates = true; |
| this.setAttribute("y",this.y+(shiftPressed ? 20 : 2)); |
| this.doHandlerUpdates = false; |
| this.objRef.parent.UpdateByObject(this.objRef); |
| this.setStartValues(); |
| } else if (key == 38) { |
| var shiftPressed = lz.Keys.isKeyDown("shift"); |
| this.doHandlerUpdates = true; |
| this.setAttribute("y",this.y-(shiftPressed ? 20 : 2)); |
| this.doHandlerUpdates = false; |
| this.objRef.parent.UpdateByObject(this.objRef); |
| this.setStartValues(); |
| } else if (key == 39) { |
| var shiftPressed = lz.Keys.isKeyDown("shift"); |
| this.doHandlerUpdates = true; |
| this.setAttribute("x",this.x+(shiftPressed ? 20 : 2)); |
| this.doHandlerUpdates = false; |
| this.objRef.parent.UpdateByObject(this.objRef); |
| this.setStartValues(); |
| } else if (key == 37) { |
| var shiftPressed = lz.Keys.isKeyDown("shift"); |
| this.doHandlerUpdates = true; |
| this.setAttribute("x",this.x-(shiftPressed ? 20 : 2)); |
| this.doHandlerUpdates = false; |
| this.objRef.parent.UpdateByObject(this.objRef); |
| this.setStartValues(); |
| } |
| </handler> |
| |
| <method name="setStartValues"> |
| this.startdragX = this.x; |
| this.startdragY = this.y; |
| this.startdragWidth = this.width; |
| this.startdragHeight = this.height; |
| </method> |
| |
| <method name="_applyResizestateFromThis"> |
| lz.Focus.setFocus(this, true); |
| if ($debug) Debug.write("Apply resize State"); |
| if (!this.canBeResized) { |
| return; |
| } |
| this.setStartValues(); |
| this.rs.apply() |
| </method> |
| |
| <method name="_removeResizestateFromThis"> |
| <![CDATA[ |
| if (!this.canBeResized) { |
| return; |
| } |
| this.rs.remove(); |
| |
| if (this.startdragX != this.x || this.startdragY != this.y || this.startdragWidth != this.width || this.startdragHeight != this.height){ |
| //Debug.write("value changed 1"); |
| this.objRef.parent.UpdateByObject(this.objRef); |
| this.setStartValues(); |
| } |
| if (parent.onBoundingBox) parent.onBoundingBox.sendEvent(this); |
| |
| ]]> |
| </method> |
| |
| <method name="_applyDragstateFromThis"> |
| lz.Focus.setFocus(this, true); |
| if (!this.canBeDragged) { |
| return; |
| } |
| this.setStartValues(); |
| this.dragger.apply() |
| </method> |
| |
| <method name="_removeDragstateFromThis"> |
| <![CDATA[ |
| if (!this.canBeDragged) { |
| return; |
| } |
| this.dragger.remove(); |
| |
| if (this.startdragX != this.x || this.startdragY != this.y || this.startdragWidth != this.width || this.startdragHeight != this.height){ |
| //Debug.write("value changed 2"); |
| this.objRef.parent.UpdateByObject(this.objRef); |
| this.setStartValues(); |
| } |
| if (parent.onBoundingBox) parent.onBoundingBox.sendEvent(this); |
| |
| ]]> |
| </method> |
| |
| <method name="doSetInnerObjectsBounds" args="w,h"> |
| this._inner._inner.setAttribute('width',w); |
| this._inner._inner.setAttribute('height',h); |
| </method> |
| |
| <method name="applyScrollbarToObject"> |
| <![CDATA[ |
| //if ($debug) Debug.write("-- applyScrollbarToObject --",this.objRef.typeOfObject); |
| if (this.objRef.typeOfObject == 'swf'){ |
| if (canvas.ismoderator || canvas.isAllowedToDraw) { |
| //if ($debug) Debug.write("-- setCurrentMouseWheelObject --",this.objRef._scrollstv); |
| //setCurrentMouseWheelObject(this.objRef._scrollstv); |
| } |
| } |
| ]]> |
| </method> |
| |
| <method name="removeScrollbarToObject"> |
| if (this.objRef.typeOfObject == 'swf'){ |
| //Well disable, you can always disable without any problem |
| //and in case you do exactly switch the moderation now |
| //it will remove it in any case |
| disableCurrentMouseWheelObject(); |
| } |
| </method> |
| |
| <resizestatemin name="rs"> |
| <text x="2" y="2" text="${ 'w: '+parent.width+' h: '+parent.height }" bgcolor="white"/> |
| </resizestatemin> |
| |
| <dragstate name="dragger"> |
| <text x="2" y="2" text="${ 'x: '+parent.getAttributeRelative('x',parent.objRef)+' y: '+parent.getAttributeRelative('y',parent.objRef) }" bgcolor="white"/> |
| </dragstate> |
| |
| <view name="_innerDrag" width="${ parent.width-parent.innerInsetScrollbars }" |
| height="${ parent.height-parent.innerInsetScrollbars }" |
| onmouseover="parent.applyScrollbarToObject()" |
| onmouseout="parent.removeScrollbarToObject()" |
| onmousedown="parent._applyDragstateFromThis()" |
| onmouseup="parent._removeDragstateFromThis()"> |
| |
| <contextmenu> |
| <contextmenuitem caption="$once{ canvas.getLabelName(80) }" |
| onselect="parent.parent.parent.__LZRemoveItem()" /> |
| </contextmenu> |
| |
| <handler name="ondblclick"> |
| |
| //Debug.write("ondblclick: ",this.parent.objRef.typeOfObject); |
| if (this.parent.objRef.typeOfObject == "text") { |
| var x = this.parent.objRef.x; //this.parent.objRef.getAttributeRelative('x', canvas); |
| var y = this.parent.objRef.y; //this.parent.objRef.getAttributeRelative('y', canvas); |
| //Debug.write("x,y ",x,y); |
| this.parent.whiteboardRef |
| .editTextByValues(this.parent.objRef, |
| this.parent.objRef.name, |
| this.parent.objRef.text, x, y, |
| this.parent.objRef.width, |
| this.parent.objRef.height); |
| } |
| </handler> |
| |
| <handler name="onmouseover"> |
| if (this.parent.objRef.typeOfObject != "swf") { |
| lz.Cursor.setCursorGlobal("arrow_draw_panel_cursor"); |
| } |
| </handler> |
| |
| <handler name="onmouseout"> |
| lz.Cursor.unlock(); |
| </handler> |
| |
| |
| </view> |
| |
| <image src="$once{ canvas.getThemeImage('bounding_box_textedit_item_rsc') }" y="2" width="16" height="16" stretches="both" |
| name="_editText" visibility="hidden" x="${ parent.width-this.width-parent.innerInsetScrollbars-18 }" > |
| <handler name="onclick"> |
| this.parent.whiteboardRef |
| .editTextByValues(this.parent.objRef, |
| this.parent.objRef.name, |
| this.parent.objRef.text, |
| this.parent.x, |
| this.parent.y, |
| this.parent.objRef.width, |
| this.parent.objRef.height); |
| </handler> |
| <handler name="onmouseover"> |
| lz.Cursor.restoreCursor(); |
| lz.Cursor.showHandCursor(true); |
| </handler> |
| <handler name="onmouseout"> |
| lz.Cursor.showHandCursor(false); |
| lz.Cursor.unlock(); |
| </handler> |
| |
| <labelTooltip labelid="1463" /> |
| </image> |
| |
| <image src="$once{ canvas.getThemeImage('bounding_box_delete_item_rsc') }" y="2" width="16" height="16" |
| x="${ parent.width-this.width-parent.innerInsetScrollbars-2 }" stretches="both"> |
| <handler name="onclick"> |
| //Debug.write("this.parent.objRef.name: ",this.parent.objRef.name); |
| //this.parent.whiteboardRef.deleteItemByName(this.parent.objRef.name); |
| parent.__LZRemoveItem(this.parent.objRef); |
| </handler> |
| <handler name="onmouseover"> |
| lz.Cursor.restoreCursor(); |
| lz.Cursor.showHandCursor(true); |
| </handler> |
| <handler name="onmouseout"> |
| lz.Cursor.showHandCursor(false); |
| lz.Cursor.unlock(); |
| </handler> |
| |
| <labelTooltip labelid="80" /> |
| </image> |
| |
| <view resource="_boundingBoxPointerTL" x="0" y="0" /> |
| <view resource="_boundingBoxPointerTR" x="${ parent.width-this.width }" y="0" /> |
| <view name="_gripperResize" visibility="visible" |
| resource="_boundingBoxPointerUR" x="${ parent.width-this.width }" y="${ parent.height-this.height }" |
| onmousedown="parent._applyResizestateFromThis()" onmouseup="parent._removeResizestateFromThis()" > |
| <handler name="onmouseover"> |
| lz.Cursor.setCursorGlobal("arrow_resize_panel_cursor"); |
| </handler> |
| <handler name="onmouseout"> |
| lz.Cursor.unlock(); |
| </handler> |
| <labelTooltip labelid="252" /> |
| </view> |
| <view name="_gripperNoResize" visibility="hidden" |
| resource="_boundingBoxPointerURNoGripper" x="${ parent.width-this.width }" y="${ parent.height-this.height }" /> |
| <view resource="_boundingBoxPointerUL" x="0" y="${ parent.height-this.height }" /> |
| |
| </class> |
| |
| </library> |