書き換え禁止モード色反転

提供: MeryWiki
移動先: 案内検索

概要[編集]

フォーラムの意見より作成。
書き換え禁止ファイルに切り替えたとき、自動で色反転するマクロセットです。
タブ無効中やステータスバー非表示の状態でも、書禁モードが区別できます。

ダウンロード[編集]

ファイル:書き換え禁止モード色反転.zip

内容

  • 書禁モード色反転.js : イベント実行用スクリプト
  • 書き換え禁止.js : ショートカット・ツールバー実行用スクリプト
  • 書き換え禁止.ico :ツールバーアイコン
  • MacroSettings
    • 書禁モード反転.txt:設定ファイル

使用上の注意[編集]

includeライブラリ を利用しています。このマクロの前に導入してください。

書き換え禁止モード色反転[編集]

マクロ実行イベント専用

  • フォーカスを受け取った時:タブ無効・複数ウィンドウ
  • アクティブな文書が変更された時:タブ有効

(注)設定ファイルを移動させたい場合は、「設定ファイルのパス」を書き換えてください。

#title = "書き換え禁止モード色反転"
#tooltip = "書き込み禁止モードで色反転"
#include "include/MeryInfo.js"
#include "include/IO.js"

/* -----------------------------------------------------------------------------
 * アクティブなファイルが書禁状態だったら色反転するマクロ
 * 実行イベント「フォーカスを受け取った時」「アクティブな文書が変更された時」専用
 * ----------------------------------------------------------------------------- */
 
const macroPath = MeryInfo.GetMacroFolderPath();
const file_FullName = macroPath + "\\MacroSettings\\書禁モード反転.txt";  // 設定ファイルのパス

const flag = IO.LoadFromFile( file_FullName , "utf-8"); // 読み込み

const on = "1";
const off = "0";

if ( flag == null){ // 初回(セーブファイル作成)
	if (Editor.ActiveDocument.ReadOnly){	// 書禁
		editor.ExecuteCommandByID(2145);	// 色を反転
		IO.SaveToFile( file_FullName , on , "utf-8"); // フラグを立てて保存
	} else {
		IO.SaveToFile( file_FullName , off , "utf-8"); // フラグを折って保存
	}
} else {
	if (Editor.ActiveDocument.ReadOnly && flag == off){ // 通常 → 書禁
		editor.ExecuteCommandByID(2145);	// 色を反転
		IO.SaveToFile( file_FullName , on , "utf-8"); // フラグを立てて保存
	}
	if (!Editor.ActiveDocument.ReadOnly && flag == on){// 書禁 → 通常
		editor.ExecuteCommandByID(2145);	// 色を反転
		IO.SaveToFile( file_FullName , off, "utf-8"); // フラグを折って保存
	}
}

書き換え禁止[編集]

トグル切り替えのタイミングで色反転をします。(注)読み取り専用の属性変更はしません。
マクロ「書き換え禁止モード色反転」と同じ設定ファイルを参照しています。 保存場所を移動させた場合は、ファイルパスを書き換えてください。
ショートカット設定例:Int
同梱アイコンはIcon-rainbowの素材「鍵・錠の無料アイコン素材 1」をお借りしました。

#title = "書き換え禁止"
#icon = "書き換え禁止.ico"
#tooltip = "書き換え禁止+色反転"
#include "include/MeryInfo.js"
#include "include/IO.js"

const macroPath = MeryInfo.GetMacroFolderPath(); // Macrosフォルダのパス
const file_FullName = macroPath + "\\MacroSettings\\書禁モード色反転.txt"; // 設定ファイルのパス

const flag = IO.LoadFromFile( file_FullName , "utf-8"); // 読み込み

const on = "1";
const off = "0";

if (!Editor.ActiveDocument.ReadOnly && flag == off || !Editor.ActiveDocument.ReadOnly && flag == on){
	document.ReadOnly = true;
	editor.ExecuteCommandByID(2145);	// 色反転ON
	IO.SaveToFile( file_FullName , on , "utf-8"); // フラグを立てて保存
} else if (Editor.ActiveDocument.ReadOnly && flag == off || Editor.ActiveDocument.ReadOnly && flag == on){
	document.ReadOnly = false;
	editor.ExecuteCommandByID(2145);	// 色反転OFF
	IO.SaveToFile( file_FullName , off, "utf-8"); // フラグを折って保存
}

【おまけ】書き換え禁止ファイルを閉じる[編集]

特定キーの単打で書禁ファイルのタブ・ウィンドウを閉じるマクロです。
割当キーごとにマクロスクリプトを登録する必要があります。

Enterで閉じる[編集]

ショートカット割当:Enter

#title = "書禁ファイルを閉じる(Enter)"
#tooltip = "書き込み禁止ファイルを閉じる"

if  (!Editor.ActiveDocument.ReadOnly){	// 通常モード
	Document.Selection.NewLine(1);  // Enter(改行)
	Quit();
} else if (Editor.ActiveDocument.ReadOnly){ // 書禁モード
	Editor.ActiveDocument.Close();	// ファイルを閉じる
}

BackSpaceで閉じる[編集]

ショートカット割当:BackSpace

#title = "書禁ファイルを閉じる(BS)"
#tooltip = "書き込み禁止ファイルを閉じる"

if  (!Editor.ActiveDocument.ReadOnly){	// 通常モード
	Document.Selection.DeleteLeft(1);  // Backspase
	Quit();
} else if (Editor.ActiveDocument.ReadOnly){ // 書禁モード
	Editor.ActiveDocument.Close();	// ファイルを閉じる
}

Qで閉じる[編集]

ショートカット割当:Q

#title = "書禁ファイルを閉じる(Q)"
#tooltip = "書き込み禁止ファイルを閉じる"

if  (!Editor.ActiveDocument.ReadOnly){	// 通常モード
	Document.Selection.Text = "q";  // Q
	Quit();
} else if (Editor.ActiveDocument.ReadOnly){ // 書禁モード
	Editor.ActiveDocument.Close();	// ファイルを閉じる
}

Escで閉じる[編集]

ショートカット割当:Esc

#title = "書禁ファイルを閉じる(Esc)"
#tooltip = "書き込み禁止ファイルを閉じる"

if  (!Editor.ActiveDocument.ReadOnly){	// 通常モード
	const WshShell = new ActiveXObject( "WScript.Shell" );
	WshShell.SendKeys ( "{ESC}" ); // Escape
	Quit();
} else if (Editor.ActiveDocument.ReadOnly){ // 書禁モード
	Editor.ActiveDocument.Close();	// ファイルを閉じる
}
スポンサーリンク