/**
* @private
* @class Ext.layout.component.field.Trigger
* @extends Ext.layout.component.field.Field
* Layout class for {@link Ext.form.field.Trigger} fields. Adjusts the input field size to accommodate
* the trigger button(s).
* @private
*/
Ext.define('Ext.layout.component.field.Trigger', {
/* Begin Definitions */
alias: ['layout.triggerfield'],
extend: 'Ext.layout.component.field.Field',
/* End Definitions */
type: 'triggerfield',
sizeBodyContents: function(width, height) {
var me = this,
owner = me.owner,
inputEl = owner.inputEl,
triggerWrap = owner.triggerWrap,
triggerWidth = owner.getTriggerWidth();
// If we or our ancestor is hidden, we can get a triggerWidth calculation
// of 0. We don't want to resize in this case.
if (owner.hideTrigger || owner.readOnly || triggerWidth > 0) {
// Decrease the field's width by the width of the triggers. Both the field and the triggerWrap
// are floated left in CSS so they'll stack up side by side.
me.setElementSize(inputEl, Ext.isNumber(width) ? width - triggerWidth : width);
// Explicitly set the triggerWrap's width, to prevent wrapping
triggerWrap.setWidth(triggerWidth);
}
}
});