Inheritance: System.Windows.Forms.Form
Exemplo n.º 1
0
		private void runInstaller_Click(object sender, System.EventArgs e)
		{
			InstallWindow iw = new InstallWindow();
			iw.ShowDialog(this);
		}
Exemplo n.º 2
0
		//private LoadOfType<IMapDesc> loadedTypes;

		//public event StringDelegate SendMessage;

		public MainWindow()
        {
            /***********************/
            InitializeComponent();
            /***********************/

			#region Setup SharedSpace information and paths
			SharedSpace sharedSpace = SharedSpace.Instance;
			sharedSpace.GetObj("MapView", this);
			sharedSpace.GetObj("AppDir", Environment.CurrentDirectory);
			sharedSpace.GetObj("CustomDir", Environment.CurrentDirectory + "\\custom");
			sharedSpace.GetObj("SettingsDir", Environment.CurrentDirectory + "\\settings");

			PathInfo pathsFile = new PathInfo(SharedSpace.Instance.GetString("SettingsDir"), "Paths", "pth");
			PathInfo settingsFile = new PathInfo(SharedSpace.Instance.GetString("SettingsDir"), "MVSettings", "dat");
			PathInfo mapeditFile = new PathInfo(SharedSpace.Instance.GetString("SettingsDir"), "MapEdit", "dat");
			PathInfo imagesFile = new PathInfo(SharedSpace.Instance.GetString("SettingsDir"), "Images", "dat");

			sharedSpace.GetObj("MV_PathsFile", pathsFile);
			sharedSpace.GetObj("MV_SettingsFile", settingsFile);
			sharedSpace.GetObj("MV_MapEditFile", mapeditFile);
			sharedSpace.GetObj("MV_ImagesFile", imagesFile);
			#endregion

			if (!pathsFile.Exists())
			{
				InstallWindow iw = new InstallWindow();

				if (iw.ShowDialog(this) != DialogResult.OK)
					Environment.Exit(-1);
			}

			GameInfo.ParseLine += new ParseLineDelegate(parseLine);
			GameInfo.Init(Palette.TFTDBattle, pathsFile);
			LogFile.Instance.WriteLine("GameInfo.Init done");

			Palette.TFTDBattle.SetTransparent(true);
			Palette.UFOBattle.SetTransparent(true);
			Palette.TFTDBattle.Grayscale.SetTransparent(true);
			Palette.UFOBattle.Grayscale.SetTransparent(true);

			LogFile.Instance.WriteLine("Palette transparencies set");

			MapViewPanel.ImageUpdate += new EventHandler(update);

			mapView = MapViewPanel.Instance;
			mapView.Dock = DockStyle.Fill;

			instance = this;

			mapList.TreeViewNodeSorter = new System.Collections.CaseInsensitiveComparer();

			toolStripContainer1.ContentPanel.Controls.Add(mapView);
		    var mainToolStripButtonsFactory = new MainToolStripButtonsFactory();
            mainToolStripButtonsFactory.MakeToolstrip(toolStrip);
			toolStrip.Items.Add(new ToolStripSeparator());

			LogFile.Instance.WriteLine("Main view window created");

			settingsHash = new Dictionary<string, Settings>();
			loadDefaults();
			LogFile.Instance.WriteLine("Default settings loaded");

			try
			{
				mapView.View.Cursor = new Cursor(GameInfo.CachePck(SharedSpace.Instance.GetString("cursorFile"), "", 4, Palette.TFTDBattle));
			}
			catch
			{
				try
				{
					mapView.View.Cursor = new Cursor(GameInfo.CachePck(SharedSpace.Instance.GetString("cursorFile"), "", 2, Palette.UFOBattle));
				}
				catch { mapView.Cursor = null; }
			}

			LogFile.Instance.WriteLine("Cursor loaded");

			initList();

			LogFile.Instance.WriteLine("Map list created");

			registeredForms = new Dictionary<string, Form>();
			registerForm(TopView.Instance, "TopView", showMenu);
			registerForm(TileView.Instance, "TileView", showMenu);
			registerForm(RmpView.Instance, "RmpView", showMenu);

			if (XCom.Globals.UseBlanks)
				registerForm(mapView.BlankForm, "Blank Info", showMenu);

			//			addWindow(xConsole.Instance,"Console",showMenu);
			//			((MenuItem)windowMI[xConsole.Instance]).PerformClick();

			registerForm(new HelpScreen(), "Quick Help", miHelp);
			registerForm(new AboutWindow(), "About", miHelp);

			LogFile.Instance.WriteLine("Quick help and About created");

			if (settingsFile.Exists())
			{
				readMapViewSettings(new StreamReader(settingsFile.ToString()));
				LogFile.Instance.WriteLine("User settings loaded");
			}
			else
				LogFile.Instance.WriteLine("User settings NOT loaded - no settings file to load");

			OnResize(null);
			this.Closing += new CancelEventHandler(closing);

			lf = new LoadingForm();
			Bmp.LoadingEvent += new LoadingDelegate(lf.Update);

			//I should rewrite the hq2x wrapper for .net sometime (not the code, its pretty insane)
			//if(!File.Exists("hq2xa.dll"))
			miHq.Visible = false;
			//LogFile.Instance.WriteLine("Loading user-made plugins");

			/****************************************/
			//Copied from pckview
			//loadedTypes = new LoadOfType<IMapDesc>();
			//sharedSpace["MapMods"] = loadedTypes.AllLoaded;

			//There are no currently loadable maps in this assembly so this is more for future use
			//loadedTypes.LoadFrom(Assembly.GetAssembly(typeof(XCom.Interfaces.Base.IMapDesc)));

			//if (Directory.Exists(sharedSpace["CustomDir"].ToString()))
			//{
			//	xConsole.AddLine("Custom directory exists: " + sharedSpace["CustomDir"].ToString());
			//	foreach (string s in Directory.GetFiles(sharedSpace["CustomDir"].ToString()))
			//		if (s.EndsWith(".dll"))
			//		{
			//			xConsole.AddLine("Loading dll: " + s);
			//			loadedTypes.LoadFrom(Assembly.LoadFrom(s));
			//		}
			//}
			/****************************************/

			LogFile.Instance.WriteLine("About to show window");
			Show();
			LogFile.Instance.Close();			
		}