--- /dev/null
+/**
+ * @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);
+ }
+ }
+});
\ No newline at end of file