OSDN Git Service

#36043 rev.922 の修正でドキュメント整形が戻ってしまったため再コミット
[dtxmania/dtxmania.git] / DTXManiaプロジェクト / コード / アイテム / CItemThreeState.cs
1 using System;\r
2 using System.Collections.Generic;\r
3 using System.Text;\r
4 \r
5 namespace DTXMania\r
6 {\r
7         /// <summary>\r
8         /// 「スリーステート」(ON, OFF, 不定 の3状態)を表すアイテム。\r
9         /// </summary>\r
10         internal class CItemThreeState : CItemBase\r
11         {\r
12                 // プロパティ\r
13 \r
14                 public E状態 e現在の状態;\r
15                 public enum E状態\r
16                 {\r
17                         ON,\r
18                         OFF,\r
19                         不定\r
20                 }\r
21 \r
22 \r
23                 // コンストラクタ\r
24 \r
25                 public CItemThreeState()\r
26                 {\r
27                         base.e種別 = CItemBase.E種別.ONorOFFor不定スリーステート;\r
28                         this.e現在の状態 = E状態.不定;\r
29                 }\r
30                 public CItemThreeState(string str項目名, E状態 e初期状態)\r
31                         : this()\r
32                 {\r
33                         this.t初期化(str項目名, e初期状態);\r
34                 }\r
35                 public CItemThreeState(string str項目名, E状態 e初期状態, string str説明文jp)\r
36                         : this()\r
37                 {\r
38                         this.t初期化(str項目名, e初期状態, str説明文jp, str説明文jp);\r
39                 }\r
40                 public CItemThreeState(string str項目名, E状態 e初期状態, string str説明文jp, string str説明文en)\r
41                         : this()\r
42                 {\r
43                         this.t初期化(str項目名, e初期状態, str説明文jp, str説明文en);\r
44                 }\r
45 \r
46                 public CItemThreeState(string str項目名, E状態 e初期状態, CItemBase.Eパネル種別 eパネル種別)\r
47                         : this()\r
48                 {\r
49                         this.t初期化(str項目名, e初期状態, eパネル種別);\r
50                 }\r
51                 public CItemThreeState(string str項目名, E状態 e初期状態, CItemBase.Eパネル種別 eパネル種別, string str説明文jp)\r
52                         : this()\r
53                 {\r
54                         this.t初期化(str項目名, e初期状態, eパネル種別, str説明文jp, str説明文jp);\r
55                 }\r
56                 public CItemThreeState(string str項目名, E状態 e初期状態, CItemBase.Eパネル種別 eパネル種別, string str説明文jp, string str説明文en)\r
57                         : this()\r
58                 {\r
59                         this.t初期化(str項目名, e初期状態, eパネル種別, str説明文jp, str説明文en);\r
60                 }\r
61 \r
62 \r
63                 // CItemBase 実装\r
64 \r
65                 public override void tEnter押下()\r
66                 {\r
67                         this.t項目値を次へ移動();\r
68                 }\r
69                 public override void t項目値を次へ移動()\r
70                 {\r
71                         switch (this.e現在の状態)\r
72                         {\r
73                                 case E状態.ON:\r
74                                         this.e現在の状態 = E状態.OFF;\r
75                                         return;\r
76 \r
77                                 case E状態.OFF:\r
78                                         this.e現在の状態 = E状態.ON;\r
79                                         return;\r
80 \r
81                                 case E状態.不定:\r
82                                         this.e現在の状態 = E状態.ON;\r
83                                         return;\r
84                         }\r
85                 }\r
86                 public override void t項目値を前へ移動()\r
87                 {\r
88                         switch (this.e現在の状態)\r
89                         {\r
90                                 case E状態.ON:\r
91                                         this.e現在の状態 = E状態.OFF;\r
92                                         return;\r
93 \r
94                                 case E状態.OFF:\r
95                                         this.e現在の状態 = E状態.ON;\r
96                                         return;\r
97 \r
98                                 case E状態.不定:\r
99                                         this.e現在の状態 = E状態.OFF;\r
100                                         return;\r
101                         }\r
102                 }\r
103                 public void t初期化(string str項目名, E状態 e初期状態)\r
104                 {\r
105                         this.t初期化(str項目名, e初期状態, CItemBase.Eパネル種別.通常);\r
106                 }\r
107                 public void t初期化(string str項目名, E状態 e初期状態, string str説明文jp)\r
108                 {\r
109                         this.t初期化(str項目名, e初期状態, CItemBase.Eパネル種別.通常, str説明文jp, str説明文jp);\r
110                 }\r
111                 public void t初期化(string str項目名, E状態 e初期状態, string str説明文jp, string str説明文en)\r
112                 {\r
113                         this.t初期化(str項目名, e初期状態, CItemBase.Eパネル種別.通常, str説明文jp, str説明文en);\r
114                 }\r
115 \r
116                 public void t初期化(string str項目名, E状態 e初期状態, CItemBase.Eパネル種別 eパネル種別)\r
117                 {\r
118                         this.t初期化(str項目名, e初期状態, CItemBase.Eパネル種別.通常, "", "");\r
119                 }\r
120                 public void t初期化(string str項目名, E状態 e初期状態, CItemBase.Eパネル種別 eパネル種別, string str説明文jp)\r
121                 {\r
122                         this.t初期化(str項目名, e初期状態, CItemBase.Eパネル種別.通常, str説明文jp, str説明文jp);\r
123                 }\r
124                 public void t初期化(string str項目名, E状態 e初期状態, CItemBase.Eパネル種別 eパネル種別, string str説明文jp, string str説明文en)\r
125                 {\r
126                         base.t初期化(str項目名, eパネル種別, str説明文jp, str説明文en);\r
127                         this.e現在の状態 = e初期状態;\r
128                 }\r
129                 public override object obj現在値()\r
130                 {\r
131                         if (this.e現在の状態 == E状態.不定)\r
132                         {\r
133                                 return "- -";\r
134                         }\r
135                         else\r
136                         {\r
137                                 return this.e現在の状態.ToString();\r
138                         }\r
139                 }\r
140                 public override int GetIndex()\r
141                 {\r
142                         return (int)this.e現在の状態;\r
143                 }\r
144                 public override void SetIndex(int index)\r
145                 {\r
146                         switch (index)\r
147                         {\r
148                                 case 0:\r
149                                         this.e現在の状態 = E状態.ON;\r
150                                         break;\r
151                                 case 1:\r
152                                         this.e現在の状態 = E状態.OFF;\r
153                                         break;\r
154                                 case 2:\r
155                                         this.e現在の状態 = E状態.不定;\r
156                                         break;\r
157                                 default:\r
158                                         throw new ArgumentOutOfRangeException();\r
159                         }\r
160                 }\r
161         }\r
162 }\r