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 >
Text File  |  1994-12-07  |  8KB  |  156 lines

  1. //【マクロ名】k_DESK51.mac:k_DESK Ver.1.51 のメインマクロ
  2. //            k_DESK Ver.1.51   by 水銀水(Suigwinsui)/小田 明夫(HGD01603)
  3. //                                  平成06年12月07日(水) 午前08時48分55秒
  4. //            (k_DESK51.macをk_DESK Ver.1.51 のメインマクロとします)
  5. //【連作情報】日本語文書作成支援「書きマクロ」αシリーズ Vol.1Ver.1#K1/3(秀丸エディタVer.1.32対応版)
  6. //【使用対象】秀丸 for Windows 上で日本語文章を快適に処理したい全てのみなさま。
  7. //【機能概略】秀丸に「複数デスクトップ保存/復元」機能を追加する。やめられまへん!(^^)!、ほんまでっせ!!!
  8. //【使用方法】k_DESK(Ver.1.51)の機能を秀丸エディタで利用するには、 
  9. //            k_DESK51.mac だけを登録/実行してください。
  10. //【構  成】3macro= k_DESK51.mac,k_DESK5s.mac,k_DESK5i.mac
  11. top0:
  12. $k_DESKFB0=hidemarudir+"\\kakimac\\k_DESK00.kdf";
  13. $k_DESKFB1=hidemarudir+"\\kakimac\\k_DESK01.kdf";
  14. $k_DESKFB2=hidemarudir+"\\kakimac\\k_DESK02.kdf";
  15. $k_DESKFB3=hidemarudir+"\\kakimac\\k_DESK03.kdf";
  16. $k_DESKFB4=hidemarudir+"\\kakimac\\k_DESK04.kdf";
  17. $k_DESKFB5=hidemarudir+"\\kakimac\\k_DESK05.kdf";
  18. $k_DESKFB6=hidemarudir+"\\kakimac\\k_DESK06.kdf";
  19. $k_DESKFB7=hidemarudir+"\\kakimac\\k_DESK07.kdf";
  20. $k_DESKFB8=hidemarudir+"\\kakimac\\k_DESK08.kdf";
  21. $k_DESKFB9=hidemarudir+"\\kakimac\\k_DESK09.kdf";
  22. $kb[0]=getinistr($k_DESKFB0,"k_DESKMem","BookName");
  23. $kb[1]=getinistr($k_DESKFB1,"k_DESKMem","BookName");
  24. $kb[2]=getinistr($k_DESKFB2,"k_DESKMem","BookName");
  25. $kb[3]=getinistr($k_DESKFB3,"k_DESKMem","BookName");
  26. $kb[4]=getinistr($k_DESKFB4,"k_DESKMem","BookName");
  27. $kb[5]=getinistr($k_DESKFB5,"k_DESKMem","BookName");
  28. $kb[6]=getinistr($k_DESKFB6,"k_DESKMem","BookName");
  29. $kb[7]=getinistr($k_DESKFB7,"k_DESKMem","BookName");
  30. $kb[8]=getinistr($k_DESKFB8,"k_DESKMem","BookName");
  31. $kb[9]=getinistr($k_DESKFB9,"k_DESKMem","BookName");
  32. #B=getininum($k_DESKFB0,"k_DESKMem","SetNum");
  33. menuDisp:menu
  34.      "●復元する『ほぼ・デスクトップ』選択   k_DESK Ver.1.51 水銀水",
  35.     "   Files Set  &A.  "+$kb[0],
  36.     "   Files Set  &B.  "+$kb[1],
  37.     "   Files Set  &C.  "+$kb[2],
  38.     "   Files Set  &D.  "+$kb[3],
  39.     "   Files Set  &E.  "+$kb[4],
  40.     "   Files Set  &F.  "+$kb[5],
  41.     "   Files Set  &G.  "+$kb[6],
  42.     "   Files Set  &H.  "+$kb[7],
  43.     "   Files Set  &I.  "+$kb[8],
  44.     "   Files Set  &J.  "+$kb[9],
  45.     "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━",
  46.     "         [&0] 復元中止 [Esc]",
  47.     "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━",
  48.     "   ▼Files Set(デスクトップ)『保存・初期化』画面へ &Save";
  49. if(result==0)endmacro;
  50. else if(result==1){
  51. message "●k_DESK Ver.1.51の概略 \n現在動いている秀丸のウィンドウ位置、ファイル名などの諸状態をデスクトップと呼びます。デスクトップとは『 Files の Set 』だと考えてください。複数の Files Set(デスクトップ)を保存/復元できる点が、k_DESKの最大の特徴です。加えて、動的に(拡張子に依存しないで画面ごとの)折り返し文字数、閲覧モードなども保存/復元。多様な使用者の様々な環境に対応できるよう配慮しました。\n"+
  52.     "────────────────────────\n"+
  53.     " Special Thanks to masasan in Seattle, U.S.A.\n"+
  54.     "(C)1994 水銀水(Suigwinsui)/小田明夫(HGD01603)";
  55. 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"+
  56. //    "────────────────────────\n"+
  57.     " Special Thanks to masasan in Seattle, U.S.A.\n"+
  58.     "(C)1994 水銀水(Suigwinsui)/小田明夫(HGD01603)";
  59.  
  60. goto menuDisp;
  61. }else if(result==13){endmacro;
  62. }else if(result==12||result==14){goto menuDisp;
  63. }else if(result==15){execmacro "k_desk5s.mac";endmacro;
  64. }else if(result>=2||result<=11)#LN=result-2;#B=#LN;
  65. if($kb[#LN]==""){message "●注意...未定義のFiles Set(デスクトップ)は、復元できません\n●理由...指定した 第"+str(#B+1)+"番のFiles Set(デスクトップ)には、ウィンドウ状態などの保存が行なわれず、未定義です。したがって、復元することもできません。"+
  66.         "\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;}
  67. question "●復元する Files Set (デスクトップ)の確認\n"+
  68.     "━━━━━━━━━━━━━━━━━━━━━━━━\n"+
  69.     $kb[#B]+"\n"+
  70.     "━━━━━━━━━━━━━━━━━━━━━━━━\n"+
  71.     " いま開かれているファイルは、全て閉じられます。\n"+
  72.     " (参考 - 過去20ファイルは「開く-ファイル名」に記録)\n\n\n"+
  73.     "■ 復元を開始して、 よろしいですね?";
  74. if(!result)goto menuDisp;
  75. call closeAllFilesNow;
  76. $BookName=hidemarudir+"\\kakimac\\"+"k_DESK0"+str(#B)+".kdf";
  77. call setDESKTOP;
  78. endmacro;
  79.  
  80. setDESKTOP:
  81. #maxHidemaruCount=getininum($BookName,"k_DESKMem","maxFileNum");
  82. #i=#maxHidemaruCount;
  83. while(1){
  84. //読み込み    
  85.     $sectionOfBookName="F"+str(#i);
  86.     $FileNameA[#i]=getinistr($BookName,$sectionOfBookName,"Fname");
  87.     #WposX[#i]=getininum($BookName,$sectionOfBookName,"WposX");
  88.     #WposY[#i]=getininum($BookName,$sectionOfBookName,"WposY");
  89. //    #posRecover[#i]=getininum($BookName,$sectionOfBookName,"posRecover");//posRecover==>0:NO(rely on HIDEMARU), 1:recover Position,  2:top of File
  90.     #posRecover[#i]=1;
  91.     #posX[#i]=getininum($BookName,$sectionOfBookName,"posX");
  92.     #posY[#i]=getininum($BookName,$sectionOfBookName,"posY");
  93.     #Wwidth[#i]=getininum($BookName,$sectionOfBookName,"Wwidth");
  94.     #Wheight[#i]=getininum($BookName,$sectionOfBookName,"Wheight");
  95.     #Lwidth[#i]=getininum($BookName,$sectionOfBookName,"Lwidth");
  96.     #readOnly[#i]=getininum($BookName,$sectionOfBookName,"readOnly");
  97.     #BrowseMode[#i]=getininum($BookName,$sectionOfBookName,"BrowseMode");
  98.     #FontS[#i]=getininum($BookName,$sectionOfBookName,"FontSize");
  99.     #LineF[#i]=getininum($BookName,$sectionOfBookName,"LineFeed");
  100. //    call fileopenJoutaiDisp;
  101. //ウィンドウ右下座標計算(ファンクション表示時のサイズ計算は未対応、とりあえず大して変わらない?)
  102.     #ex[#i]=(((#Wwidth[#i]-1)*#FontS[#i])/2)-5;
  103.     if(#LineF[#i]==0) #ey[#i]=(#Wheight[#i]+4)*(#FontS[#i]+1);//#LineF[#i]==0:普通の行間
  104.     else #ey[#i]=(#Wheight[#i]+4)*(#FontS[#i]+(#FontS[#i]/4));//#LineF[#i]==1:(V1.32=広い行間)(V1.33=1/10)
  105. //オープン作業
  106.     $opt[#i]="/("+str(#WposX[#i])+","+str(#WposY[#i])+","+str(#ex[#i])+","+str(#ey[#i])+") ";
  107.     if(#i==#maxHidemaruCount){
  108. //        call joutaiFileDisp2;
  109.         if($FileNameA[#i]!=filename){
  110.             if(filename=="")loadfile $FileNameA[#i];
  111.             else {openfile $opt[#i]+$FileNameA[#i];
  112.             closehidemaru (#maxHidemaruCount-#i+1);}
  113.         }
  114.     }else openfile $opt[#i]+$FileNameA[#i];
  115.     if(#LineF[#i]!=0) setwindowsize #Wwidth[#i],#Wheight[#i];
  116.     setwindowpos #WposX[#i],#WposY[#i];
  117. //ファイル諸状態復元
  118.     if(#readOnly[#i])readonlyswitch;
  119.     if(#BrowseMode[#i])browsemodeswitch;
  120.     $1tume="w"+str(#Lwidth[#i]);
  121.     config $1tume;
  122.     if(#posRecover[#i])moveto #posX[#i],#posY[#i];//カーソル位置復元 
  123.     #i=#i-1;
  124.     if(#i==0)break;
  125. }
  126. return;
  127.  
  128. closeAllFilesNow://ファイルを閉じ始めたと言う事は、 もう、現在の状態は破棄しても良いと言う
  129. //前提である事は、認めても良いであろう。したがって、閉じ始めて、途中で保存していないファイルが
  130. //あったとしても、そのファイルの保存、非保存を選択できればよいだけで、元のデスクトップにまで
  131. //戻す必要(閉じる直前のデスクトップ保存行為)はないと判断する。update[n]があればベストだが。
  132. ##maxHidemaruCount=hidemarucount;
  133. ##i=##maxHidemaruCount;
  134. while(1){
  135.     if(##i==1){
  136.         if(updated){
  137.             call msg_close2;
  138.             endmacro;
  139.         }else break;
  140.     }
  141.     closehidemaru (hidemaruhandle(findhidemaru(filename[##i-1])));
  142.     if(!result){
  143.         setactivehidemaru (hidemaruhandle(findhidemaru(filename[##i-1])));
  144.         call msg_close2;
  145.         endmacro;
  146.     }
  147.     ##i=##i-1;
  148. }
  149. return;
  150. msg_close2:
  151. message  "●注意...デスクトップの復元作業を中止します<m(_._)m>\n"+
  152.     "●理由...このファイルは、(更新)され、保存されていません ...\nk_DESKはデスクトップ復元に際して、現在開いている全ファイルを閉じます。この時『書きかけファイルの保護』が最優先されます。"+
  153.     "全ファイルは保存されている必要があり、一つでも(更新)中のファイルがあればk_DESKは停止します。\n"+
  154.     "●対策...目的のデスクトップを復元するためには、すべてのファイルを保存した後で、再度、k_DESKを実行してください。\n";
  155. return;
  156.