<Menu>の基本要素
<Menu>要素内で使用する基本的な要素です。<Menu>を修飾する要素が主です。
<Name>
各<Menu>の名前を指定します。この要素は各<Menu>ごとに必須の要素となっています。
<Menu>要素内で使用します。
この要素を指定しないとデスクトップメニューとして成立しないため、必ず各<Menu>ごとに<Name>要素を指定してください。
<Name>はUIに表示する階層の名前、及びメニューパスに利用されます。
ただし<Directory>を指定した場合、UIに表示する階層の名前はディレクトリーエントリーの名称が使われます。
メニューパスは重複できません。
従って<Name>は重複しないように一意の名前をつける必要があります。
メニューパスについて
メニューパスは特定の<Menu>を表現するパスです。メニューパスは常に相対パスになるため、「/」で始まることはありません。
例えば以下のような記述があるとします。
<Menu>
<Name>RootMenu</Name>
<Menu>
<Name>Application</Name>
...
<Menu><!-- このメニューパス -->
<Name>Office</Name>
...
</Menu>
</Menu>
...
</Menu>
「このメニューパス」は「RootMenu」からみた場合「Application/Office」になります。
「Application」からみた場合「Office」になります。
例
<Menu><Name>RootMenu</Name>
<Menu>
<Name>Application</Name>
...
</Menu>
<Menu>
<Name>Internet</Name>
...
</Menu>
...
</Menu>
<Directory>
ディレクトリーエントリーを指定する要素です。<Menu>要素内で使用します。
ディレクトリーエントリーは識別子で指定します。
複数記述することができます。
優先順位について
複数記述した場合は、後に書かれた有効な<Directory>が採用されます。例えば以下のように記述します。
<Menu>
<Directory>Office1.directory</Directory>
<Directory>Office2.directory</Directory>
<Directory>Office3.directory</Directory>
...
</Menu>
単純に優先順位に従うと「Office3.directory」が一番優先順位が高くなりますが、「Office3.directory」が存在しない場合、次に優先順位の高い「Office2.directory」が採用されます。
もし「Office2.directory」も存在しない場合、「Office1.directory」が採用されます。
例
<Menu><Directory>Root.directory</Directory>
<Menu>
<Directory>KDEApplication.directory</Directory>
<Directory>GNOMEApplication.directory</Directory>
<Directory>Application.directory</Directory>
... </Menu>
...
</Menu>
<OnlyUnallocated> <NotOnlyUnallocated>
これらの要素は、ディスクトップエントリーのフィルタリング指定に利用します。<Menu>要素内で使用します。
いずれも指定しない場合は、暗黙的に<NotOnlyUnallocated>が指定されます。
Allocated
通常、処理対象となったディスクトップエントリーには、「Allocated」マークが内部的に設定されます。これは、デスクトップエントリーの表示・非表示にかかわらず、処理対象となった時点で「Allocated」マークが設定されます。
<OnlyUnallocated>と<NotOnlyUnallocated>は、この「Allocated」マークが設定されたデスクトップエントリーのフィルタリング指定を行います。
<OnlyUnallocated>
「Allocated」マークが設定されたデスクトップエントリーは、フィルタリングされ処理対象になりません。また「Allocated」マークは設定されず、一番最後に処理が行われます。
<NotOnlyUnallocated>
「Allocated」マークの有無に関わらず、全てのデスクトップエントリーは処理対象になります。また処理対象になったデスクトップエントリーには、「Allocated」マークが設定されます。
どういう時に利用するか
各<Menu>で、デスクトップエントリーを重複して処理させたくない時に<OnlyUnallocated>を利用します。例
<Menu><Directory>Root.directory</Directory>
<Menu>
<!-- ここで Networkカテゴリーのデスクトップエントリーが処理対象になり、「Allocated」マークが設定される -->
<Include><Category>Network</Category></Include>
...
</Menu>
<Menu>
<OnlyUnallocated />
<!-- OnlyUnallocatedが指定されているので、Networkカテゴリーのデスクトップエントリーは処理対象外になる -->
<Include><All/></Include>
...
</Menu>
...
</Menu>
<Deleted> <NotDeleted>
これらの要素は、<Menu>が削除されたか否かを指定する要素です。<Menu>要素内で使用します。
いずれも指定しない場合は、暗黙的に<NotDeleted>が指定されます。
<Deleted>
<Menu>は削除されています。この要素を指定した<Menu>は、UIに表示しません。
<NotDeleted>
<Menu>は削除されていません。例
<Menu><NotDeleted />
...
</Menu>