X-Git-Url: http://git.ithinksw.org/extjs.git/blobdiff_plain/6e39d509471fe9b4e2660e0d1631b350d0c66f40..0494b8d9b9bb03ab6c22b34dae81261e3cd7e3e6:/pkgs/pkg-tabs-debug.js diff --git a/pkgs/pkg-tabs-debug.js b/pkgs/pkg-tabs-debug.js index 60aa597a..712f65f9 100644 --- a/pkgs/pkg-tabs-debug.js +++ b/pkgs/pkg-tabs-debug.js @@ -1,8 +1,8 @@ /*! - * Ext JS Library 3.1.0 - * Copyright(c) 2006-2009 Ext JS, LLC - * licensing@extjs.com - * http://www.extjs.com/license + * Ext JS Library 3.3.1 + * Copyright(c) 2006-2010 Sencha Inc. + * licensing@sencha.com + * http://www.sencha.com/license */ /** * @class Ext.TabPanel @@ -33,6 +33,9 @@ * the active tab. *
  • {@link Ext.Panel#deactivate deactivate} : Fires when the Component that * was the active tab becomes deactivated.
  • + *
  • {@link Ext.Panel#beforeclose beforeclose} : Fires when the user clicks on the close tool of a closeable tab. + * May be vetoed by returning false from a handler.
  • + *
  • {@link Ext.Panel#close close} : Fires a closeable tab has been closed by the user.
  • * *

    Creating TabPanels from Code

    *

    TabPanels can be created and rendered completely in code, as in this example:

    @@ -102,11 +105,6 @@ Ext.TabPanel = Ext.extend(Ext.Panel, { * class name applied to the tab strip item representing the child Component, allowing special * styling to be applied. */ - /** - * @cfg {Boolean} monitorResize True to automatically monitor window resize events and rerender the layout on - * browser resize (defaults to true). - */ - monitorResize : true, /** * @cfg {Boolean} deferredRender *

    true by default to defer the rendering of child {@link Ext.Container#items items} @@ -438,8 +436,9 @@ new Ext.TabPanel({ // private findTargets : function(e){ - var item = null; - var itemEl = e.getTarget('li', this.strip); + var item = null, + itemEl = e.getTarget('li:not(.x-tab-edge)', this.strip); + if(itemEl){ item = this.getComponent(itemEl.id.split(this.idDelimiter)[1]); if(item.disabled){ @@ -547,8 +546,8 @@ new Ext.TabPanel({ beforeshow: this.onBeforeShowItem }); }, - - + + /** *

    Provides template arguments for rendering a tab selector item in the tab strip.

    @@ -560,7 +559,7 @@ new Ext.TabPanel({ *
  • cls : String
    The CSS class name
  • *
  • iconCls : String
    A CSS class to provide appearance for an icon.
  • * - * @param {BoxComponent} item The {@link Ext.BoxComponent BoxComponent} for which to create a selector element in the tab strip. + * @param {Ext.BoxComponent} item The {@link Ext.BoxComponent BoxComponent} for which to create a selector element in the tab strip. * @return {Object} An object hash containing the properties required to render the selector element. */ getTemplateArgs : function(item) { @@ -589,9 +588,6 @@ new Ext.TabPanel({ if(this.rendered){ var items = this.items; this.initTab(c, items.indexOf(c)); - if(items.getCount() == 1){ - this.syncSize(); - } this.delegateUpdates(); } }, @@ -744,13 +740,14 @@ new Ext.TabPanel({ // private delegateUpdates : function(){ + var rendered = this.rendered; if(this.suspendUpdates){ return; } - if(this.resizeTabs && this.rendered){ + if(this.resizeTabs && rendered){ this.autoSizeTabs(); } - if(this.enableTabScroll && this.rendered){ + if(this.enableTabScroll && rendered){ this.autoScrollTabs(); } }, @@ -768,7 +765,7 @@ new Ext.TabPanel({ var each = Math.max(Math.min(Math.floor((aw-4) / count) - this.tabMargin, this.tabWidth), this.minTabWidth); // -4 for float errors in IE this.lastTabWidth = each; - var lis = this.strip.query("li:not([className^=x-tab-edge])"); + var lis = this.strip.query('li:not(.x-tab-edge)'); for(var i = 0, len = lis.length; i < len; i++) { var li = lis[i], inner = Ext.fly(li).child('.x-tab-strip-inner', true), @@ -818,13 +815,15 @@ new Ext.TabPanel({ Ext.fly(oldEl).removeClass('x-tab-strip-active'); } } + this.activeTab = item; if(item){ var el = this.getTabEl(item); Ext.fly(el).addClass('x-tab-strip-active'); - this.activeTab = item; this.stack.add(item); this.layout.setActiveItem(item); + // Need to do this here, since setting the active tab slightly changes the size + this.delegateUpdates(); if(this.scrolling){ this.scrollToTab(item, this.animScroll); } @@ -864,10 +863,11 @@ new Ext.TabPanel({ pos = this.getScrollPos(), l = this.edge.getOffsetsTo(this.stripWrap)[0] + pos; - if(!this.enableTabScroll || count < 1 || cw < 20){ // 20 to prevent display:none issues + if(!this.enableTabScroll || cw < 20){ // 20 to prevent display:none issues return; } - if(l <= tw){ + if(count == 0 || l <= tw){ + // ensure the width is set if there's no tabs wd.scrollLeft = 0; wrap.setWidth(tw); if(this.scrolling){ @@ -974,11 +974,11 @@ new Ext.TabPanel({ */ scrollToTab : function(item, animate){ - if(!item){ - return; + if(!item){ + return; } var el = this.getTabEl(item), - pos = this.getScrollPos(), + pos = this.getScrollPos(), area = this.getScrollArea(), left = Ext.fly(el).getOffsetsTo(this.stripWrap)[0] + pos, right = left + el.offsetWidth;