Index: lams_flash/src/common/flash/org/lamsfoundation/lams/common/ui/AlertDialog.as =================================================================== diff -u -r30d3b69f71320d2c72e923ea6f18df194c76acdd -r90b4b10293f4b498a455ed8d89bb9b886b56d7b4 --- lams_flash/src/common/flash/org/lamsfoundation/lams/common/ui/AlertDialog.as (.../AlertDialog.as) (revision 30d3b69f71320d2c72e923ea6f18df194c76acdd) +++ lams_flash/src/common/flash/org/lamsfoundation/lams/common/ui/AlertDialog.as (.../AlertDialog.as) (revision 90b4b10293f4b498a455ed8d89bb9b886b56d7b4) @@ -36,7 +36,7 @@ import org.lamsfoundation.lams.common.dict.* /* -* Dialogue to collect a string form the user, adn call some specified action on OK +* Dialogue to collect a string form the user, and call some specified action on OK * @author DC */ class org.lamsfoundation.lams.common.ui.AlertDialog extends MovieClip { @@ -56,13 +56,15 @@ private var _okHandler:Function; private var _cancelHandler:Function; - private var _type:Number; + private var _type:Number; + private var _isDragging:Boolean; private var app:Object; private var fm:FocusManager; //Reference to focus manager private var themeManager:ThemeManager; //Theme manager - private var transparentCover:MovieClip; + private var transparentCover:MovieClip; + private var clickTarget:MovieClip; //These are defined so that the compiler can 'see' the events that are added at runtime by EventDispatcher private var dispatchEvent:Function; @@ -75,6 +77,7 @@ function AlertDialog(){ //Set up this class to use the Flash event delegation model EventDispatcher.initialize(this); + EventDispatcher.initialize(clickTarget); this._visible = false; @@ -96,7 +99,13 @@ ok_btn.visible = false; cancel_btn.visible = false; + _isDragging = false; + clickTarget.enabled = true; + + clickTarget.onPress = Proxy.create(this, onDrag); + clickTarget.onRelease = Proxy.create(this, onDrag); + ok_btn.addEventListener('click', Delegate.create(this, onOkPress)); cancel_btn.addEventListener('click', Delegate.create(this, onCancelPress)); @@ -112,11 +121,10 @@ setPosition(Stage.width/2, Stage.height/2); else setPosition(Stage.width/2 - _parent._x, Stage.height/2 - _parent._y); - + addTransparentLayer(this._parent); contentLoaded(); - } /** @@ -127,6 +135,18 @@ dispatchEvent({type:'contentLoaded',target:this}); } + private function onDrag() { + + if(!_isDragging) { + this.startDrag(); + _isDragging = true; + } + else { + this.stopDrag(); + _isDragging = false; + } + } + private function addTransparentLayer(target:MovieClip) { var styleObj = themeManager.getStyleObject('CanvasPanel'); @@ -324,7 +344,10 @@ */ public function setSize(w:Number,h:Number):Void{ _bgpanel._width = w; - _bgpanel._height = h; + _bgpanel._height = h; + + clickTarget._width = w; + clickTarget._height = h; } public function setPosition(x:Number, y:Number):Void { @@ -333,6 +356,9 @@ _bgpanel._x = -_bgpanel._width/2; _bgpanel._Y = -_bgpanel._height/2; + + clickTarget._x = -clickTarget._width/2; + clickTarget._Y = -clickTarget._height/2; } } \ No newline at end of file