X-Git-Url: http://git.ithinksw.org/extjs.git/blobdiff_plain/6e39d509471fe9b4e2660e0d1631b350d0c66f40..6b044c28b5f26fb99c86c237ffad19741c0f7f3d:/pkgs/pkg-tabs-debug.js?ds=inline
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 : StringThe CSS class name
* iconCls : StringA 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;