Annotation of loncom/html/htmlarea/dialog.js, revision 1.2

1.2     ! www         1: // htmlArea v3.0 - Copyright (c) 2003-2004 interactivetools.com, inc.
        !             2: // This copyright notice MUST stay intact for use (see license.txt).
        !             3: //
        !             4: // Portions (c) dynarch.com, 2003-2004
        !             5: //
        !             6: // A free WYSIWYG editor replacement for <textarea> fields.
        !             7: // For full source code and docs, visit http://www.interactivetools.com/
        !             8: //
        !             9: // Version 3.0 developed by Mihai Bazon.
        !            10: //   http://dynarch.com/mishoo
        !            11: //
        !            12: // $Id: dialog.js,v 1.4 2004/01/28 09:42:55 mishoo Exp $
        !            13: 
1.1       www        14: // Though "Dialog" looks like an object, it isn't really an object.  Instead
                     15: // it's just namespace for protecting global symbols.
                     16: 
                     17: function Dialog(url, action, init) {
                     18: 	if (typeof init == "undefined") {
                     19: 		init = window;	// pass this window object by default
                     20: 	}
1.2     ! www        21: 	Dialog._geckoOpenModal(url, action, init);
1.1       www        22: };
                     23: 
                     24: Dialog._parentEvent = function(ev) {
                     25: 	if (Dialog._modal && !Dialog._modal.closed) {
                     26: 		Dialog._modal.focus();
1.2     ! www        27: 		HTMLArea._stopEvent(ev);
1.1       www        28: 	}
                     29: };
                     30: 
                     31: // should be a function, the return handler of the currently opened dialog.
                     32: Dialog._return = null;
                     33: 
                     34: // constant, the currently opened dialog
                     35: Dialog._modal = null;
                     36: 
                     37: // the dialog will read it's args from this variable
                     38: Dialog._arguments = null;
                     39: 
                     40: Dialog._geckoOpenModal = function(url, action, init) {
1.2     ! www        41: 	var dlg = window.open(url, "hadialog",
1.1       www        42: 			      "toolbar=no,menubar=no,personalbar=no,width=10,height=10," +
1.2     ! www        43: 			      "scrollbars=no,resizable=yes");
1.1       www        44: 	Dialog._modal = dlg;
                     45: 	Dialog._arguments = init;
                     46: 
                     47: 	// capture some window's events
                     48: 	function capwin(w) {
1.2     ! www        49: 		HTMLArea._addEvent(w, "click", Dialog._parentEvent);
        !            50: 		HTMLArea._addEvent(w, "mousedown", Dialog._parentEvent);
        !            51: 		HTMLArea._addEvent(w, "focus", Dialog._parentEvent);
1.1       www        52: 	};
                     53: 	// release the captured events
                     54: 	function relwin(w) {
1.2     ! www        55: 		HTMLArea._removeEvent(w, "click", Dialog._parentEvent);
        !            56: 		HTMLArea._removeEvent(w, "mousedown", Dialog._parentEvent);
        !            57: 		HTMLArea._removeEvent(w, "focus", Dialog._parentEvent);
1.1       www        58: 	};
                     59: 	capwin(window);
                     60: 	// capture other frames
                     61: 	for (var i = 0; i < window.frames.length; capwin(window.frames[i++]));
                     62: 	// make up a function to be called when the Dialog ends.
                     63: 	Dialog._return = function (val) {
                     64: 		if (val && action) {
                     65: 			action(val);
                     66: 		}
                     67: 		relwin(window);
                     68: 		// capture other frames
                     69: 		for (var i = 0; i < window.frames.length; relwin(window.frames[i++]));
                     70: 		Dialog._modal = null;
                     71: 	};
                     72: };

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>