/** * @class Ext.Panel */Ext.define('Ext.panel.Resizable', { override: 'Ext.Panel', config: { /** * @cfg {Object} [resizable] * A configuration for a {@link Ext.panel.Resizer Resizer}. * * **IMPORTANT**: To use this config, the application must require the following * class: * * requires: [ * 'Ext.panel.Resizer' * ] * * @since 6.5.0 */ resizable: null }, /** * @event beforeresizedragstart * Fires before resize starts. Return `false` to cancel dragging. * @param {Ext.Panel} this * @param {Object} context * @param {String} context.edge The edge being resized. * @param {Ext.event.Event} context.event The event. * * @since 6.5.0 */ /** * @event resizedragstart * Fires when the resize starts. * @param {Ext.Panel} this * @param {Object} context * @param {String} context.edge The edge being resized. * @param {Ext.event.Event} context.event The event. * * @since 6.5.0 */ /** * @event resizedrag * Fires for each tick while a drag is active. * @param {Ext.Panel} this * @param {Object} context * @param {String} context.edge The edge being resized. * @param {Ext.event.Event} context.event The event. * @param {Number} context.width The current resized width in pixels. * @param {Number} context.height The current resized height in pixels. * * @since 6.5.0 */ /** * @event resizedragend * Fires when the drag resize is complete. * @param {Ext.Panel} this * @param {Object} context * @param {String} context.edge The edge being resized. * @param {Ext.event.Event} context.event The event. * @param {Number} context.width The final resized width in pixels. * @param {Number} context.height The final resized height in pixels. * * @since 6.5.0 */ /** * @event resizedragcancel * Fires when the drag resize is cancelled. * @param {Ext.Panel} this * @param {Object} context * @param {String} context.edge The edge being resized. * @param {Ext.event.Event} context.event The event. * * @since 6.5.0 */ /** * @property {Boolean} hasResizable * `true` if this panel has the resizable override added. * * @since 6.5.0 */ hasResizable: true, defaultResizerCls: 'Ext.panel.Resizer', applyResizable: function(resizable) { if (resizable) { if (resizable === true) { resizable = {}; } resizable = Ext.create(Ext.apply({ xclass: this.defaultResizerCls, target: this, ui: this.getUi() }, resizable)); } return resizable; }, updateResizable: function(resizable, oldResizable) { if (oldResizable) { oldResizable.destroy(); } }, doDestroy: function() { this.setResizable(null); this.callParent(); }, privates: { onResizableUiChange: function(ui, oldUi) { var resizable = this.getResizable(); if (resizable) { resizable.setUi(ui); } } }});