スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。



mirrorMan - テキスト差分表示2

2ではソース抜粋です。

<button type=button id=kickDFBtn title="DFへ F12"><img src="./img/df.gif"></button>
を表示しているbuttonタグです。

if(!sfs.FileExists("DF\\DF.exe")) kickDFBtn.style.display ='none';
起動時にDF.exeが存在しなければ、 を非表示にしています。

function handleOnClick(){
var src = event.srcElement, cls = src.className.split(" ",1)[0];
if((/^fNm/.test(cls))&&(!/Gre/.test(cls))){
selItm(src);
if(/DFで実行/.test(document.title)) comDF();
}
switch(src.id){
case "kickDFBtn": chgTitlebarTxt("│DFで実行するファイルを選択");
}
}
クリックイベントハンドラです。
イベントが発生した(クリックされた)タグのクラス名を取得しています。
split()しているのは、jQueryがクラス名にブランク区切りで値を追加してくるのに対応するためです。
クラス属性にはファイルorフォルダ、表示色を設定しているので、これをtest()してチェックします。
クリックされたのがファイルで、かつ緑色(ZIPフォルダ、その他の特殊ファイル)でなければ、
selItm()でそれを選択(textRangeのselect())表示させます。
タイトルバーに"DFで実行"の文字列がマッチすれば、comDF()を呼び出します。
マッチしなければ、後続を処理します。
id属性がkickDFBtnなら、chgTitlebarTxt()を呼び出してタイトルバー文字列を変更します。

function chgTitlebarTxt(s){
var defNm = "mirrorMan", Nm = document.title;
document.title = Nm == defNm ? Nm += s : defNm;
document.selection.empty();
}
document.selection.empty()はフォーカス解除です。

次はDFを起動する箇所です。
function comDF(){
var df ="DF\\DF.exe";
document.title = "mirrorMan";
f(!sfs.FileExists(df)) return wsh.popup("DF.exeがありません",0,document.title,64);
var fnm = document.selection.createRange().text;
if(!fnm) return wsh.popup("DFに渡すファイルを選択してください",0,document.title,64);
var lPth = sfs.BuildPath(getFolderSub(getAdrBar(0)), fnm);
var rPth = sfs.BuildPath(getFolderSub(getAdrBar(2)), fnm);
if((sfs.FileExists(lPth))&&(sfs.FileExists(rPth)))
wsh.Run("\""+ df +"\" \""+ lPth +"\" \""+ rPth +"\"");
else wsh.popup("このファイルは両ペインにありません。\n\n"+ fnm,0,document.title,64);
}
タイトルバーを初期に戻しています。
textRangeオブジェクトから選択されているファイル名を取得します。
両方のアドレスバーからディレクトリパスを取得し、ファイル名をつなげてフルパスにBuildPath()しています。
DFはコマンドラインパラメータから開きたい2ファイルを指定できます。
スポンサーサイト



comment

Secret

while(aho.atEndofStream)

笹部 政宏
笹部 政宏
mail




フリーソフツ
Category
はてブ
Monthly Archive
New Entry
New Comment
New Trackback
RSS
Copyright © Kittens flewby me All Rights Reserved.

FC2Ad

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。