Upgrade to ExtJS 3.0.0 - Released 07/06/2009
[extjs.git] / docs / source / TabCloseMenu.html
1 <html>\r
2 <head>\r
3   <title>The source code</title>\r
4     <link href="../resources/prettify/prettify.css" type="text/css" rel="stylesheet" />\r
5     <script type="text/javascript" src="../resources/prettify/prettify.js"></script>\r
6 </head>\r
7 <body  onload="prettyPrint();">\r
8     <pre class="prettyprint lang-js"><div id="cls-Ext.ux.TabCloseMenu"></div>/**\r
9  * @class Ext.ux.TabCloseMenu\r
10  * @extends Object \r
11  * Plugin (ptype = 'tabclosemenu') for adding a close context menu to tabs.\r
12  * \r
13  * @ptype tabclosemenu\r
14  */\r
15 Ext.ux.TabCloseMenu = function(){\r
16     var tabs, menu, ctxItem;\r
17     this.init = function(tp){\r
18         tabs = tp;\r
19         tabs.on('contextmenu', onContextMenu);\r
20     };\r
21 \r
22     function onContextMenu(ts, item, e){\r
23         if(!menu){ // create context menu on first right click\r
24             menu = new Ext.menu.Menu({            \r
25             items: [{\r
26                 id: tabs.id + '-close',\r
27                 text: 'Close Tab',\r
28                 handler : function(){\r
29                     tabs.remove(ctxItem);\r
30                 }\r
31             },{\r
32                 id: tabs.id + '-close-others',\r
33                 text: 'Close Other Tabs',\r
34                 handler : function(){\r
35                     tabs.items.each(function(item){\r
36                         if(item.closable && item != ctxItem){\r
37                             tabs.remove(item);\r
38                         }\r
39                     });\r
40                 }\r
41             }]});\r
42         }\r
43         ctxItem = item;\r
44         var items = menu.items;\r
45         items.get(tabs.id + '-close').setDisabled(!item.closable);\r
46         var disableOthers = true;\r
47         tabs.items.each(function(){\r
48             if(this != item && this.closable){\r
49                 disableOthers = false;\r
50                 return false;\r
51             }\r
52         });\r
53         items.get(tabs.id + '-close-others').setDisabled(disableOthers);\r
54         e.stopEvent();\r
55         menu.showAt(e.getPoint());\r
56     }\r
57 };\r
58 \r
59 Ext.preg('tabclosemenu', Ext.ux.TabCloseMenu);\r
60 </pre>    \r
61 </body>\r
62 </html>