home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
DOS/V Power Report 1998 January (DVD)
/
VPR980100.ISO
/
OLS
/
WIN32
/
KAKIMAC
/
KAKIMACA.LZH
/
K_DESK51.MAC
next >
Wrap
Text File
|
1994-12-07
|
8KB
|
156 lines
//【マクロ名】k_DESK51.mac:k_DESK Ver.1.51 のメインマクロ
// k_DESK Ver.1.51 by 水銀水(Suigwinsui)/小田 明夫(HGD01603)
// 平成06年12月07日(水) 午前08時48分55秒
// (k_DESK51.macをk_DESK Ver.1.51 のメインマクロとします)
//【連作情報】日本語文書作成支援「書きマクロ」αシリーズ Vol.1Ver.1#K1/3(秀丸エディタVer.1.32対応版)
//【使用対象】秀丸 for Windows 上で日本語文章を快適に処理したい全てのみなさま。
//【機能概略】秀丸に「複数デスクトップ保存/復元」機能を追加する。やめられまへん!(^^)!、ほんまでっせ!!!
//【使用方法】k_DESK(Ver.1.51)の機能を秀丸エディタで利用するには、
// k_DESK51.mac だけを登録/実行してください。
//【構 成】3macro= k_DESK51.mac,k_DESK5s.mac,k_DESK5i.mac
top0:
$k_DESKFB0=hidemarudir+"\\kakimac\\k_DESK00.kdf";
$k_DESKFB1=hidemarudir+"\\kakimac\\k_DESK01.kdf";
$k_DESKFB2=hidemarudir+"\\kakimac\\k_DESK02.kdf";
$k_DESKFB3=hidemarudir+"\\kakimac\\k_DESK03.kdf";
$k_DESKFB4=hidemarudir+"\\kakimac\\k_DESK04.kdf";
$k_DESKFB5=hidemarudir+"\\kakimac\\k_DESK05.kdf";
$k_DESKFB6=hidemarudir+"\\kakimac\\k_DESK06.kdf";
$k_DESKFB7=hidemarudir+"\\kakimac\\k_DESK07.kdf";
$k_DESKFB8=hidemarudir+"\\kakimac\\k_DESK08.kdf";
$k_DESKFB9=hidemarudir+"\\kakimac\\k_DESK09.kdf";
$kb[0]=getinistr($k_DESKFB0,"k_DESKMem","BookName");
$kb[1]=getinistr($k_DESKFB1,"k_DESKMem","BookName");
$kb[2]=getinistr($k_DESKFB2,"k_DESKMem","BookName");
$kb[3]=getinistr($k_DESKFB3,"k_DESKMem","BookName");
$kb[4]=getinistr($k_DESKFB4,"k_DESKMem","BookName");
$kb[5]=getinistr($k_DESKFB5,"k_DESKMem","BookName");
$kb[6]=getinistr($k_DESKFB6,"k_DESKMem","BookName");
$kb[7]=getinistr($k_DESKFB7,"k_DESKMem","BookName");
$kb[8]=getinistr($k_DESKFB8,"k_DESKMem","BookName");
$kb[9]=getinistr($k_DESKFB9,"k_DESKMem","BookName");
#B=getininum($k_DESKFB0,"k_DESKMem","SetNum");
menuDisp:menu
"●復元する『ほぼ・デスクトップ』選択 k_DESK Ver.1.51 水銀水",
" Files Set &A. "+$kb[0],
" Files Set &B. "+$kb[1],
" Files Set &C. "+$kb[2],
" Files Set &D. "+$kb[3],
" Files Set &E. "+$kb[4],
" Files Set &F. "+$kb[5],
" Files Set &G. "+$kb[6],
" Files Set &H. "+$kb[7],
" Files Set &I. "+$kb[8],
" Files Set &J. "+$kb[9],
"━━━━━━━━━━━━━━━━━━━━━━━━━━━━━",
" [&0] 復元中止 [Esc]",
"━━━━━━━━━━━━━━━━━━━━━━━━━━━━━",
" ▼Files Set(デスクトップ)『保存・初期化』画面へ &Save";
if(result==0)endmacro;
else if(result==1){
message "●k_DESK Ver.1.51の概略 \n現在動いている秀丸のウィンドウ位置、ファイル名などの諸状態をデスクトップと呼びます。デスクトップとは『 Files の Set 』だと考えてください。複数の Files Set(デスクトップ)を保存/復元できる点が、k_DESKの最大の特徴です。加えて、動的に(拡張子に依存しないで画面ごとの)折り返し文字数、閲覧モードなども保存/復元。多様な使用者の様々な環境に対応できるよう配慮しました。\n"+
"────────────────────────\n"+
" Special Thanks to masasan in Seattle, U.S.A.\n"+
"(C)1994 水銀水(Suigwinsui)/小田明夫(HGD01603)";
message "●k_DESK Ver.1.51の仕様案内\n (◎:特徴 ○:対応済み ▲:秀丸V1.33で動的対応予定)\n ◎複数のFiles Set(デスクトップ)を保存/復元\n ◎できるだけ正確な位置/大きさへの復元努力\n ◎最大化も復元可能(秀丸V1.33では超簡単(^^;))\n ○折り返し文字数\n ○閲覧モード\n ○カーソルモード\n ○書き込み禁止\n ○カーソル位置\n ▲フォント/大きさ\n ▲行間\n ▲番号表示/非表示\n ▲ページ番号/行数\n ▲文字色/背景色\n ▲ウィンドウ最大化時の枠選択\n ▲カーソル位置の復元選択\n\n"+
// "────────────────────────\n"+
" Special Thanks to masasan in Seattle, U.S.A.\n"+
"(C)1994 水銀水(Suigwinsui)/小田明夫(HGD01603)";
goto menuDisp;
}else if(result==13){endmacro;
}else if(result==12||result==14){goto menuDisp;
}else if(result==15){execmacro "k_desk5s.mac";endmacro;
}else if(result>=2||result<=11)#LN=result-2;#B=#LN;
if($kb[#LN]==""){message "●注意...未定義のFiles Set(デスクトップ)は、復元できません\n●理由...指定した 第"+str(#B+1)+"番のFiles Set(デスクトップ)には、ウィンドウ状態などの保存が行なわれず、未定義です。したがって、復元することもできません。"+
"\n●対策...Files Set(デスクトップ)の保存法\n(1)まず、保存したい(複数の)ファイルを開き、保存したい諸状態を作る\n(2)k_DESKを起動\n(3)最下段「▼Files Set(デスクトップ)『保存・初期化』画面へ Save」をクリック\n(4)保存画面へ移動\n(5)ウィンドウ状態を保存したいメニュー場所をクリック\n(6)登録名を入力\n以上の作業で、指定のメニュー場所に、Files Set(デスクトップ)が保存されます。";goto menuDisp;}
question "●復元する Files Set (デスクトップ)の確認\n"+
"━━━━━━━━━━━━━━━━━━━━━━━━\n"+
$kb[#B]+"\n"+
"━━━━━━━━━━━━━━━━━━━━━━━━\n"+
" いま開かれているファイルは、全て閉じられます。\n"+
" (参考 - 過去20ファイルは「開く-ファイル名」に記録)\n\n\n"+
"■ 復元を開始して、 よろしいですね?";
if(!result)goto menuDisp;
call closeAllFilesNow;
$BookName=hidemarudir+"\\kakimac\\"+"k_DESK0"+str(#B)+".kdf";
call setDESKTOP;
endmacro;
setDESKTOP:
#maxHidemaruCount=getininum($BookName,"k_DESKMem","maxFileNum");
#i=#maxHidemaruCount;
while(1){
//読み込み
$sectionOfBookName="F"+str(#i);
$FileNameA[#i]=getinistr($BookName,$sectionOfBookName,"Fname");
#WposX[#i]=getininum($BookName,$sectionOfBookName,"WposX");
#WposY[#i]=getininum($BookName,$sectionOfBookName,"WposY");
// #posRecover[#i]=getininum($BookName,$sectionOfBookName,"posRecover");//posRecover==>0:NO(rely on HIDEMARU), 1:recover Position, 2:top of File
#posRecover[#i]=1;
#posX[#i]=getininum($BookName,$sectionOfBookName,"posX");
#posY[#i]=getininum($BookName,$sectionOfBookName,"posY");
#Wwidth[#i]=getininum($BookName,$sectionOfBookName,"Wwidth");
#Wheight[#i]=getininum($BookName,$sectionOfBookName,"Wheight");
#Lwidth[#i]=getininum($BookName,$sectionOfBookName,"Lwidth");
#readOnly[#i]=getininum($BookName,$sectionOfBookName,"readOnly");
#BrowseMode[#i]=getininum($BookName,$sectionOfBookName,"BrowseMode");
#FontS[#i]=getininum($BookName,$sectionOfBookName,"FontSize");
#LineF[#i]=getininum($BookName,$sectionOfBookName,"LineFeed");
// call fileopenJoutaiDisp;
//ウィンドウ右下座標計算(ファンクション表示時のサイズ計算は未対応、とりあえず大して変わらない?)
#ex[#i]=(((#Wwidth[#i]-1)*#FontS[#i])/2)-5;
if(#LineF[#i]==0) #ey[#i]=(#Wheight[#i]+4)*(#FontS[#i]+1);//#LineF[#i]==0:普通の行間
else #ey[#i]=(#Wheight[#i]+4)*(#FontS[#i]+(#FontS[#i]/4));//#LineF[#i]==1:(V1.32=広い行間)(V1.33=1/10)
//オープン作業
$opt[#i]="/("+str(#WposX[#i])+","+str(#WposY[#i])+","+str(#ex[#i])+","+str(#ey[#i])+") ";
if(#i==#maxHidemaruCount){
// call joutaiFileDisp2;
if($FileNameA[#i]!=filename){
if(filename=="")loadfile $FileNameA[#i];
else {openfile $opt[#i]+$FileNameA[#i];
closehidemaru (#maxHidemaruCount-#i+1);}
}
}else openfile $opt[#i]+$FileNameA[#i];
if(#LineF[#i]!=0) setwindowsize #Wwidth[#i],#Wheight[#i];
setwindowpos #WposX[#i],#WposY[#i];
//ファイル諸状態復元
if(#readOnly[#i])readonlyswitch;
if(#BrowseMode[#i])browsemodeswitch;
$1tume="w"+str(#Lwidth[#i]);
config $1tume;
if(#posRecover[#i])moveto #posX[#i],#posY[#i];//カーソル位置復元
#i=#i-1;
if(#i==0)break;
}
return;
closeAllFilesNow://ファイルを閉じ始めたと言う事は、 もう、現在の状態は破棄しても良いと言う
//前提である事は、認めても良いであろう。したがって、閉じ始めて、途中で保存していないファイルが
//あったとしても、そのファイルの保存、非保存を選択できればよいだけで、元のデスクトップにまで
//戻す必要(閉じる直前のデスクトップ保存行為)はないと判断する。update[n]があればベストだが。
##maxHidemaruCount=hidemarucount;
##i=##maxHidemaruCount;
while(1){
if(##i==1){
if(updated){
call msg_close2;
endmacro;
}else break;
}
closehidemaru (hidemaruhandle(findhidemaru(filename[##i-1])));
if(!result){
setactivehidemaru (hidemaruhandle(findhidemaru(filename[##i-1])));
call msg_close2;
endmacro;
}
##i=##i-1;
}
return;
msg_close2:
message "●注意...デスクトップの復元作業を中止します<m(_._)m>\n"+
"●理由...このファイルは、(更新)され、保存されていません ...\nk_DESKはデスクトップ復元に際して、現在開いている全ファイルを閉じます。この時『書きかけファイルの保護』が最優先されます。"+
"全ファイルは保存されている必要があり、一つでも(更新)中のファイルがあればk_DESKは停止します。\n"+
"●対策...目的のデスクトップを復元するためには、すべてのファイルを保存した後で、再度、k_DESKを実行してください。\n";
return;