2013年12月11日水曜日

左右逆カーソルで親フォルダに移動(改)

2画面PPxで、あふでできる「左右逆カーソルで親フォルダに移動」をやってみる。
前回のスクリプトは一行表示にしか使えなかったので、複数行表示に対応させてみた。

2画面ファイラでの複数行表示は画像管理の時とかによく使う。上がPPxで下があふ




右端や左端にカーソルが到達したら、親フォルダに移動なり、反対窓に移動なりをする。端に到達していない場合は通常のカーソル移動をする。

以下の二つのファイルをScriptフォルダに保存。

LEFT.js

//!*script

// 独立窓や窓が一枚のみの場合は通常動作
if (PPx.GetComboItemCount <= 1){
  PPx.Execute("%K\"@LEFT\"");
  PPx.Quit();
}

if (PPx.WindowDirection == 1){
  if ( PPx.EntryDisplayY >= PPx.EntryIndex){
    PPx.Execute("%K\"@BS\"");
  } else {
    PPx.Execute("%K\"@LEFT\"");
  }
} else {
  if ( PPx.EntryDisplayY >= PPx.EntryIndex){
    PPx.Execute("%K\"@F6\"");
  } else {
    PPx.Execute("%K\"@LEFT\"");
  }
}

RIGHT.js

//!*script

// 独立窓や窓が一枚のみの場合は通常動作
if (PPx.GetComboItemCount <= 1){
  PPx.Execute("%K\"@RIGHT\"");
  PPx.Quit();
}

hoge = PPx.EntryDisplayCount - PPx.EntryDisplayCount % PPx.EntryDisplayY;

if (PPx.WindowDirection == 1){
  if ( hoge >= PPx.EntryIndex){
    PPx.Execute("%K\"@RIGHT\"");
  } else {
    PPx.Execute("%K\"@F6\"");
  }
} else {
  if ( hoge >= PPx.EntryIndex){
    PPx.Execute("%K\"@RIGHT\"");
  } else {
    PPx.Execute("%K\"@BS\"");
  }
}

以下を編集して取込。

KC_main = { ; PPcメイン窓
RIGHT ,*script %0\Script\RIGHT.js
LEFT ,*script %0\Script\LEFT.js
}

LEFT.jsの場合は、エントリ位置が縦方向のエントリ表示数以下かどうかで左端かどうかを確かめている。RIGHT.jsの場合は表示数の全エントリ数とか云々で何か計算をして右端かどうかを確かめている。

こういう計算とかしてるとまるでプログラムでも組んでるみたいですね

追記 2013/12/12


作者のTOROさんにコメントをいただきました。

ええ、つまりスクリプトとか使わなくても全然いけるわけですね(;><)
僕の場合の設定は次のようになる。
XC_mvLR = 4,1,6,B0100,6,B100 ; [←][→]

というかカスタマイザーでもふつうに設定項目ありますので左右逆カーソルで親フォルダに移動をしたいときはこっちで設定しましょう(;><)


0 件のコメント:

コメントを投稿