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;
 })();