Subversion Repositories spk

Rev

Rev 1 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
1 cycrow 1
#pragma once
2
 
3
using namespace System;
4
using namespace System::ComponentModel;
5
using namespace System::Collections;
6
using namespace System::Windows::Forms;
7
using namespace System::Data;
8
using namespace System::Drawing;
9
 
10
typedef struct SWeaponMasks {
11
	int	iGame;
12
	int iLaserMask;
13
	int iMissileMask;
14
} SWeaponMasks;
15
 
16
namespace Creator {
17
 
18
	/// <summary>
19
	/// Summary for CustomiseWeapons
20
	/// </summary>
21
	public ref class CustomiseWeapons : public System::Windows::Forms::UserControl
22
	{
23
	public:
24
		CustomiseWeapons(Windows::Forms::Form ^parent, CLinkList<SWeaponMasks> *weapons, CShipData *shipData)
25
		{
26
			InitializeComponent();
27
 
28
			m_pShipData = shipData;
29
			m_pWeapons = weapons;
30
			m_pParent = parent;
31
			m_bUpdating = false;
32
 
33
			this->SetupControls();
34
		}
35
 
36
		void AddGameEntry(String ^game) { this->ComboGameLaser->Items->Add(game); }
37
		void SetupControlsEnd() { this->ComboGameLaser->SelectedIndex = 0; }
38
 
39
	protected:
40
		/// <summary>
41
		/// Clean up any resources being used.
42
		/// </summary>
43
		void SetupControls();
44
		void UpdateWeaponsList();
45
		void SaveWeaponsList();
46
 
47
		~CustomiseWeapons()
48
		{
49
			if (components)
50
			{
51
				delete components;
52
			}
53
		}
54
	private: System::Windows::Forms::ListView^  ListWeapons;
55
	protected: 
56
	private: System::Windows::Forms::ColumnHeader^  columnHeader1;
57
	private: System::Windows::Forms::ColumnHeader^  columnHeader2;
58
	private: System::Windows::Forms::FlowLayoutPanel^  flowLayoutPanel1;
59
	private: System::Windows::Forms::RadioButton^  RadioLasers;
60
	private: System::Windows::Forms::RadioButton^  RadioMissiles;
61
	private: System::Windows::Forms::CheckBox^  CheckWeaponDefault;
62
	private: System::Windows::Forms::Button^  ButCopyDefault;
63
	private: System::Windows::Forms::Panel^  panel34;
64
	private: System::Windows::Forms::ComboBox^  ComboGameLaser;
65
	private: System::Windows::Forms::Label^  label51;
66
 
67
	private:
68
		Windows::Forms::Form		^m_pParent;
69
		bool						 m_bUpdating;
70
		CLinkList<SWeaponMasks>		*m_pWeapons;
71
		CShipData					*m_pShipData;
72
		/// <summary>
73
		/// Required designer variable.
74
		/// </summary>
75
		System::ComponentModel::Container ^components;
76
 
77
#pragma region Windows Form Designer generated code
78
		/// <summary>
79
		/// Required method for Designer support - do not modify
80
		/// the contents of this method with the code editor.
81
		/// </summary>
82
		void InitializeComponent(void)
83
		{
84
			this->ListWeapons = (gcnew System::Windows::Forms::ListView());
85
			this->columnHeader1 = (gcnew System::Windows::Forms::ColumnHeader());
86
			this->columnHeader2 = (gcnew System::Windows::Forms::ColumnHeader());
87
			this->flowLayoutPanel1 = (gcnew System::Windows::Forms::FlowLayoutPanel());
88
			this->RadioLasers = (gcnew System::Windows::Forms::RadioButton());
89
			this->RadioMissiles = (gcnew System::Windows::Forms::RadioButton());
90
			this->CheckWeaponDefault = (gcnew System::Windows::Forms::CheckBox());
91
			this->ButCopyDefault = (gcnew System::Windows::Forms::Button());
92
			this->panel34 = (gcnew System::Windows::Forms::Panel());
93
			this->ComboGameLaser = (gcnew System::Windows::Forms::ComboBox());
94
			this->label51 = (gcnew System::Windows::Forms::Label());
95
			this->flowLayoutPanel1->SuspendLayout();
96
			this->panel34->SuspendLayout();
97
			this->SuspendLayout();
98
			// 
99
			// ListWeapons
100
			// 
101
			this->ListWeapons->CheckBoxes = true;
102
			this->ListWeapons->Columns->AddRange(gcnew cli::array< System::Windows::Forms::ColumnHeader^  >(2) {this->columnHeader1, 
103
				this->columnHeader2});
104
			this->ListWeapons->Dock = System::Windows::Forms::DockStyle::Fill;
105
			this->ListWeapons->FullRowSelect = true;
106
			this->ListWeapons->Location = System::Drawing::Point(0, 48);
107
			this->ListWeapons->Name = L"ListWeapons";
108
			this->ListWeapons->Size = System::Drawing::Size(552, 588);
109
			this->ListWeapons->TabIndex = 5;
110
			this->ListWeapons->UseCompatibleStateImageBehavior = false;
111
			this->ListWeapons->View = System::Windows::Forms::View::Details;
112
			this->ListWeapons->ItemChecked += gcnew System::Windows::Forms::ItemCheckedEventHandler(this, &CustomiseWeapons::ListWeapons_ItemChecked);
103 cycrow 113
			this->ListWeapons->ItemCheck += gcnew System::Windows::Forms::ItemCheckEventHandler(this, &CustomiseWeapons::ListWeapons_ItemCheck);
1 cycrow 114
			// 
115
			// columnHeader1
116
			// 
117
			this->columnHeader1->Text = L"Group";
118
			// 
119
			// columnHeader2
120
			// 
121
			this->columnHeader2->Text = L"Weapons";
122
			// 
123
			// flowLayoutPanel1
124
			// 
125
			this->flowLayoutPanel1->Controls->Add(this->RadioLasers);
126
			this->flowLayoutPanel1->Controls->Add(this->RadioMissiles);
127
			this->flowLayoutPanel1->Controls->Add(this->CheckWeaponDefault);
128
			this->flowLayoutPanel1->Controls->Add(this->ButCopyDefault);
129
			this->flowLayoutPanel1->Dock = System::Windows::Forms::DockStyle::Top;
130
			this->flowLayoutPanel1->Location = System::Drawing::Point(0, 22);
131
			this->flowLayoutPanel1->Name = L"flowLayoutPanel1";
132
			this->flowLayoutPanel1->Size = System::Drawing::Size(552, 26);
133
			this->flowLayoutPanel1->TabIndex = 4;
134
			// 
135
			// RadioLasers
136
			// 
137
			this->RadioLasers->AutoSize = true;
138
			this->RadioLasers->Checked = true;
139
			this->RadioLasers->Location = System::Drawing::Point(3, 3);
140
			this->RadioLasers->Name = L"RadioLasers";
141
			this->RadioLasers->Size = System::Drawing::Size(116, 17);
142
			this->RadioLasers->TabIndex = 0;
143
			this->RadioLasers->TabStop = true;
144
			this->RadioLasers->Text = L"Laser Compatability";
145
			this->RadioLasers->UseVisualStyleBackColor = true;
146
			this->RadioLasers->CheckedChanged += gcnew System::EventHandler(this, &CustomiseWeapons::RadioLasers_CheckedChanged);
147
			// 
148
			// RadioMissiles
149
			// 
150
			this->RadioMissiles->AutoSize = true;
151
			this->RadioMissiles->Location = System::Drawing::Point(125, 3);
152
			this->RadioMissiles->Name = L"RadioMissiles";
153
			this->RadioMissiles->Size = System::Drawing::Size(121, 17);
154
			this->RadioMissiles->TabIndex = 1;
155
			this->RadioMissiles->Text = L"Missile Compatability";
156
			this->RadioMissiles->UseVisualStyleBackColor = true;
157
			this->RadioMissiles->CheckedChanged += gcnew System::EventHandler(this, &CustomiseWeapons::RadioMissiles_CheckedChanged);
158
			// 
159
			// CheckWeaponDefault
160
			// 
161
			this->CheckWeaponDefault->AutoSize = true;
162
			this->CheckWeaponDefault->Location = System::Drawing::Point(252, 3);
163
			this->CheckWeaponDefault->Name = L"CheckWeaponDefault";
164
			this->CheckWeaponDefault->Size = System::Drawing::Size(82, 17);
165
			this->CheckWeaponDefault->TabIndex = 2;
166
			this->CheckWeaponDefault->Text = L"Use Default";
167
			this->CheckWeaponDefault->UseVisualStyleBackColor = true;
168
			this->CheckWeaponDefault->CheckedChanged += gcnew System::EventHandler(this, &CustomiseWeapons::CheckWeaponDefault_CheckedChanged);
169
			// 
170
			// ButCopyDefault
171
			// 
172
			this->ButCopyDefault->AutoSize = true;
173
			this->ButCopyDefault->Location = System::Drawing::Point(340, 3);
174
			this->ButCopyDefault->Name = L"ButCopyDefault";
175
			this->ButCopyDefault->Size = System::Drawing::Size(83, 23);
176
			this->ButCopyDefault->TabIndex = 2;
177
			this->ButCopyDefault->Text = L"Copy Defaults";
178
			this->ButCopyDefault->UseVisualStyleBackColor = true;
179
			this->ButCopyDefault->Click += gcnew System::EventHandler(this, &CustomiseWeapons::ButCopyDefault_Click);
180
			// 
181
			// panel34
182
			// 
183
			this->panel34->Controls->Add(this->ComboGameLaser);
184
			this->panel34->Controls->Add(this->label51);
185
			this->panel34->Dock = System::Windows::Forms::DockStyle::Top;
186
			this->panel34->Location = System::Drawing::Point(0, 0);
187
			this->panel34->Name = L"panel34";
188
			this->panel34->Size = System::Drawing::Size(552, 22);
189
			this->panel34->TabIndex = 3;
190
			// 
191
			// ComboGameLaser
192
			// 
193
			this->ComboGameLaser->Dock = System::Windows::Forms::DockStyle::Fill;
194
			this->ComboGameLaser->DropDownStyle = System::Windows::Forms::ComboBoxStyle::DropDownList;
195
			this->ComboGameLaser->FormattingEnabled = true;
196
			this->ComboGameLaser->Location = System::Drawing::Point(188, 0);
197
			this->ComboGameLaser->Name = L"ComboGameLaser";
198
			this->ComboGameLaser->Size = System::Drawing::Size(364, 21);
199
			this->ComboGameLaser->TabIndex = 0;
200
			this->ComboGameLaser->SelectedIndexChanged += gcnew System::EventHandler(this, &CustomiseWeapons::ComboGameLaser_SelectedIndexChanged);
201
			// 
202
			// label51
203
			// 
204
			this->label51->Dock = System::Windows::Forms::DockStyle::Left;
205
			this->label51->Font = (gcnew System::Drawing::Font(L"Microsoft Sans Serif", 9.75F, System::Drawing::FontStyle::Bold, System::Drawing::GraphicsUnit::Point, 
206
				static_cast<System::Byte>(0)));
207
			this->label51->Location = System::Drawing::Point(0, 0);
208
			this->label51->Name = L"label51";
209
			this->label51->Size = System::Drawing::Size(188, 22);
210
			this->label51->TabIndex = 1;
211
			this->label51->Text = L"X-Universe Game:";
212
			this->label51->TextAlign = System::Drawing::ContentAlignment::MiddleLeft;
213
			// 
214
			// CustomiseWeapons
215
			// 
216
			this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
217
			this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
218
			this->Controls->Add(this->ListWeapons);
219
			this->Controls->Add(this->flowLayoutPanel1);
220
			this->Controls->Add(this->panel34);
221
			this->Name = L"CustomiseWeapons";
222
			this->Size = System::Drawing::Size(552, 636);
223
			this->flowLayoutPanel1->ResumeLayout(false);
224
			this->flowLayoutPanel1->PerformLayout();
225
			this->panel34->ResumeLayout(false);
226
			this->ResumeLayout(false);
227
 
228
		}
229
#pragma endregion
230
	private: System::Void ListWeapons_ItemChecked(System::Object^  sender, System::Windows::Forms::ItemCheckedEventArgs^  e) {
231
				 this->SaveWeaponsList();
232
			 }
233
private: System::Void RadioLasers_CheckedChanged(System::Object^  sender, System::EventArgs^  e) {
234
			 this->UpdateWeaponsList();
235
		 }
236
private: System::Void RadioMissiles_CheckedChanged(System::Object^  sender, System::EventArgs^  e) {
237
			 this->UpdateWeaponsList();
238
		 }
239
private: System::Void ComboGameLaser_SelectedIndexChanged(System::Object^  sender, System::EventArgs^  e) {
240
			 this->UpdateWeaponsList();
241
		 }
242
private: System::Void CheckWeaponDefault_CheckedChanged(System::Object^  sender, System::EventArgs^  e) {
103 cycrow 243
			 if ( this->CheckWeaponDefault->Checked ) {
244
				 this->ListWeapons->BackColor = Color::Gainsboro;
245
			 }
246
			 else {
247
				 this->ListWeapons->BackColor = Color::White;
248
			 }
1 cycrow 249
			 this->ButCopyDefault->Visible = !this->CheckWeaponDefault->Checked;
250
			 if ( m_bUpdating ) return;
251
			 int value = (this->CheckWeaponDefault->Checked) ? -1 : 0;
252
 
253
			for ( SWeaponMasks *m = m_pWeapons->First(); m; m = m_pWeapons->Next() )
254
			{
255
				if ( m->iGame == this->ComboGameLaser->SelectedIndex )
256
				{
257
					if ( this->RadioMissiles->Checked )
258
						m->iMissileMask = value;
259
					else
260
						m->iLaserMask = value;
261
					break;
262
				}
263
			}
264
			this->UpdateWeaponsList();
265
		 }
266
private: System::Void ButCopyDefault_Click(System::Object^  sender, System::EventArgs^  e) {
267
			for ( SWeaponMasks *m = m_pWeapons->First(); m; m = m_pWeapons->Next() )
268
			{
269
				if ( m->iGame == this->ComboGameLaser->SelectedIndex )
270
				{
271
					if ( this->RadioMissiles->Checked )
272
						m->iMissileMask = m_pShipData->iMissileMask;
273
					else
274
						m->iLaserMask = m_pShipData->iLaserMask;
275
					break;
276
				}
277
			}
278
			this->UpdateWeaponsList();
279
		 }
103 cycrow 280
private: System::Void ListWeapons_ItemCheck(System::Object^  sender, System::Windows::Forms::ItemCheckEventArgs^  e) {
281
			 if ( this->CheckWeaponDefault->Checked && !m_bUpdating ) {
282
				 e->NewValue = e->CurrentValue;
283
			 }
284
		 }
1 cycrow 285
};
286
}