「書き換え禁止モード色反転」の版間の差分

提供: MeryWiki
ナビゲーションに移動 検索に移動
Bleat (トーク | 投稿記録)
Bleat (トーク | 投稿記録)
Mery ver3.1以降用にスクリプト刷新
1行目: 1行目:
== 概要 ==
== 概要 ==
[https://www.haijin-boys.com/discussions/3503 フォーラム]の意見より作成。<br>
書き換え禁止ファイルに切り替えたとき、自動で色反転するマクロセットです。<br>
書き換え禁止ファイルに切り替えたとき、自動で色反転するマクロセットです。<br>
タブ無効中やステータスバー非表示の状態でも、書禁モードが区別できます。
タブ無効中やステータスバー非表示の状態でも、書禁モードが区別できます。
[https://www.haijin-boys.com/discussions/3503 フォーラム]の要望を見て作成しました。<br>


== ダウンロード ==
== ダウンロード ==
14行目: 15行目:


== 使用上の注意 ==
== 使用上の注意 ==
[[includeライブラリ]] を利用しています。このマクロの前に導入してください。
<div class="warningbox">
* 動作確認はMery '''ver3.1.0以降のアルファ版'''
* イベント起動のスクリプト名が変わりました。
書禁モード色反転.js → 書き換え禁止モード色反転.js
* includeライブラリが不要になりました。
以前から使用している方は、MacroSettingsフォルダ内の設定ファイル(書禁モード反転.txt)を削除してください。そのままでも特に影響はありません。<br>
* サポート対象外のQueryStatusByIDメソッドとExecuteCommandByIDメソッドを使用しています。
* ダークモード+ダークテーマに慣れている方は、反転色で目をやられる恐れがあります。
</div>


== 書き換え禁止モード色反転 ==
== 書き換え禁止モード色反転 ==
'''マクロ実行イベント専用'''
'''実行イベント専用マクロ'''
* フォーカスを受け取った時:タブ無効・複数ウィンドウ
* タブ無効モード(複数ウィンドウ)で使用:フォーカスを受け取った時
* アクティブな文書が変更された時:タブ有効
* タブ有効モードで使用:アクティブな文書が変更された時
(注)設定ファイルを移動させたい場合は、「設定ファイルのパス」を書き換えてください。


<source lang="javascript">
<source lang="javascript">
#title = "書き換え禁止モード色反転"
#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 RO = editor.QueryStatusByID( MMEID_VIEW_INVERT_COLOR = 2145 ); // 色を反転チェック


const on = "1";
if (editor.ActiveDocument.ReadOnly && RO == 1) { // 書禁有効かつ色反転OFF
const off = "0";
Status = " ReadOnly Mode";
 
editor.ExecuteCommandByID( MEID_VIEW_INVERT_COLOR = 2145 );
if ( flag == null){ // 初回(セーブファイル作成)
} else if (!editor.ActiveDocument.ReadOnly && RO == 3) { // 書禁無効かつ色反転ON
if (Editor.ActiveDocument.ReadOnly){ // 書禁
Status = " ReadOnly Mode";
editor.ExecuteCommandByID(2145); // 色を反転
editor.ExecuteCommandByID( MEID_VIEW_INVERT_COLOR = 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"); // フラグを折って保存
}
}
}
</source>
</source>


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


<source lang="javascript">
<source lang="javascript">
#title = "書き換え禁止"
#title = "書き換え禁止"
#icon = "書き換え禁止.ico"
#tooltip = "書禁+反転切り替え"
#tooltip = "書き換え禁止+色反転"
#icon = "書き換え禁止a.ico"
#include "include/MeryInfo.js"
#icondark = "書き換え禁止b.ico"
#include "include/IO.js"


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


const flag = IO.LoadFromFile( file_FullName , "utf-8"); // 読み込み
if (!editor.ActiveDocument.ReadOnly){
 
document.ReadOnly = true; // 書き換え禁止ON
const on = "1";
Status = " ReadOnly Mode";
const off = "0";
} else {
 
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;
document.ReadOnly = false;
editor.ExecuteCommandByID(2145); // 色反転OFF
Status = "";
IO.SaveToFile( file_FullName , off, "utf-8"); // フラグを折って保存
}
}
</source>
</source>


== 【おまけ】書き換え禁止ファイルを閉じる ==
== 更新履歴 ==
特定キーの単打で書禁ファイルのタブ・ウィンドウを閉じるマクロです。<br>
2021/04/17<br>
割当キーごとにマクロスクリプトを登録する必要があります。
* Mery ver3.1以降用にスクリプト刷新
 
* ダークモード用アイコン追加
=== Enterで閉じる ===
* ファイルを閉じるおまけマクロ削除
ショートカット割当:Enter
2019/02/15 ソースコード微修正
<source lang="javascript">
2018/11/14 公開
#title = "書禁ファイルを閉じる(Enter)"
#tooltip = "書き込み禁止ファイルを閉じる"
 
if  (!Editor.ActiveDocument.ReadOnly){ // 通常モード
Document.Selection.NewLine(1);  // Enter(改行)
Quit();
} else if (Editor.ActiveDocument.ReadOnly){ // 書禁モード
Editor.ActiveDocument.Close(); // ファイルを閉じる
}
</source>
 
=== BackSpaceで閉じる ===
ショートカット割当:BackSpace
<source lang="javascript">
#title = "書禁ファイルを閉じる(BS)"
#tooltip = "書き込み禁止ファイルを閉じる"
 
if  (!Editor.ActiveDocument.ReadOnly){ // 通常モード
Document.Selection.DeleteLeft(1);  // Backspase
Quit();
} else if (Editor.ActiveDocument.ReadOnly){ // 書禁モード
Editor.ActiveDocument.Close(); // ファイルを閉じる
}
</source>
 
=== Qで閉じる ===
ショートカット割当:Q
<source lang="javascript">
#title = "書禁ファイルを閉じる(Q)"
#tooltip = "書き込み禁止ファイルを閉じる"
 
if  (!Editor.ActiveDocument.ReadOnly){ // 通常モード
Document.Selection.Text = "q";  // Q
Quit();
} else if (Editor.ActiveDocument.ReadOnly){ // 書禁モード
Editor.ActiveDocument.Close(); // ファイルを閉じる
}
</source>
 
=== Escで閉じる ===
ショートカット割当:Esc
<source lang="javascript">
#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(); // ファイルを閉じる
}
</source>

2021年4月17日 (土) 20:06時点における版

概要

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

フォーラムの要望を見て作成しました。

ダウンロード

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

内容

  • 書き換え禁止モード色反転.js : イベント実行用スクリプト
  • 書き換え禁止.js : ショートカット・ツールバー実行用スクリプト
  • 書き換え禁止a.ico :ツールバーアイコン
  • 書き換え禁止b.ico :ツールバーアイコン(ダークモード用)

使用上の注意

  • 動作確認はMery ver3.1.0以降のアルファ版
  • イベント起動のスクリプト名が変わりました。

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

  • includeライブラリが不要になりました。

以前から使用している方は、MacroSettingsフォルダ内の設定ファイル(書禁モード反転.txt)を削除してください。そのままでも特に影響はありません。

  • サポート対象外のQueryStatusByIDメソッドとExecuteCommandByIDメソッドを使用しています。
  • ダークモード+ダークテーマに慣れている方は、反転色で目をやられる恐れがあります。

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

実行イベント専用マクロ

  • タブ無効モード(複数ウィンドウ)で使用:フォーカスを受け取った時
  • タブ有効モードで使用:アクティブな文書が変更された時
#title = "書き換え禁止モード色反転"

/* -----------------------------------------------------------------------------
 * アクティブなファイルが書禁状態だったら色反転するイベント実行マクロ
 * 実行イベント「フォーカスを受け取った時」または「アクティブな文書が変更された時」
 * ----------------------------------------------------------------------------- */

const RO = editor.QueryStatusByID( MMEID_VIEW_INVERT_COLOR = 2145 );	// 色を反転チェック

if (editor.ActiveDocument.ReadOnly && RO == 1) {	 // 書禁有効かつ色反転OFF
	Status = " ReadOnly Mode";
	editor.ExecuteCommandByID( MEID_VIEW_INVERT_COLOR = 2145 );
} else if (!editor.ActiveDocument.ReadOnly && RO == 3) {	 // 書禁無効かつ色反転ON
	Status = " ReadOnly Mode";
	editor.ExecuteCommandByID( MEID_VIEW_INVERT_COLOR = 2145 );
}

書き換え禁止

トグル切り替えのタイミングで色反転をします。 ショートカット設定例:Int
ZIPに同梱したアイコンはIcon-rainbowの素材「鍵・錠の無料アイコン素材 1」をお借りしました。

#title = "書き換え禁止"
#tooltip = "書禁+反転切り替え"
#icon = "書き換え禁止a.ico"
#icondark = "書き換え禁止b.ico"

editor.ExecuteCommandByID( MEID_VIEW_INVERT_COLOR = 2145 ); // 色反転実行

if (!editor.ActiveDocument.ReadOnly){
	document.ReadOnly = true; // 書き換え禁止ON
	Status = "  ReadOnly Mode";
} else {
	document.ReadOnly = false;
	Status = "";
}

更新履歴

2021/04/17

  • Mery ver3.1以降用にスクリプト刷新
  • ダークモード用アイコン追加
  • ファイルを閉じるおまけマクロ削除

2019/02/15 ソースコード微修正 2018/11/14 公開

スポンサーリンク