• Showing Page History #97268

Show page source of manual_CreateContribution #105992

== 新しいコントリビューションの追加 ==

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に以下のような記述を追加する。
任意の数だけ記述することが出来る。2 とは別のplugin.xmlに書くこともできる。
{{{ code xml
<contribution type="MenuItem" id="hogehoge">
    <name>Sample Menu Item</name>
    <description>サンプルのメニュー項目</description>
    <!--その他固有のパラメータ-->
 </contribution>
}}}

4. NeoFT起動
起動時にCtbMenuItemのコンストラクタが呼ばれるようになる。
引数 ParamsReader には 3 に記述したノードの内容が含まれる。