using System; using System.Collections.Generic; using System.Text; namespace TJAPlayer3 { /// /// 「スリーステート」(ON, OFF, 不定 の3状態)を表すアイテム。 /// internal class CItemThreeState : CItemBase { // プロパティ public E状態 e現在の状態; public enum E状態 { ON, OFF, 不定 } // コンストラクタ public CItemThreeState() { base.e種別 = CItemBase.E種別.ONorOFFor不定スリーステート; this.e現在の状態 = E状態.不定; } public CItemThreeState( string str項目名, E状態 e初期状態 ) : this() { this.t初期化( str項目名, e初期状態 ); } public CItemThreeState(string str項目名, E状態 e初期状態, string str説明文jp) : this() { this.t初期化(str項目名, e初期状態, str説明文jp, str説明文jp); } public CItemThreeState(string str項目名, E状態 e初期状態, string str説明文jp, string str説明文en) : this() { this.t初期化(str項目名, e初期状態, str説明文jp, str説明文en); } public CItemThreeState( string str項目名, E状態 e初期状態, CItemBase.Eパネル種別 eパネル種別 ) : this() { this.t初期化( str項目名, e初期状態, eパネル種別 ); } public CItemThreeState(string str項目名, E状態 e初期状態, CItemBase.Eパネル種別 eパネル種別, string str説明文jp) : this() { this.t初期化(str項目名, e初期状態, eパネル種別, str説明文jp, str説明文jp); } public CItemThreeState(string str項目名, E状態 e初期状態, CItemBase.Eパネル種別 eパネル種別, string str説明文jp, string str説明文en) : this() { this.t初期化(str項目名, e初期状態, eパネル種別, str説明文jp, str説明文en); } // CItemBase 実装 public override void tEnter押下() { this.t項目値を次へ移動(); } public override void t項目値を次へ移動() { switch( this.e現在の状態 ) { case E状態.ON: this.e現在の状態 = E状態.OFF; return; case E状態.OFF: this.e現在の状態 = E状態.ON; return; case E状態.不定: this.e現在の状態 = E状態.ON; return; } } public override void t項目値を前へ移動() { switch( this.e現在の状態 ) { case E状態.ON: this.e現在の状態 = E状態.OFF; return; case E状態.OFF: this.e現在の状態 = E状態.ON; return; case E状態.不定: this.e現在の状態 = E状態.OFF; return; } } public void t初期化( string str項目名, E状態 e初期状態 ) { this.t初期化( str項目名, e初期状態, CItemBase.Eパネル種別.通常 ); } public void t初期化(string str項目名, E状態 e初期状態, string str説明文jp) { this.t初期化(str項目名, e初期状態, CItemBase.Eパネル種別.通常, str説明文jp, str説明文jp); } public void t初期化(string str項目名, E状態 e初期状態, string str説明文jp, string str説明文en) { this.t初期化(str項目名, e初期状態, CItemBase.Eパネル種別.通常, str説明文jp, str説明文en); } public void t初期化( string str項目名, E状態 e初期状態, CItemBase.Eパネル種別 eパネル種別 ) { this.t初期化(str項目名, e初期状態, CItemBase.Eパネル種別.通常, "", ""); } public void t初期化(string str項目名, E状態 e初期状態, CItemBase.Eパネル種別 eパネル種別, string str説明文jp) { this.t初期化(str項目名, e初期状態, CItemBase.Eパネル種別.通常, str説明文jp, str説明文jp); } public void t初期化(string str項目名, E状態 e初期状態, CItemBase.Eパネル種別 eパネル種別, string str説明文jp, string str説明文en) { base.t初期化(str項目名, eパネル種別, str説明文jp, str説明文en); this.e現在の状態 = e初期状態; } public override object obj現在値() { if ( this.e現在の状態 == E状態.不定 ) { return "- -"; } else { return this.e現在の状態.ToString(); } } public override int GetIndex() { return (int)this.e現在の状態; } public override void SetIndex( int index ) { switch (index ) { case 0: this.e現在の状態 = E状態.ON; break; case 1: this.e現在の状態 = E状態.OFF; break; case 2: this.e現在の状態 = E状態.不定; break; default: throw new ArgumentOutOfRangeException(); } } } }