「
すべて閉じる
」を編集中 (節単位)
ナビゲーションに移動
検索に移動
警告:
ログインしていません。編集を行うと、あなたの IP アドレスが公開されます。
ログイン
または
アカウントを作成
すれば、あなたの編集はその利用者名とともに表示されるほか、さまざまなメリットもあります。
スパム攻撃防止用のチェックです。 決して、ここには、値の入力は
しない
でください!
== 「すべて閉じる」の統合版(モード選択) == [[ファイル:Mery_すべて閉じる(入力).png|link=|border|right|入力ダイアログ]] [[ファイル:Mery_すべて閉じる(メニュー).png|link=|border|right|ポップアップメニュー]] 「すべて閉じる」と「他のタブを閉じる」の機能 '''全部入り''' です。<br><br> ※入力ダイアログかポップアップメニューで動作モードを指定します(ソースコード内の設定項目で「デフォルト値」を指定しておくと Enter または Space キーだけで処理を開始できます)。 <br clear=all> <syntaxhighlight lang="javascript" style="height:60em; overflow:auto;"> #title = "すべて閉じる(モード選択)" #tooltip = "すべて閉じる(入力ダイアログ)" #icon = "close_all[4].ico" // または #tooltip = "すべて閉じる(ポップアップメニュー)" // ---------- ▼ 設定項目 ▼ ---------- // ■起動モード var userModeInput = true; // true: 入力ダイアログ // false: ポップアップメニュー // ■デフォルト値( 1 ~ 6 ) var defaultMode = ""; // デフォルト: 入力ダイアログでは Enter キーで確定 // ポップアップメニューでは Space キーで確定 // "": 表示しない // 1: 他のタブをすべて閉じる // 2: 左側のタブをすべて閉じる // 3: 右側のタブをすべて閉じる // 4: 変更なしのタブをすべて閉じる(「未保存*」のタブは閉じない) // 5: すべてのタブを閉じる // 6: 問答無用ですべて閉じる(すべてのタブの「未保存*」を無視) // ※ 4 ですべてのタブが保存済み、かつタブの閉じるボタンを表示している場合は、 // さいごに新規「無題」タブが残る(閉じるボタン無しならウインドウが閉じる) // ※ 4, 6 以外は、「未保存*」の名前つきドキュメントで保存の確認ダイアログ // ※ 5, 6 で閉じた場合、「ワークスペース」の復元可(Mery Ver. 2.6.15 以降) // ■未保存* の「無題」ドキュメント var ignoreUnNamed = false; // true: 保存の確認ダイアログを表示しない // false: 保存の確認ダイアログを表示する // ※ mode = 6 では無効(表示しない) // ---------- ▲ 設定項目 ▲ ---------- var mode; // 入力ダイアログ if ( userModeInput ) { // (全角 0-9 のみ)半角変換した数字を文字列で返す var ToHalfWidthNum = function( strVal ){ return strVal.replace( /[0-9]/g, function( tmp ) { return String.fromCharCode( tmp.charCodeAt(0) - 0xFEE0 ) } ) }; // 1 ~ 6 以外の無効な文字列はすべて無視 mode = + ToHalfWidthNum( Prompt( "1: 他のタブ. 2: 左側. 3: 右側. 4: 変更なし. 5: すべて. 6: 強制終了.", defaultMode ) ).replace( /[^1-6]/g , "" ); } // ポップアップメニュー else { var menu = CreatePopupMenu(); menu.Add( "&1:\t他のタブをすべて閉じる", 1 ); menu.Add( "&2:\t左側のタブをすべて閉じる", 2 ); menu.Add( "&3:\t右側のタブをすべて閉じる", 3 ); menu.Add( "&4:\t変更なしのタブをすべて閉じる", 4 ); menu.Add( "&5:\tすべてのタブを閉じる", 5 ); menu.Add( "&6:\t未保存* を無視してすべて閉じる", 6 ); if ( /^[0-6]$/.test( defaultMode.toString() ) ) { menu.Add( "", 0, meMenuSeparator ); menu.Add( defaultMode + ":\tデフォルトモードを実行 ( Space& キー )", + defaultMode ); } menu.Add( "", 0, meMenuSeparator ); menu.Add( "&0:\tキャンセル", 0 ); mode = menu.Track( mePosMouse ); } var d = document; var dCount = editor.Documents.Count; var dd, docu; switch ( mode ) { // 他のタブをすべて閉じる case 1: case 2: case 3: loop: for ( var i = 0; i < dCount; i ++ ) { docu = editor.Documents.Item( i ); if ( docu == d ) { dd = i; break loop; } } var start = ( mode == 2 ) ? dd - 1 : dCount - 1; var end = ( mode == 3 ) ? dd + 1 : 0; for ( var i = start; i + 1 > end; i -- ) { docu = editor.Documents.Item( i ); if ( docu != d ) { if ( ignoreUnNamed && ! docu.Name ) { docu.Saved = true; } docu.Close(); } } d.Activate(); break; // すべて閉じる case 4: case 5: case 6: for ( var i = dCount- 1; i + 1 > 0; i -- ) { docu = editor.Documents.Item( i ); if ( mode == 4 && docu.Saved ) { docu.Close(); } else if ( mode == 6 || ( mode == 5 && ignoreUnNamed && ! docu.Name ) ) { docu.Saved = true; } } if ( mode != 4 ) { window.Close(); } break; default: break; } </syntaxhighlight>
編集内容の要約:
MeryWikiへの投稿はすべて、他の投稿者によって編集、変更、除去される場合があります。 自分が書いたものが他の人に容赦なく編集されるのを望まない場合は、ここに投稿しないでください。
また、投稿するのは、自分で書いたものか、パブリック ドメインまたはそれに類するフリーな資料からの複製であることを約束してください(詳細は
MeryWiki:著作権
を参照)。
著作権保護されている作品は、許諾なしに投稿しないでください!
このページを編集するには、下記の数式を計算してその答えを欄に入力してください (
ヘルプ
):
いちたすには =
キャンセル
編集ヘルプ
(新しいウィンドウで開きます)
スポンサーリンク
ナビゲーション メニュー
個人用ツール
ログインしていません
トーク
投稿記録
アカウント作成
ログイン
名前空間
ページ
議論
日本語
表示
閲覧
編集
履歴表示
その他
検索
スポンサーリンク
スポンサーリンク
案内
メインページ
ヘルプ
よくある質問
マクロリファレンス
マクロライブラリ
プラグインライブラリ
構文ファイル
テーマ
寄付・開発支援
練習用ページ
開発室
開発者のブログ
ツール
スポンサーリンク