vimperator で Tree Style Tab を 操作 その3
さらに 変更
- zn 親タブの次へ
- zN ルートタブの次へ
- zp 親タブの前へ
- zP ルートタブの前へ
- typo 修正
- zg tabbar を 表示
全文はcaisuiの日記
diff -r d1fac52eb207 treeTabStyle.js --- a/treeTabStyle.js Sun May 03 17:16:16 2009 +0900 +++ b/treeTabStyle.js Sun May 03 17:36:38 2009 +0900 @@ -1,19 +1,21 @@ (function(){ - if(!TreeStyleTabService) return; + if(!"TreeStyleTabService" in window) return; var mod=liberator.modules; var map=mod.mappings; - var plg=liberator.plugins; var extra={flags:mod.Mappings.flags.COUNT}; + let caisui; var setup=function(k,t,f){ map.remove(k,t); - map.addUserMap([mod.modes.NORMAL],[k],t,function(){plg.userTreeStyleTab[f].apply(this,arguments)},extra); + map.addUserMap([mod.modes.NORMAL],[k],t,function(){caisui.TreeStyleTab[f].apply(this,arguments)},extra); }; - setup("zn" , "tree style tab next tab" , "nextTab"); + setup("zn" , "tree style tab next parent tab" , "nextParentTab"); + setup("zN" , "tree style tab next root tab" , "nextRootTab"); setup("zj" , "tree style tab next tab" , "nextTab"); - setup("zp" , "tree style tab preb tab" , "prevTab"); - setup("zk" , "tree style tab preb tab" , "prevTab"); + setup("zp" , "tree style tab prev parent tab" , "prevParentTab"); + setup("zP" , "tree style tab prev root tab" , "prevRootTab"); + setup("zk" , "tree style tab prev tab" , "prevTab"); setup("zd" , "remove tree tab" , "removeTabSubTree"); setup("zD" , "remove tree tab from top tree" , "removeTabTreeAll"); setup("zu" , "tree style tab parent tab" , "parentTab"); @@ -29,13 +31,16 @@ setup("z@" , "ready to open child tab once" , "readyToOpenChildTabOnce"); setup("z[" , "ready to open child tab" , "readyToOpenChildTab"); setup("z]" , "stop to open child tab" , "stopToOpenChildTab"); + setup("zg" , "show tabbar" , "showTabbar"); - plg.userTreeStyleTab={ - nextTab:function(aCount){ + + if(!liberator.plugins.caisui) liberator.plugins.caisui={}; + liberator.plugins.caisui.TreeStyleTab={ + getNextTab:function(aTab, aCount){ let t1; if(aCount < 1) aCount=1; - for(t1=gBrowser.selectedTab,i=0; (i<aCount);++i){ + for(t1=aTab,i=0; (i<aCount);++i){ let t2=TreeStyleTabService.getNextSiblingTab(t1); if(t2) t1=t2; else{ @@ -44,12 +49,21 @@ : TreeStyleTabService.getFirstTab(gBrowser); } } - gBrowser.selectedTab = t1; - },prevTab:function(aCount){ + return t1; + },nextTab:function(aCount){ + gBrowser.selectedTab = caisui.TreeStyleTab.getNextTab(gBrowser.selectedTab,aCount); + },nextParentTab:function(aCount){ + var t=gBrowser.selectedTab; + gBrowser.selectedTab = caisui.TreeStyleTab.getNextTab( + TreeStyleTabService.getParentTab(t) || TreeStyleTabService.getRootTab(t) + ,aCount); + },nextRootTab:function(aCount){ + gBrowser.selectedTab = caisui.TreeStyleTab.getNextTab(TreeStyleTabService.getRootTab(gBrowser.selectedTab),aCount); + },getPrevTab:function(aTab,aCount){ let t1; if(aCount < 1) aCount=1; - for(t1=gBrowser.selectedTab,i=0; (i<aCount);++i){ + for(t1=aTab,i=0; (i<aCount);++i){ let t2=TreeStyleTabService.getPreviousSiblingTab(t1); if(t2) t1=t2; else{ @@ -58,7 +72,16 @@ : TreeStyleTabService.getRootTab(TreeStyleTabService.getLastTab(gBrowser)); } } - gBrowser.selectedTab = t1; + return t1; + },prevTab:function(aCount){ + gBrowser.selectedTab = caisui.TreeStyleTab.getPrevTab(gBrowser.selectedTab,aCount); + },prevParentTab:function(aCount){ + var t=gBrowser.selectedTab; + gBrowser.selectedTab = caisui.TreeStyleTab.getPrevTab( + TreeStyleTabService.getParentTab(t)||TreeStyleTabService.getRootTab(t) + ,aCount); + },prevRootTab:function(aCount){ + gBrowser.selectedTab = caisui.TreeStyleTab.getPrevTab(TreeStyleTabService.getRootTab(gBrowser.selectedTab),aCount); },removeTab:function(){ var t=gBrowser.selectedTab; if(!TreeStyleTabService.getNextSiblingTab(t) && !TreeStyleTabService.hasChildTabs(t)){ @@ -75,11 +98,11 @@ var t = TreeStyleTabService.getFirstChildTab(gBrowser.selectedTab); if(t) gBrowser.selectedTab=t; },removeTabSubTree:function(){ - plg.userTreeStyleTab.collapseSubtree.apply(this,arguments); + caisui.TreeStyleTab.collapseSubtree.apply(this,arguments); gBrowser.removeTab(gBrowser.selectedTab); },removeTabTreeAll:function(){ gBrowser.selectedTab = TreeStyleTabService.getRootTab(gBrowser.selectedTab); - plg.userTreeStyleTab.removeTabSubTree.apply(this,arguments); + caisui.TreeStyleTab.removeTabSubTree.apply(this,arguments); },collapseSubtree:function(){ gBrowser.treeStyleTab.collapseExpandSubtree(gBrowser.selectedTab,true); },expandSubtree:function(){ @@ -95,11 +118,14 @@ },readyToOpenChildTabCore:function(aTab,aFlag){ TreeStyleTabService.readyToOpenChildTab(aTab,aFlag); },readyToOpenChildTabOnce:function(){ - plg.userTreeStyleTab.readyToOpenChildTabCore(gBrowser.selectedTab); + caisui.TreeStyleTab.readyToOpenChildTabCore(gBrowser.selectedTab); },readyToOpenChildTab:function(){ - plg.userTreeStyleTab.readyToOpenChildTabCore(gBrowser.selectedTab,true); + caisui.TreeStyleTab.readyToOpenChildTabCore(gBrowser.selectedTab,true); },stopToOpenChildTab:function(){ TreeStyleTabService.stopToOpenChildTab(gBrowser.selectedTab); - } + },showTabbar:function(){ + gBrowser.treeStyleTab.showTabbar(); + } }; + caisui = liberator.plugins.caisui; })();