summaryrefslogtreecommitdiffstats
path: root/deluge/ui/web/docs/template/resources/TabCloseMenu.js
diff options
context:
space:
mode:
Diffstat (limited to 'deluge/ui/web/docs/template/resources/TabCloseMenu.js')
-rw-r--r--deluge/ui/web/docs/template/resources/TabCloseMenu.js42
1 files changed, 42 insertions, 0 deletions
diff --git a/deluge/ui/web/docs/template/resources/TabCloseMenu.js b/deluge/ui/web/docs/template/resources/TabCloseMenu.js
new file mode 100644
index 0000000..bdd7e19
--- /dev/null
+++ b/deluge/ui/web/docs/template/resources/TabCloseMenu.js
@@ -0,0 +1,42 @@
+// Very simple plugin for adding a close context menu to tabs
+Ext.ux.TabCloseMenu = function(){
+ var tabs, menu, ctxItem;
+ this.init = function(tp){
+ tabs = tp;
+ tabs.on('contextmenu', onContextMenu);
+ }
+
+ function onContextMenu(ts, item, e){
+ if(!menu){ // create context menu on first right click
+ menu = new Ext.menu.Menu([{
+ id: tabs.id + '-close',
+ text: 'Close Tab',
+ handler : function(){
+ tabs.remove(ctxItem);
+ }
+ },{
+ id: tabs.id + '-close-others',
+ text: 'Close Other Tabs',
+ handler : function(){
+ tabs.items.each(function(item){
+ if(item.closable && item != ctxItem){
+ tabs.remove(item);
+ }
+ });
+ }
+ }]);
+ }
+ ctxItem = item;
+ var items = menu.items;
+ items.get(tabs.id + '-close').setDisabled(!item.closable);
+ var disableOthers = true;
+ tabs.items.each(function(){
+ if(this != item && this.closable){
+ disableOthers = false;
+ return false;
+ }
+ });
+ items.get(tabs.id + '-close-others').setDisabled(disableOthers);
+ menu.showAt(e.getPoint());
+ }
+}; \ No newline at end of file