3 * Copyright(c) 2006-2009 Ext JS, LLC
5 * http://www.extjs.com/license
8 * @class Ext.ux.TabCloseMenu
\r
10 * Plugin (ptype = 'tabclosemenu') for adding a close context menu to tabs.
\r
12 * @ptype tabclosemenu
\r
14 Ext.ux.TabCloseMenu = function(){
\r
15 var tabs, menu, ctxItem;
\r
16 this.init = function(tp){
\r
18 tabs.on('contextmenu', onContextMenu);
\r
21 function onContextMenu(ts, item, e){
\r
22 if(!menu){ // create context menu on first right click
\r
23 menu = new Ext.menu.Menu({
\r
25 id: tabs.id + '-close',
\r
27 handler : function(){
\r
28 tabs.remove(ctxItem);
\r
31 id: tabs.id + '-close-others',
\r
32 text: 'Close Other Tabs',
\r
33 handler : function(){
\r
34 tabs.items.each(function(item){
\r
35 if(item.closable && item != ctxItem){
\r
43 var items = menu.items;
\r
44 items.get(tabs.id + '-close').setDisabled(!item.closable);
\r
45 var disableOthers = true;
\r
46 tabs.items.each(function(){
\r
47 if(this != item && this.closable){
\r
48 disableOthers = false;
\r
52 items.get(tabs.id + '-close-others').setDisabled(disableOthers);
\r
54 menu.showAt(e.getPoint());
\r
58 Ext.preg('tabclosemenu', Ext.ux.TabCloseMenu);
\r