- alias: ['layout.tip'],
-
- extend: 'Ext.layout.component.Dock',
-
- /* End Definitions */
-
- type: 'tip',
-
- onLayout: function(width, height) {
- var me = this,
- owner = me.owner,
- el = owner.el,
- minWidth,
- maxWidth,
- naturalWidth,
- constrainedWidth,
- xy = el.getXY();
-
- // Position offscreen so the natural width is not affected by the viewport's right edge
- el.setXY([-9999,-9999]);
-
- // Calculate initial layout
- this.callParent(arguments);
-
- // Handle min/maxWidth for auto-width tips
- if (!Ext.isNumber(width)) {
- minWidth = owner.minWidth;
- maxWidth = owner.maxWidth;
- // IE6/7 in strict mode have a problem doing an autoWidth
- if (Ext.isStrict && (Ext.isIE6 || Ext.isIE7)) {
- constrainedWidth = me.doAutoWidth();
- } else {
- naturalWidth = el.getWidth();
- }
- if (naturalWidth < minWidth) {
- constrainedWidth = minWidth;
- }
- else if (naturalWidth > maxWidth) {
- constrainedWidth = maxWidth;
- }
- if (constrainedWidth) {
- this.callParent([constrainedWidth, height]);
- }
- }
-
- // Restore position
- el.setXY(xy);