「コンパクトメニュー」の版間の差分
細 →機能 |
空行と改行の除去 |
||
| (2人の利用者による、間の8版が非表示) | |||
| 1行目: | 1行目: | ||
== 機能 == | == 機能 == | ||
;メニューバーの全項目をひとつのポップアップメニューにまとめて表示します。 | ;メニューバーの全項目をひとつのポップアップメニューにまとめて表示します。 | ||
* [ ファイル(F) / 編集(E) / 検索(S) / 表示(V) / マクロ(M) / ツール(T) / ウィンドウ(W) / ヘルプ(H) ] の各メニュー項目とそれらのサブメニューを再現します。 | * [ ファイル(F) / 編集(E) / 検索(S) / 表示(V) / マクロ(M) / ツール(T) / ウィンドウ(W) / ヘルプ(H) ] の各メニュー項目とそれらのサブメニューを再現します。 | ||
| 8行目: | 6行目: | ||
* 右クリックメニューまたはツールバーアイコンからの起動を想定しています。 | * 右クリックメニューまたはツールバーアイコンからの起動を想定しています。 | ||
: <span style="color:#c00;">※ このマクロを導入しても、エディタウインドウの「メニューバー」を非表示にすることはできません</span> (Firefox や Thunderbird のアドオン CompactMenu2 の機能を再現するものではありません)。 | : <span style="color:#c00;">※ このマクロを導入しても、エディタウインドウの「メニューバー」を非表示にすることはできません</span> (Firefox や Thunderbird のアドオン CompactMenu2 [https://addons.thunderbird.net/Ja/firefox/addon/compact-menu-2/][https://addons.thunderbird.net/ja/thunderbird/addon/compact-menu-2/] の機能を再現するものではありません)。 | ||
[[ファイル:コンパクトメニュー(2).png|link=|left|メニュー項目拡張*]] | |||
[[ファイル:コンパクトメニュー(1).png|link=|拡張サブメニュー]] | |||
<br clear=all> | |||
; <big>拡張メニュー</big> | ; <big>拡張メニュー</big> | ||
標準メニューでは表示されない、<span style="color:#0000c0;">ポップアップメニューやキーボードショートカット専用のコマンドを表示</span>できるので、「コンパクトメニュー」マクロひとつで Mery の機能を隅々まで使いこなすことができるようになります。 | |||
: ⇒ ソースコード内の設定項目 '''<syntaxhighlight lang="javascript" inline>var xMenuEnable = true;</syntaxhighlight>''' に | : ⇒ ソースコード内の設定項目 '''<syntaxhighlight lang="javascript" inline>var xMenuEnable = true;</syntaxhighlight>''' に | ||
* [https://www.haijin-boys.com/software/mery/mery-3-0-0 ベータ版 3.0.1] までで追加されたものを含めて、'''ほぼすべてのコマンド'''(キーボードマップに表示される全コマンド)を表示します。 | |||
:: ※ Mery 本体のバージョンに応じて項目の 表示/非表示 を自動化。 | :: ※ Mery 本体のバージョンに応じて項目の 表示/非表示 を自動化。 | ||
* サブメニュー項目「'''拡張メニュー'''」が追加されて、「プロパティ」 「フルパスをコピー」 「親フォルダを開く」 などのコマンドを使用できます。<br> ⇒ 拡張サブメニュー の表示位置をメインメニューの最上部に変更 (2020-03-29) | |||
* [ ヘルプ ] メニューに「'''Mery 作者のホームページ'''」へのハイパーリンクコマンドが追加され、既定の WEB ブラウザで [https://www.haijin-boys.com/software/mery/ 公式ブログ] や [https://www.haijin-boys.com/discussions フォーラム]、[[メインページ|Mery Wiki]] などを開けるようになります。 (2020-03-29 追加) | |||
== 制限事項 == | == 制限事項 == | ||
* 多分 Mery Ver 2.6.7 以降であれば動作するはずです。 | |||
* 多分 Mery | |||
: 「編集モード」 「マクロ」 「プラグイン」 「外部ツール」 の一覧が表示されないときは、それぞれの設定ダイアログを開いて <kbd>OK</kbd> ボタンで閉じると表示されるようになるはずです <br>(Mery を初期設定状態のまま使っている場合、それぞれの設定ダイアログを開いて [ OK ] で閉じたことがないと、Mery.ini に書きこまれない?)。 | : 「編集モード」 「マクロ」 「プラグイン」 「外部ツール」 の一覧が表示されないときは、それぞれの設定ダイアログを開いて <kbd>OK</kbd> ボタンで閉じると表示されるようになるはずです <br>(Mery を初期設定状態のまま使っている場合、それぞれの設定ダイアログを開いて [ OK ] で閉じたことがないと、Mery.ini に書きこまれない?)。 | ||
* Mery の [オプション] >> [履歴] 設定パネル内の各種項目が OFF (無効) になっていると、利用できなくなる機能があります。 | * Mery の [オプション] >> [履歴] 設定パネル内の各種項目が OFF (無効) になっていると、利用できなくなる機能があります。 | ||
| 36行目: | 36行目: | ||
:* ウインドウメニューの「タブ一覧」のアイテムの「'''無題'''-<x>」の連番の再現は無理 | :* ウインドウメニューの「タブ一覧」のアイテムの「'''無題'''-<x>」の連番の再現は無理 | ||
* 「'''マクロ名'''」の自動取得は困難なので、実体ファイルのベース名(e.g. ファイル名が "HogeHoge.js" なら "HogeHoge")で表示します。<br> また、親フォルダ名を追加表示することができますので、大量のマクロをカテゴリごとにフォルダ分けしている場合は設定項目 <syntaxhighlight lang="javascript" inline>var showParent = true;</syntaxhighlight> にしてください。 (2020 | * 「'''マクロ名'''」の自動取得は困難なので、実体ファイルのベース名(e.g. ファイル名が "HogeHoge.js" なら "HogeHoge")で表示します。<br> また、親フォルダ名を追加表示することができますので、大量のマクロをカテゴリごとにフォルダ分けしている場合は設定項目 <syntaxhighlight lang="javascript" inline>var showParent = true;</syntaxhighlight> にしてください。 (2020-03-29 追加) | ||
* Mery Wiki に収録されている「'''プラグイン名'''」は表示できますが、DLL ファイルをリネームしている場合はファイルのベース名で表示します。 | * Mery Wiki に収録されている「'''プラグイン名'''」は表示できますが、DLL ファイルをリネームしている場合はファイルのベース名で表示します。 | ||
* スペルチェック用の「'''辞書名'''」は、実体ファイル(拡張子 AFF)のファイル名順で表示しますが、本来の表示順のルールが不明のため、辞書の切り替えが正しく機能しないかも。 | * スペルチェック用の「'''辞書名'''」は、実体ファイル(拡張子 AFF)のファイル名順で表示しますが、本来の表示順のルールが不明のため、辞書の切り替えが正しく機能しないかも。 | ||
* 「'''クリップボード履歴'''」は [https://www.haijin-boys.com/software/mery/mery-2-8-0#3 Mery ベータ版 2.8.1] 以降であれば 16 件まで表示されるはずです。<br> 2.8.0 以前のバージョンでは最新の 1 件しか表示できません(外部のアプリでテキスト以外のデータを「コピー」しているときは 0 件になる)。 | * 「'''クリップボード履歴'''」は [https://www.haijin-boys.com/software/mery/mery-2-8-0#3 Mery ベータ版 2.8.1] 以降であれば 16 件まで表示されるはずです。<br> 2.8.0 以前のバージョンでは最新の 1 件しか表示できません(外部のアプリでテキスト以外のデータを「コピー」しているときは 0 件になる)。 | ||
* マクロの [記録] の開始はできますが、['''停止'''] はできません (ホットキー Shift+F4 で停止可)。 <br> また、['''記録したマクロの編集'''] もできません。 <br> ※「コンパクトメニュー」マクロを実行した時点で「最後に使ったマクロ」が「コンパクトメニュー」になってしまうため、当マクロのポップアップメニュー内の [編集] や [実行] コマンドの対象は「コンパクトメニュー」となります。 | * マクロの [記録] の開始はできますが、['''停止'''] はできません (ホットキー Shift+F4 で停止可)。 <br> また、['''記録したマクロの編集'''] もできません。 <br> ※「コンパクトメニュー」マクロを実行した時点で「最後に使ったマクロ」が「コンパクトメニュー」になってしまうため、当マクロのポップアップメニュー内の [編集] や [実行] コマンドの対象は「コンパクトメニュー」となります。 | ||
: → ['''実行'''] については <span style="color:#0000c0;">['''このマクロを実行'''] コマンドで代替しています</span> (アクティブタブがマクロのソースファイルのとき)。<br> 最後に使ったマクロの再試行は、ショートカットキー <kbd>F4</kbd> から実行してください。 | : → ['''実行'''] については <span style="color:#0000c0;">['''このマクロを実行'''] コマンドで代替しています</span> (アクティブタブがマクロのソースファイルのとき)。<br> 最後に使ったマクロの再試行は、ショートカットキー <kbd>F4</kbd> から実行してください。 | ||
* 他にも「コンパクトメニュー」内からは実行できない機能や不完全な動作をする項目があるかもしれません。 | * 他にも「コンパクトメニュー」内からは実行できない機能や不完全な動作をする項目があるかもしれません。 | ||
* 任意でメニュー項目の配置を変更しても差しつかえありませんが、<syntaxhighlight lang="javascript" inline>menu.Add(string, id, flags)</syntaxhighlight> メソッドの第2引数(<syntaxhighlight lang="javascript" inline>editor.ExecuteCommandByID(id)</syntaxhighlight> メソッドに渡す定数: '''id''')は変更しないで下さい。 | * 任意でメニュー項目の配置を変更しても差しつかえありませんが、<syntaxhighlight lang="javascript" inline>menu.Add(string, id, flags)</syntaxhighlight> メソッドの第2引数(<syntaxhighlight lang="javascript" inline>editor.ExecuteCommandByID(id)</syntaxhighlight> メソッドに渡す定数: '''id''')は変更しないで下さい。 | ||
<div class="warningbox"> | <div class="warningbox"> | ||
| 55行目: | 51行目: | ||
: ※ GetKeyState.exe を導入していないばあいは、メニューに表示されたとおりのコマンドをそのまま実行します。 | : ※ GetKeyState.exe を導入していないばあいは、メニューに表示されたとおりのコマンドをそのまま実行します。 | ||
</div> | </div> | ||
== ダウンロード == | == ダウンロード == | ||
>> 「[[ファイル:コンパクトメニュー.zip]]」 (アイコン入り) | |||
== 変更履歴 == | |||
<div style="height:40em; overflow:auto;"> | <div style="height:40em; overflow:auto;"> | ||
* 2020 | * 2020-03-29: (第7版 - [https://www.haijin-boys.com/software/mery/mery-3-0-0 Mery ベータ版 3.0.1] に対応) | ||
・[拡張メニュー] を [ファイル] | ・[拡張メニュー] を [ファイル] カテゴリ内からメインメニューの先頭へ移動 | ||
・[拡張メニュー] | ・[拡張メニュー] にコマンドを追加 | ||
・「未保存* フラグ ON/OFF」 | ・「未保存* フラグ ON/OFF」 | ||
・「すべて戻す」 | ・「すべて戻す」 | ||
・「強制的に上書き保存」 | ・「強制的に上書き保存」 | ||
・[ヘルプ] | ・[ヘルプ] カテゴリに拡張コマンドを追加 (作者の WEB ページ) | ||
・「新しいウインドウに移動」 を [ファイル] | ・「新しいウインドウに移動」 を [ファイル] カテゴリに追加 ([https://www.haijin-boys.com/software/mery/mery-2-8-7#7 Mery Ver 2.8.7]) | ||
・[https://www.haijin-boys.com/software/mery/mery-3-0-0 Mery | ・[https://www.haijin-boys.com/software/mery/mery-3-0-0 Mery Ver 3.0.0] の追加コマンドに対応 (マルチカーソル関係) | ||
・標準ビルトインコマンドの追加により、拡張表示コマンドのアクセラレータを一部変更 | |||
・「スクロールバーのマーカーを表示」 を [ウインドウ] | ・「スクロールバーのマーカーを表示」 を [ウインドウ] カテゴリへ。フラグ追加 | ||
・「SQL整形」 と 「ドキュメントの整形」 の ID | ・「SQL整形」 と 「ドキュメントの整形」 の ID を入れ替え ( plugin.h のミス? ) | ||
・「最後に閉じたファイル」 と 「開いているファイル」 が 10 | ・「最後に閉じたファイル」 と 「開いているファイル」 が 10 件超の場合はサブメニュー化 | ||
・「最後に閉じたファイルのアイテムを開く」 とき『無題<x> | ・「最後に閉じたファイルのアイテムを開く」 とき『無題<x>』のタブを保持 | ||
・「開いているファイル」 のリストを複数ウインドウに対応させ、「選択したタブをアクティブ化」 | ・「開いているファイル」 のリストを複数ウインドウに対応させ、「選択したタブをアクティブ化」 するさいのフォーカスの不具合をムリヤリ修正 | ||
・「このマクロを実行」 用に Mery.ini から [マクロの実行] | ・「このマクロを実行」 用に Mery.ini から [マクロの実行] のショートカットキーを自動で取得するように変更<br> (※ 特殊キーをふくむキーパターンについての動作検証をしていない) | ||
・マクロ名の表示に親フォルダ名を追加できるよう '''設定項目を追加''' | ・マクロ名の表示に親フォルダ名を追加できるよう '''設定項目を追加'''<br> ( → <syntaxhighlight lang="javascript" inline>var showParent = true;</syntaxhighlight> にする) | ||
・テキストを編集したときは、タブをアクティブ化 | |||
・GetIniOptionsCM() | ・GetIniOptionsCM() 関数をカスタマイズ | ||
・<span id="gks">'''GetKeyState.exe による機能拡張を追加'''</span> | ・<span id="gks">'''GetKeyState.exe による機能拡張を追加'''</span> (拡張メニューが有効のとき) | ||
・[クリップボード履歴] から貼り付けてアイテムを削除 | ・[クリップボード履歴] から貼り付けてアイテムを削除 | ||
・[マクロ] カテゴリのマクロ名を選択したときに Mery で実体ファイルを開く <br> ( → '''追加設定項目''' <syntaxhighlight lang="javascript" inline>var macroEditEnable = true;</syntaxhighlight> にする) | ・[マクロ] カテゴリのマクロ名を選択したときに Mery で実体ファイルを開く <br> ( → '''追加設定項目''' <syntaxhighlight lang="javascript" inline>var macroEditEnable = true;</syntaxhighlight> にする) | ||
| 91行目: | 86行目: | ||
・テキストの編集を伴うコマンドを実行後に、編集したテキストを選択 <br> (※ コマンドの内容によっては選択範囲がズレる。 また、マクロを選択・実行したときは無効) | ・テキストの編集を伴うコマンドを実行後に、編集したテキストを選択 <br> (※ コマンドの内容によっては選択範囲がズレる。 また、マクロを選択・実行したときは無効) | ||
* 2019 | * 2019-11-21: (第6版) | ||
・メニューラベルのアンパサンド記号 <q>&</q> を補完 | ・メニューラベルのアンパサンド記号 <q>&</q> を補完 | ||
・バージョンチェック関数の使用を中止 | ・バージョンチェック関数の使用を中止 | ||
・拡張メニューの ID を変更 ( 100 ~ ) | ・拡張メニューの ID を変更 ( 100 ~ ) | ||
* 2019 | * 2019-11-01:(修正・第5版) | ||
・バージョンチェックによるグレーアウト処理を非表示化に変更 | ・バージョンチェックによるグレーアウト処理を非表示化に変更 | ||
・項目のグレーアウト条件を精査 | ・項目のグレーアウト条件を精査 | ||
* 2019 | * 2019-10-30:(修正・第4版) | ||
・拡張メニューを追加 | ・拡張メニューを追加 | ||
・バージョンチェックによるグレーアウト処理を追加 | ・バージョンチェックによるグレーアウト処理を追加 | ||
・関数のエラーを修正 | ・関数のエラーを修正 | ||
* 2019 | * 2019-10-29:(修正・第3版) | ||
・「クリップボード履歴」の取得は [https://www.haijin-boys.com/software/mery/mery-2-8-0#3 ベータ版 2.8.1] 以降でないとエラーになるので回避処理を追加 | ・「クリップボード履歴」の取得は [https://www.haijin-boys.com/software/mery/mery-2-8-0#3 ベータ版 2.8.1] 以降でないとエラーになるので回避処理を追加 | ||
* 2019 | * 2019-10-27:(修正・第2版) | ||
・動作要件を [https://www.haijin-boys.com/software/mery/mery-2-6-7 Mery 2.6.7] (正式版)以上になるよう、バージョンチェックによる内部処理を追加 | ・動作要件を [https://www.haijin-boys.com/software/mery/mery-2-6-7 Mery 2.6.7] (正式版)以上になるよう、バージョンチェックによる内部処理を追加 | ||
・エラーの修正 | ・エラーの修正 | ||
* 2019 | * 2019-10-26:(初版) | ||
動作要件: [https://www.haijin-boys.com/software/mery/mery-2-6-10 Mery ベータ版 2.6.10] 以上 | 動作要件: [https://www.haijin-boys.com/software/mery/mery-2-6-10 Mery ベータ版 2.6.10] 以上 | ||
</div> | </div> | ||
| 118行目: | 113行目: | ||
== ソースコード == | == ソースコード == | ||
< | <syntaxhighlight lang="javascript" style="height:80em; overflow:auto;" highlight="19-20,25-26,30-31,33-34,40-41,47-48"> | ||
#title = "コンパクトメニュー2" | #title = "コンパクトメニュー2" | ||
#tooltip = "メニューバーの全アイテムを階層化表示" | #tooltip = "メニューバーの全アイテムを階層化表示" | ||
| 127行目: | 122行目: | ||
* --------------------------------------------------------- | * --------------------------------------------------------- | ||
* コンパクトメニュー2 | * コンパクトメニュー2 | ||
* sukemaru, 2019 | * sukemaru, 2019-10-25 - 2020-03-29 | ||
* --------------------------------------------------------- | * --------------------------------------------------------- | ||
* メニューバーのアイテムをポップアップメニューで階層化して表示する。 | * メニューバーのアイテムをポップアップメニューで階層化して表示する。 | ||
| 1,398行目: | 1,393行目: | ||
WshShell.Popup( msgStr, nSecondsToWait, strTitle, nType ); | WshShell.Popup( msgStr, nSecondsToWait, strTitle, nType ); | ||
} | } | ||
</ | </syntaxhighlight> | ||
== メモ == | == メモ == | ||
不具合など、お気づきになったことがありましたら [https://www.haijin-boys.com/discussions Mery 公式フォーラム] にてお知らせください。 | 不具合など、お気づきになったことがありましたら [https://www.haijin-boys.com/discussions Mery 公式フォーラム] にてお知らせください。 | ||
* 2019-10-29 (sukemaru) | |||
* 2019 | |||
: ベータ版 2.8.1 以降でないとエラーになる「クリップボード履歴」の取得コードを使っているのを忘れていました…。 | : ベータ版 2.8.1 以降でないとエラーになる「クリップボード履歴」の取得コードを使っているのを忘れていました…。 | ||
: 第3版で修正しておきました。 | : 第3版で修正しておきました。 | ||
* 2019 | * 2019-10-30 (sukemaru) | ||
: 初期設定状態からほとんど弄っていない Mery だと設定項目のいくつかは Mery.ini に反映されていない状態らしく、扱いが難しいです。 | : 初期設定状態からほとんど弄っていない Mery だと設定項目のいくつかは Mery.ini に反映されていない状態らしく、扱いが難しいです。 | ||
* 2020 | * 2020-03-29 (sukemaru) | ||
: Mery ベータ版 3.0.2 までのメニュー項目と非表示コマンドには概ね対応できたとおもいます。 | : Mery ベータ版 3.0.2 までのメニュー項目と非表示コマンドには概ね対応できたとおもいます。 | ||
スポンサーリンク