Paper Plane xUI再挑戦その4−メニューを作成

前置き

PPxカスタマイズの続きです。
メニューの作成をします。

メニューの作り方

M_hogehoge

という形でメニューファイルを作り、その中に記述。最初にM_というのがつくとメニューファイルになります。hogehogeのところに、好きなメニュー名を入れます。ヘルプによると、

メニューの編集はここで行います。予め登録されているものの他、M_xxxxの形式で新たに登録することができます。登録されているメニューは %M マクロ文字で利用できます。

とのこと。

PPX.CFGを編集する場合

PPX.CFGに直接記述するとしたら、

M_makefile	= {
PlainFile	= *makefile %1\%E
TextFile(&txt)	= *makefile %1\%E.txt
C++ Script(&cpp)	= *makefile %1\%E.cpp
C++ Script Header(&h)	= *makefile  %1\%E.h
Python Script(&py)	= *makefile %1\%E.py
AutoHotKey Script(&ahk)	= *makefile %1\%E.ahk
&VBScript	= *makefile %1\%E.vbs
--	= 
ディレクトリ(&D)	= *makedir %1\%E
}

こんなの。書式は

項目 = 実行内容

ですね。PPX.CFGにどうやって取り込むかとかは、以前書いたここの「PPX.CFGをいじる場合」を参考にしてください。

カスタマイザーを使う場合

GUIで作る場合は、メニュータブを開き一々登録していきます。もとからあるメニューに追加、という時にはこっちでもいいかもしれない。
たとえば、上で作ったM_makefileに、新たにJScriptという項目で*makefile %1\%E.jsという内容を登録したいと思ったら、次のようにする。
種類のところに、登録したいメニュー名を書いて、そこに新たに載せたい項目と、登録内容を記述する、という形です。項目が表示するもので、登録内容が実行する内容。

そして、設定を押し、適用。すると、メニューが追加されます。
新しいメニューをGUIで作りたいときには、種類に新しいものを書いて、登録するだけ。

メニューの使い方

使うときには、キーカスタマイズで登録するか、別のメニューに登録するとかします。
登録するときには、

%M_hogehoge

とする。たとえば、さっき作ったメニューをF10に登録したいときはこうなる。種類でKC/Mainを選択し、

で、設定、適用と。

ちなみに、メニューそのものを変数として扱い、他のと組み合わせることができます。
たとえば、履歴に飛ぶメニューというのは、

M_HistoryJump	= {
A	= %j %h0
B	= %j %h1
C	= %j %h2
D	= %j %h3
E	= %j %h4
F	= %j %h5
G	= %j %h6
H	= %j %h7
I	= %j %h8
J	= %j %h9
}

として、適当なキーに%M_HistoryJumpという仕方で登録することになるけれど次のようにもできる。
まず、メニューのほうは次のように。

M_History	= {
%h0	= %h0
%h1	= %h1
%h2	= %h2
%h3	= %h3
%h4	= %h4
%h5	= %h5
%h6	= %h6
%h7	= %h7
%h8	= %h8
%h9	= %h9
}

そして、適当なキーに%j%M_History、と登録すると%M_HistoryJumpと同じことができる。
%jというのは、後ろのパスへディレクトリ移動ができるマクロ。こっちだと、キー登録の時に%jの部分を色々変えることで、融通が利くわけですね。

階層構造

メニューにメニューを登録したら階層構造にできます。

%M_Menu

という、メニューを集めたメニューを作るとしましょう。
ここに、次のように記述。

M_Menu	= {
履歴ジャンプ	= %j%M_History
空ファイル作成メニュー	= %M_makefile
}

としたら階層構造に。画像のようになります。



メニューの使い方

メニューの使い方なんだけど、どうせ作っても忘れるから、一つのメニューにすべてまとめるというのがいい。
そして、よく使うのは独自に割り当てる、というようにするといいかと。僕の場合は、Shift+M(MenuのMのつもり)に上のM_Menuを登録し、そこからすべてのメニューにいけるようにしている。そして、よく使う履歴ジャンプだけは、Hに登録しています。
ということで、使っているメニューをのっけていきます。

使っているメニュー

ジャンプ

さっきのM_Historyに、よく使うフォルダを追加するというようにしています。

M_History	= {
%h0	= %h0
%h1	= %h1
%h2	= %h2
%h3	= %h3
%h4	= %h4
%h5	= %h5
%h6	= %h6
%h7	= %h7
%h8	= %h8
%h9	= %h9
||	= 
Bin = D:\bin
T&Dir = D:\Temp\TDir
T&File = D:\Temp\TFiles
Work = D:\work
Ex-Howm = D:\data\ex-howm
Homw = D:\bin\xyzzy\howm
}

"|| = "というのは、縦のセパレートを意味しています。

マスク
M_Mask	= {
ディレクトリマスク	= *maskentry attribute:d
EXEでマスク	= *maskentry *.exe
TXTでマスク	= *maskentry *.txt
カーソル行の拡張子でファイルマスク	= *maskentry *.%T
}
パスのコピー
M_ClipPath	= {
CopyFileName	= *cliptext %R
Copy&DirName	= *cliptext %1
Copy&FileName(拡張子無し)	= *cliptext %Y
CopyFilePath	= *cliptext %FCD
}

*cliptextで、クリップボードにコピーです。
僕はCtrl+Nに登録している。

空ファイル作成メニュー
M_makefile	= {
PlainFile	= *makefile %1\%E
TextFile(&txt)	= *makefile %1\%E.txt
C++ Script(&cpp)	= *makefile %1\%E.cpp
C++ Script Header(&h)	= *makefile  %1\%E.h
Python Script(&py)	= *makefile %1\%E.py
AutoHotKey Script(&ahk)	= *makefile %1\%E.ahk
&VBScript	= *makefile %1\%E.vbs
&JScript	= *makefile %1\%E.js
--	= 
ディレクトリ(&D)	= *makedir %1\%E
}
外部ソフト起動

よく使うソフトは、大抵メニュー化せずにそのままキーに登録するし、パスを投げないのならfenrirを使ったほうが早い。だから外部ソフトをメニュー化するのは、あまり意味がない気もします。
まあ、登録している外部ソフトとして、どういうのを使っているかの参考ということで。

M_exec	= {
あふ	= %Ob D:\bin\afxw\AFXWCMD.EXE -p%1
VxGrep	= %Ob D:\bin1\VxEditorForGrep\VxGrep.exe %1
ポチエス	= %Ob D:\bin\esExt5_c\esExt5_c.exe %FCD
ttPage-R	= %Ob D:\bin\ttPage-R\ttPage.exe %FCD
MassiGra	= %Ob D:\bin\MassiGra\MassiGra.exe %FCD
}
ファイルコピー
*ppcfile copy,%M_History

として適当なキーに登録してます。M_Historyを使い回しているだけ。

ファイル移動
*ppcfile move,%M_History

同上。

まとめ

というわけで、僕が使っているメニューは次のようになります。

M_Menu	= {
ファイルの移動	= *ppcfile move, %M_History
ファイルのコピー	= *ppcfile copy,%M_History
履歴ジャンプ	= %j%M_History
あふで起動	= %Ob D:\bin\afxw\AFXWCMD.EXE -p%1
空ファイル作成メニュー	= %M_makefile
マスクメニュー	= %M_Mask
外部ソフト	= %M_exec
パスのコピー	= %M_ClipPath
}

ではでは。