/*!
- * Ext JS Library 3.0.3
- * Copyright(c) 2006-2009 Ext JS, LLC
- * licensing@extjs.com
- * http://www.extjs.com/license
+ * Ext JS Library 3.3.1
+ * Copyright(c) 2006-2010 Sencha Inc.
+ * licensing@sencha.com
+ * http://www.sencha.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
*/
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
+ /**
+ * <p>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.</p>
+ * <p>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:</p><code><pre>
+var msgWin = Ext.MessageBox.getDialog();
+MyDesktop.getDesktop().getManager().register(msgWin);
+</pre></code>
+ * @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
+ /**
+ * <p>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}.</p>
+ * @param {Window} win The Window to unregister.
+ */
unregister : function(win){
+ delete win.manager;
delete list[win.id];
win.un('hide', activateLast);
accessList.remove(win);
},
/**
- * 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
},
/**
- * 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
*/
},
/**
- * Hides all windows in the group.
+ * Hides all windows in this WindowGroup.
*/
hideAll : function(){
for(var id in list){
},
/**
- * Gets the currently-active window in the group.
+ * Gets the currently-active window in this WindowGroup.
* @return {Ext.Window} The active window
*/
getActive : 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 (<code>this</code> 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
*/
},
/**
- * 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 (<code>this</code> reference) in which the function is executed. Defaults to the current Window in the iteration.
*/
each : function(fn, scope){
for(var id in list){