X-Git-Url: http://git.ithinksw.org/extjs.git/blobdiff_plain/25ef3491bd9ae007ff1fc2b0d7943e6eaaccf775..6e39d509471fe9b4e2660e0d1631b350d0c66f40:/src/widgets/WindowManager.js diff --git a/src/widgets/WindowManager.js b/src/widgets/WindowManager.js index 7d4c9930..de851976 100644 --- a/src/widgets/WindowManager.js +++ b/src/widgets/WindowManager.js @@ -1,12 +1,12 @@ /*! - * Ext JS Library 3.0.3 + * Ext JS Library 3.1.0 * Copyright(c) 2006-2009 Ext JS, LLC * licensing@extjs.com * http://www.extjs.com/license */ /** * @class Ext.WindowGroup - * An object that represents a group of {@link Ext.Window} instances and provides z-order management + * An object that manages a group of {@link Ext.Window} instances and provides z-order management * and window activation behavior. * @constructor */ @@ -63,20 +63,42 @@ Ext.WindowGroup = function(){ return { /** - * The starting z-index for windows (defaults to 9000) + * The starting z-index for windows in this WindowGroup (defaults to 9000) * @type Number The z-index value */ zseed : 9000, - // private + /** + *

Registers a {@link Ext.Window Window} with this WindowManager. This should not + * need to be called under normal circumstances. Windows are automatically registered + * with a {@link Ext.Window#manager manager} at construction time.

+ *

Where this may be useful is moving Windows between two WindowManagers. For example, + * to bring the Ext.MessageBox dialog under the same manager as the Desktop's + * WindowManager in the desktop sample app:

+var msgWin = Ext.MessageBox.getDialog();
+MyDesktop.getDesktop().getManager().register(msgWin);
+
+ * @param {Window} win The Window to register. + */ register : function(win){ + if(win.manager){ + win.manager.unregister(win); + } + win.manager = this; + list[win.id] = win; accessList.push(win); win.on('hide', activateLast); }, - // private + /** + *

Unregisters a {@link Ext.Window Window} from this WindowManager. This should not + * need to be called. Windows are automatically unregistered upon destruction. + * See {@link #register}.

+ * @param {Window} win The Window to unregister. + */ unregister : function(win){ + delete win.manager; delete list[win.id]; win.un('hide', activateLast); accessList.remove(win); @@ -92,7 +114,7 @@ Ext.WindowGroup = function(){ }, /** - * Brings the specified window to the front of any other active windows. + * Brings the specified window to the front of any other active windows in this WindowGroup. * @param {String/Object} win The id of the window or a {@link Ext.Window} instance * @return {Boolean} True if the dialog was brought to the front, else false * if it was already in front @@ -108,7 +130,7 @@ Ext.WindowGroup = function(){ }, /** - * Sends the specified window to the back of other active windows. + * Sends the specified window to the back of other active windows in this WindowGroup. * @param {String/Object} win The id of the window or a {@link Ext.Window} instance * @return {Ext.Window} The window */ @@ -120,7 +142,7 @@ Ext.WindowGroup = function(){ }, /** - * Hides all windows in the group. + * Hides all windows in this WindowGroup. */ hideAll : function(){ for(var id in list){ @@ -131,7 +153,7 @@ Ext.WindowGroup = function(){ }, /** - * Gets the currently-active window in the group. + * Gets the currently-active window in this WindowGroup. * @return {Ext.Window} The active window */ getActive : function(){ @@ -139,11 +161,11 @@ Ext.WindowGroup = function(){ }, /** - * Returns zero or more windows in the group using the custom search function passed to this method. + * Returns zero or more windows in this WindowGroup using the custom search function passed to this method. * The function should accept a single {@link Ext.Window} reference as its only argument and should * return true if the window matches the search criteria, otherwise it should return false. * @param {Function} fn The search function - * @param {Object} scope (optional) The scope in which to execute the function (defaults to the window + * @param {Object} scope (optional) The scope (this reference) in which the function is executed. Defaults to the Window being tested. * that gets passed to the function if not specified) * @return {Array} An array of zero or more matching windows */ @@ -159,10 +181,10 @@ Ext.WindowGroup = function(){ }, /** - * Executes the specified function once for every window in the group, passing each + * Executes the specified function once for every window in this WindowGroup, passing each * window as the only parameter. Returning false from the function will stop the iteration. * @param {Function} fn The function to execute for each item - * @param {Object} scope (optional) The scope in which to execute the function + * @param {Object} scope (optional) The scope (this reference) in which the function is executed. Defaults to the current Window in the iteration. */ each : function(fn, scope){ for(var id in list){