| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916 | 
							- <!DOCTYPE html>
 
- <html>
 
- <head>
 
-   <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 
-   <title>The source code</title>
 
-   <link href="../resources/prettify/prettify.css" type="text/css" rel="stylesheet" />
 
-   <script type="text/javascript" src="../resources/prettify/prettify.js"></script>
 
-   <style type="text/css">
 
-     .highlight { display: block; background-color: #ddd; }
 
-   </style>
 
-   <script type="text/javascript">
 
-     function highlight() {
 
-       document.getElementById(location.hash.replace(/#/, "")).className = "highlight";
 
-     }
 
-   </script>
 
- </head>
 
- <body onload="prettyPrint(); highlight();">
 
-   <pre class="prettyprint lang-js"><span id='Ext-window-MessageBox'>/**
 
- </span> * Utility class for generating different styles of message boxes.  The singleton instance, Ext.MessageBox
 
-  * alias `Ext.Msg` can also be used.
 
-  *
 
-  * Note that a MessageBox is asynchronous.  Unlike a regular JavaScript `alert` (which will halt
 
-  * browser execution), showing a MessageBox will not cause the code to stop.  For this reason, if you have code
 
-  * that should only run *after* some user feedback from the MessageBox, you must use a callback function
 
-  * (see the `function` parameter for {@link #method-show} for more details).
 
-  *
 
-  * Basic alert
 
-  *
 
-  *     @example
 
-  *     Ext.Msg.alert('Status', 'Changes saved successfully.');
 
-  *
 
-  * Prompt for user data and process the result using a callback
 
-  *
 
-  *     @example
 
-  *     Ext.Msg.prompt('Name', 'Please enter your name:', function(btn, text){
 
-  *         if (btn == 'ok'){
 
-  *             // process text value and close...
 
-  *         }
 
-  *     });
 
-  *
 
-  * Show a dialog using config options
 
-  *
 
-  *     @example
 
-  *     Ext.Msg.show({
 
-  *          title:'Save Changes?',
 
-  *          msg: 'You are closing a tab that has unsaved changes. Would you like to save your changes?',
 
-  *          buttons: Ext.Msg.YESNOCANCEL,
 
-  *          icon: Ext.Msg.QUESTION
 
-  *     });
 
-  */
 
- Ext.define('Ext.window.MessageBox', {
 
-     extend: 'Ext.window.Window',
 
-     requires: [
 
-         'Ext.toolbar.Toolbar',
 
-         'Ext.form.field.Text',
 
-         'Ext.form.field.TextArea',
 
-         'Ext.form.field.Display',
 
-         'Ext.button.Button',
 
-         'Ext.layout.container.Anchor',
 
-         'Ext.layout.container.HBox',
 
-         'Ext.ProgressBar'
 
-     ],
 
-     alias: 'widget.messagebox',
 
- <span id='Ext-window-MessageBox-property-OK'>    /**
 
- </span>     * @property
 
-      * Button config that displays a single OK button
 
-      */
 
-     OK : 1,
 
- <span id='Ext-window-MessageBox-property-YES'>    /**
 
- </span>     * @property
 
-      * Button config that displays a single Yes button
 
-      */
 
-     YES : 2,
 
- <span id='Ext-window-MessageBox-property-NO'>    /**
 
- </span>     * @property
 
-      * Button config that displays a single No button
 
-      */
 
-     NO : 4,
 
- <span id='Ext-window-MessageBox-property-CANCEL'>    /**
 
- </span>     * @property
 
-      * Button config that displays a single Cancel button
 
-      */
 
-     CANCEL : 8,
 
- <span id='Ext-window-MessageBox-property-OKCANCEL'>    /**
 
- </span>     * @property
 
-      * Button config that displays OK and Cancel buttons
 
-      */
 
-     OKCANCEL : 9,
 
- <span id='Ext-window-MessageBox-property-YESNO'>    /**
 
- </span>     * @property
 
-      * Button config that displays Yes and No buttons
 
-      */
 
-     YESNO : 6,
 
- <span id='Ext-window-MessageBox-property-YESNOCANCEL'>    /**
 
- </span>     * @property
 
-      * Button config that displays Yes, No and Cancel buttons
 
-      */
 
-     YESNOCANCEL : 14,
 
- <span id='Ext-window-MessageBox-property-INFO'>    /**
 
- </span>     * @property
 
-      * The CSS class that provides the INFO icon image
 
-      */
 
-     INFO : Ext.baseCSSPrefix + 'message-box-info',
 
- <span id='Ext-window-MessageBox-property-WARNING'>    /**
 
- </span>     * @property
 
-      * The CSS class that provides the WARNING icon image
 
-      */
 
-     WARNING : Ext.baseCSSPrefix + 'message-box-warning',
 
- <span id='Ext-window-MessageBox-property-QUESTION'>    /**
 
- </span>     * @property
 
-      * The CSS class that provides the QUESTION icon image
 
-      */
 
-     QUESTION : Ext.baseCSSPrefix + 'message-box-question',
 
- <span id='Ext-window-MessageBox-property-ERROR'>    /**
 
- </span>     * @property
 
-      * The CSS class that provides the ERROR icon image
 
-      */
 
-     ERROR : Ext.baseCSSPrefix + 'message-box-error',
 
-     // hide it by offsets. Windows are hidden on render by default.
 
-     hideMode: 'offsets',
 
-     closeAction: 'hide',
 
-     resizable: false,
 
-     title: '&#160;',
 
-     width: 600,
 
-     height: 500,
 
-     minWidth: 250,
 
-     maxWidth: 600,
 
-     minHeight: 110,
 
-     maxHeight: 500,
 
-     constrain: true,
 
-     cls: Ext.baseCSSPrefix + 'message-box',
 
-     layout: {
 
-         type: 'vbox',
 
-         align: 'stretch'
 
-     },
 
- <span id='Ext-window-MessageBox-property-defaultTextHeight'>    /**
 
- </span>     * @property
 
-      * The default height in pixels of the message box's multiline textarea if displayed.
 
-      */
 
-     defaultTextHeight : 75,
 
- <span id='Ext-window-MessageBox-property-minProgressWidth'>    /**
 
- </span>     * @property
 
-      * The minimum width in pixels of the message box if it is a progress-style dialog.  This is useful
 
-      * for setting a different minimum width than text-only dialogs may need.
 
-      */
 
-     minProgressWidth : 250,
 
- <span id='Ext-window-MessageBox-property-minPromptWidth'>    /**
 
- </span>     * @property
 
-      * The minimum width in pixels of the message box if it is a prompt dialog.  This is useful
 
-      * for setting a different minimum width than text-only dialogs may need.
 
-      */
 
-     minPromptWidth: 250,
 
-     //<locale type="object">
 
- <span id='Ext-window-MessageBox-property-buttonText'>    /**
 
- </span>     * @property
 
-      * An object containing the default button text strings that can be overriden for localized language support.
 
-      * Supported properties are: ok, cancel, yes and no.  Generally you should include a locale-specific
 
-      * resource file for handling language support across the framework.
 
-      * Customize the default text like so:
 
-      *
 
-      *     Ext.window.MessageBox.buttonText.yes = "oui"; //french
 
-      */
 
-     buttonText: {
 
-         ok: 'OK',
 
-         yes: 'Yes',
 
-         no: 'No',
 
-         cancel: 'Cancel'
 
-     },
 
-     //</locale>
 
-     buttonIds: [
 
-         'ok', 'yes', 'no', 'cancel'
 
-     ],
 
-     //<locale type="object">
 
-     titleText: {
 
-         confirm: 'Confirm',
 
-         prompt: 'Prompt',
 
-         wait: 'Loading...',
 
-         alert: 'Attention'
 
-     },
 
-     //</locale>
 
-     iconHeight: 35,
 
-     makeButton: function(btnIdx) {
 
-         var btnId = this.buttonIds[btnIdx];
 
-         return new Ext.button.Button({
 
-             handler: this.btnCallback,
 
-             itemId: btnId,
 
-             scope: this,
 
-             text: this.buttonText[btnId],
 
-             minWidth: 75
 
-         });
 
-     },
 
-     btnCallback: function(btn) {
 
-         var me = this,
 
-             value,
 
-             field;
 
-         if (me.cfg.prompt || me.cfg.multiline) {
 
-             if (me.cfg.multiline) {
 
-                 field = me.textArea;
 
-             } else {
 
-                 field = me.textField;
 
-             }
 
-             value = field.getValue();
 
-             field.reset();
 
-         }
 
-         // Important not to have focus remain in the hidden Window; Interferes with DnD.
 
-         btn.blur();
 
-         me.hide();
 
-         me.userCallback(btn.itemId, value, me.cfg);
 
-     },
 
-     hide: function() {
 
-         var me = this;
 
-         me.dd.endDrag();
 
-         me.progressBar.reset();
 
-         me.removeCls(me.cfg.cls);
 
-         me.callParent(arguments);
 
-     },
 
-     initComponent: function() {
 
-         var me = this,
 
-             baseId = me.id,
 
-             i, button,
 
-             tbLayout;
 
-         me.title = '&#160;';
 
-         me.topContainer = new Ext.container.Container({
 
-             layout: 'hbox',
 
-             style: {
 
-                 padding: '10px',
 
-                 overflow: 'hidden'
 
-             },
 
-             items: [
 
-                 me.iconComponent = new Ext.Component({
 
-                     cls: me.baseCls + '-icon',
 
-                     width: 50,
 
-                     height: me.iconHeight
 
-                 }),
 
-                 me.promptContainer = new Ext.container.Container({
 
-                     flex: 1,
 
-                     layout: {
 
-                         type: 'anchor'
 
-                     },
 
-                     items: [
 
-                         me.msg = new Ext.form.field.Display({
 
-                             id: baseId + '-displayfield',
 
-                             cls: me.baseCls + '-text'
 
-                         }),
 
-                         me.textField = new Ext.form.field.Text({
 
-                             id: baseId + '-testfield',
 
-                             anchor: '100%',
 
-                             enableKeyEvents: true,
 
-                             listeners: {
 
-                                 keydown: me.onPromptKey,
 
-                                 scope: me
 
-                             }
 
-                         }),
 
-                         me.textArea = new Ext.form.field.TextArea({
 
-                             id: baseId + '-textarea',
 
-                             anchor: '100%',
 
-                             height: 75
 
-                         })
 
-                     ]
 
-                 })
 
-             ]
 
-         });
 
-         me.progressBar = new Ext.ProgressBar({
 
-             id: baseId + '-progressbar',
 
-             margins: '0 10 0 10'
 
-         });
 
-         me.items = [me.topContainer, me.progressBar];
 
-         // Create the buttons based upon passed bitwise config
 
-         me.msgButtons = [];
 
-         for (i = 0; i < 4; i++) {
 
-             button = me.makeButton(i);
 
-             me.msgButtons[button.itemId] = button;
 
-             me.msgButtons.push(button);
 
-         }
 
-         me.bottomTb = new Ext.toolbar.Toolbar({
 
-             id: baseId + '-toolbar',
 
-             ui: 'footer',
 
-             dock: 'bottom',
 
-             layout: {
 
-                 pack: 'center'
 
-             },
 
-             items: [
 
-                 me.msgButtons[0],
 
-                 me.msgButtons[1],
 
-                 me.msgButtons[2],
 
-                 me.msgButtons[3]
 
-             ]
 
-         });
 
-         me.dockedItems = [me.bottomTb];
 
-         // Get control at Toolbar's finishedLayout call and snag the contentWidth to contribute to our auto width calculation
 
-         tbLayout = me.bottomTb.getLayout();
 
-         tbLayout.finishedLayout = Ext.Function.createInterceptor(tbLayout.finishedLayout, function(ownerContext) {
 
-             me.tbWidth = ownerContext.getProp('contentWidth');
 
-         });
 
-         me.on('close', me.onClose, me);
 
-         me.callParent();
 
-     },
 
-     
 
-     onClose: function(){
 
-         var btn = this.header.child('[type=close]');
 
-         // Give a temporary itemId so it can act like the cancel button
 
-         btn.itemId = 'cancel';
 
-         this.btnCallback(btn);
 
-         delete btn.itemId;
 
-     },
 
-     onPromptKey: function(textField, e) {
 
-         var me = this,
 
-             blur;
 
-         if (e.keyCode === Ext.EventObject.RETURN || e.keyCode === 10) {
 
-             if (me.msgButtons.ok.isVisible()) {
 
-                 blur = true;
 
-                 me.msgButtons.ok.handler.call(me, me.msgButtons.ok);
 
-             } else if (me.msgButtons.yes.isVisible()) {
 
-                 me.msgButtons.yes.handler.call(me, me.msgButtons.yes);
 
-                 blur = true;
 
-             }
 
-             if (blur) {
 
-                 me.textField.blur();
 
-             }
 
-         }
 
-     },
 
-     reconfigure: function(cfg) {
 
-         var me = this,
 
-             buttons = 0,
 
-             hideToolbar = true,
 
-             initialWidth = me.maxWidth,
 
-             oldButtonText = me.buttonText,
 
-             i;
 
-         // Restore default buttonText before reconfiguring.
 
-         me.updateButtonText();
 
-         cfg = cfg || {};
 
-         me.cfg = cfg;
 
-         if (cfg.width) {
 
-             initialWidth = cfg.width;
 
-         }
 
-         // Default to allowing the Window to take focus.
 
-         delete me.defaultFocus;
 
-         // clear any old animateTarget
 
-         me.animateTarget = cfg.animateTarget || undefined;
 
-         // Defaults to modal
 
-         me.modal = cfg.modal !== false;
 
-         // Show the title
 
-         if (cfg.title) {
 
-             me.setTitle(cfg.title||'&#160;');
 
-         }
 
-         // Extract button configs
 
-         if (Ext.isObject(cfg.buttons)) {
 
-             me.buttonText = cfg.buttons;
 
-             buttons = 0;
 
-         } else {
 
-             me.buttonText = cfg.buttonText || me.buttonText;
 
-             buttons = Ext.isNumber(cfg.buttons) ? cfg.buttons : 0;
 
-         }
 
-         // Apply custom-configured buttonText
 
-         // Infer additional buttons from the specified property names in the buttonText object
 
-         buttons = buttons | me.updateButtonText();
 
-         // Restore buttonText. Next run of reconfigure will restore to prototype's buttonText
 
-         me.buttonText = oldButtonText;
 
-         // During the on render, or size resetting layouts, and in subsequent hiding and showing, we need to
 
-         // suspend layouts, and flush at the end when the Window's children are at their final visibility.
 
-         Ext.suspendLayouts();
 
-         me.hidden = false;
 
-         if (!me.rendered) {
 
-             me.width = initialWidth;
 
-             me.render(Ext.getBody());
 
-         } else {
 
-             me.setSize(initialWidth, me.maxHeight);
 
-         }
 
-         // Hide or show the close tool
 
-         me.closable = cfg.closable && !cfg.wait;
 
-         me.header.child('[type=close]').setVisible(cfg.closable !== false);
 
-         // Hide or show the header
 
-         if (!cfg.title && !me.closable) {
 
-             me.header.hide();
 
-         } else {
 
-             me.header.show();
 
-         }
 
-         // Default to dynamic drag: drag the window, not a ghost
 
-         me.liveDrag = !cfg.proxyDrag;
 
-         // wrap the user callback
 
-         me.userCallback = Ext.Function.bind(cfg.callback ||cfg.fn || Ext.emptyFn, cfg.scope || Ext.global);
 
-         // Hide or show the icon Component
 
-         me.setIcon(cfg.icon);
 
-         // Hide or show the message area
 
-         if (cfg.msg) {
 
-             me.msg.setValue(cfg.msg);
 
-             me.msg.show();
 
-         } else {
 
-             me.msg.hide();
 
-         }
 
-         // flush the layout here to pick up
 
-         // height adjustments on the msg field
 
-         Ext.resumeLayouts(true);
 
-         Ext.suspendLayouts();
 
-         // Hide or show the input field
 
-         if (cfg.prompt || cfg.multiline) {
 
-             me.multiline = cfg.multiline;
 
-             if (cfg.multiline) {
 
-                 me.textArea.setValue(cfg.value);
 
-                 me.textArea.setHeight(cfg.defaultTextHeight || me.defaultTextHeight);
 
-                 me.textArea.show();
 
-                 me.textField.hide();
 
-                 me.defaultFocus = me.textArea;
 
-             } else {
 
-                 me.textField.setValue(cfg.value);
 
-                 me.textArea.hide();
 
-                 me.textField.show();
 
-                 me.defaultFocus = me.textField;
 
-             }
 
-         } else {
 
-             me.textArea.hide();
 
-             me.textField.hide();
 
-         }
 
-         // Hide or show the progress bar
 
-         if (cfg.progress || cfg.wait) {
 
-             me.progressBar.show();
 
-             me.updateProgress(0, cfg.progressText);
 
-             if(cfg.wait === true){
 
-                 me.progressBar.wait(cfg.waitConfig);
 
-             }
 
-         } else {
 
-             me.progressBar.hide();
 
-         }
 
-         // Hide or show buttons depending on flag value sent.
 
-         for (i = 0; i < 4; i++) {
 
-             if (buttons & Math.pow(2, i)) {
 
-                 // Default to focus on the first visible button if focus not already set
 
-                 if (!me.defaultFocus) {
 
-                     me.defaultFocus = me.msgButtons[i];
 
-                 }
 
-                 me.msgButtons[i].show();
 
-                 hideToolbar = false;
 
-             } else {
 
-                 me.msgButtons[i].hide();
 
-             }
 
-         }
 
-         // Hide toolbar if no buttons to show
 
-         if (hideToolbar) {
 
-             me.bottomTb.hide();
 
-         } else {
 
-             me.bottomTb.show();
 
-         }
 
-         Ext.resumeLayouts(true);
 
-     },
 
- <span id='Ext-window-MessageBox-method-updateButtonText'>    /**
 
- </span>     * @private
 
-      * Set button text according to current buttonText property object
 
-      * @return {Number} The buttons bitwise flag based upon the button IDs specified in the buttonText property.
 
-      */
 
-     updateButtonText: function() {
 
-         var me = this,
 
-             buttonText = me.buttonText,
 
-             buttons = 0,
 
-             btnId,
 
-             btn;
 
-         for (btnId in buttonText) {
 
-             if (buttonText.hasOwnProperty(btnId)) {
 
-                 btn = me.msgButtons[btnId];
 
-                 if (btn) {
 
-                     if (me.cfg && me.cfg.buttonText) {
 
-                         buttons = buttons | Math.pow(2, Ext.Array.indexOf(me.buttonIds, btnId));
 
-                     }
 
-                     if (btn.text != buttonText[btnId]) {
 
-                         btn.setText(buttonText[btnId]);
 
-                     }
 
-                 }
 
-             }
 
-         }
 
-         return buttons;
 
-     },
 
- <span id='Ext-window-MessageBox-method-show'>    /**
 
- </span>     * Displays a new message box, or reinitializes an existing message box, based on the config options passed in. All
 
-      * display functions (e.g. prompt, alert, etc.) on MessageBox call this function internally, although those calls
 
-      * are basic shortcuts and do not support all of the config options allowed here.
 
-      *
 
-      * Example usage:
 
-      *
 
-      *     Ext.Msg.show({
 
-      *         title: 'Address',
 
-      *         msg: 'Please enter your address:',
 
-      *         width: 300,
 
-      *         buttons: Ext.Msg.OKCANCEL,
 
-      *         multiline: true,
 
-      *         fn: saveAddress,
 
-      *         animateTarget: 'addAddressBtn',
 
-      *         icon: Ext.window.MessageBox.INFO
 
-      *     });
 
-      *
 
-      * @param {Object} config The following config options are supported:
 
-      *
 
-      * @param {String/Ext.dom.Element} config.animateTarget
 
-      * An id or Element from which the message box should animate as it opens and closes.
 
-      *
 
-      * @param {Number} [config.buttons=false]
 
-      * A bitwise button specifier consisting of the sum of any of the following constants:
 
-      *
 
-      *  - Ext.MessageBox.OK
 
-      *  - Ext.MessageBox.YES
 
-      *  - Ext.MessageBox.NO
 
-      *  - Ext.MessageBox.CANCEL
 
-      *
 
-      * Some common combinations have already been predefined:
 
-      *
 
-      *  - Ext.MessageBox.OKCANCEL
 
-      *  - Ext.MessageBox.YESNO
 
-      *  - Ext.MessageBox.YESNOCANCEL
 
-      *
 
-      * Or false to not show any buttons.
 
-      *
 
-      * This may also be specified as an object hash containing custom button text in the same format as the
 
-      * {@link #buttonText} config. Button IDs present as property names will be made visible.
 
-      *
 
-      * @param {Boolean} config.closable
 
-      * False to hide the top-right close button (defaults to true). Note that progress and wait dialogs will ignore this
 
-      * property and always hide the close button as they can only be closed programmatically.
 
-      *
 
-      * @param {String} config.cls
 
-      * A custom CSS class to apply to the message box's container element
 
-      *
 
-      * @param {Number} [config.defaultTextHeight=75]
 
-      * The default height in pixels of the message box's multiline textarea if displayed.
 
-      *
 
-      * @param {Function} config.fn
 
-      * A callback function which is called when the dialog is dismissed either by clicking on the configured buttons, or
 
-      * on the dialog close button, or by pressing the return button to enter input.
 
-      *
 
-      * Progress and wait dialogs will ignore this option since they do not respond to user actions and can only be
 
-      * closed programmatically, so any required function should be called by the same code after it closes the dialog.
 
-      * Parameters passed:
 
-      *
 
-      *  @param {String} config.fn.buttonId The ID of the button pressed, one of:
 
-      *
 
-      * - ok
 
-      * - yes
 
-      * - no
 
-      * - cancel
 
-      *
 
-      *  @param {String} config.fn.text Value of the input field if either `prompt` or `multiline` is true
 
-      *  @param {Object} config.fn.opt The config object passed to show.
 
-      *
 
-      * @param {Object} config.buttonText
 
-      * An object containing string properties which override the system-supplied button text values just for this
 
-      * invocation. The property names are:
 
-      *
 
-      * - ok
 
-      * - yes
 
-      * - no
 
-      * - cancel
 
-      *
 
-      * @param {Object} config.scope
 
-      * The scope (`this` reference) in which the function will be executed.
 
-      *
 
-      * @param {String} config.icon
 
-      * A CSS class that provides a background image to be used as the body icon for the dialog.
 
-      * One can use a predefined icon class:
 
-      *
 
-      *  - Ext.MessageBox.INFO
 
-      *  - Ext.MessageBox.WARNING
 
-      *  - Ext.MessageBox.QUESTION
 
-      *  - Ext.MessageBox.ERROR
 
-      *
 
-      * or use just any `'custom-class'`. Defaults to empty string.
 
-      *
 
-      * @param {String} config.iconCls
 
-      * The standard {@link Ext.window.Window#iconCls} to add an optional header icon (defaults to '')
 
-      *
 
-      * @param {Number} config.maxWidth
 
-      * The maximum width in pixels of the message box (defaults to 600)
 
-      *
 
-      * @param {Number} config.minWidth
 
-      * The minimum width in pixels of the message box (defaults to 100)
 
-      *
 
-      * @param {Boolean} config.modal
 
-      * False to allow user interaction with the page while the message box is displayed (defaults to true)
 
-      *
 
-      * @param {String} config.msg
 
-      * A string that will replace the existing message box body text (defaults to the XHTML-compliant non-breaking space
 
-      * character '&#160;')
 
-      *
 
-      * @param {Boolean} config.multiline
 
-      * True to prompt the user to enter multi-line text (defaults to false)
 
-      *
 
-      * @param {Boolean} config.progress
 
-      * True to display a progress bar (defaults to false)
 
-      *
 
-      * @param {String} config.progressText
 
-      * The text to display inside the progress bar if progress = true (defaults to '')
 
-      *
 
-      * @param {Boolean} config.prompt
 
-      * True to prompt the user to enter single-line text (defaults to false)
 
-      *
 
-      * @param {Boolean} config.proxyDrag
 
-      * True to display a lightweight proxy while dragging (defaults to false)
 
-      *
 
-      * @param {String} config.title
 
-      * The title text
 
-      *
 
-      * @param {String} config.value
 
-      * The string value to set into the active textbox element if displayed
 
-      *
 
-      * @param {Boolean} config.wait
 
-      * True to display a progress bar (defaults to false)
 
-      *
 
-      * @param {Object} config.waitConfig
 
-      * A {@link Ext.ProgressBar#wait} config object (applies only if wait = true)
 
-      *
 
-      * @param {Number} config.width
 
-      * The width of the dialog in pixels
 
-      *
 
-      * @return {Ext.window.MessageBox} this
 
-      */
 
-     show: function(cfg) {
 
-         var me = this;
 
-         me.reconfigure(cfg);
 
-         me.addCls(cfg.cls);
 
-         me.doAutoSize();
 
-         // Set the flag, so that the parent show method performs the show procedure that we need.
 
-         // ie: animation from animTarget, onShow processing and focusing.
 
-         me.hidden = true;
 
-         me.callParent();
 
-         return me;
 
-     },
 
-     onShow: function() {
 
-         this.callParent(arguments);
 
-         this.center();
 
-     },
 
-     doAutoSize: function() {
 
-         var me = this,
 
-             headerVisible = me.header.rendered && me.header.isVisible(),
 
-             footerVisible = me.bottomTb.rendered && me.bottomTb.isVisible(),
 
-             width,
 
-             height;
 
-         if (!Ext.isDefined(me.frameWidth)) {
 
-             me.frameWidth = me.el.getWidth() - me.body.getWidth();
 
-         }
 
-         // Allow per-invocation override of minWidth
 
-         me.minWidth = me.cfg.minWidth || Ext.getClass(this).prototype.minWidth;
 
-         // Width must be max of titleWidth, message+icon width, and total button width
 
-         width = Math.max(
 
-             headerVisible ? me.header.getMinWidth() : 0,                            // title width
 
-             me.cfg.width || me.msg.getWidth() + me.iconComponent.getWidth() + 25,   // msg + icon width + topContainer's layout padding */
 
-             (footerVisible ? me.tbWidth : 0)// total button width
 
-         );
 
-         height = (headerVisible ? me.header.getHeight() : 0) +
 
-             me.topContainer.getHeight() +
 
-             me.progressBar.getHeight() +
 
-             (footerVisible ? me.bottomTb.getHeight() + me.bottomTb.el.getMargin('tb') : 0);
 
-         me.setSize(width + me.frameWidth, height + me.frameWidth);
 
-         return me;
 
-     },
 
-     updateText: function(text) {
 
-         this.msg.setValue(text);
 
-         return this.doAutoSize(true);
 
-     },
 
- <span id='Ext-window-MessageBox-method-setIcon'>    /**
 
- </span>     * Adds the specified icon to the dialog.  By default, the class 'x-messagebox-icon' is applied for default
 
-      * styling, and the class passed in is expected to supply the background image url. Pass in empty string ('')
 
-      * to clear any existing icon. This method must be called before the MessageBox is shown.
 
-      * The following built-in icon classes are supported, but you can also pass in a custom class name:
 
-      *
 
-      *     Ext.window.MessageBox.INFO
 
-      *     Ext.window.MessageBox.WARNING
 
-      *     Ext.window.MessageBox.QUESTION
 
-      *     Ext.window.MessageBox.ERROR
 
-      *
 
-      * @param {String} icon A CSS classname specifying the icon's background image url, or empty string to clear the icon
 
-      * @return {Ext.window.MessageBox} this
 
-      */
 
-     setIcon : function(icon) {
 
-         var me = this;
 
-         me.iconComponent.removeCls(me.messageIconCls);
 
-         if (icon) {
 
-             me.iconComponent.show();
 
-             me.iconComponent.addCls(Ext.baseCSSPrefix + 'dlg-icon');
 
-             me.iconComponent.addCls(me.messageIconCls = icon);
 
-         } else {
 
-             me.iconComponent.removeCls(Ext.baseCSSPrefix + 'dlg-icon');
 
-             me.iconComponent.hide();
 
-         }
 
-         return me;
 
-     },
 
- <span id='Ext-window-MessageBox-method-updateProgress'>    /**
 
- </span>     * Updates a progress-style message box's text and progress bar. Only relevant on message boxes
 
-      * initiated via {@link Ext.window.MessageBox#progress} or {@link Ext.window.MessageBox#wait},
 
-      * or by calling {@link Ext.window.MessageBox#method-show} with progress: true.
 
-      *
 
-      * @param {Number} [value=0] Any number between 0 and 1 (e.g., .5)
 
-      * @param {String} [progressText=''] The progress text to display inside the progress bar.
 
-      * @param {String} [msg] The message box's body text is replaced with the specified string (defaults to undefined
 
-      * so that any existing body text will not get overwritten by default unless a new value is passed in)
 
-      * @return {Ext.window.MessageBox} this
 
-      */
 
-     updateProgress : function(value, progressText, msg){
 
-         this.progressBar.updateProgress(value, progressText);
 
-         if (msg){
 
-             this.updateText(msg);
 
-         }
 
-         return this;
 
-     },
 
-     onEsc: function() {
 
-         if (this.closable !== false) {
 
-             this.callParent(arguments);
 
-         }
 
-     },
 
- <span id='Ext-window-MessageBox-method-confirm'>    /**
 
- </span>     * Displays a confirmation message box with Yes and No buttons (comparable to JavaScript's confirm).
 
-      * If a callback function is passed it will be called after the user clicks either button,
 
-      * and the id of the button that was clicked will be passed as the only parameter to the callback
 
-      * (could also be the top-right close button, which will always report as "cancel").
 
-      *
 
-      * @param {String} title The title bar text
 
-      * @param {String} msg The message box body text
 
-      * @param {Function} [fn] The callback function invoked after the message box is closed.
 
-      * See {@link #method-show} method for details.
 
-      * @param {Object} [scope=window] The scope (`this` reference) in which the callback is executed.
 
-      * @return {Ext.window.MessageBox} this
 
-      */
 
-     confirm: function(cfg, msg, fn, scope) {
 
-         if (Ext.isString(cfg)) {
 
-             cfg = {
 
-                 title: cfg,
 
-                 icon: this.QUESTION,
 
-                 msg: msg,
 
-                 buttons: this.YESNO,
 
-                 callback: fn,
 
-                 scope: scope
 
-             };
 
-         }
 
-         return this.show(cfg);
 
-     },
 
- <span id='Ext-window-MessageBox-method-prompt'>    /**
 
- </span>     * Displays a message box with OK and Cancel buttons prompting the user to enter some text (comparable to JavaScript's prompt).
 
-      * The prompt can be a single-line or multi-line textbox.  If a callback function is passed it will be called after the user
 
-      * clicks either button, and the id of the button that was clicked (could also be the top-right
 
-      * close button, which will always report as "cancel") and the text that was entered will be passed as the two parameters to the callback.
 
-      *
 
-      * @param {String} title The title bar text
 
-      * @param {String} msg The message box body text
 
-      * @param {Function} [fn] The callback function invoked after the message box is closed.
 
-      * See {@link #method-show} method for details.
 
-      * @param {Object} [scope=window] The scope (`this` reference) in which the callback is executed.
 
-      * @param {Boolean/Number} [multiline=false] True to create a multiline textbox using the defaultTextHeight
 
-      * property, or the height in pixels to create the textbox/
 
-      * @param {String} [value=''] Default value of the text input element
 
-      * @return {Ext.window.MessageBox} this
 
-      */
 
-     prompt : function(cfg, msg, fn, scope, multiline, value){
 
-         if (Ext.isString(cfg)) {
 
-             cfg = {
 
-                 prompt: true,
 
-                 title: cfg,
 
-                 minWidth: this.minPromptWidth,
 
-                 msg: msg,
 
-                 buttons: this.OKCANCEL,
 
-                 callback: fn,
 
-                 scope: scope,
 
-                 multiline: multiline,
 
-                 value: value
 
-             };
 
-         }
 
-         return this.show(cfg);
 
-     },
 
- <span id='Ext-window-MessageBox-method-wait'>    /**
 
- </span>     * Displays a message box with an infinitely auto-updating progress bar.  This can be used to block user
 
-      * interaction while waiting for a long-running process to complete that does not have defined intervals.
 
-      * You are responsible for closing the message box when the process is complete.
 
-      *
 
-      * @param {String} msg The message box body text
 
-      * @param {String} [title] The title bar text
 
-      * @param {Object} [config] A {@link Ext.ProgressBar#wait} config object
 
-      * @return {Ext.window.MessageBox} this
 
-      */
 
-     wait : function(cfg, title, config){
 
-         if (Ext.isString(cfg)) {
 
-             cfg = {
 
-                 title : title,
 
-                 msg : cfg,
 
-                 closable: false,
 
-                 wait: true,
 
-                 modal: true,
 
-                 minWidth: this.minProgressWidth,
 
-                 waitConfig: config
 
-             };
 
-         }
 
-         return this.show(cfg);
 
-     },
 
- <span id='Ext-window-MessageBox-method-alert'>    /**
 
- </span>     * Displays a standard read-only message box with an OK button (comparable to the basic JavaScript alert prompt).
 
-      * If a callback function is passed it will be called after the user clicks the button, and the
 
-      * id of the button that was clicked will be passed as the only parameter to the callback
 
-      * (could also be the top-right close button, which will always report as "cancel").
 
-      *
 
-      * @param {String} title The title bar text
 
-      * @param {String} msg The message box body text
 
-      * @param {Function} [fn] The callback function invoked after the message box is closed.
 
-      * See {@link #method-show} method for details.
 
-      * @param {Object} [scope=window] The scope (<code>this</code> reference) in which the callback is executed.
 
-      * @return {Ext.window.MessageBox} this
 
-      */
 
-     alert: function(cfg, msg, fn, scope) {
 
-         if (Ext.isString(cfg)) {
 
-             cfg = {
 
-                 title : cfg,
 
-                 msg : msg,
 
-                 buttons: this.OK,
 
-                 fn: fn,
 
-                 scope : scope,
 
-                 minWidth: this.minWidth
 
-             };
 
-         }
 
-         return this.show(cfg);
 
-     },
 
- <span id='Ext-window-MessageBox-method-progress'>    /**
 
- </span>     * Displays a message box with a progress bar.
 
-      *
 
-      * You are responsible for updating the progress bar as needed via {@link Ext.window.MessageBox#updateProgress}
 
-      * and closing the message box when the process is complete.
 
-      *
 
-      * @param {String} title The title bar text
 
-      * @param {String} msg The message box body text
 
-      * @param {String} [progressText=''] The text to display inside the progress bar
 
-      * @return {Ext.window.MessageBox} this
 
-      */
 
-     progress : function(cfg, msg, progressText){
 
-         if (Ext.isString(cfg)) {
 
-             cfg = {
 
-                 title: cfg,
 
-                 msg: msg,
 
-                 progress: true,
 
-                 progressText: progressText
 
-             };
 
-         }
 
-         return this.show(cfg);
 
-     }
 
- }, function() {
 
- <span id='Ext-MessageBox'>    /**
 
- </span>     * @class Ext.MessageBox
 
-      * @alternateClassName Ext.Msg
 
-      * @extends Ext.window.MessageBox
 
-      * @singleton
 
-      * Singleton instance of {@link Ext.window.MessageBox}.
 
-      */
 
-     Ext.MessageBox = Ext.Msg = new this();
 
- });</pre>
 
- </body>
 
- </html>
 
 
  |