Changeset 521
- Timestamp:
- 01/18/06 14:11:36 (3 years ago)
- Files:
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
mochikit/branches/scriptaculous/MochiKit/DragAndDrop.js
r520 r521 15 15 dojo.require('MochiKit.Effect'); 16 16 dojo.require('MochiKit.Iter'); 17 dojo.require('MochiKit.Signal'); 17 18 } 18 19 … … 22 23 JSAN.use("MochiKit.Effect", []); 23 24 JSAN.use("MochiKit.Iter", []); 25 JSAN.use("MochiKit.Signal", []); 24 26 } 25 27 … … 28 30 typeof(MochiKit.DOM) == 'undefined' || 29 31 typeof(MochiKit.Effect) == 'undefined' || 30 typeof(MochiKit.Iter) == 'undefined') { 32 typeof(MochiKit.Iter) == 'undefined' || 33 typeof(MochiKit.Signal) == 'undefined') { 31 34 throw ""; 32 35 } 33 36 } 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.Iter and MochiKit.Signal!"; 35 38 } 36 39 … … 118 121 MochiKit.Position.prepare(); 119 122 120 if (this.last_active.isAffected([MochiKit.Event.pointerX(event), 121 MochiKit.Event.pointerY(event)], element)) { 123 if (this.last_active.isAffected([event.pageX, event.pageY], element)) { 122 124 if (this.last_active.options.onDrop) { 123 125 this.last_active.options.onDrop(element, … … 245 247 register: function (draggable) { 246 248 if (this.drags.length === 0) { 247 this.eventMouseUp = MochiKit.DOM.bindAsEventListener( 248 this.endDrag, this); 249 this.eventMouseMove = MochiKit.DOM.bindAsEventListener( 250 this.updateDrag, this); 251 this.eventKeypress = MochiKit.DOM.bindAsEventListener( 252 this.keyPress, this); 253 254 MochiKit.Event.observe(document, 'mouseup', this.eventMouseUp); 255 MochiKit.Event.observe(document, 'mousemove', this.eventMouseMove); 256 MochiKit.Event.observe(document, 'keypress', this.eventKeypress); 249 this.eventMouseUp = MochiKit.Base.bind(this.endDrag, this); 250 this.eventMouseMove = MochiKit.Base.bind(this.updateDrag, this); 251 this.eventKeypress = MochiKit.Base.bind(this.keyPress, this); 252 MochiKit.Signal.connect(document, 'onmouseup', this.eventMouseUp); 253 MochiKit.Signal.connect(document, 'onmousemove', this.eventMouseMove); 254 MochiKit.Signal.connect(document, 'onkeypress', this.eventKeypress); 257 255 } 258 256 this.drags.push(draggable); … … 264 262 }, this.drags); 265 263 if (this.drags.length === 0) { 266 MochiKit. Event.stopObserving(document, 'mouseup',267 this.eventMouseUp);268 MochiKit. Event.stopObserving(document, 'mousemove',269 this.eventMouseMove);270 MochiKit. Event.stopObserving(document, 'keypress',271 this.eventKeypress);264 MochiKit.Signal.disconnect(document, 'onmouseup', 265 this.eventMouseUp); 266 MochiKit.Signal.disconnect(document, 'onmousemove', 267 this.eventMouseMove); 268 MochiKit.Signal.disconnect(document, 'onkeypress', 269 this.eventKeypress); 272 270 } 273 271 }, … … 288 286 return; 289 287 } 290 var pointer = [ MochiKit.Event.pointerX(event),291 MochiKit.Event.pointerY(event)];288 var pointer = [event.pageX, 289 event.pageY]; 292 290 // Mozilla-based browsers fire successive mousemove events with 293 291 // the same coordinates, prevent needless redrawing (moz bug?) … … 405 403 this.dragging = false; 406 404 407 this.eventMouseDown = MochiKit.DOM.bindAsEventListener(this.initDrag, 408 this); 409 MochiKit.Event.observe(this.handle, 'mousedown', this.eventMouseDown); 405 this.eventMouseDown = MochiKit.Base.bind(this.initDrag, this); 406 MochiKit.Signal.connect(this.handle, 'onmousedown', this.eventMouseDown); 410 407 MochiKit.DragAndDrop.Draggables.register(this); 411 408 }, 412 409 413 410 destroy: function () { 414 MochiKit. Event.stopObserving(this.handle, 'mousedown',411 MochiKit.Signal.disconnect(this.handle, 'onmousedown', 415 412 this.eventMouseDown); 416 413 MochiKit.DragAndDrop.Draggables.unregister(this); … … 424 421 425 422 initDrag: function (event) { 426 if (! MochiKit.Event.isLeftClick(event)) {423 if (!event.isLeftClick) { 427 424 return; 428 425 } 429 426 // abort on form elements, fixes a Firefox issue 430 var src = MochiKit.Event.element(event);427 var src = event.target; 431 428 if (src.tagName && ( 432 429 src.tagName == 'INPUT' || … … 442 439 } 443 440 444 var pointer = [MochiKit.Event.pointerX(event), 445 MochiKit.Event.pointerY(event)]; 441 var pointer = [event.pageX, event.pageY]; 446 442 var pos = MochiKit.Position.cumulativeOffset(this.element); 447 443 this.offset = MochiKit.Base.map(function (i) { … … 450 446 451 447 MochiKit.DragAndDrop.Draggables.activate(this); 452 MochiKit.Event.stop(event);453 448 }, 454 449 … … 493 488 window.scrollBy(0, 0); 494 489 } 495 MochiKit.Event.stop(event);496 490 }, 497 491 … … 542 536 543 537 keyPress: function (event) { 544 if (event.key Code != MochiKit.Event.KEY_ESC) {538 if (event.keyString != "KEY_ESCAPE") { 545 539 return; 546 540 } 547 541 this.finishDrag(event, false); 548 MochiKit.Event.stop(event);549 542 }, 550 543 … … 554 547 } 555 548 this.finishDrag(event, true); 556 MochiKit.Event.stop(event);557 549 }, 558 550
