Changeset 563

Show
Ignore:
Timestamp:
01/24/06 00:13:12 (3 years ago)
Author:
therve@gmail.com
Message:

Update to signal, it's great.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • mochikit/branches/scriptaculous/MochiKit/DragAndDrop.js

    r558 r563  
    1515    dojo.require('MochiKit.Effect'); 
    1616    dojo.require('MochiKit.Iter'); 
     17    dojo.require('MochiKit.Signal'); 
    1718} 
    1819 
     
    2223    JSAN.use("MochiKit.Effect", []); 
    2324    JSAN.use("MochiKit.Iter", []); 
     25    JSAN.use("MochiKit.Signal", []); 
    2426} 
    2527 
     
    2830        typeof(MochiKit.DOM) == 'undefined' || 
    2931        typeof(MochiKit.Effect) == 'undefined' || 
     32        typeof(MochiKit.Signal) == 'undefined' || 
    3033        typeof(MochiKit.Iter) == 'undefined') { 
    3134        throw ""; 
    3235    } 
    3336} catch (e) { 
    34     throw "MochiKit.DragAndDrop depends on MochiKit.Base, MochiKit.DOM, MochiKit.Effect and MochiKit.Iter!"; 
     37    throw "MochiKit.DragAndDrop depends on MochiKit.Base, MochiKit.DOM, MochiKit.Effect, MochiKit.Signal and MochiKit.Iter!"; 
    3538} 
    3639 
     
    121124        MochiKit.Position.prepare(); 
    122125 
    123         if (this.last_active.isAffected([MochiKit.Event.pointerX(event), 
    124                 MochiKit.Event.pointerY(event)], element)) { 
     126        if (this.last_active.isAffected([event.cursor.x, event.cursor.y], element)) { 
    125127            if (this.last_active.options.ondrop) { 
    126128                this.last_active.options.ondrop(element, 
     
    264266    register: function (draggable) { 
    265267        if (this.drags.length === 0) { 
    266             this.eventMouseUp = MochiKit.DOM.bindAsEventListener( 
    267                                     this.endDrag, this); 
    268             this.eventMouseMove = MochiKit.DOM.bindAsEventListener( 
    269                                     this.updateDrag, this); 
    270             this.eventKeypress = MochiKit.DOM.bindAsEventListener( 
    271                                     this.keyPress, this); 
    272  
    273             MochiKit.Event.observe(document, 'mouseup', this.eventMouseUp); 
    274             MochiKit.Event.observe(document, 'mousemove', this.eventMouseMove); 
    275             MochiKit.Event.observe(document, 'keypress', this.eventKeypress); 
     268            this.eventMouseUp = MochiKit.Base.bind(this.endDrag, this);  
     269            this.eventMouseMove = MochiKit.Base.bind(this.updateDrag, this);  
     270            this.eventKeypress = MochiKit.Base.bind(this.keyPress, this);  
     271            MochiKit.Signal.connect(document, 'onmouseup', this.eventMouseUp);  
     272            MochiKit.Signal.connect(document, 'onmousemove', this.eventMouseMove);  
     273            MochiKit.Signal.connect(document, 'onkeypress', this.eventKeypress);  
    276274        } 
    277275        this.drags.push(draggable); 
     
    283281        }, this.drags); 
    284282        if (this.drags.length === 0) { 
    285             MochiKit.Event.stopObserving(document, 'mouseup', 
    286                                          this.eventMouseUp); 
    287             MochiKit.Event.stopObserving(document, 'mousemove', 
    288                                          this.eventMouseMove); 
    289             MochiKit.Event.stopObserving(document, 'keypress', 
    290                                          this.eventKeypress); 
     283            MochiKit.Signal.disconnect(document, 'onmouseup',  
     284                                       this.eventMouseUp);  
     285            MochiKit.Signal.disconnect(document, 'onmousemove',  
     286                                       this.eventMouseMove);  
     287            MochiKit.Signal.disconnect(document, 'onkeypress',  
     288                                       this.eventKeypress); 
    291289        } 
    292290    }, 
     
    307305            return; 
    308306        } 
    309         var pointer = [MochiKit.Event.pointerX(event), 
    310                        MochiKit.Event.pointerY(event)]; 
     307        var pointer = [event.cursor.x, event.cursor.y]; 
    311308        // Mozilla-based browsers fire successive mousemove events with 
    312309        // the same coordinates, prevent needless redrawing (moz bug?) 
     
    424421        this.dragging = false; 
    425422 
    426         this.eventMouseDown = MochiKit.DOM.bindAsEventListener(this.initDrag, 
    427                                                                this); 
    428         MochiKit.Event.observe(this.handle, 'mousedown', this.eventMouseDown); 
     423        this.eventMouseDown = MochiKit.Base.bind(this.initDrag, this);  
     424        MochiKit.Signal.connect(this.handle, 'onmousedown', this.eventMouseDown);  
    429425        MochiKit.DragAndDrop.Draggables.register(this); 
    430426    }, 
    431427 
    432428    destroy: function () { 
    433         MochiKit.Event.stopObserving(this.handle, 'mousedown', 
    434                                      this.eventMouseDown); 
     429        MochiKit.Signal.disconnect(this.handle, 'onmousedown', 
     430                                  this.eventMouseDown); 
    435431        MochiKit.DragAndDrop.Draggables.unregister(this); 
    436432    }, 
     
    443439 
    444440    initDrag: function (event) { 
    445         if (!MochiKit.Event.isLeftClick(event)) { 
     441        if (!event.isLeftClick) { 
    446442            return; 
    447443        } 
    448444        // abort on form elements, fixes a Firefox issue 
    449         var src = MochiKit.Event.element(event)
     445        var src = event.target
    450446        if (src.tagName && ( 
    451447            src.tagName == 'INPUT' || 
     
    461457        } 
    462458 
    463         var pointer = [MochiKit.Event.pointerX(event), 
    464                        MochiKit.Event.pointerY(event)]; 
     459        var pointer = [event.cursor.x, event.cursor.y]; 
    465460        var pos = MochiKit.Position.cumulativeOffset(this.element); 
    466461        this.offset = MochiKit.Base.map(function (i) { 
     
    469464 
    470465        MochiKit.DragAndDrop.Draggables.activate(this); 
    471         MochiKit.Event.stop(event); 
     466        event.stop(); 
    472467    }, 
    473468 
     
    515510            window.scrollBy(0, 0); 
    516511        } 
    517         MochiKit.Event.stop(event); 
     512        event.stop(); 
    518513    }, 
    519514 
     
    567562 
    568563    keyPress: function (event) { 
    569         if (event.keyCode != MochiKit.Event.KEY_ESC) { 
     564        if (event.keyString != "KEY_ESCAPE") { 
    570565            return; 
    571566        } 
    572567        this.finishDrag(event, false); 
    573         MochiKit.Event.stop(event); 
     568        event.stop(); 
    574569    }, 
    575570 
     
    579574        } 
    580575        this.finishDrag(event, true); 
    581         MochiKit.Event.stop(event); 
     576        event.stop(); 
    582577    }, 
    583578