" roo-layout-inactive-content",
id: config.id||el
};
- if (this.iframe) {
+ if (config.iframe) {
elcfg.cn = [
{
tag : 'iframe',
- style : 'border 0px',
+ style : 'border: 0px',
src : 'about:blank'
}
];
}
this.el = Roo.DomHelper.append(document.body, elcfg , true);
- if (this.iframe) {
+ if (config.iframe) {
this.iframeEl = this.el.select('iframe',true).first();
}
tabTip : '',
iframe : false,
+ iframeEl : false,
setRegion : function(region){
this.region = region;
this.el.setSize(width, height);
}
var size = this.adjustForComponents(width, height);
+ if (this.iframe) {
+ this.iframeEl.setSize(width,height);
+ }
+
this.resizeEl.setSize(this.autoWidth ? "auto" : size.width, this.autoHeight ? "auto" : size.height);
this.fireEvent('resize', this, size.width, size.height);
+
+
}
},
"desc" : "True for this panel to adjust its size to fit when the region resizes (defaults to false)",
"memberOf" : ""
},
+ {
+ "name" : "iframe",
+ "type" : "Boolean",
+ "desc" : "contents are an iframe - makes showing remote sources/CSS feasible..",
+ "memberOf" : ""
+ },
{
"name" : "listeners",
"type" : "Object",
{
"name" : "load",
"type" : "function",
- "desc" : "Loads this content panel immediately with content from XHR. Note: to delay loading until the panel is activated, use {@link #setUrl}.",
+ "desc" : "Loads this content panel immediately with content from XHR. Note: to delay loading until the panel is activated, use {@link #setUrl}.\nDoes not work with IFRAME contents",
"sig" : "(url, params, callback, discardUrl)",
"static" : false,
"memberOf" : ""
{
"name" : "setContent",
"type" : "function",
- "desc" : "Updates this panel's element",
+ "desc" : "Updates this panel's element (not for iframe)",
"sig" : "(content, loadScripts)",
"static" : false,
"memberOf" : ""
"desc" : "The grid for this panel",
"memberOf" : ""
},
+ {
+ "name" : "iframe",
+ "type" : "Boolean",
+ "desc" : "contents are an iframe - makes showing remote sources/CSS feasible..",
+ "memberOf" : "Roo.bootstrap.panel.Content"
+ },
{
"name" : "listeners",
"type" : "Object",
{
"name" : "load",
"type" : "function",
- "desc" : "Loads this content panel immediately with content from XHR. Note: to delay loading until the panel is activated, use {@link #setUrl}.",
+ "desc" : "Loads this content panel immediately with content from XHR. Note: to delay loading until the panel is activated, use {@link #setUrl}.\nDoes not work with IFRAME contents",
"sig" : "(url, params, callback, discardUrl)",
"static" : false,
"memberOf" : "Roo.bootstrap.panel.Content"
{
"name" : "setContent",
"type" : "function",
- "desc" : "Updates this panel's element",
+ "desc" : "Updates this panel's element (not for iframe)",
"sig" : "(content, loadScripts)",
"static" : false,
"memberOf" : "Roo.bootstrap.panel.Content"
"desc" : "True for this panel to adjust its size to fit when the region resizes (defaults to false)",
"memberOf" : "Roo.bootstrap.panel.Content"
},
+ {
+ "name" : "iframe",
+ "type" : "Boolean",
+ "desc" : "contents are an iframe - makes showing remote sources/CSS feasible..",
+ "memberOf" : "Roo.bootstrap.panel.Content"
+ },
{
"name" : "listeners",
"type" : "Object",
{
"name" : "load",
"type" : "function",
- "desc" : "Loads this content panel immediately with content from XHR. Note: to delay loading until the panel is activated, use {@link #setUrl}.",
+ "desc" : "Loads this content panel immediately with content from XHR. Note: to delay loading until the panel is activated, use {@link #setUrl}.\nDoes not work with IFRAME contents",
"sig" : "(url, params, callback, discardUrl)",
"static" : false,
"memberOf" : "Roo.bootstrap.panel.Content"
{
"name" : "setContent",
"type" : "function",
- "desc" : "Updates this panel's element",
+ "desc" : "Updates this panel's element (not for iframe)",
"sig" : "(content, loadScripts)",
"static" : false,
"memberOf" : "Roo.bootstrap.panel.Content"
* @cfg {String/Object} params When used with {@link #url}, calls {@link #setUrl} with this value
* @cfg {Boolean} loadOnce When used with {@link #url}, calls {@link #setUrl} with this value
* @cfg {String} content Raw content to fill content panel with (uses setContent on construction.)
+ * @cfg {Boolean} iframe contents are an iframe - makes showing remote sources/CSS feasible..
* @cfg {Boolean} badges render the badges
* @cfg {String} cls extra classes to use
* @cfg {String} background (primary|secondary|success|info|warning|danger|light|dark)
</span><span class="jsdoc-string">" roo-layout-inactive-content"</span><span class="jsdoc-syntax">,
</span><span class="jsdoc-var">id</span><span class="jsdoc-syntax">: </span><span class="jsdoc-var">config.id</span><span class="jsdoc-syntax">||</span><span class="jsdoc-var">el
</span><span class="jsdoc-syntax">};
+ </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.iframe</span><span class="jsdoc-syntax">) {
+ </span><span class="jsdoc-var">elcfg.cn </span><span class="jsdoc-syntax">= [
+ {
+ </span><span class="jsdoc-var">tag </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'iframe'</span><span class="jsdoc-syntax">,
+ </span><span class="jsdoc-var">style </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'border 0px'</span><span class="jsdoc-syntax">,
+ </span><span class="jsdoc-var">src </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">'about:blank'
+ </span><span class="jsdoc-syntax">}
+ ];
+ }
+
</span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">config.html</span><span class="jsdoc-syntax">) {
</span><span class="jsdoc-var">elcfg.html </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">config.html</span><span class="jsdoc-syntax">;
}
</span><span class="jsdoc-var">this.el </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">Roo.DomHelper.append</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">document.body</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">elcfg </span><span class="jsdoc-syntax">, </span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">);
+ </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.iframe</span><span class="jsdoc-syntax">) {
+ </span><span class="jsdoc-var">this.iframeEl </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.el.select</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">'iframe'</span><span class="jsdoc-syntax">,</span><span class="jsdoc-keyword">true</span><span class="jsdoc-syntax">)</span><span class="jsdoc-var">.first</span><span class="jsdoc-syntax">();
+ }
+
}
}
</span><span class="jsdoc-var">this.closable </span><span class="jsdoc-syntax">= </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">;
- </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.autoScroll</span><span class="jsdoc-syntax">){
+ </span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.autoScroll </span><span class="jsdoc-syntax">&& !</span><span class="jsdoc-var">this.iframe</span><span class="jsdoc-syntax">){
</span><span class="jsdoc-var">this.resizeEl.setStyle</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">"overflow"</span><span class="jsdoc-syntax">, </span><span class="jsdoc-string">"auto"</span><span class="jsdoc-syntax">);
} </span><span class="jsdoc-keyword">else </span><span class="jsdoc-syntax">{
</span><span class="jsdoc-comment">// fix randome scrolling
</span><span class="jsdoc-var">tabTip </span><span class="jsdoc-syntax">: </span><span class="jsdoc-string">''</span><span class="jsdoc-syntax">,
+ </span><span class="jsdoc-var">iframe </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">false</span><span class="jsdoc-syntax">,
+
</span><span class="jsdoc-var">setRegion </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">region</span><span class="jsdoc-syntax">){
</span><span class="jsdoc-var">this.region </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">region</span><span class="jsdoc-syntax">;
</span><span class="jsdoc-var">this.setActiveClass</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">region </span><span class="jsdoc-syntax">&& !</span><span class="jsdoc-var">this.background</span><span class="jsdoc-syntax">);
</span><span class="jsdoc-keyword">return true</span><span class="jsdoc-syntax">;
},
</span><span class="jsdoc-comment">/**
- * Updates this panel's element
+ * Updates this panel's element (not for iframe)
* @param {String} content The new content
* @param {Boolean} loadScripts (optional) true to look for and process scripts
*/
</span><span class="jsdoc-var">setContent </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">content</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">loadScripts</span><span class="jsdoc-syntax">){
+ </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.iframe</span><span class="jsdoc-syntax">) {
+ </span><span class="jsdoc-keyword">return</span><span class="jsdoc-syntax">;
+ }
+
</span><span class="jsdoc-var">this.el.update</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">content</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">loadScripts</span><span class="jsdoc-syntax">);
},
* @return {Roo.UpdateManager} The UpdateManager
*/
</span><span class="jsdoc-var">getUpdateManager </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
+ </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.iframe</span><span class="jsdoc-syntax">) {
+ </span><span class="jsdoc-keyword">return false</span><span class="jsdoc-syntax">;
+ }
</span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this.el.getUpdateManager</span><span class="jsdoc-syntax">();
},
</span><span class="jsdoc-comment">/**
* Loads this content panel immediately with content from XHR. Note: to delay loading until the panel is activated, use {@link #setUrl}.
+ * Does not work with IFRAME contents
* @param {Object/String/Function} url The url for this request or a function to call to get the url or a config object containing any of the following options:
<pre><code>
panel.load({
scripts: false
});
</code></pre>
+
* The only required property is <i>url</i>. The optional properties <i>nocache</i>, <i>text</i> and <i>scripts</i>
* are shorthand for <i>disableCaching</i>, <i>indicatorText</i> and <i>loadScripts</i> and are used to set their associated property on this panel UpdateManager instance.
* @param {String/Object} params (optional) The parameters to pass as either a URL encoded string "param1=1&amp;param2=2" or an object {param1: 1, param2: 2}
* @return {Roo.ContentPanel} this
*/
</span><span class="jsdoc-var">load </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(){
+
+ </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.iframe</span><span class="jsdoc-syntax">) {
+ </span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">;
+ }
+
</span><span class="jsdoc-keyword">var </span><span class="jsdoc-var">um </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">this.el.getUpdateManager</span><span class="jsdoc-syntax">();
</span><span class="jsdoc-var">um.update.apply</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">um</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">arguments</span><span class="jsdoc-syntax">);
</span><span class="jsdoc-keyword">return </span><span class="jsdoc-var">this</span><span class="jsdoc-syntax">;
* @param {String/Function} url The URL to load the content from or a function to call to get the URL
* @param {String/Object} params (optional) The string params for the update call or an object of the params. See {@link Roo.UpdateManager#update} for more details. (Defaults to null)
* @param {Boolean} loadOnce (optional) Whether to only load the content once. If this is false it makes the Ajax call every time this panel is activated. (Defaults to false)
- * @return {Roo.UpdateManager} The UpdateManager
+ * @return {Roo.UpdateManager|Boolean} The UpdateManager or false if IFRAME
*/
</span><span class="jsdoc-var">setUrl </span><span class="jsdoc-syntax">: </span><span class="jsdoc-keyword">function</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">url</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">params</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">loadOnce</span><span class="jsdoc-syntax">){
+ </span><span class="jsdoc-keyword">if </span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.iframe</span><span class="jsdoc-syntax">) {
+ </span><span class="jsdoc-var">this.iframeEl.dom.src </span><span class="jsdoc-syntax">= </span><span class="jsdoc-var">url</span><span class="jsdoc-syntax">;
+ </span><span class="jsdoc-keyword">return false</span><span class="jsdoc-syntax">;
+ }
+
</span><span class="jsdoc-keyword">if</span><span class="jsdoc-syntax">(</span><span class="jsdoc-var">this.refreshDelegate</span><span class="jsdoc-syntax">){
</span><span class="jsdoc-var">this.removeListener</span><span class="jsdoc-syntax">(</span><span class="jsdoc-string">"activate"</span><span class="jsdoc-syntax">, </span><span class="jsdoc-var">this.refreshDelegate</span><span class="jsdoc-syntax">);
}
"memberOf" : "Roo.bootstrap.panel.Content",
"optvals" : []
},
+ {
+ "name" : "iframe",
+ "type" : "Boolean",
+ "desc" : "contents are an iframe - makes showing remote sources/CSS feasible..",
+ "memberOf" : "Roo.bootstrap.panel.Content",
+ "optvals" : []
+ },
{
"name" : "cls",
"type" : "String",
"returns" : [
{
"name" : "",
- "type" : "Roo.UpdateManager",
- "desc" : "The UpdateManager"
+ "type" : "Roo.UpdateManager|Boolean",
+ "desc" : "The UpdateManager or false if IFRAME"
}
]
},
},
{
"name" : "load",
- "desc" : "Loads this content panel immediately with content from XHR. Note: to delay loading until the panel is activated, use {@link #setUrl}.",
+ "desc" : "Loads this content panel immediately with content from XHR. Note: to delay loading until the panel is activated, use {@link #setUrl}.\nDoes not work with IFRAME contents",
"isStatic" : false,
"isConstructor" : false,
"isPrivate" : false,
},
{
"name" : "setContent",
- "desc" : "Updates this panel's element",
+ "desc" : "Updates this panel's element (not for iframe)",
"isStatic" : false,
"isConstructor" : false,
"isPrivate" : false,
"memberOf" : "Roo.bootstrap.panel.Content",
"optvals" : []
},
+ {
+ "name" : "iframe",
+ "type" : "Boolean",
+ "desc" : "contents are an iframe - makes showing remote sources/CSS feasible..",
+ "memberOf" : "Roo.bootstrap.panel.Content",
+ "optvals" : []
+ },
{
"name" : "cls",
"type" : "String",
"returns" : [
{
"name" : "",
- "type" : "Roo.UpdateManager",
- "desc" : "The UpdateManager"
+ "type" : "Roo.UpdateManager|Boolean",
+ "desc" : "The UpdateManager or false if IFRAME"
}
]
},
},
{
"name" : "load",
- "desc" : "Loads this content panel immediately with content from XHR. Note: to delay loading until the panel is activated, use {@link #setUrl}.",
+ "desc" : "Loads this content panel immediately with content from XHR. Note: to delay loading until the panel is activated, use {@link #setUrl}.\nDoes not work with IFRAME contents",
"isStatic" : false,
"isConstructor" : false,
"isPrivate" : false,
},
{
"name" : "setContent",
- "desc" : "Updates this panel's element",
+ "desc" : "Updates this panel's element (not for iframe)",
"isStatic" : false,
"isConstructor" : false,
"isPrivate" : false,
"memberOf" : "Roo.bootstrap.panel.Content",
"optvals" : []
},
+ {
+ "name" : "iframe",
+ "type" : "Boolean",
+ "desc" : "contents are an iframe - makes showing remote sources/CSS feasible..",
+ "memberOf" : "Roo.bootstrap.panel.Content",
+ "optvals" : []
+ },
{
"name" : "cls",
"type" : "String",
"returns" : [
{
"name" : "",
- "type" : "Roo.UpdateManager",
- "desc" : "The UpdateManager"
+ "type" : "Roo.UpdateManager|Boolean",
+ "desc" : "The UpdateManager or false if IFRAME"
}
]
},
},
{
"name" : "load",
- "desc" : "Loads this content panel immediately with content from XHR. Note: to delay loading until the panel is activated, use {@link #setUrl}.",
+ "desc" : "Loads this content panel immediately with content from XHR. Note: to delay loading until the panel is activated, use {@link #setUrl}.\nDoes not work with IFRAME contents",
"isStatic" : false,
"isConstructor" : false,
"isPrivate" : false,
},
{
"name" : "setContent",
- "desc" : "Updates this panel's element",
+ "desc" : "Updates this panel's element (not for iframe)",
"isStatic" : false,
"isConstructor" : false,
"isPrivate" : false,
" roo-layout-inactive-content",
id: config.id||el
};
- if (this.iframe) {
+ if (config.iframe) {
elcfg.cn = [
{
tag : 'iframe',
- style : 'border 0px',
+ style : 'border: 0px',
src : 'about:blank'
}
];
}
this.el = Roo.DomHelper.append(document.body, elcfg , true);
- if (this.iframe) {
+ if (config.iframe) {
this.iframeEl = this.el.select('iframe',true).first();
}
tabTip : '',
iframe : false,
+ iframeEl : false,
setRegion : function(region){
this.region = region;
this.el.setSize(width, height);
}
var size = this.adjustForComponents(width, height);
+ if (this.iframe) {
+ this.iframeEl.setSize(width,height);
+ }
+
this.resizeEl.setSize(this.autoWidth ? "auto" : size.width, this.autoHeight ? "auto" : size.height);
this.fireEvent('resize', this, size.width, size.height);
+
+
}
},
Roo.namespace("Roo.bootstrap.panel");
// Roo/bootstrap/panel/Content.js
Roo.bootstrap.panel.Content=function(A){this.tpl=A.tpl||false;var el=A.el;var B=A.content;if(A.autoCreate){el=Roo.id();}this.el=Roo.get(el);if(!this.el&&A&&A.autoCreate){if(typeof A.autoCreate=="object"){if(!A.autoCreate.id){A.autoCreate.id=A.id||el;}this.el=Roo.DomHelper.append(document.body,A.autoCreate,true);
-}else{var C={tag:"div",cls:(A.cls||'')+(A.background?' bg-'+A.background:'')+" roo-layout-inactive-content",id:A.id||el};if(this.iframe){C.cn=[{tag:'iframe',style:'border 0px',src:'about:blank'}];}if(A.html){C.html=A.html;}this.el=Roo.DomHelper.append(document.body,C,true);
-if(this.iframe){this.iframeEl=this.el.select('iframe',true).first();}}}this.closable=false;this.loaded=false;this.active=false;if(A.toolbar&&!A.toolbar.el&&A.toolbar.xtype){this.toolbar=new A.toolbar.xns[A.toolbar.xtype](A.toolbar);this.wrapEl=this.el;var ti=[];
+}else{var C={tag:"div",cls:(A.cls||'')+(A.background?' bg-'+A.background:'')+" roo-layout-inactive-content",id:A.id||el};if(A.iframe){C.cn=[{tag:'iframe',style:'border: 0px',src:'about:blank'}];}if(A.html){C.html=A.html;}this.el=Roo.DomHelper.append(document.body,C,true);
+if(A.iframe){this.iframeEl=this.el.select('iframe',true).first();}}}this.closable=false;this.loaded=false;this.active=false;if(A.toolbar&&!A.toolbar.el&&A.toolbar.xtype){this.toolbar=new A.toolbar.xns[A.toolbar.xtype](A.toolbar);this.wrapEl=this.el;var ti=[];
if(A.toolbar.items){ti=A.toolbar.items;delete A.toolbar.items;}var D=[];this.toolbar.render(this.wrapEl,'before');for(var i=0;i<ti.length;i++){D.push(this.toolbar.addxtype(Roo.apply({},ti[i])));}this.toolbar.items=D;this.toolbar.el.insertBefore(this.wrapEl.dom.firstChild);
delete A.toolbar;}if(typeof A=="string"){this.title=A;}else{Roo.apply(this,A);}if(this.resizeEl){this.resizeEl=Roo.get(this.resizeEl,true);}else{this.resizeEl=this.el;}this.addEvents({"activate":true,"deactivate":true,"resize":true,"render":true});if(this.autoScroll&&!this.iframe){this.resizeEl.setStyle("overflow","auto");
}else{}B=B||this.content;if(B){this.setContent(B);}if(A&&A.url){this.setUrl(this.url,this.params,this.loadOnce);}Roo.bootstrap.panel.Content.superclass.constructor.call(this);if(this.view&&typeof(this.view.xtype)!='undefined'){this.view.el=this.el.appendChild(document.createElement("div"));
-this.view=Roo.factory(this.view);this.view.render&&this.view.render(false,'');}this.fireEvent('render',this);};Roo.extend(Roo.bootstrap.panel.Content,Roo.bootstrap.Component,{cls:'',background:'',tabTip:'',iframe:false,setRegion:function(A){this.region=A;
+this.view=Roo.factory(this.view);this.view.render&&this.view.render(false,'');}this.fireEvent('render',this);};Roo.extend(Roo.bootstrap.panel.Content,Roo.bootstrap.Component,{cls:'',background:'',tabTip:'',iframe:false,iframeEl:false,setRegion:function(A){this.region=A;
this.setActiveClass(A&&!this.background);},setActiveClass:function(A){if(A){this.el.replaceClass("roo-layout-inactive-content","roo-layout-active-content");this.el.setStyle('position','relative');}else{this.el.replaceClass("roo-layout-active-content","roo-layout-inactive-content");
this.el.setStyle('position','absolute');}},getToolbar:function(){return this.toolbar;},setActiveState:function(A){this.active=A;this.setActiveClass(A);if(!A){if(this.fireEvent("deactivate",this)===false){return false;}return true;}this.fireEvent("activate",this);
return true;},setContent:function(A,B){if(this.iframe){return;}this.el.update(A,B);},ignoreResize:function(w,h){if(this.lastSize&&this.lastSize.width==w&&this.lastSize.height==h){return true;}else{this.lastSize={width:w,height:h};return false;}},getUpdateManager:function(){if(this.iframe){return false;
}this.refreshDelegate=this._handleRefresh.createDelegate(this,[A,B,C]);this.on("activate",this.refreshDelegate);return this.el.getUpdateManager();},_handleRefresh:function(A,B,C){if(!C||!this.loaded){var D=this.el.getUpdateManager();D.update(A,B,this._setLoaded.createDelegate(this));
}},_setLoaded:function(){this.loaded=true;},getId:function(){return this.el.id;},getEl:function(){return this.wrapEl||this.el;},adjustForComponents:function(A,B){if(this.resizeEl!=this.el){A-=this.el.getFrameWidth('lr');B-=this.el.getFrameWidth('tb');}if(this.toolbar){var te=this.toolbar.getEl();
te.setWidth(A);B-=te.getHeight();}if(this.footer){var te=this.footer.getEl();te.setWidth(A);B-=te.getHeight();}if(this.adjustments){A+=this.adjustments[0];B+=this.adjustments[1];}return {"width":A,"height":B};},setSize:function(A,B){if(this.fitToFrame&&!this.ignoreResize(A,B)){if(this.fitContainer&&this.resizeEl!=this.el){this.el.setSize(A,B);
-}var C=this.adjustForComponents(A,B);this.resizeEl.setSize(this.autoWidth?"auto":C.width,this.autoHeight?"auto":C.height);this.fireEvent('resize',this,C.width,C.height);}},getTitle:function(){if(typeof(this.title)!='object'){return this.title;}var t='';for(var k in this.title){if(!this.title.hasOwnProperty(k)){continue;
-}if(k.indexOf('-')>=0){var s=k.split('-');for(var i=0;i<s.length;i++){t+="<span class='visible-"+s[i]+"'>"+this.title[k]+"</span>";}}else{t+="<span class='visible-"+k+"'>"+this.title[k]+"</span>";}}return t;},setTitle:function(A){this.title=A;if(this.region){this.region.updatePanelTitle(this,A);
-}},isClosable:function(){return this.closable;},beforeSlide:function(){this.el.clip();this.resizeEl.clip();},afterSlide:function(){this.el.unclip();this.resizeEl.unclip();},refresh:function(){if(this.refreshDelegate){this.loaded=false;this.refreshDelegate();
-}},destroy:function(){this.el.removeAllListeners();var A=document.createElement("span");A.appendChild(this.el.dom);A.innerHTML="";this.el.remove();this.el=null;},form:false,view:false,getChildContainer:function(){return this.getEl();}});
+}var C=this.adjustForComponents(A,B);if(this.iframe){this.iframeEl.setSize(A,B);}this.resizeEl.setSize(this.autoWidth?"auto":C.width,this.autoHeight?"auto":C.height);this.fireEvent('resize',this,C.width,C.height);}},getTitle:function(){if(typeof(this.title)!='object'){return this.title;
+}var t='';for(var k in this.title){if(!this.title.hasOwnProperty(k)){continue;}if(k.indexOf('-')>=0){var s=k.split('-');for(var i=0;i<s.length;i++){t+="<span class='visible-"+s[i]+"'>"+this.title[k]+"</span>";}}else{t+="<span class='visible-"+k+"'>"+this.title[k]+"</span>";
+}}return t;},setTitle:function(A){this.title=A;if(this.region){this.region.updatePanelTitle(this,A);}},isClosable:function(){return this.closable;},beforeSlide:function(){this.el.clip();this.resizeEl.clip();},afterSlide:function(){this.el.unclip();this.resizeEl.unclip();
+},refresh:function(){if(this.refreshDelegate){this.loaded=false;this.refreshDelegate();}},destroy:function(){this.el.removeAllListeners();var A=document.createElement("span");A.appendChild(this.el.dom);A.innerHTML="";this.el.remove();this.el=null;},form:false,view:false,getChildContainer:function(){return this.getEl();
+}});
// Roo/bootstrap/panel/Grid.js
Roo.bootstrap.panel.Grid=function(A){this.wrapper=Roo.DomHelper.append(document.body,{tag:"div",cls:"roo-layout-grid-wrapper roo-layout-inactive-content"},true);A.el=this.wrapper;if(A.container){this.wrapper.setStyle("overflow","hidden");this.wrapper.addClass('roo-grid-container');
}if(A.toolbar){var B=this.wrapper.createChild();this.toolbar=Roo.factory(A.toolbar);var ti=[];if(A.toolbar.items){ti=A.toolbar.items;delete A.toolbar.items;}var C=[];this.toolbar.render(B);for(var i=0;i<ti.length;i++){C.push(this.toolbar.addxtype(Roo.apply({}