Subversion Repositories spk

Rev

Rev 88 | Rev 104 | 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
#include <spk.h>
4
 
5
using namespace System;
6
using namespace System::ComponentModel;
7
using namespace System::Collections;
8
using namespace System::Windows::Forms;
9
using namespace System::Data;
10
using namespace System::Drawing;
11
using namespace System::Threading;
12
 
13
#include "About.h"
14
#include "PackageInstalled.h"
15
#include "GameLauncherFlags.h"
16
#include "FakePatchControl.h"
2 cycrow 17
//TODO: remove this, move to a generic shared space
18
#include "..\..\SpkExplorer\src\Forms\PackageInfo.h"
1 cycrow 19
#include "CheckUpdate.h"
20
#include "MenuBar.h"
2 cycrow 21
//TODO: remove this, move to a generic shared space
22
#include "..\..\Creator\src\Forms\Waiting.h"
1 cycrow 23
 
24
enum {MGUI_BACKGROUND_NONE, MGUI_BACKGROUND_INSTALL, MGUI_BACKGROUND_UNINSTALL, MGUI_BACKGROUND_DISABLE, MGUI_BACKGROUND_CHANGEDIR, MGUI_BACKGROUND_ADDDIR, MGUI_BACKGROUND_INSTALLBUILTIN, MGUI_BACKGROUND_REMOVEDIR};
25
enum {SORT_NAME, SORT_AUTHOR, SORT_VERSION, SORT_CREATED, SORT_TYPE, SORT_ENABLE, SORT_SIGNED};
26
 
27
#define MAXTIPS 1
28
 
29
#define TIPSECTION_YESNO		0
30
 
31
#define TIP_NONE				0
32
#define TIP_SHIPUNINSTALL		1
33
#define TIP_SHIPDISABLE			2
34
 
