1
0
mirror of synced 2024-11-24 23:50:21 +01:00
OpenTaiko/TJAPlayer3/Items/CItemList.cs
2021-09-21 00:16:38 +02:00

154 lines
5.7 KiB
C#

using System;
using System.Collections.Generic;
using System.Text;
namespace TJAPlayer3
{
/// <summary>
/// 「リスト」(複数の固定値からの1つを選択可能)を表すアイテム。
/// </summary>
internal class CItemList : CItemBase
{
// プロパティ
public List<string> list項目値;
public int n現在選択されている項目番号;
// コンストラクタ
public CItemList()
{
base.e種別 = CItemBase.E種別.;
this.n現在選択されている項目番号 = 0;
this.list項目値 = new List<string>();
}
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;
}
}
/// <summary>
/// 簡易コンフィグの「切り替え」に使用する、「リスト」(複数の固定値からの1つを選択可能)を表すアイテム。
/// e種別が違うのと、tEnter押下()で何もしない以外は、「リスト」そのまま。
/// </summary>
internal class CSwitchItemList : CItemList
{
// コンストラクタ
public CSwitchItemList()
{
base.e種別 = CItemBase.E種別.;
this.n現在選択されている項目番号 = 0;
this.list項目値 = new List<string>();
}
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項目値を次へ移動(); // 何もしない
}
}
}