2014年11月20日木曜日

画像ファイルやテキストファイルをブックマーク


あいさつ


画像ファイルやテキストファイルなど、PPvで表示したファイルをブックマーク。あとで順次表示できるようにする。
以前やったPPxで一時ブックマークと同じ仕組み。

スクリプト


必要なのは、

  • setclip.js
  • resetclip.js
  • RotateExecute2.js

の3つ。RotateExecute2.jsはPPxで一時ブックマークのと全く同じだが、一応こっちにも載せておく。

setclip.js

//!*script

for (var i = 0; i < 9; i++) {
  if (PPx.Extract("%'clip" + i + "'") == PPx.Extract("*ppv -r %FCD")){
    PPx.SetPopLineMessage("既に登録されてます");
    PPx.Quit();
  }
}

for (var i = 0; i < 9; i++) {
  if (!PPx.Extract("%'clip" + i + "'")){
    PPx.Execute("*alias clip"+i+" = *ppv -r %FCD");
    PPx.SetPopLineMessage("登録しました");
    break;
  }
}

resetclip.js

//!*script

PPx.Execute("*alias clip0 = ");
PPx.Execute("*alias clip1 = ");
PPx.Execute("*alias clip2 = ");
PPx.Execute("*alias clip3 = ");
PPx.Execute("*alias clip4 = ");
PPx.Execute("*alias clip5 = ");
PPx.Execute("*alias clip6 = ");
PPx.Execute("*alias clip7 = ");
PPx.Execute("*alias clip8 = ");
PPx.Execute("*alias clip9 = ");

PPx.SetPopLineMessage("クリップをリセットしました");

RotateExecute2.js

//!*script

// 引数がなければ終了
if (PPx.Arguments.Length < 2){
  PPx.SetPopLineMessage("引数が正しくありません。");
  PPx.Quit(-1);
}

var id = PPx.Arguments.Item(0);
var command = PPx.Arguments.Item(1);

// command0があるかどうかをチェック
if (!PPx.Extract("%'"+command+"0'")){
  PPx.SetPopLineMessage("コマンドが空です");
  PPx.Quit();
}

// 数値に1を足す
if (!PPx.Extract("%'"+id+"'")){
  PPx.Execute("*set "+id+" = 0");
}else {
  var i = parseInt(PPx.Extract("%'"+id+"'")) + 1;
  PPx.Execute("*set "+id+" = "+ i);
}
var i2 = PPx.Extract("%'"+id+"'");

// commandを実行
if (PPx.Extract("%'"+command+ i2 + "'")){
  PPx.Execute(PPx.Extract("%'"+command+ i2 + "'"));
}else{
  PPx.Execute("*set "+id+" = 0");
  PPx.Execute(PPx.Extract("%'"+command+"0'"));
}

登録


以下を編集して取込。
-|K_clip =
-|M_clip =

M_clip = { ** comment **
現在のファイルを登録 = *script %0\Script\setclip.js
クリップをリセット = *script %0\Script\resetclip.js
--  =
&A:%*regexp("%'clip0'","s/^.*\s(.*)/$1/") = *execute ,%'clip0'
&B:%*regexp("%'clip1'","s/^.*\s(.*)/$1/") = *execute ,%'clip1'
&C:%*regexp("%'clip2'","s/^.*\s(.*)/$1/") = *execute ,%'clip2'
&D:%*regexp("%'clip3'","s/^.*\s(.*)/$1/") = *execute ,%'clip3'
&E:%*regexp("%'clip4'","s/^.*\s(.*)/$1/") = *execute ,%'clip4'
&F:%*regexp("%'clip5'","s/^.*\s(.*)/$1/") = *execute ,%'clip5'
&G:%*regexp("%'clip6'","s/^.*\s(.*)/$1/") = *execute ,%'clip6'
&H:%*regexp("%'clip7'","s/^.*\s(.*)/$1/") = *execute ,%'clip7'
&I:%*regexp("%'clip8'","s/^.*\s(.*)/$1/") = *execute ,%'clip8'
&J:%*regexp("%'clip9'","s/^.*\s(.*)/$1/") = *execute ,%'clip9'
}

KV_main = { ; PPcメイン窓
^S ,*setnextkey K_clip
}

K_clip = { ** comment **
S , *script %0\Script\setclip.js
^S , *script %0\Script\RotateExecute2.js,hoge,clip
R , *script %0\Script\resetclip.js
',' , %M_clip
}

使い方


気に入った画像あるいはテキストファイルを見つけたら、PPv上でC_s s(Ctrl+Sを押したあとにS)で登録。


  これもあとで見よう。C_s s


別の場所でよさげな画像を見つけた。C_s s


ブックマークしたファイルを見返したいと思ったら、PPvを開いてからC_s C_s(Ctrl+Sを二度押す)。そのたびに、さっきブックマークしたファイルが順に表示される。


思ったこととか


ブックマーク表示用のPPvを別に用意しておく、というのもありそうですね。

PPv[A]でC_s C_s。すると、ブックマーク表示用のPPv[Z]をフォーカス移動無しで実行。ブックマークしたファイルを開く。



C_s C_sを押すたびに、PPv[Z]が順にブックマークファイルを表示する。






これを実現するには、さらに少し準備が必要。なのでまた次回。

0 件のコメント:

コメントを投稿