X-Git-Url: http://git.ithinksw.org/extjs.git/blobdiff_plain/2e847cf21b8ab9d15fa167b315ca5b2fa92638fc..c8256059947f3aa8f5b0a9a2acf55e2142bb4742:/docs/source/AnchorLayout.html diff --git a/docs/source/AnchorLayout.html b/docs/source/AnchorLayout.html index fe8fc8d5..ffbceeed 100644 --- a/docs/source/AnchorLayout.html +++ b/docs/source/AnchorLayout.html @@ -1,12 +1,18 @@ - - - - The source code - - - - -
/** + + + + The source code + + + + +
/*!
+ * Ext JS Library 3.2.1
+ * Copyright(c) 2006-2010 Ext JS, Inc.
+ * licensing@extjs.com
+ * http://www.extjs.com/license
+ */
+
/** * @class Ext.layout.AnchorLayout * @extends Ext.layout.ContainerLayout *

This is a layout that enables anchoring of contained elements relative to the container's dimensions. @@ -93,8 +99,19 @@ anchor: '-50 75%' */ // private - monitorResize:true, - type: 'anchor', + monitorResize : true, + + type : 'anchor', + +

/** + * @cfg {String} defaultAnchor + * + * default anchor for all child container items applied if no anchor or specific width is set on the child item. Defaults to '100%'. + * + */ + defaultAnchor : '100%', + + parseAnchorRE : /^(r|right|b|bottom)$/i, getLayoutTargetSize : function() { var target = this.container.getLayoutTarget(); @@ -130,10 +147,16 @@ anchor: '-50 75%' ah = ct.initialConfig.height; } - var cs = this.getRenderedItems(ct), len = cs.length, i, c, a, cw, ch, el, vs; + var cs = this.getRenderedItems(ct), len = cs.length, i, c, a, cw, ch, el, vs, boxes = []; for(i = 0; i < len; i++){ c = cs[i]; el = c.getPositionEl(); + + // If a child container item has no anchor and no specific width, set the child to the default anchor size + if (!c.anchor && c.items && !Ext.isNumber(c.width) && !(Ext.isIE6 && Ext.isStrict)){ + c.anchor = this.defaultAnchor; + } + if(c.anchor){ a = c.anchorSpec; if(!a){ // cache all anchor values @@ -147,17 +170,26 @@ anchor: '-50 75%' ch = a.bottom ? this.adjustHeightAnchor(a.bottom(h) - el.getMargins('tb'), c) : undefined; if(cw || ch){ - c.setSize(cw || undefined, ch || undefined); + boxes.push({ + comp: c, + width: cw || undefined, + height: ch || undefined + }); } } } + for (i = 0, len = boxes.length; i < len; i++) { + c = boxes[i]; + c.comp.setSize(c.width, c.height); + } }, // private parseAnchor : function(a, start, cstart){ if(a && a != 'none'){ var last; - if(/^(r|right|b|bottom)$/i.test(a)){ // standard anchor + // standard anchor + if(this.parseAnchorRE.test(a)){ var diff = cstart - start; return function(v){ if(v !== last){ @@ -165,17 +197,19 @@ anchor: '-50 75%' return v - diff; } } + // percentage }else if(a.indexOf('%') != -1){ - var ratio = parseFloat(a.replace('%', ''))*.01; // percentage + var ratio = parseFloat(a.replace('%', ''))*.01; return function(v){ if(v !== last){ last = v; return Math.floor(v*ratio); } } + // simple offset adjustment }else{ a = parseInt(a, 10); - if(!isNaN(a)){ // simple offset adjustment + if(!isNaN(a)){ return function(v){ if(v !== last){ last = v; @@ -204,6 +238,6 @@ anchor: '-50 75%' */ }); Ext.Container.LAYOUTS['anchor'] = Ext.layout.AnchorLayout; -
- +
+ \ No newline at end of file