35
namespace PluginManager {
36
 
37
	/// <summary>
38
	/// Summary for MainGui
39
	///
40
	/// WARNING: If you change the name of this class, you will need to change the
41
	///          'Resource File Name' property for the managed resource compiler tool
42
	///          associated with all .resx files this class depends on.  Otherwise,
43
	///          the designers will not be able to interact properly with localized
44
	///          resources associated with this form.
45
	/// </summary>
46
	public ref class MainGui : public System::Windows::Forms::Form
47
	{
48
	public:
49
		MainGui(CPackages *p, CyStringList *list, CyStringList *removed, bool advanced)
50
		{
51
			InitializeComponent();
52
 
53
			// additional controls
54
			m_pMenuBar = gcnew MenuBar(this, advanced);
55
			m_pWait = nullptr;
56
 
57
			m_bAdvanced = advanced;
58
			m_iSaveGameManager = -1;
59
 
60
			m_lTips = gcnew ArrayList();
61
			for ( int i = 0; i < MAXTIPS; i++ )
62
			{
63
				STips ^t = gcnew STips;
64
				t->iTips = 0;
65
				m_lTips->Add(t);
66
				this->SetTipStrings(i);
67
			}
68
 
69
			// set  pointers
70
			m_pPackages = p;
71
			m_pDirList = list;
72
			m_pRemovedDirList = removed;
73
			m_pUpdateList = NULL;
74
			m_pListItem = nullptr;
75
			m_pFileErrors = new CyStringList;
76
			m_bDirLocked = false;
77
 
78
			// default values
79
			m_iBackgroundTask = MGUI_BACKGROUND_NONE;
80
			m_bSortingAsc = true;
81
			m_iSortingColumn = SORT_NAME;
82
			m_bExperimental = m_bCheat = m_bModSelectorDetails = m_bShips = m_bDownloadable = m_bSigned = false;
83
			m_bAutoUpdate = true;
84
			m_bRunningBackground = false;
85
			m_bDisplayDialog = false;
86
			m_bDisplayMessage = false;
87
 
88
			m_sGameArgs = "-noabout";
89
			m_pLauncherFlags = new SGameLauncherFlags;
90
			m_pLauncherFlags->iIgnoreJoy = 0;
91
			m_pLauncherFlags->bNoAbout = true;
92
 
93
			m_iSizeX = -1;
94
			m_iSizeY = -1;
95
 
96
			this->Text = GetProgramName(m_bAdvanced) + " " + GetVersionString();
97
 
98
			// update the gui
99
			this->UpdateControls();
100
 
101
			// update the display
102
			this->UpdateDirList();
103
			this->UpdatePackages();
104
 
105
			// setup the events
106
			this->SetupEventHandlers();
107
 
108
			//this->ButRun->Hide();
109
		}
110
 
111
		void DisplayLocked(bool inthread);
112
		void GetGameDirs(CyString &dir, bool askDir, bool askDirAddon);
113
		void CheckProtectedDir();
114
		void PrepareSaveGameManager()
115
		{
116
			// copy save games to each game dir
117
		}
118
 
119
		void InstallArchive()
120
		{
121
			if ( m_bDirLocked ) {
122
				this->DisplayLocked(false);
123
				return;
124
			}
125
			OpenFileDialog ^ofd = gcnew OpenFileDialog();
126
			ofd->Filter = "All Supported Archives|*.zip; *.rar|Zip Archive (*.zip)|*.zip|Rar Archive (*.rar)|*.rar";
127
			ofd->Title = "Select archive file you wish to install";
128
			ofd->FilterIndex = 1;
129
			ofd->RestoreDirectory = true;
130
			ofd->Multiselect = false;
131
 
132
			if ( ofd->ShowDialog(this) == System::Windows::Forms::DialogResult::OK )
133
			{
134
				m_sConvertFile = ofd->FileName;
135
				m_pWait = gcnew Creator::Waiting("Converting: " + IO::FileInfo(m_sConvertFile).Name);
136
				this->backgroundWorker2->RunWorkerAsync();
137
				m_pWait->ShowDialog(this);
138
			}
139
		}
140
 
141
		void AboutDialog()
142
		{
143
			 CBaseFile *pm = m_pPackages->FindScriptByAuthor("PluginManager");
144
			 System::String ^scriptVer = "None";
145
			 if ( pm )
146
			 {
50 cycrow 147
				 scriptVer = _US(pm->version());
148
				 if ( !pm->creationDate().empty() )
149
					scriptVer += " (" + _US(pm->creationDate()) + ")";
1 cycrow 150
			 }
151
			About ^about = gcnew About(GetVersionString(), PMLDATE, scriptVer, m_bAdvanced);
152
			about->ShowDialog(this);
153
		}
154
 
155
		// config
156
		void SetSize(int x, int y) { m_iSizeX = x; m_iSizeY = y; }
157
		void SetTipStrings(int section);
158
		void SetTips(int tip, int done)
159
		{
160
			if ( tip < 0 )
161
				return;
162
			if ( tip > (int)MAXTIPS )
163
				return;
164
			((STips ^)m_lTips[tip])->iTips = done;
165
		}
166
		void SetSaveGameManager(int i) { m_iSaveGameManager = i; }
167
		void SetExperimental(bool b) { m_bExperimental = b; }
168
		void SetShips(bool b) { m_bShips = b; }
169
		void SetOnlySigned(bool b) { m_bSigned = b; }
170
		void SetCheat(bool b) { m_bCheat = b; }
171
		void SetDownloadable(bool b) { m_bDownloadable = b; }
172
		void SetModSelectorDetails(bool b) { m_bModSelectorDetails = b; }
173
		void SetAutoUpdate(bool b) { m_bAutoUpdate = b; }
174
		void SetIgnoreJoy(long j) { m_pLauncherFlags->iIgnoreJoy = j; }
175
		void ForceEMP(bool b) { m_pPackages->SetForceEMP(b); }
176
 
177
		int GetSaveGameManager() { return m_iSaveGameManager; }
178
		bool IsModSelectorDetailsShowing() { return m_bModSelectorDetails; }
179
		bool IsShips() { return m_bShips; }
180
		bool IsOnlySigned() { return m_bSigned; }
181
		bool IsExperimental() { return m_bExperimental; }
182
		bool IsCheat() { return m_bCheat; }
183
		bool IsDownloadable() { return m_bDownloadable; }
184
		bool IsAutoUpdate() { return m_bAutoUpdate; }
185
		int GetTips(int tip)
186
		{
187
			if ( tip < 0 || tip >= MAXTIPS )
188
				return -1;
189
			return ((STips ^)m_lTips[tip])->iTips;
190
		}
191
		int GetMaxTips() { return (int)MAXTIPS; }
192
		long GetIgnoreJoy() { return m_pLauncherFlags->iIgnoreJoy; }
193
 
194
		// gui updates
195
		void UpdateDirList();
196
		void UpdatePackages();
197
		void UpdateControls();
198
		bool UpdateBuiltInPackages();
86 cycrow 199
		void AddIconToPackages(String ^icon);
1 cycrow 200
 
201
		// auto update
202
		void AutoUpdate();
203
		System::String ^GetDownloadFile() { return m_sDownload; }
204
 
205
		// Run
206
		System::String ^GetRunFile() { return m_sRun; }
207
		System::String ^GetGameArgs() { return m_sGameArgs; }
208
 
209
		// setup functions
210
		void SetupEventHandlers();
211
		void StartCheckTimer();
212
 
213
		// control functions
214
		bool InstallPackage(System::String ^file, bool straightAway, bool builtin, bool background);
215
		void ChangeDirectory(CyString dir);
216
 
217
		void SetGameArgs(System::String ^args) { m_sGameArgs = args; }
218
		void AddGameArgs(System::String ^args) { m_sGameArgs += " " + args; }
219
 
220
		bool DisplayTip(int tipsection, int tip);
221
		void CheckUnusedShared();
222
 
223
		bool CheckAccessRights(String ^dir);
224
		void ClearSelectedItems();
225
		void CheckFakePatchCompatability();
226
 
227
		void PackageUpdates()
228
		{
229
			CheckUpdate ^update = gcnew CheckUpdate(m_pPackages, this->imageList1);
230
			this->ClearSelectedItems();
231
			if ( update->ShowDialog(this) == Windows::Forms::DialogResult::OK )
232
			{
233
				for ( int i = 0; i < update->GetInstallList()->Count; i++ )
234
					this->InstallPackage(Convert::ToString(update->GetInstallList()[i]), false, false, true);
235
				this->StartInstalling(false, true);
236
			}
237
		}
238
 
239
		// external control events
240
		void InstallEvent(System::Object ^Sender, System::EventArgs ^E);
241
		void VanillaEvent(System::Object ^Sender, System::EventArgs ^E);
242
		void ModifiedEvent(System::Object ^Sender, System::EventArgs ^E);
243
		void AddDirectoryEvent(System::Object ^Sender, System::EventArgs ^E);
244
		void ModSelectorEvent(System::Object ^Sender, System::EventArgs ^E);
245
		void PackageBrowserEvent(System::Object ^Sender, System::EventArgs ^E);
246
 
247
		void FindPackagesOnline();
248
		void ViewFileLog();
249
		void EditGlobalsDialog();
88 cycrow 250
		void EditWaresDialog();
89 cycrow 251
		void CommandSlotsDialog();
1 cycrow 252
		void FakePatchControlDialog();
253
		void RemoveDirectory();
254
		void ExportPackageList();
255
		void VerifyInstalledFiles();
256
		CPackages *GetPackageControl() { return m_pPackages; }
257
 
258
	protected:
259
		/// <summary>
260
		/// Clean up any resources being used.
261
		/// </summary>
262
		~MainGui()
263
		{
264
			if (components)
265
			{
266
				delete components;
267
			}
268
			delete m_pFileErrors;
269
			delete m_pLauncherFlags;
270
		}
271
 
272
	private:
273
		// Events
274
		void ClosedEvent(System::Object ^Sender, System::EventArgs ^E) { this->Close(); }
275
		void PackageListSelected(System::Object ^Sender, System::EventArgs ^E);
276
		void PackageListSort(System::Object ^Sender, ColumnClickEventArgs ^E);
277
		void UninstallEvent(System::Object ^Sender, System::EventArgs ^E);
278
		void DisableEvent(System::Object ^Sender, System::EventArgs ^E);
279
		void ChangeDirectoryEvent(System::Object ^Sender, System::EventArgs ^E);
280
		void Background_DoWork(System::Object ^Sender, DoWorkEventArgs ^E);
281
		void Background_Progress(System::Object ^Sender, ProgressChangedEventArgs ^E);
282
		void Background_Finished(System::Object ^Sender, RunWorkerCompletedEventArgs ^E) { this->Background_Finished(); }
283
		void Background_Finished();
284
		void CloseEvent(System::Object ^Sender, FormClosingEventArgs ^E);
285
		void Updater_Finished(System::Object ^Sender, RunWorkerCompletedEventArgs ^E);
286
		void Updater_DoWork(System::Object ^Sender, DoWorkEventArgs ^E);
287
		void TimerEvent_CheckFile(System::Object ^Sender, System::EventArgs ^E);
288
		void RunItem(System::Object ^sender, System::EventArgs ^e);
289
 
290
		ListViewItem ^FindSelectedItem();
291
		CBaseFile *GetFileFromItem(ListViewItem ^item);
292
 
293
		System::Void OpenContextMenu(System::Object ^Sender, CancelEventArgs ^E);
294
		void _DisplayPackages(CBaseFile *currentParent, ListViewGroup ^addGroup);
295
 
296
		void UpdateRunButton();
297
		bool EnablePackage(CBaseFile *p);
298
		bool StartInstallingArchive(bool builtin, bool background) { return StartInstalling(builtin, background, true); }
299
		bool StartInstalling(bool builtin, bool background) { return StartInstalling(builtin, background, false); }
300
		bool StartInstalling(bool builtin, bool background, bool archive);
301
		void DoInstall(bool builtin, bool frombackground);
302
		void DoUninstall();
303
		void DoDisable();
304
		bool RemoveCurrentDirectory();
305
		CBaseFile *FindPackageFromList(ListViewItem ^item);
306
 
307
		bool StartBackground(int type);
308
		bool StartBackground(int type, System::String ^info);
309
		void LaunchGame();
310
		System::Windows::Forms::DialogResult DisplayMessageBox(bool inthread, System::String ^title, System::String ^text, MessageBoxButtons buttons, MessageBoxIcon icon);
311
 
312
		void DisableList(ArrayList ^List);
313
		void UninstallList(ArrayList ^List);
314
 
315
		void RunFromToolItem(ToolStripMenuItem ^item);
316
 
317
		MenuBar			^m_pMenuBar;
318
		CPackages		*m_pPackages;
319
		CyStringList	*m_pDirList;
320
		CyStringList	*m_pRemovedDirList;
321
		CyStringList	*m_pUpdateList;
322
		CyStringList	*m_pFileErrors;
323
		int				 m_iBackgroundTask;
324
		int				 m_iSortingColumn;
325
		bool			 m_bSortingAsc;
326
 
327
		bool			 m_bSigned;
328
		bool			 m_bShips;
329
		bool			 m_bExperimental;
330
		bool			 m_bCheat;
331
		bool			 m_bDownloadable;
332
		bool			 m_bModSelectorDetails;
333
		bool			 m_bAutoUpdate;
334
		bool			 m_bRunningBackground;
335
		bool			 m_bAdvanced;
336
		bool			 m_bDirLocked;
337
 
338
		System::String	^m_sBackgroundInfo;
339
		System::String	^m_sDownload;
340
		System::String	^m_sRun;
341
		System::String	^m_sGameArgs;
342
 
343
		PackageInstalled ^m_pPi;
344
		bool			m_bDisplayDialog;
345
		bool			m_bDisplayMessage;
346
		System::String ^m_sMessageTitle;
347
		System::String ^m_sMessageText;
348
		MessageBoxIcon  m_messageIcon;
349
		MessageBoxButtons m_messageButtons;
350
 
351
		int			m_iSizeX;
352
		int			m_iSizeY;
353
 
354
		SGameLauncherFlags *m_pLauncherFlags;
355
 
356
		ArrayList ^m_lTips;
357
		ListViewItem						^m_pListItem;
358
 
359
		int			m_iSaveGameManager;
360
		String			^m_sConvertFile;
361
		Creator::Waiting	^m_pWait;
362
		CArchiveFile	*m_pConverted;
363
 
364
	private:
365
	private:
366
	private: System::Windows::Forms::GroupBox^  GroupDir;
367
	private: System::Windows::Forms::ComboBox^  ComboDir;
368
	private: System::Windows::Forms::ListView^  ListPackages;
369
	private: System::Windows::Forms::ColumnHeader^  columnHeader1;
370
	private: System::Windows::Forms::ColumnHeader^  columnHeader2;
371
	private: System::Windows::Forms::ColumnHeader^  columnHeader3;
372
	private: System::Windows::Forms::ColumnHeader^  columnHeader4;
373
	private: System::Windows::Forms::ColumnHeader^  columnHeader5;
374
	private: System::Windows::Forms::Panel^  panel1;
375
	private: System::Windows::Forms::Button^  ButClose;
376
	private: System::Windows::Forms::GroupBox^  GroupPackages;
377
	private: System::Windows::Forms::ProgressBar^  ProgressBar;
378
	private: System::Windows::Forms::Panel^  panel2;
379
	private: System::Windows::Forms::Button^  ButUninstall;
380
	private: System::Windows::Forms::Button^  ButDisable;
381
	private: System::Windows::Forms::Button^  ButInstall;
382
	private: System::ComponentModel::BackgroundWorker^  backgroundWorker1;
383
private: System::Windows::Forms::RichTextBox^  TextDesc;
384
private: System::Windows::Forms::Panel^  PanelDisplay;
385
private: System::Windows::Forms::PictureBox^  PictureDisplay;
386
private: System::ComponentModel::BackgroundWorker^  backgroundUpdater;
387
private: System::Windows::Forms::Button^  ButRun;
388
private: System::Windows::Forms::StatusStrip^  statusStrip1;
389
private: System::Windows::Forms::ToolStripStatusLabel^  LabelStatus;
390
private: System::Windows::Forms::ContextMenuStrip^  contextMenuStrip1;
391
private: System::Windows::Forms::ToolStripMenuItem^  uninstallToolStripMenuItem;
392
private: System::Windows::Forms::ToolStripSeparator^  ContextSeperator;
393
private: System::Windows::Forms::ToolStripMenuItem^  ContextEnable;
394
private: System::Windows::Forms::ToolStripMenuItem^  ContextDisable;
395
private: System::Windows::Forms::ToolStripMenuItem^  ContextName;
396
private: System::Windows::Forms::ToolStripSeparator^  toolStripSeparator3;
397
private: System::Windows::Forms::ImageList^  imageList1;
398
private: System::Windows::Forms::ToolStripMenuItem^  UninstallSelectedContext;
399
private: System::Windows::Forms::ColumnHeader^  columnHeader6;
400
private: System::Windows::Forms::ToolStripMenuItem^  viewReadmeToolStripMenuItem;
401
private: System::Windows::Forms::ToolStripMenuItem^  extrasToolStripMenuItem;
402
private: System::Windows::Forms::ImageList^  imageList2;
403
private: System::Windows::Forms::ImageList^  imageList3;
404
private: System::Windows::Forms::ToolStripSeparator^  ContextSeperator2;
405
private: System::Windows::Forms::ToolStripMenuItem^  emailAuthorToolStripMenuItem;
406
private: System::Windows::Forms::ToolStripMenuItem^  visitForumPageToolStripMenuItem;
407
private: System::Windows::Forms::ToolStripMenuItem^  visitWebSiteToolStripMenuItem;
408
private: System::Windows::Forms::ToolStripSeparator^  toolStripSeparator2;
409
private: System::Windows::Forms::ToolStripMenuItem^  checkForUpdatesToolStripMenuItem;
410
private: System::Windows::Forms::Button^  button1;
411
private: System::ComponentModel::BackgroundWorker^  backgroundWorker2;
412
 
413
private: System::ComponentModel::IContainer^  components;
414
		 /// <summary>
415
		/// Required designer variable.
416
		/// </summary>
417
 
418
 
419
#pragma region Windows Form Designer generated code
420
		/// <summary>
421
		/// Required method for Designer support - do not modify
422
		/// the contents of this method with the code editor.
423
		/// </summary>
424
		void InitializeComponent(void)
425
		{
426
			this->components = (gcnew System::ComponentModel::Container());
427
			System::ComponentModel::ComponentResourceManager^  resources = (gcnew System::ComponentModel::ComponentResourceManager(MainGui::typeid));
428
			this->GroupDir = (gcnew System::Windows::Forms::GroupBox());
429
			this->ComboDir = (gcnew System::Windows::Forms::ComboBox());
430
			this->ListPackages = (gcnew System::Windows::Forms::ListView());
431
			this->columnHeader1 = (gcnew System::Windows::Forms::ColumnHeader());
432
			this->columnHeader2 = (gcnew System::Windows::Forms::ColumnHeader());
433
			this->columnHeader3 = (gcnew System::Windows::Forms::ColumnHeader());
434
			this->columnHeader4 = (gcnew System::Windows::Forms::ColumnHeader());
435
			this->columnHeader6 = (gcnew System::Windows::Forms::ColumnHeader());
436
			this->columnHeader5 = (gcnew System::Windows::Forms::ColumnHeader());
437
			this->contextMenuStrip1 = (gcnew System::Windows::Forms::ContextMenuStrip(this->components));
438
			this->ContextName = (gcnew System::Windows::Forms::ToolStripMenuItem());
439
			this->toolStripSeparator3 = (gcnew System::Windows::Forms::ToolStripSeparator());
440
			this->uninstallToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
441
			this->UninstallSelectedContext = (gcnew System::Windows::Forms::ToolStripMenuItem());
442
			this->ContextEnable = (gcnew System::Windows::Forms::ToolStripMenuItem());
443
			this->ContextDisable = (gcnew System::Windows::Forms::ToolStripMenuItem());
444
			this->ContextSeperator = (gcnew System::Windows::Forms::ToolStripSeparator());
445
			this->viewReadmeToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
446
			this->extrasToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
447
			this->ContextSeperator2 = (gcnew System::Windows::Forms::ToolStripSeparator());
448
			this->emailAuthorToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
449
			this->visitForumPageToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
450
			this->visitWebSiteToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
451
			this->toolStripSeparator2 = (gcnew System::Windows::Forms::ToolStripSeparator());
452
			this->checkForUpdatesToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
453
			this->panel1 = (gcnew System::Windows::Forms::Panel());
454
			this->ProgressBar = (gcnew System::Windows::Forms::ProgressBar());
455
			this->ButRun = (gcnew System::Windows::Forms::Button());
456
			this->ButClose = (gcnew System::Windows::Forms::Button());
457
			this->GroupPackages = (gcnew System::Windows::Forms::GroupBox());
458
			this->PanelDisplay = (gcnew System::Windows::Forms::Panel());
459
			this->TextDesc = (gcnew System::Windows::Forms::RichTextBox());
460
			this->PictureDisplay = (gcnew System::Windows::Forms::PictureBox());
461
			this->panel2 = (gcnew System::Windows::Forms::Panel());
462
			this->button1 = (gcnew System::Windows::Forms::Button());
463
			this->ButUninstall = (gcnew System::Windows::Forms::Button());
464
			this->ButDisable = (gcnew System::Windows::Forms::Button());
465
			this->ButInstall = (gcnew System::Windows::Forms::Button());
466
			this->backgroundWorker1 = (gcnew System::ComponentModel::BackgroundWorker());
467
			this->backgroundUpdater = (gcnew System::ComponentModel::BackgroundWorker());
468
			this->statusStrip1 = (gcnew System::Windows::Forms::StatusStrip());
469
			this->LabelStatus = (gcnew System::Windows::Forms::ToolStripStatusLabel());
470
			this->imageList1 = (gcnew System::Windows::Forms::ImageList(this->components));
471
			this->imageList2 = (gcnew System::Windows::Forms::ImageList(this->components));
472
			this->imageList3 = (gcnew System::Windows::Forms::ImageList(this->components));
473
			this->backgroundWorker2 = (gcnew System::ComponentModel::BackgroundWorker());
474
			this->GroupDir->SuspendLayout();
475
			this->contextMenuStrip1->SuspendLayout();
476
			this->panel1->SuspendLayout();
477
			this->GroupPackages->SuspendLayout();
478
			this->PanelDisplay->SuspendLayout();
479
			(cli::safe_cast<System::ComponentModel::ISupportInitialize^  >(this->PictureDisplay))->BeginInit();
480
			this->panel2->SuspendLayout();
481
			this->statusStrip1->SuspendLayout();
482
			this->SuspendLayout();
483
			// 
484
			// GroupDir
485
			// 
486
			this->GroupDir->Controls->Add(this->ComboDir);
487
			this->GroupDir->Dock = System::Windows::Forms::DockStyle::Top;
488
			this->GroupDir->Location = System::Drawing::Point(0, 0);
489
			this->GroupDir->Name = L"GroupDir";
490
			this->GroupDir->Padding = System::Windows::Forms::Padding(5);
491
			this->GroupDir->Size = System::Drawing::Size(626, 52);
492
			this->GroupDir->TabIndex = 0;
493
			this->GroupDir->TabStop = false;
494
			this->GroupDir->Text = L"Current Directory";
495
			// 
496
			// ComboDir
497
			// 
498
			this->ComboDir->Dock = System::Windows::Forms::DockStyle::Fill;
499
			this->ComboDir->DropDownStyle = System::Windows::Forms::ComboBoxStyle::DropDownList;
500
			this->ComboDir->FormattingEnabled = true;
501
			this->ComboDir->Location = System::Drawing::Point(5, 18);
502
			this->ComboDir->Margin = System::Windows::Forms::Padding(10);
503
			this->ComboDir->Name = L"ComboDir";
504
			this->ComboDir->Size = System::Drawing::Size(616, 21);
505
			this->ComboDir->TabIndex = 0;
506
			// 
507
			// ListPackages
508
			// 
509
			this->ListPackages->AllowDrop = true;
510
			this->ListPackages->Columns->AddRange(gcnew cli::array< System::Windows::Forms::ColumnHeader^  >(6) {this->columnHeader1, 
511
				this->columnHeader2, this->columnHeader3, this->columnHeader4, this->columnHeader6, this->columnHeader5});
512
			this->ListPackages->ContextMenuStrip = this->contextMenuStrip1;
513
			this->ListPackages->Dock = System::Windows::Forms::DockStyle::Fill;
514
			this->ListPackages->FullRowSelect = true;
515
			this->ListPackages->HideSelection = false;
516
			this->ListPackages->Location = System::Drawing::Point(3, 16);
517
			this->ListPackages->Name = L"ListPackages";
518
			this->ListPackages->ShowItemToolTips = true;
519
			this->ListPackages->Size = System::Drawing::Size(620, 386);
520
			this->ListPackages->TabIndex = 0;
521
			this->ListPackages->UseCompatibleStateImageBehavior = false;
522
			this->ListPackages->View = System::Windows::Forms::View::Details;
523
			this->ListPackages->MouseDoubleClick += gcnew System::Windows::Forms::MouseEventHandler(this, &MainGui::ListPackages_MouseDoubleClick);
524
			this->ListPackages->DragDrop += gcnew System::Windows::Forms::DragEventHandler(this, &MainGui::ListPackages_DragDrop);
525
			this->ListPackages->DragOver += gcnew System::Windows::Forms::DragEventHandler(this, &MainGui::ListPackages_DragOver);
86 cycrow 526
			this->ListPackages->DrawSubItem += gcnew System::Windows::Forms::DrawListViewSubItemEventHandler(this, &MainGui::ListPackages_DrawSubItem);
1 cycrow 527
			// 
528
			// columnHeader1
529
			// 
530
			this->columnHeader1->Text = L"Package";
531
			// 
532
			// columnHeader2
533
			// 
534
			this->columnHeader2->Text = L"Author";
535
			// 
536
			// columnHeader3
537
			// 
538
			this->columnHeader3->Text = L"Version";
539
			this->columnHeader3->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
540
			// 
541
			// columnHeader4
542
			// 
543
			this->columnHeader4->Text = L"Updated";
544
			// 
545
			// columnHeader6
546
			// 
547
			this->columnHeader6->DisplayIndex = 5;
548
			this->columnHeader6->Text = L"Type";
549
			// 
550
			// columnHeader5
551
			// 
552
			this->columnHeader5->DisplayIndex = 4;
553
			this->columnHeader5->Text = L"Enabled";
554
			this->columnHeader5->TextAlign = System::Windows::Forms::HorizontalAlignment::Right;
555
			// 
556
			// contextMenuStrip1
557
			// 
558
			this->contextMenuStrip1->ImageScalingSize = System::Drawing::Size(24, 24);
559
			this->contextMenuStrip1->Items->AddRange(gcnew cli::array< System::Windows::Forms::ToolStripItem^  >(15) {this->ContextName, 
560
				this->toolStripSeparator3, this->uninstallToolStripMenuItem, this->UninstallSelectedContext, this->ContextEnable, this->ContextDisable, 
561
				this->ContextSeperator, this->viewReadmeToolStripMenuItem, this->extrasToolStripMenuItem, this->ContextSeperator2, this->emailAuthorToolStripMenuItem, 
562
				this->visitForumPageToolStripMenuItem, this->visitWebSiteToolStripMenuItem, this->toolStripSeparator2, this->checkForUpdatesToolStripMenuItem});
563
			this->contextMenuStrip1->Name = L"contextMenuStrip1";
86 cycrow 564
			this->contextMenuStrip1->Size = System::Drawing::Size(216, 578);
1 cycrow 565
			this->contextMenuStrip1->Opening += gcnew System::ComponentModel::CancelEventHandler(this, &MainGui::contextMenuStrip1_Opening);
566
			// 
567
			// ContextName
568
			// 
569
			this->ContextName->Image = (cli::safe_cast<System::Drawing::Image^  >(resources->GetObject(L"ContextName.Image")));
570
			this->ContextName->ImageScaling = System::Windows::Forms::ToolStripItemImageScaling::None;
571
			this->ContextName->Name = L"ContextName";
572
			this->ContextName->Size = System::Drawing::Size(215, 50);
573
			this->ContextName->Text = L"Name";
574
			this->ContextName->Click += gcnew System::EventHandler(this, &MainGui::ContextName_Click);
575
			// 
576
			// toolStripSeparator3
577
			// 
578
			this->toolStripSeparator3->Name = L"toolStripSeparator3";
579
			this->toolStripSeparator3->Size = System::Drawing::Size(212, 6);
580
			// 
581
			// uninstallToolStripMenuItem
582
			// 
583
			this->uninstallToolStripMenuItem->Image = (cli::safe_cast<System::Drawing::Image^  >(resources->GetObject(L"uninstallToolStripMenuItem.Image")));
584
			this->uninstallToolStripMenuItem->ImageScaling = System::Windows::Forms::ToolStripItemImageScaling::None;
585
			this->uninstallToolStripMenuItem->Name = L"uninstallToolStripMenuItem";
586
			this->uninstallToolStripMenuItem->Size = System::Drawing::Size(215, 50);
587
			this->uninstallToolStripMenuItem->Text = L"Uninstall";
588
			this->uninstallToolStripMenuItem->Click += gcnew System::EventHandler(this, &MainGui::uninstallToolStripMenuItem_Click);
589
			// 
590
			// UninstallSelectedContext
591
			// 
592
			this->UninstallSelectedContext->Image = (cli::safe_cast<System::Drawing::Image^  >(resources->GetObject(L"UninstallSelectedContext.Image")));
593
			this->UninstallSelectedContext->ImageScaling = System::Windows::Forms::ToolStripItemImageScaling::None;
594
			this->UninstallSelectedContext->Name = L"UninstallSelectedContext";
595
			this->UninstallSelectedContext->Size = System::Drawing::Size(215, 50);
596
			this->UninstallSelectedContext->Text = L"Uninstall Selected";
597
			this->UninstallSelectedContext->Click += gcnew System::EventHandler(this, &MainGui::UninstallSelectedContext_Click);
598
			// 
599
			// ContextEnable
600
			// 
601
			this->ContextEnable->Image = (cli::safe_cast<System::Drawing::Image^  >(resources->GetObject(L"ContextEnable.Image")));
602
			this->ContextEnable->ImageScaling = System::Windows::Forms::ToolStripItemImageScaling::None;
603
			this->ContextEnable->Name = L"ContextEnable";
604
			this->ContextEnable->Size = System::Drawing::Size(215, 50);
605
			this->ContextEnable->Text = L"Enable";
606
			this->ContextEnable->Click += gcnew System::EventHandler(this, &MainGui::ContextEnable_Click);
607
			// 
608
			// ContextDisable
609
			// 
610
			this->ContextDisable->Image = (cli::safe_cast<System::Drawing::Image^  >(resources->GetObject(L"ContextDisable.Image")));
611
			this->ContextDisable->ImageScaling = System::Windows::Forms::ToolStripItemImageScaling::None;
612
			this->ContextDisable->Name = L"ContextDisable";
613
			this->ContextDisable->Size = System::Drawing::Size(215, 50);
614
			this->ContextDisable->Text = L"Disable";
615
			this->ContextDisable->Click += gcnew System::EventHandler(this, &MainGui::ContextDisable_Click);
616
			// 
617
			// ContextSeperator
618
			// 
619
			this->ContextSeperator->Name = L"ContextSeperator";
620
			this->ContextSeperator->Size = System::Drawing::Size(212, 6);
621
			// 
622
			// viewReadmeToolStripMenuItem
623
			// 
624
			this->viewReadmeToolStripMenuItem->Image = (cli::safe_cast<System::Drawing::Image^  >(resources->GetObject(L"viewReadmeToolStripMenuItem.Image")));
625
			this->viewReadmeToolStripMenuItem->ImageScaling = System::Windows::Forms::ToolStripItemImageScaling::None;
626
			this->viewReadmeToolStripMenuItem->Name = L"viewReadmeToolStripMenuItem";
627
			this->viewReadmeToolStripMenuItem->Size = System::Drawing::Size(215, 50);
628
			this->viewReadmeToolStripMenuItem->Text = L"View Readme";
629
			// 
630
			// extrasToolStripMenuItem
631
			// 
632
			this->extrasToolStripMenuItem->Image = (cli::safe_cast<System::Drawing::Image^  >(resources->GetObject(L"extrasToolStripMenuItem.Image")));
633
			this->extrasToolStripMenuItem->ImageScaling = System::Windows::Forms::ToolStripItemImageScaling::None;
634
			this->extrasToolStripMenuItem->Name = L"extrasToolStripMenuItem";
635
			this->extrasToolStripMenuItem->Size = System::Drawing::Size(215, 50);
636
			this->extrasToolStripMenuItem->Text = L"Extras";
637
			// 
638
			// ContextSeperator2
639
			// 
640
			this->ContextSeperator2->Name = L"ContextSeperator2";
641
			this->ContextSeperator2->Size = System::Drawing::Size(212, 6);
642
			// 
643
			// emailAuthorToolStripMenuItem
644
			// 
645
			this->emailAuthorToolStripMenuItem->Image = (cli::safe_cast<System::Drawing::Image^  >(resources->GetObject(L"emailAuthorToolStripMenuItem.Image")));
646
			this->emailAuthorToolStripMenuItem->ImageScaling = System::Windows::Forms::ToolStripItemImageScaling::None;
647
			this->emailAuthorToolStripMenuItem->Name = L"emailAuthorToolStripMenuItem";
648
			this->emailAuthorToolStripMenuItem->Size = System::Drawing::Size(215, 50);
649
			this->emailAuthorToolStripMenuItem->Text = L"Email Author";
650
			this->emailAuthorToolStripMenuItem->Click += gcnew System::EventHandler(this, &MainGui::emailAuthorToolStripMenuItem_Click);
651
			// 
652
			// visitForumPageToolStripMenuItem
653
			// 
654
			this->visitForumPageToolStripMenuItem->Image = (cli::safe_cast<System::Drawing::Image^  >(resources->GetObject(L"visitForumPageToolStripMenuItem.Image")));
655
			this->visitForumPageToolStripMenuItem->ImageScaling = System::Windows::Forms::ToolStripItemImageScaling::None;
656
			this->visitForumPageToolStripMenuItem->Name = L"visitForumPageToolStripMenuItem";
657
			this->visitForumPageToolStripMenuItem->Size = System::Drawing::Size(215, 50);
658
			this->visitForumPageToolStripMenuItem->Text = L"Visit Forum Page";
659
			this->visitForumPageToolStripMenuItem->Click += gcnew System::EventHandler(this, &MainGui::visitForumPageToolStripMenuItem_Click);
660
			// 
661
			// visitWebSiteToolStripMenuItem
662
			// 
663
			this->visitWebSiteToolStripMenuItem->Image = (cli::safe_cast<System::Drawing::Image^  >(resources->GetObject(L"visitWebSiteToolStripMenuItem.Image")));
664
			this->visitWebSiteToolStripMenuItem->ImageScaling = System::Windows::Forms::ToolStripItemImageScaling::None;
665
			this->visitWebSiteToolStripMenuItem->Name = L"visitWebSiteToolStripMenuItem";
666
			this->visitWebSiteToolStripMenuItem->Size = System::Drawing::Size(215, 50);
667
			this->visitWebSiteToolStripMenuItem->Text = L"Visit Web Site";
668
			this->visitWebSiteToolStripMenuItem->Click += gcnew System::EventHandler(this, &MainGui::visitWebSiteToolStripMenuItem_Click);
669
			// 
670
			// toolStripSeparator2
671
			// 
672
			this->toolStripSeparator2->Name = L"toolStripSeparator2";
673
			this->toolStripSeparator2->Size = System::Drawing::Size(212, 6);
674
			// 
675
			// checkForUpdatesToolStripMenuItem
676
			// 
677
			this->checkForUpdatesToolStripMenuItem->Image = (cli::safe_cast<System::Drawing::Image^  >(resources->GetObject(L"checkForUpdatesToolStripMenuItem.Image")));
678
			this->checkForUpdatesToolStripMenuItem->ImageScaling = System::Windows::Forms::ToolStripItemImageScaling::None;
679
			this->checkForUpdatesToolStripMenuItem->Name = L"checkForUpdatesToolStripMenuItem";
680
			this->checkForUpdatesToolStripMenuItem->Size = System::Drawing::Size(215, 50);
681
			this->checkForUpdatesToolStripMenuItem->Text = L"Check For Updates";
682
			this->checkForUpdatesToolStripMenuItem->Click += gcnew System::EventHandler(this, &MainGui::checkForUpdatesToolStripMenuItem_Click);
683
			// 
684
			// panel1
685
			// 
686
			this->panel1->AllowDrop = true;
687
			this->panel1->Controls->Add(this->ProgressBar);
688
			this->panel1->Controls->Add(this->ButRun);
689
			this->panel1->Controls->Add(this->ButClose);
690
			this->panel1->Dock = System::Windows::Forms::DockStyle::Bottom;
691
			this->panel1->Location = System::Drawing::Point(0, 551);
692
			this->panel1->Margin = System::Windows::Forms::Padding(5, 10, 5, 10);
693
			this->panel1->Name = L"panel1";
694
			this->panel1->Size = System::Drawing::Size(626, 37);
695
			this->panel1->TabIndex = 2;
696
			// 
697
			// ProgressBar
698
			// 
699
			this->ProgressBar->Dock = System::Windows::Forms::DockStyle::Fill;
700
			this->ProgressBar->Location = System::Drawing::Point(0, 0);
701
			this->ProgressBar->Margin = System::Windows::Forms::Padding(10);
702
			this->ProgressBar->MarqueeAnimationSpeed = 5;
703
			this->ProgressBar->Name = L"ProgressBar";
704
			this->ProgressBar->Size = System::Drawing::Size(432, 37);
705
			this->ProgressBar->Style = System::Windows::Forms::ProgressBarStyle::Marquee;
706
			this->ProgressBar->TabIndex = 1;
707
			this->ProgressBar->Visible = false;
708
			// 
709
			// ButRun
710
			// 
711
			this->ButRun->AutoSize = true;
712
			this->ButRun->Dock = System::Windows::Forms::DockStyle::Right;
713
			this->ButRun->Image = (cli::safe_cast<System::Drawing::Image^  >(resources->GetObject(L"ButRun.Image")));
714
			this->ButRun->Location = System::Drawing::Point(432, 0);
715
			this->ButRun->Name = L"ButRun";
716
			this->ButRun->Size = System::Drawing::Size(119, 37);
717
			this->ButRun->TabIndex = 2;
718
			this->ButRun->Text = L"Run Game";
719
			this->ButRun->TextImageRelation = System::Windows::Forms::TextImageRelation::ImageBeforeText;
720
			this->ButRun->UseVisualStyleBackColor = true;
721
			this->ButRun->Click += gcnew System::EventHandler(this, &MainGui::ButRun_Click);
722
			// 
723
			// ButClose
724
			// 
725
			this->ButClose->Dock = System::Windows::Forms::DockStyle::Right;
726
			this->ButClose->Location = System::Drawing::Point(551, 0);
727
			this->ButClose->Name = L"ButClose";
728
			this->ButClose->Size = System::Drawing::Size(75, 37);
729
			this->ButClose->TabIndex = 0;
730
			this->ButClose->Text = L"Close";
731
			this->ButClose->UseVisualStyleBackColor = true;
732
			// 
733
			// GroupPackages
734
			// 
735
			this->GroupPackages->Controls->Add(this->ListPackages);
736
			this->GroupPackages->Controls->Add(this->PanelDisplay);
737
			this->GroupPackages->Controls->Add(this->panel2);
738
			this->GroupPackages->Dock = System::Windows::Forms::DockStyle::Fill;
739
			this->GroupPackages->Location = System::Drawing::Point(0, 52);
740
			this->GroupPackages->Name = L"GroupPackages";
741
			this->GroupPackages->Size = System::Drawing::Size(626, 499);
742
			this->GroupPackages->TabIndex = 3;
743
			this->GroupPackages->TabStop = false;
744
			this->GroupPackages->Text = L"Installed Packages";
745
			// 
746
			// PanelDisplay
747
			// 
748
			this->PanelDisplay->AllowDrop = true;
749
			this->PanelDisplay->Controls->Add(this->TextDesc);
750
			this->PanelDisplay->Controls->Add(this->PictureDisplay);
751
			this->PanelDisplay->Dock = System::Windows::Forms::DockStyle::Bottom;
752
			this->PanelDisplay->Location = System::Drawing::Point(3, 402);
753
			this->PanelDisplay->Name = L"PanelDisplay";
754
			this->PanelDisplay->Size = System::Drawing::Size(620, 68);
755
			this->PanelDisplay->TabIndex = 2;
756
			// 
757
			// TextDesc
758
			// 
759
			this->TextDesc->Dock = System::Windows::Forms::DockStyle::Fill;
760
			this->TextDesc->Location = System::Drawing::Point(72, 0);
761
			this->TextDesc->Name = L"TextDesc";
762
			this->TextDesc->ReadOnly = true;
763
			this->TextDesc->Size = System::Drawing::Size(548, 68);
764
			this->TextDesc->TabIndex = 1;
765
			this->TextDesc->Text = L"";
766
			// 
767
			// PictureDisplay
768
			// 
769
			this->PictureDisplay->Dock = System::Windows::Forms::DockStyle::Left;
770
			this->PictureDisplay->Image = (cli::safe_cast<System::Drawing::Image^  >(resources->GetObject(L"PictureDisplay.Image")));
771
			this->PictureDisplay->Location = System::Drawing::Point(0, 0);
772
			this->PictureDisplay->Name = L"PictureDisplay";
773
			this->PictureDisplay->Size = System::Drawing::Size(72, 68);
774
			this->PictureDisplay->SizeMode = System::Windows::Forms::PictureBoxSizeMode::StretchImage;
775
			this->PictureDisplay->TabIndex = 2;
776
			this->PictureDisplay->TabStop = false;
777
			// 
778
			// panel2
779
			// 
780
			this->panel2->AllowDrop = true;
781
			this->panel2->Controls->Add(this->button1);
782
			this->panel2->Controls->Add(this->ButUninstall);
783
			this->panel2->Controls->Add(this->ButDisable);
784
			this->panel2->Controls->Add(this->ButInstall);
785
			this->panel2->Dock = System::Windows::Forms::DockStyle::Bottom;
786
			this->panel2->Location = System::Drawing::Point(3, 470);
787
			this->panel2->Name = L"panel2";
788
			this->panel2->Size = System::Drawing::Size(620, 26);
789
			this->panel2->TabIndex = 0;
790
			// 
791
			// button1
792
			// 
793
			this->button1->Dock = System::Windows::Forms::DockStyle::Left;
794
			this->button1->Image = (cli::safe_cast<System::Drawing::Image^  >(resources->GetObject(L"button1.Image")));
795
			this->button1->Location = System::Drawing::Point(122, 0);
796
			this->button1->Name = L"button1";
797
			this->button1->Size = System::Drawing::Size(121, 26);
798
			this->button1->TabIndex = 3;
799
			this->button1->Text = L"Install Archive";
800
			this->button1->TextImageRelation = System::Windows::Forms::TextImageRelation::ImageBeforeText;
801
			this->button1->UseVisualStyleBackColor = true;
802
			this->button1->Click += gcnew System::EventHandler(this, &MainGui::button1_Click);
803
			// 
804
			// ButUninstall
805
			// 
806
			this->ButUninstall->AutoSize = true;
807
			this->ButUninstall->Dock = System::Windows::Forms::DockStyle::Right;
808
			this->ButUninstall->Location = System::Drawing::Point(357, 0);
809
			this->ButUninstall->Name = L"ButUninstall";
810
			this->ButUninstall->Size = System::Drawing::Size(122, 26);
811
			this->ButUninstall->TabIndex = 2;
812
			this->ButUninstall->Text = L"Uninstall";
813
			this->ButUninstall->UseVisualStyleBackColor = true;
814
			// 
815
			// ButDisable
816
			// 
817
			this->ButDisable->AutoSize = true;
818
			this->ButDisable->Dock = System::Windows::Forms::DockStyle::Right;
819
			this->ButDisable->Location = System::Drawing::Point(479, 0);
820
			this->ButDisable->Name = L"ButDisable";
821
			this->ButDisable->Size = System::Drawing::Size(141, 26);
822
			this->ButDisable->TabIndex = 1;
823
			this->ButDisable->Text = L"Disable";
824
			this->ButDisable->UseVisualStyleBackColor = true;
825
			// 
826
			// ButInstall
827
			// 
828
			this->ButInstall->AutoSize = true;
829
			this->ButInstall->Dock = System::Windows::Forms::DockStyle::Left;
830
			this->ButInstall->Image = (cli::safe_cast<System::Drawing::Image^  >(resources->GetObject(L"ButInstall.Image")));
831
			this->ButInstall->Location = System::Drawing::Point(0, 0);
832
			this->ButInstall->Name = L"ButInstall";
833
			this->ButInstall->Size = System::Drawing::Size(122, 26);
834
			this->ButInstall->TabIndex = 0;
835
			this->ButInstall->Text = L"Install Package";
836
			this->ButInstall->TextImageRelation = System::Windows::Forms::TextImageRelation::ImageBeforeText;
837
			this->ButInstall->UseVisualStyleBackColor = true;
838
			// 
839
			// statusStrip1
840
			// 
841
			this->statusStrip1->Items->AddRange(gcnew cli::array< System::Windows::Forms::ToolStripItem^  >(1) {this->LabelStatus});
842
			this->statusStrip1->Location = System::Drawing::Point(0, 588);
843
			this->statusStrip1->Name = L"statusStrip1";
844
			this->statusStrip1->Size = System::Drawing::Size(626, 22);
845
			this->statusStrip1->TabIndex = 5;
846
			this->statusStrip1->Text = L"statusStrip1";
847
			// 
848
			// LabelStatus
849
			// 
850
			this->LabelStatus->Name = L"LabelStatus";
851
			this->LabelStatus->Size = System::Drawing::Size(0, 17);
852
			// 
853
			// imageList1
854
			// 
855
			this->imageList1->ImageStream = (cli::safe_cast<System::Windows::Forms::ImageListStreamer^  >(resources->GetObject(L"imageList1.ImageStream")));
856
			this->imageList1->TransparentColor = System::Drawing::Color::Transparent;
857
			this->imageList1->Images->SetKeyName(0, L"ship.png");
858
			this->imageList1->Images->SetKeyName(1, L"package.png");
859
			this->imageList1->Images->SetKeyName(2, L"fake.png");
860
			this->imageList1->Images->SetKeyName(3, L"library.png");
861
			this->imageList1->Images->SetKeyName(4, L"archive.png");
86 cycrow 862
			this->imageList1->Images->SetKeyName(5, L"tick.png");
863
			this->imageList1->Images->SetKeyName(6, L"no.png");
1 cycrow 864
			// 
865
			// imageList2
866
			// 
867
			this->imageList2->ImageStream = (cli::safe_cast<System::Windows::Forms::ImageListStreamer^  >(resources->GetObject(L"imageList2.ImageStream")));
868
			this->imageList2->TransparentColor = System::Drawing::Color::Transparent;
869
			this->imageList2->Images->SetKeyName(0, L"application");
870
			this->imageList2->Images->SetKeyName(1, L"exe");
871
			this->imageList2->Images->SetKeyName(2, L"doc");
872
			this->imageList2->Images->SetKeyName(3, L"pdf");
873
			this->imageList2->Images->SetKeyName(4, L"xls");
874
			this->imageList2->Images->SetKeyName(5, L"xlsx");
875
			// 
876
			// imageList3
877
			// 
878
			this->imageList3->ColorDepth = System::Windows::Forms::ColorDepth::Depth8Bit;
879
			this->imageList3->ImageSize = System::Drawing::Size(16, 16);
880
			this->imageList3->TransparentColor = System::Drawing::Color::Transparent;
881
			// 
882
			// backgroundWorker2
883
			// 
884
			this->backgroundWorker2->WorkerReportsProgress = true;
885
			this->backgroundWorker2->WorkerSupportsCancellation = true;
886
			this->backgroundWorker2->DoWork += gcnew System::ComponentModel::DoWorkEventHandler(this, &MainGui::backgroundWorker2_DoWork);
887
			this->backgroundWorker2->RunWorkerCompleted += gcnew System::ComponentModel::RunWorkerCompletedEventHandler(this, &MainGui::backgroundWorker2_RunWorkerCompleted);
888
			// 
889
			// MainGui
890
			// 
891
			this->AllowDrop = true;
892
			this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
893
			this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
894
			this->ClientSize = System::Drawing::Size(626, 610);
895
			this->Controls->Add(this->GroupPackages);
896
			this->Controls->Add(this->panel1);
897
			this->Controls->Add(this->GroupDir);
898
			this->Controls->Add(this->statusStrip1);
899
			this->Icon = (cli::safe_cast<System::Drawing::Icon^  >(resources->GetObject(L"$this.Icon")));
900
			this->Name = L"MainGui";
901
			this->StartPosition = System::Windows::Forms::FormStartPosition::Manual;
902
			this->Text = L"X-Universe Plugin Manager Lite";
903
			this->Load += gcnew System::EventHandler(this, &MainGui::MainGui_Load);
904
			this->GroupDir->ResumeLayout(false);
905
			this->contextMenuStrip1->ResumeLayout(false);
906
			this->panel1->ResumeLayout(false);
907
			this->panel1->PerformLayout();
908
			this->GroupPackages->ResumeLayout(false);
909
			this->PanelDisplay->ResumeLayout(false);
910
			(cli::safe_cast<System::ComponentModel::ISupportInitialize^  >(this->PictureDisplay))->EndInit();
911
			this->panel2->ResumeLayout(false);
912
			this->panel2->PerformLayout();
913
			this->statusStrip1->ResumeLayout(false);
914
			this->statusStrip1->PerformLayout();
915
			this->ResumeLayout(false);
916
			this->PerformLayout();
917
 
918
		}
919
#pragma endregion
920
private: System::Void MainGui_Load(System::Object^  sender, System::EventArgs^  e) {
921
			 if ( m_iSaveGameManager == -1 )
922
			 {
923
				 if ( MessageBox::Show(this, "The save game manager will keep seperate save games for each directory and keeps vanilla and modified save games seperate\n\nDo you want to enable the save game manager?", "Save Game Manager", MessageBoxButtons::YesNo, MessageBoxIcon::Question) == Windows::Forms::DialogResult::Yes )
924
				 {
925
					 m_iSaveGameManager = 1;
926
					 this->PrepareSaveGameManager();
927
				 }
928
				 else
929
					 m_iSaveGameManager = 0;
930
			 }
931
 
932
			 m_pMenuBar->SetSaveGameManager((m_iSaveGameManager == 1) ? true : false);
933
 
934
 			// auto update
935
			if ( m_iSizeX != -1 && m_iSizeY != -1 )
936
				this->Size = System::Drawing::Size(m_iSizeX, m_iSizeY);
937
 
938
			this->UpdateBuiltInPackages();
939
			this->AutoUpdate();
940
 
941
		 }
942
private: System::Void ButRun_Click(System::Object^  sender, System::EventArgs^  e) {
943
			 this->LaunchGame();
944
		 }
945
private: System::Void uninstallToolStripMenuItem_Click(System::Object^  sender, System::EventArgs^  e) {
946
			 if ( m_pListItem )
947
			 {
948
				 ArrayList ^List = gcnew ArrayList();
949
				 List->Add(m_pListItem);
950
				 this->UninstallList(List);
951
			 }
952
		 }
953
private: System::Void ContextEnable_Click(System::Object^  sender, System::EventArgs^  e) {
954
			 if ( m_pListItem )
955
			 {
956
				 ArrayList ^List = gcnew ArrayList();
957
				 List->Add(m_pListItem);
958
				 this->DisableList(List);
959
			 }
960
		 }
961
private: System::Void ContextDisable_Click(System::Object^  sender, System::EventArgs^  e) {
962
			 if ( m_pListItem )
963
			 {
964
				 ArrayList ^List = gcnew ArrayList();
965
				 List->Add(m_pListItem);
966
				 this->DisableList(List);
967
			 }
968
		 }
969
private: System::Void ListPackages_DragOver(System::Object^  sender, System::Windows::Forms::DragEventArgs^  e);
970
private: System::Void ListPackages_DragDrop(System::Object^  sender, System::Windows::Forms::DragEventArgs^  e);
971
private: System::Void UninstallSelectedContext_Click(System::Object^  sender, System::EventArgs^  e) {
972
			 UninstallEvent(sender, e);
973
		 }
974
private: System::Void ContextName_Click(System::Object^  sender, System::EventArgs^  e) {
975
 
976
			CBaseFile *p = this->GetFileFromItem(m_pListItem);
977
			if ( p )
978
			{
979
				SpkExplorer::PackageInfo ^info = gcnew SpkExplorer::PackageInfo(p, m_pPackages->GetLanguage());
980
				info->ShowDialog(this);
981
			}
982
		 }
983
private: System::Void contextMenuStrip1_Opening(System::Object^  sender, System::ComponentModel::CancelEventArgs^  e) {
984
			 this->OpenContextMenu(sender, e);
985
		 }
986
private: System::Void ListPackages_MouseDoubleClick(System::Object^  sender, System::Windows::Forms::MouseEventArgs^  e) {
987
			ListViewItem ^item = this->FindSelectedItem();
988
			if ( item )
989
			{
990
				CBaseFile *p = this->GetFileFromItem(item);
991
				if ( p )
992
				{
993
					SpkExplorer::PackageInfo ^info = gcnew SpkExplorer::PackageInfo(p, m_pPackages->GetLanguage());
994
					info->ShowDialog(this);
995
				}
996
			}
997
		 }
998
private: System::Void emailAuthorToolStripMenuItem_Click(System::Object^  sender, System::EventArgs^  e) {
999
			 this->RunFromToolItem(cli::safe_cast<ToolStripMenuItem ^>(sender));
1000
		 }
1001
private: System::Void visitForumPageToolStripMenuItem_Click(System::Object^  sender, System::EventArgs^  e) {
1002
			 this->RunFromToolItem(cli::safe_cast<ToolStripMenuItem ^>(sender));
1003
		 }
1004
private: System::Void visitWebSiteToolStripMenuItem_Click(System::Object^  sender, System::EventArgs^  e) {
1005
			 this->RunFromToolItem(cli::safe_cast<ToolStripMenuItem ^>(sender));
1006
		 }
1007
private: System::Void checkForUpdatesToolStripMenuItem_Click(System::Object^  sender, System::EventArgs^  e) {
1008
			if ( m_pListItem )
1009
			{
1010
				CBaseFile *p = this->GetFileFromItem(m_pListItem);
1011
				if ( p )
1012
				{
1013
					CheckUpdate ^update = gcnew CheckUpdate(m_pPackages, this->imageList1);
1014
					update->OnePackage(p);
1015
					this->ClearSelectedItems();
1016
					if ( update->ShowDialog(this) == Windows::Forms::DialogResult::OK )
1017
					{
1018
						for ( int i = 0; i < update->GetInstallList()->Count; i++ )
1019
							this->InstallPackage(Convert::ToString(update->GetInstallList()[i]), false, false, true);
1020
						this->StartInstalling(false, true);
1021
					}
1022
				}
1023
			}
1024
		 }
1025
private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
1026
			 this->InstallArchive();
1027
		 }
1028
private: System::Void backgroundWorker2_DoWork(System::Object^  sender, System::ComponentModel::DoWorkEventArgs^  e) {
1029
			m_pConverted = (CArchiveFile *)m_pPackages->CreateFromArchive(CyStringFromSystemString(m_sConvertFile), true);
1030
		 }
1031
private: System::Void backgroundWorker2_RunWorkerCompleted(System::Object^  sender, System::ComponentModel::RunWorkerCompletedEventArgs^  e) {
1032
				if ( m_pWait ) 
1033
				{
1034
					m_pWait->Close();
1035
					delete m_pWait;
1036
					m_pWait = nullptr;
1037
				}
1038
 
1039
				if ( !m_pConverted )
1040
					this->DisplayMessageBox(false, "Unable to open", "Unable to open archive file, " + m_sConvertFile, MessageBoxButtons::OK, MessageBoxIcon::Error);
1041
				else
1042
				{
1043
					bool errored = false;
1044
					int errorNum = m_pPackages->PrepareInstallPackage(m_pConverted, false, false, IC_ALL);
1045
					if ( errorNum != INSTALLCHECK_OK )
1046
					{
1047
						if ( errorNum == INSTALLCHECK_NOSHIP )
1048
						{
1049
							this->DisplayMessageBox(false, "No Ships", "Ships are not supported for " + SystemStringFromCyString(m_pPackages->GetGameName()), MessageBoxButtons::OK, MessageBoxIcon::Stop);
1050
							errored = true;
1051
						}
1052
						else if ( m_pPackages->PrepareInstallPackage(m_pConverted, false, false, IC_MODIFIED) != INSTALLCHECK_OK )
1053
						{
1054
							this->DisplayMessageBox(false, "Installing", "Currently in Vanilla Mode, Package is not an Vanilla Package\n" + SystemStringFromCyString(m_pConverted->GetLanguageName(m_pPackages->GetLanguage())) + "\n\nSwitch to modified mode if you wish to install this package", MessageBoxButtons::OK, MessageBoxIcon::Question);
1055
							errored = true;
1056
						}
1057
					}
1058
 
1059
					if ( !errored )
1060
						this->StartInstallingArchive(false, true);
1061
				}
1062
		 }
86 cycrow 1063
private: System::Void ListPackages_DrawSubItem(System::Object^  sender, System::Windows::Forms::DrawListViewSubItemEventArgs^  e) {
1064
			 if ( System::String::Compare(e->SubItem->Text, "Yes") == 0 ) {
1065
				e->DrawDefault = false;
1066
				e->DrawBackground();
1067
 
1068
				Image ^img = this->imageList1->Images[this->imageList1->Images->IndexOfKey("tick.png")];
1069
				e->Graphics->DrawImage(img, e->SubItem->Bounds.Location);
1070
				e->Graphics->DrawString(e->SubItem->Text, e->SubItem->Font, gcnew SolidBrush(e->SubItem->ForeColor), (float)(e->SubItem->Bounds.Location.X + img->Width), (float)e->SubItem->Bounds.Location.Y);
1071
			 }
1072
			 else 
1073
				e->DrawDefault = true;
1074
		 }
1 cycrow 1075
};
1076
}