Upgrade to ExtJS 3.0.0 - Released 07/06/2009
[extjs.git] / docs / source / TabCloseMenu.html
diff --git a/docs/source/TabCloseMenu.html b/docs/source/TabCloseMenu.html
new file mode 100644 (file)
index 0000000..170e2ec
--- /dev/null
@@ -0,0 +1,62 @@
+<html>\r
+<head>\r
+  <title>The source code</title>\r
+    <link href="../resources/prettify/prettify.css" type="text/css" rel="stylesheet" />\r
+    <script type="text/javascript" src="../resources/prettify/prettify.js"></script>\r
+</head>\r
+<body  onload="prettyPrint();">\r
+    <pre class="prettyprint lang-js"><div id="cls-Ext.ux.TabCloseMenu"></div>/**\r
+ * @class Ext.ux.TabCloseMenu\r
+ * @extends Object \r
+ * Plugin (ptype = 'tabclosemenu') for adding a close context menu to tabs.\r
+ * \r
+ * @ptype tabclosemenu\r
+ */\r
+Ext.ux.TabCloseMenu = function(){\r
+    var tabs, menu, ctxItem;\r
+    this.init = function(tp){\r
+        tabs = tp;\r
+        tabs.on('contextmenu', onContextMenu);\r
+    };\r
+\r
+    function onContextMenu(ts, item, e){\r
+        if(!menu){ // create context menu on first right click\r
+            menu = new Ext.menu.Menu({            \r
+            items: [{\r
+                id: tabs.id + '-close',\r
+                text: 'Close Tab',\r
+                handler : function(){\r
+                    tabs.remove(ctxItem);\r
+                }\r
+            },{\r
+                id: tabs.id + '-close-others',\r
+                text: 'Close Other Tabs',\r
+                handler : function(){\r
+                    tabs.items.each(function(item){\r
+                        if(item.closable && item != ctxItem){\r
+                            tabs.remove(item);\r
+                        }\r
+                    });\r
+                }\r
+            }]});\r
+        }\r
+        ctxItem = item;\r
+        var items = menu.items;\r
+        items.get(tabs.id + '-close').setDisabled(!item.closable);\r
+        var disableOthers = true;\r
+        tabs.items.each(function(){\r
+            if(this != item && this.closable){\r
+                disableOthers = false;\r
+                return false;\r
+            }\r
+        });\r
+        items.get(tabs.id + '-close-others').setDisabled(disableOthers);\r
+       e.stopEvent();\r
+        menu.showAt(e.getPoint());\r
+    }\r
+};\r
+\r
+Ext.preg('tabclosemenu', Ext.ux.TabCloseMenu);\r
+</pre>    \r
+</body>\r
+</html>
\ No newline at end of file