using System; using System.Collections.Generic; using System.Text; namespace TJAPlayer3 { /// /// 「リスト」(複数の固定値からの1つを選択可能)を表すアイテム。 /// internal class CItemList : CItemBase { // プロパティ public List list項目値; public int n現在選択されている項目番号; // コンストラクタ public CItemList() { base.e種別 = CItemBase.E種別.リスト; this.n現在選択されている項目番号 = 0; this.list項目値 = new List(); } public CItemList( string str項目名 ) : this() { this.t初期化( str項目名 ); } public CItemList( string str項目名, CItemBase.Eパネル種別 eパネル種別 ) : this() { this.t初期化( str項目名, eパネル種別 ); } public CItemList( string str項目名, CItemBase.Eパネル種別 eパネル種別, int n初期インデックス値, params string[] arg項目リスト ) : this() { this.t初期化( str項目名, eパネル種別, n初期インデックス値, arg項目リスト ); } public CItemList(string str項目名, CItemBase.Eパネル種別 eパネル種別, int n初期インデックス値, string str説明文jp, params string[] arg項目リスト) : this() { this.t初期化(str項目名, eパネル種別, n初期インデックス値, str説明文jp, arg項目リスト); } public CItemList(string str項目名, CItemBase.Eパネル種別 eパネル種別, int n初期インデックス値, string str説明文jp, string str説明文en, params string[] arg項目リスト) : this() { this.t初期化(str項目名, eパネル種別, n初期インデックス値, str説明文jp, str説明文en, arg項目リスト); } // CItemBase 実装 public override void tEnter押下() { this.t項目値を次へ移動(); } public override void t項目値を次へ移動() { if( ++this.n現在選択されている項目番号 >= this.list項目値.Count ) { this.n現在選択されている項目番号 = 0; } } public override void t項目値を前へ移動() { if( --this.n現在選択されている項目番号 < 0 ) { this.n現在選択されている項目番号 = this.list項目値.Count - 1; } } public override void t初期化( string str項目名, CItemBase.Eパネル種別 eパネル種別 ) { base.t初期化( str項目名, eパネル種別 ); this.n現在選択されている項目番号 = 0; this.list項目値.Clear(); } public void t初期化( string str項目名, CItemBase.Eパネル種別 eパネル種別, int n初期インデックス値, params string[] arg項目リスト ) { this.t初期化(str項目名, eパネル種別, n初期インデックス値, "", "",arg項目リスト); } public void t初期化(string str項目名, CItemBase.Eパネル種別 eパネル種別, int n初期インデックス値, string str説明文jp, params string[] arg項目リスト) { this.t初期化(str項目名, eパネル種別, n初期インデックス値, str説明文jp, str説明文jp, arg項目リスト); } public void t初期化(string str項目名, CItemBase.Eパネル種別 eパネル種別, int n初期インデックス値, string str説明文jp, string str説明文en, params string[] arg項目リスト) { base.t初期化(str項目名, eパネル種別, str説明文jp, str説明文en); this.n現在選択されている項目番号 = n初期インデックス値; foreach (string str in arg項目リスト) { this.list項目値.Add(str); } } public override object obj現在値() { return this.list項目値[ n現在選択されている項目番号 ]; } public override int GetIndex() { return n現在選択されている項目番号; } public override void SetIndex( int index ) { n現在選択されている項目番号 = index; } } /// /// 簡易コンフィグの「切り替え」に使用する、「リスト」(複数の固定値からの1つを選択可能)を表すアイテム。 /// e種別が違うのと、tEnter押下()で何もしない以外は、「リスト」そのまま。 /// internal class CSwitchItemList : CItemList { // コンストラクタ public CSwitchItemList() { base.e種別 = CItemBase.E種別.切替リスト; this.n現在選択されている項目番号 = 0; this.list項目値 = new List(); } public CSwitchItemList( string str項目名 ) : this() { this.t初期化( str項目名 ); } public CSwitchItemList( string str項目名, CItemBase.Eパネル種別 eパネル種別 ) : this() { this.t初期化( str項目名, eパネル種別 ); } public CSwitchItemList( string str項目名, CItemBase.Eパネル種別 eパネル種別, int n初期インデックス値, params string[] arg項目リスト ) : this() { this.t初期化( str項目名, eパネル種別, n初期インデックス値, arg項目リスト ); } public CSwitchItemList(string str項目名, CItemBase.Eパネル種別 eパネル種別, int n初期インデックス値, string str説明文jp, params string[] arg項目リスト) : this() { this.t初期化(str項目名, eパネル種別, n初期インデックス値, str説明文jp, arg項目リスト); } public CSwitchItemList( string str項目名, CItemBase.Eパネル種別 eパネル種別, int n初期インデックス値, string str説明文jp, string str説明文en, params string[] arg項目リスト ) : this() { this.t初期化( str項目名, eパネル種別, n初期インデックス値, str説明文jp, str説明文en, arg項目リスト ); } public override void tEnter押下() { // this.t項目値を次へ移動(); // 何もしない } } }