X-Git-Url: http://git.roojs.org/?p=roojs1;a=blobdiff_plain;f=Roo%2FTabPanel.js;h=e702b2f035ccc2735366491d58cb5686912cc464;hp=1b1bb31e331e0949afaffce5c2dbf11b14f9d0f1;hb=0b69a11b1055a6d3a3fd0719bdd58b5a235de0e4;hpb=36152dcedd3e79eb72e1cd700467a134192fc723 diff --git a/Roo/TabPanel.js b/Roo/TabPanel.js index 1b1bb31e33..e702b2f035 100644 --- a/Roo/TabPanel.js +++ b/Roo/TabPanel.js @@ -1,4 +1,4 @@ -/* + /* * Based on: * Ext JS Library 1.1.1 * Copyright(c) 2006-2007, Ext JS, LLC. @@ -70,11 +70,11 @@ Roo.TabPanel = function(container, config){ Roo.fly(this.stripWrap.dom.firstChild).setStyle("overflow-x", "hidden"); } if(this.tabPosition != "bottom"){ - /** The body element that contains {@link Roo.TabPanelItem} bodies. + - * @type Roo.Element - */ - this.bodyEl = Roo.get(this.createBody(this.el.dom)); - this.el.addClass("x-tabs-top"); + /** The body element that contains {@link Roo.TabPanelItem} bodies. + + * @type Roo.Element + */ + this.bodyEl = Roo.get(this.createBody(this.el.dom)); + this.el.addClass("x-tabs-top"); } this.items = []; @@ -105,38 +105,57 @@ Roo.TabPanel = function(container, config){ this.cpad = this.el.getPadding("lr"); this.hiddenCount = 0; + + // toolbar on the tabbar support... + if (this.toolbar) { + var tcfg = this.toolbar; + tcfg.container = this.stripEl.child('td.x-tab-strip-toolbar'); + this.toolbar = new Roo.Toolbar(tcfg); + if (Roo.isSafari) { + var tbl = tcfg.container.child('table', true); + tbl.setAttribute('width', '100%'); + } + + } + + + Roo.TabPanel.superclass.constructor.call(this); }; Roo.extend(Roo.TabPanel, Roo.util.Observable, { - /* - *@cfg {String} tabPosition "top" or "bottom" (defaults to "top") - */ + /* + *@cfg {String} tabPosition "top" or "bottom" (defaults to "top") + */ tabPosition : "top", - /* - *@cfg {Number} currentTabWidth The width of the current tab (defaults to 0) - */ + /* + *@cfg {Number} currentTabWidth The width of the current tab (defaults to 0) + */ currentTabWidth : 0, - /* - *@cfg {Number} minTabWidth The minimum width of a tab (defaults to 40) (ignored if {@link #resizeTabs} is not true) - */ + /* + *@cfg {Number} minTabWidth The minimum width of a tab (defaults to 40) (ignored if {@link #resizeTabs} is not true) + */ minTabWidth : 40, - /* - *@cfg {Number} maxTabWidth The maximum width of a tab (defaults to 250) (ignored if {@link #resizeTabs} is not true) - */ + /* + *@cfg {Number} maxTabWidth The maximum width of a tab (defaults to 250) (ignored if {@link #resizeTabs} is not true) + */ maxTabWidth : 250, - /* - *@cfg {Number} preferredTabWidth The preferred (default) width of a tab (defaults to 175) (ignored if {@link #resizeTabs} is not true) - */ + /* + *@cfg {Number} preferredTabWidth The preferred (default) width of a tab (defaults to 175) (ignored if {@link #resizeTabs} is not true) + */ preferredTabWidth : 175, - /* - *@cfg {Boolean} resizeTabs True to enable dynamic tab resizing (defaults to false) - */ + /* + *@cfg {Boolean} resizeTabs True to enable dynamic tab resizing (defaults to false) + */ resizeTabs : false, - /* - *@cfg {Boolean} monitorResize Set this to true to turn on window resize monitoring (ignored if {@link #resizeTabs} is not true) (defaults to true) - */ + /* + *@cfg {Boolean} monitorResize Set this to true to turn on window resize monitoring (ignored if {@link #resizeTabs} is not true) (defaults to true) + */ monitorResize : true, + /* + *@cfg {Object} toolbar xtype description of toolbar to show at the right of the tab bar. + */ + toolbar : false, /** * Creates a new {@link Roo.TabPanelItem} by looking for an existing element with the provided id -- if it's not found it creates one. @@ -347,7 +366,9 @@ Roo.extend(Roo.TabPanel, Roo.util.Observable, { autoSizeTabs : function(){ var count = this.items.length; var vcount = count - this.hiddenCount; - if(!this.resizeTabs || count < 1 || vcount < 1 || this.updating) return; + if(!this.resizeTabs || count < 1 || vcount < 1 || this.updating) { + return; + } var w = Math.max(this.el.getWidth() - this.cpad, 10); var availWidth = Math.floor(w / vcount); var b = this.stripBody; @@ -383,7 +404,9 @@ Roo.extend(Roo.TabPanel, Roo.util.Observable, { setTabWidth : function(width){ this.currentTabWidth = width; for(var i = 0, len = this.items.length; i < len; i++) { - if(!this.items[i].isHidden())this.items[i].setWidth(width); + if(!this.items[i].isHidden()) { + this.items[i].setWidth(width); + } } }, @@ -601,7 +624,11 @@ Roo.extend(Roo.TabPanelItem, Roo.util.Observable, { autoSize : function(){ //this.el.beginMeasure(); this.textEl.setWidth(1); - this.setWidth(this.textEl.dom.scrollWidth+this.pnode.getPadding("lr")+this.inner.getPadding("lr")); + /* + * #2804 [new] Tabs in Roojs + * increase the width by 2-4 pixels to prevent the ellipssis showing in chrome + */ + this.setWidth(this.textEl.dom.scrollWidth+this.pnode.getPadding("lr")+this.inner.getPadding("lr") + 2); //this.el.endMeasure(); }, @@ -729,7 +756,7 @@ Roo.TabPanel.prototype.createStripList = function(strip){ // returns the "tr" element. strip.innerHTML = '
'+ ''+ - '
'; + ''; return strip.firstChild.firstChild.firstChild.firstChild; }; /** @private */