== 新しいコントリビューションの追加 ==
1. コントリビューションクラスの追加
{{{ code csharp
namespace nft.contributions.ui
{
/// <summary>
/// CtbMenuItem の概要の説明です。
/// </summary>
public class CtbMenuItem : Contribution
{
/// <summary>
/// Contributes a menu and submenu items to mainmenu.
///
/// This contribution can add several items at once.
/// </summary>
public CtbMenuItem(Plugin p, ParamsReader e)
: base(p, e)
{
// 実装を定義
}
}
}
}}}
2. コントリビューションタイプの宣言
plugin.xmlに以下のような記述を追加する
{{{ code xml
<declare-contribution type="MenuItem">
<name>Menu items</name>
<class name="nft.contributions.ui.CtbMenuItem"/>
<!--<factory-class name="nft.framework.plugin.DefaultContributionFactory"/> 省略化-->
</declare-contribution>
}}}
3. コントリビューションの追加
plugin.xmlに以下のような記述を追加する
{{{ code xml
<contribution type="MenuItem" id="hogehoge">
<name>Sample Menu Item</name>
<description>サンプルのメニュー項目</description>
<!--その他固有のパラメータ-->
</contribution>
}}}
4. NeoFT起動
起動時にCtbMenuItemのコンストラクタが呼ばれるようになる。
引数 ParamsReader には 3 に記述したノードの内容が含まれる。