ファイルを読み直す・開きなおす

提供: MeryWiki
2019年3月29日 (金) 20:48時点におけるSukemaru (トーク | 投稿記録)による版
ナビゲーションに移動 検索に移動

標準ツールバーの「読み直し」アイコン(ファイル メニューの「読み直し」コマンド)のポップアップメニューを再現します。


エンコード指定の選択肢のほかに以下の機能を追加してあります。

  • Mery の "書き換え禁止" フラグ ON/OFF の変更
  • 読み取り専用属性 ON/OFF の変更(ファイルを開きなおす)
  • ファイルを閉じて開きなおす

※ファイルを開きなおす場合は、タブの並び順のさいごの位置になります。


ダウンロード >> 「ファイル:ファイルを読み直す・開きなおす.zip」(アイコン入り)

#title = "ファイルを読み直す・開きなおす"
#tooltip = "エンコード指定で読み直し/読み取り専用属性の変更"
// #icon = "Mery用 マテリアルデザインっぽいアイコン.icl",262

// ポップアップメニュー項目の定義
var m = CreatePopupMenu();
m.Add( "", 0, meMenuSeparator );
m.Add( "自動選択 (&A)", 2068 );
m.Add( "", 0, meMenuSeparator );
m.Add( "UTF-16&LE", 2069 );
m.Add( "UTF-16&BE", 2070 );
m.Add( "UTF-&8", 2071 );
m.Add( "UTF-&7", 2072 );
m.Add( "", 0, meMenuSeparator );
m.Add( "日本語 (シフト JI&S)", 2083 );
m.Add( "日本語 (&JIS)", 2082 );
m.Add( "日本語 (&EUC)", 2081 );
m.Add( "", 0, meMenuSeparator );
m.Add( "西ヨーロッパ言語", 2088 );
m.Add( "中央ヨーロッパ言語", 2075 );
m.Add( "キリル言語", 2078 );
m.Add( "バルト言語", 2074 );
m.Add( "ギリシャ語", 2079 );
m.Add( "ヘブライ語", 2080 );
m.Add( "トルコ語", 2086 );
m.Add( "アラビア語", 2073 );
m.Add( "タイ語", 2085 );
m.Add( "ベトナム語", 2087 );
m.Add( "簡体中国語 (GB2312)", 2076 );
m.Add( "繁体中国語 (Big5)", 2077 );
m.Add( "韓国語", 2084 );

// 以下、コメントアウトした項目があるので、任意でアンコメントしてお使いください

m.Add( "", 0, meMenuSeparator );
m.Add( "", 0, meMenuSeparator );
m.Add( "書き換え禁止 ON/OFF (&Y)", 2 );
// m.Add( "書き換え禁止にする", 3 );
// m.Add( "書き換え禁止を解除", 4 );
// m.Add( "", 0, meMenuSeparator );
m.Add( "読み取り専用属性 ON/OFF (&R)", 5 );
// m.Add( "読み取り専用属性にする", 6 );
// m.Add( "読み取り専用属性を解除", 7 );
// m.Add( "", 0, meMenuSeparator );
m.Add( "閉じて開きなおす (&O)", 1 );

// m.Add( "", 0, meMenuSeparator );
// m.Add( "キャンセル & ", 0 );	//Escキーでキャンセルできるので非表示に

// ポップアップメニューを表示
var r = m.Track( mePosMouse = 1 );

switch ( r ) {

  case 0:
    break;

  case 1:	// ファイルを閉じて開きなおす
    var file = document.FullName;
    document.Close();
    if( editor.ActiveDocument.FullName || editor.ActiveDocument.Text )
      editor.NewFile();
    editor.OpenFile( file );
    break;

  case 2:	// 書き換え禁止フラグ ON/OFF を変更する
    document.ReadOnly = ( document.ReadOnly ) ? false : true;
    break;

  case 3:	// 書き換え禁止にする
    document.ReadOnly = true;
    break;

  case 4:	// 書き換え禁止を解除
    document.ReadOnly = false;
    break;

  case 5:	// 読み取り専用属性 ON/OFF を変更して開き直す
    var fso = new ActiveXObject( "Scripting.FileSystemObject" );
    var path = document.FullName;
    var file = fso.GetFile( path );
    // ファイルの書込み禁止属性をチェック
    if ( file.Attributes % 2 == 0 ) {
      // 保存して閉じる
      document.Save();
      document.Close();
      // 書込み禁止属性 ON
      file.Attributes = file.Attributes + 1;
    }
    else {
      // 閉じる
      editor.ActiveDocument.Close();
      // 書込み禁止属性 OFF
      file.Attributes = file.Attributes - 1;
    }
    // 開きなおす
    if( editor.ActiveDocument.FullName || editor.ActiveDocument.Text )
      editor.NewFile();
    editor.OpenFile( file );
    break;

  case 6:	// 読み取り専用属性 ON に設定して開き直す
    var fso = new ActiveXObject( "Scripting.FileSystemObject" );
    var path = document.FullName;
    var file = fso.GetFile( path );
    if ( file.Attributes % 2 == 0 ) {
      document.Save();
      document.Close();
      file.Attributes = file.Attributes + 1;
      if( editor.ActiveDocument.FullName || editor.ActiveDocument.Text )
        editor.NewFile();
      editor.OpenFile( file );
    }
    break;

  case 7:	// 読み取り専用属性を解除して開き直す
    var fso = new ActiveXObject( "Scripting.FileSystemObject" );
    var path = document.FullName;
    var file = fso.GetFile( path );
    if ( file.Attributes % 2 != 0 ) {
      document.Close();
      file.Attributes = file.Attributes - 1;
      if( editor.ActiveDocument.FullName || editor.ActiveDocument.Text )
        editor.NewFile();
      editor.OpenFile( file );
    }
    break;

  default:	// エンコード指定で読みなおす
    editor.ExecuteCommandByID( r );
    break;

}
スポンサーリンク