|
From: Jordi M. <do...@us...> - 2002-01-04 14:25:24
|
Update of /cvsroot/dynapi/dynapi/src/lib/dynapi/event
In directory usw-pr-cvs1:/tmp/cvs-serv19253/src/lib/dynapi/event
Modified Files:
dragevent.js keyboard.js listeners.js mouse.js
Log Message:
Many bugfixes and improvements.
Index: dragevent.js
===================================================================
RCS file: /cvsroot/dynapi/dynapi/src/lib/dynapi/event/dragevent.js,v
retrieving revision 1.14
retrieving revision 1.15
diff -C2 -r1.14 -r1.15
*** dragevent.js 2001/11/24 23:26:32 1.14
--- dragevent.js 2002/01/04 14:25:18 1.15
***************
*** 23,27 ****
DragEvent.lyrListener=new EventListener();
DragEvent.lyrListener.onmousedown=function(e) {
-
//fix to allow forms in draggable layers to select text.
if (is.def&&e.orig) {
--- 23,26 ----
***************
*** 50,54 ****
de.parentPageY=lyr.parent.getPageY();
};
-
DragEvent.docListener=new EventListener();
DragEvent.docListener.onmousemove=function(e) {
--- 49,52 ----
***************
*** 127,135 ****
//refresh screen to display form objects in draggable layers
if(lyr.doc.forms.length>0){
! if (is.ie && is.platform=="mac") {
! document.body.className = document.body.className;
! }else if (is.ns4 && is.platform=="win32") {
! document.bgColor = document.bgColor;
! }
}
--- 125,130 ----
//refresh screen to display form objects in draggable layers
if(lyr.doc.forms.length>0){
! if (is.ie && is.platform=="mac") document.body.className = document.body.className;
! else if (is.ns4 && is.platform=="win32") document.bgColor = document.bgColor;
}
***************
*** 157,161 ****
dlyr.addEventListener(DragEvent.lyrListener);
var dyndoc=doc||DynAPI.document;
! if (dlyr.frame) dyndoc=dlyr.frame.lyrobj;
dyndoc.addEventListener(DragEvent.docListener);
dyndoc.dragEnabled=true;
--- 152,156 ----
dlyr.addEventListener(DragEvent.lyrListener);
var dyndoc=doc||DynAPI.document;
! if (dlyr.frame) dyndoc=dlyr.frame.lyrobj;
dyndoc.addEventListener(DragEvent.docListener);
dyndoc.dragEnabled=true;
Index: keyboard.js
===================================================================
RCS file: /cvsroot/dynapi/dynapi/src/lib/dynapi/event/keyboard.js,v
retrieving revision 1.12
retrieving revision 1.13
diff -C2 -r1.12 -r1.13
*** keyboard.js 2001/10/28 21:29:33 1.12
--- keyboard.js 2002/01/04 14:25:18 1.13
***************
*** 29,37 ****
if (is.ie) var e=dynobject.frame.event;
else if (e.eventPhase!=3) return false;
! e.cancelBubble=true;
}
if(is.def) var realsrc = Methods.getContainerLayerOf(is.ie?e.srcElement:e.target)||dynobject;
! else if(is.ns4) var realsrc=e.target.lyrobj;
! if (!realsrc) return true;
var evt=DynKeyEvent._e;
evt.type=e.type;
--- 29,39 ----
if (is.ie) var e=dynobject.frame.event;
else if (e.eventPhase!=3) return false;
! e.cancelBubble=true;
}
if(is.def) var realsrc = Methods.getContainerLayerOf(is.ie?e.srcElement:e.target)||dynobject;
! else if(is.ns4) var realsrc=e.target.lyrobj||dynobject;
!
! if (!realsrc) { alert('Error in MouseEvents'); return true; }
!
var evt=DynKeyEvent._e;
evt.type=e.type;
***************
*** 41,49 ****
--- 43,54 ----
evt.which=(is.ns4)?e.which:e.keyCode;
var curKey = String.fromCharCode(evt.which).toLowerCase();
+
if (((curKey>='a')&&(curKey<='z'))||((curKey>='0')&&(curKey<='9'))) evt.charKey=curKey;
else evt.charKey=null;
+
evt.ctrlKey=(is.ns4)?(e.modifiers & Event.CONTROL_MASK):(e.ctrlKey||e.ctrlLeft||e.keyCode==17);
evt.shiftKey=(is.ns4)?(e.modifiers & Event.SHIFT_MASK):(e.shiftKey||e.shiftLeft||e.keyCode==16);
evt.orig=e;
+
realsrc.invokeEvent(evt.type,evt);
evt.bubbleEvent();
***************
*** 73,135 ****
};
};
- DynLayer.prototype.captureKeyEvents=function() {
- if(!this.elm) return;
- if(is.def&&!is.ie) {
- this.elm.addEventListener("keydown",DynKeyEvent.EventMethod,false)
- this.elm.addEventListener("keyup",DynKeyEvent.EventMethod,false)
- this.elm.addEventListener("keypress",DynKeyEvent.EventMethod,false)
- }
- else {
- if (is.ns4) this.elm.captureEvents(Event.KEYPRESS | Event.KEYDOWN | Event.KEYUP);
- this.elm.onkeypress=this.elm.onkeydown=this.elm.onkeyup=DynKeyEvent.EventMethod;
- };
- };
- DynLayer.prototype.releaseKeyEvents=function() {
- if(!this.elm) return;
- if(is.def&&!is.ie) {
- this.elm.removeEventListener("keydown",DynKeyEvent.EventMethod,false)
- this.elm.removeEventListener("keyup",DynKeyEvent.EventMethod,false)
- this.elm.removeEventListener("keypress",DynKeyEvent.EventMethod,false)
- }
- else {
- if (is.ns4) this.elm.releaseEvents(Event.KEYPRESS | Event.KEYDOWN | Event.KEYUP);
- this.elm.onkeypress=this.elm.onkeydown=this.elm.onkeyup=null;
- };
- };
-
- /* Overwrite methods to support key events. */
- DynObject.prototype.assignKeyEvents = function() {
- if (this.hasEventListeners) this.captureKeyEvents();
- var l=this.children.length;
- for (var i=0; i<l; i++) this.children[i].assignKeyEvents();
- };
- DynObject.prototype._OldK_addEventListener = DynObject.prototype.addEventListener;
- DynObject.prototype.addEventListener = function(l) {
- var r = this._OldK_addEventListener(l);
- if(this.hasEventListeners && this.created) this.captureKeyEvents();
- return r;
- };
- DynObject.prototype._OldK_removeEventListener = DynObject.prototype.removeEventListener;
- DynObject.prototype.removeEventListener = function(l) {
- var r = this._OldK_removeEventListener(l);
- if(!this.hasEventListeners) this.releaseKeyEvents();
- return r;
- };
- DynObject.prototype._OldK_removeAllEventListeners = DynObject.prototype.removeAllEventListeners;
- DynObject.prototype.removeAllEventListeners = function() {
- var r = this._OldK_removeAllEventListeners();
- this.releaseKeyEvents();
- return r;
- };
- // DynLayer Specific
- DynLayer.prototype._OldK_specificCreate = DynLayer.prototype.specificCreate;
- DynLayer.prototype.specificCreate = function() {
- this._OldK_specificCreate();
- this.assignKeyEvents();
- };
// DynDocument specific
DynDocument.prototype._OldK_specificCreate = DynDocument.prototype.specificCreate;
DynDocument.prototype.specificCreate = function() {
this._OldK_specificCreate();
- this.assignKeyEvents();
};
--- 78,90 ----
};
};
// DynDocument specific
DynDocument.prototype._OldK_specificCreate = DynDocument.prototype.specificCreate;
DynDocument.prototype.specificCreate = function() {
+ this._OldK_specificCreate();
+ this.captureKeyEvents();
+ };
+ DynDocument.prototype._OldK_specificRemove = DynDocument.prototype.specificRemove;
+ DynDocument.prototype.specificRemove = function() {
+ this.releaseKeyEvents();
this._OldK_specificCreate();
};
Index: listeners.js
===================================================================
RCS file: /cvsroot/dynapi/dynapi/src/lib/dynapi/event/listeners.js,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -r1.7 -r1.8
*** listeners.js 2001/11/05 16:45:49 1.7
--- listeners.js 2002/01/04 14:25:18 1.8
***************
*** 5,9 ****
The DynAPI Distribution is distributed under the terms of the GNU LGPL license.
*/
-
DynEvent=function(type,src,target) {
this.type=type;
--- 5,8 ----
Index: mouse.js
===================================================================
RCS file: /cvsroot/dynapi/dynapi/src/lib/dynapi/event/mouse.js,v
retrieving revision 1.23
retrieving revision 1.24
diff -C2 -r1.23 -r1.24
*** mouse.js 2001/12/22 17:17:41 1.23
--- mouse.js 2002/01/04 14:25:18 1.24
***************
*** 55,59 ****
// Get the real source for the event
if(is.def) var realsrc = Methods.getContainerLayerOf(is.ie?e.srcElement:e.target) || dynobject
! else if(is.ns4) var realsrc=e.target.lyrobj||dynobject
// Now 'realsrc' should point to the DynLayer object where the event initially was triggered
--- 55,59 ----
// Get the real source for the event
if(is.def) var realsrc = Methods.getContainerLayerOf(is.ie?e.srcElement:e.target) || dynobject
! else if(is.ns4) var realsrc=e.target.lyrobj || dynobject
// Now 'realsrc' should point to the DynLayer object where the event initially was triggered
***************
*** 74,91 ****
// Step two: mouse coordinate properties
if (is.ns4 && type=='mouseover') {
! // debugging for NS4 mouseover event
! evt.pageX=evt.pageX;
! evt.pageY=evt.pageY;
! evt.x=evt.pageX-evt.src.getPageX()
! evt.y=evt.pageY-evt.src.getPageY()
} else {
! // standard DynAPI coordinate calculation
! evt.pageX=is.ie?e.x+document.body.scrollLeft:e.pageX;
! evt.pageY=is.ie?e.y+document.body.scrollTop:e.pageY;
! evt.x=is.ie?evt.pageX-evt.src.getPageX():e.layerX
! evt.y=is.ie?evt.pageY-evt.src.getPageY():e.layerY
}
-
// Step three: mouse buttons
var b=is.ie?e.button:e.which;
--- 74,90 ----
// Step two: mouse coordinate properties
if (is.ns4 && type=='mouseover') {
! // debugging for NS4 mouseover event
! evt.pageX=evt.pageX;
! evt.pageY=evt.pageY;
! evt.x=evt.pageX-evt.src.getPageX()
! evt.y=evt.pageY-evt.src.getPageY()
} else {
! // standard DynAPI coordinate calculation
! evt.pageX=is.ie?e.x+document.body.scrollLeft:e.pageX;
! evt.pageY=is.ie?e.y+document.body.scrollTop:e.pageY;
! evt.x=is.ie?evt.pageX-evt.src.getPageX():e.layerX
! evt.y=is.ie?evt.pageY-evt.src.getPageY():e.layerY
}
// Step three: mouse buttons
var b=is.ie?e.button:e.which;
***************
*** 159,162 ****
--- 158,163 ----
else {
if(e.preventDefault && !evt.browserReturn) e.preventDefault();
+ if (evt.type=='rtmouseup') document.oncontextmenu=evt.browserReturn ? null : DynAPI.FalseFunction;
+ else if (evt.type=='mousedown') document.onselectstart=evt.browserReturn ? null : DynAPI.FalseFunction;
}
// If Internet Explorer AND evt.browserReturn is false,
***************
*** 168,173 ****
if(!is.ie || evt.browserReturn==false) return evt.browserReturn;
}
!
!
// Extend DynDocument to capture its events
DynDocument.prototype.captureMouseEvents = function() {
--- 169,173 ----
if(!is.ie || evt.browserReturn==false) return evt.browserReturn;
}
! DynAPI.FalseFunction = function() { return false }
// Extend DynDocument to capture its events
DynDocument.prototype.captureMouseEvents = function() {
***************
*** 182,187 ****
}
else {
! if (is.ns4) this.doc.captureEvents(Event.MOUSEMOVE | Event.MOUSEDOWN | Event.MOUSEUP | Event.CLICK | Event.DBLCLICK);
! this.doc.onmousemove=this.doc.onmousedown=this.doc.onmouseup=this.doc.onclick=this.doc.ondblclick=DynMouseEvent.EventMethod;
}
}
--- 182,187 ----
}
else {
! if (is.ns4) this.doc.captureEvents(Event.MOUSEMOVE | Event.MOUSEOVER | Event.MOUSEOUT | Event.MOUSEDOWN | Event.MOUSEUP | Event.CLICK | Event.DBLCLICK);
! this.doc.onmouseover=this.doc.onmouseout=this.doc.onmousemove=this.doc.onmousedown=this.doc.onmouseup=this.doc.onclick=this.doc.ondblclick=DynMouseEvent.EventMethod;
}
}
***************
*** 196,279 ****
this.doc.removeEventListener("dblclick",DynMouseEvent.EventMethod,false)
}
- else {
- if (is.ns4) this.doc.releaseEvents(Event.MOUSEMOVE | Event.MOUSEDOWN | Event.MOUSEUP | Event.CLICK | Event.DBLCLICK);
- this.doc.onmousemove=this.doc.onmousedown=this.doc.onmouseup=this.doc.onclick=this.doc.ondblclick=null
- }
- }
- /* Extend DynLayer to capture mouse events upon layer creation (if needed) */
- DynLayer.prototype.captureMouseEvents = function() {
- var elm=this.elm
- if(!elm) return
- if(is.def&&!is.ie) {
- elm.addEventListener("mousemove",DynMouseEvent.EventMethod,false)
- elm.addEventListener("mousedown",DynMouseEvent.EventMethod,false)
- elm.addEventListener("mouseup",DynMouseEvent.EventMethod,false)
- elm.addEventListener("mouseover",DynMouseEvent.EventMethod,false)
- elm.addEventListener("mouseout",DynMouseEvent.EventMethod,false)
- elm.addEventListener("click",DynMouseEvent.EventMethod,false)
- elm.addEventListener("dblclick",DynMouseEvent.EventMethod,false)
- }
else {
! if (is.ns4) elm.captureEvents(Event.MOUSEDOWN | Event.MOUSEUP | Event.CLICK | Event.DBLCLICK | Event.MOUSEMOVE);
! elm.onmousemove=elm.onmousedown=elm.onmouseup=elm.onmouseover=elm.onmouseout=elm.onclick=elm.ondblclick=DynMouseEvent.EventMethod
}
}
- DynLayer.prototype.releaseMouseEvents=function() {
- var elm=this.elm
- if(!elm) return
- if(is.def&&!is.ie) {
- elm.removeEventListener("mousemove",DynMouseEvent.EventMethod,false)
- elm.removeEventListener("mousedown",DynMouseEvent.EventMethod,false)
- elm.removeEventListener("mouseup",DynMouseEvent.EventMethod,false)
- elm.removeEventListener("mouseover",DynMouseEvent.EventMethod,false)
- elm.removeEventListener("mouseout",DynMouseEvent.EventMethod,false)
- elm.removeEventListener("click",DynMouseEvent.EventMethod,false)
- elm.removeEventListener("dblclick",DynMouseEvent.EventMethod,false)
- }
- else {
- if (is.ns4) elm.releaseEvents(Event.MOUSEDOWN | Event.MOUSEUP | Event.CLICK | Event.DBLCLICK | Event.MOUSEMOVE);
- elm.onmousemove=elm.onmousedown=elm.onmouseup=elm.onclick=elm.ondblclick=null
- }
- }
-
- DynObject.prototype.assignMouseEvents = function() {
- if (this.hasEventListeners) this.captureMouseEvents()
- var l=this.children.length;
- for (var i=0; i<l; i++) this.children[i].assignMouseEvents()
- }
- DynObject.prototype._OldM_addEventListener = DynObject.prototype.addEventListener
- DynObject.prototype.addEventListener = function(l) {
- var r = this._OldM_addEventListener(l)
- if(this.hasEventListeners && this.created) this.captureMouseEvents()
- return r
- }
- DynObject.prototype._OldM_removeEventListener = DynObject.prototype.removeEventListener
- DynObject.prototype.removeEventListener = function(l) {
- var r = this._OldM_removeEventListener(l)
- if(!this.hasEventListeners) this.releaseMouseEvents()
- return r
- }
- DynObject.prototype._OldM_removeAllEventListeners = DynObject.prototype.removeAllEventListeners
- DynObject.prototype.removeAllEventListeners = function() {
- var r = this._OldM_removeAllEventListeners()
- this.releaseMouseEvents()
- return r
- }
- // DynLayer Specific
- DynLayer.prototype._OldM_specificCreate = DynLayer.prototype.specificCreate
- DynLayer.prototype.specificCreate = function() {
- this._OldM_specificCreate()
- this.assignMouseEvents()
- }
// DynDocument Specific
DynDocument.prototype._OldM_specificCreate = DynDocument.prototype.specificCreate
DynDocument.prototype.specificCreate = function() {
this._OldM_specificCreate()
! this.assignMouseEvents()
}
- // DynLayer Specific
- DynLayer.prototype._mouse_setHTML=DynLayer.prototype.setHTML;
- DynLayer.prototype.setHTML = function(s,noevt) {
- this._mouse_setHTML(s,noevt);
- if (is.ns4&&this.doc) this.captureMouseEvents();
- }
\ No newline at end of file
--- 196,213 ----
this.doc.removeEventListener("dblclick",DynMouseEvent.EventMethod,false)
}
else {
! if (is.ns4) this.doc.releaseEvents(Event.MOUSEMOVE | Event.MOUSEOVER | Event.MOUSEOUT | Event.MOUSEDOWN | Event.MOUSEUP | Event.CLICK | Event.DBLCLICK);
! this.doc.onmouseover=this.doc.onmouseout=this.doc.onmousemove=this.doc.onmousedown=this.doc.onmouseup=this.doc.onclick=this.doc.ondblclick=null
}
}
// DynDocument Specific
DynDocument.prototype._OldM_specificCreate = DynDocument.prototype.specificCreate
DynDocument.prototype.specificCreate = function() {
this._OldM_specificCreate()
! this.captureMouseEvents()
! }
! DynDocument.prototype._OldM_specificRemove = DynDocument.prototype.specificRemove
! DynDocument.prototype.specificRemove = function() {
! this.releaseMouseEvents()
! this._OldM_specificRemove()
}
|