#region ================== Copyright (c) 2007 Pascal vd Heiden /* * Copyright (c) 2007 Pascal vd Heiden, www.codeimp.com * This program is released under GNU General Public License * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * */ #endregion #region ================== Namespaces using System; using System.Drawing; using System.IO; using System.Windows.Forms; using CodeImp.DoomBuilder.Data; using CodeImp.DoomBuilder.Editing; #endregion namespace CodeImp.DoomBuilder.Windows { internal partial class GridSetupForm : DelayedForm { // Variables private string backgroundname; private int backgroundsource; // Constructor public GridSetupForm() { // Initialize InitializeComponent(); // Show grid size gridsize.Text = General.Map.Grid.GridSizeF.ToString(); // Background image? if((General.Map.Grid.Background != null) && !(General.Map.Grid.Background is UnknownImage)) { // Show background image showbackground.Checked = true; backgroundname = General.Map.Grid.BackgroundName; backgroundsource = General.Map.Grid.BackgroundSource; backgroundimage.Image = General.Map.Grid.Background.GetBackgroundBitmap(); } else { // No background image showbackground.Checked = false; } // Show background offset backoffsetx.Text = General.Map.Grid.BackgroundX.ToString(); backoffsety.Text = General.Map.Grid.BackgroundY.ToString(); int scalex = (int)(General.Map.Grid.BackgroundScaleX * 100.0f); int scaley = (int)(General.Map.Grid.BackgroundScaleY * 100.0f); backscalex.Text = General.Clamp(scalex, 1, 10000).ToString(); backscaley.Text = General.Clamp(scaley, 1, 10000).ToString(); } // Show Background changed private void showbackground_CheckedChanged(object sender, EventArgs e) { // Enable/disable controls selecttexture.Enabled = showbackground.Checked; selectflat.Enabled = showbackground.Checked; selectfile.Enabled = showbackground.Checked; backoffset.Enabled = showbackground.Checked; backscale.Enabled = showbackground.Checked; backoffsetx.Enabled = showbackground.Checked; backoffsety.Enabled = showbackground.Checked; backscalex.Enabled = showbackground.Checked; backscaley.Enabled = showbackground.Checked; } // Browse texture private void selecttexture_Click(object sender, EventArgs e) { // Browse for texture string result = TextureBrowserForm.Browse(this, backgroundname, false); if(result != null) { // Set this texture as background backgroundname = result; backgroundsource = GridSetup.SOURCE_TEXTURES; ImageData img = General.Map.Data.GetTextureImage(result); backgroundimage.Image = img.GetBackgroundBitmap(); } } // Browse flat private void selectflat_Click(object sender, EventArgs e) { // Browse for flat string result = TextureBrowserForm.Browse(this, backgroundname, true); if(result != null) { // Set this flat as background backgroundname = result; backgroundsource = GridSetup.SOURCE_FLATS; ImageData img = General.Map.Data.GetFlatImage(result); backgroundimage.Image = img.GetBackgroundBitmap(); } } // Browse file private void selectfile_Click(object sender, EventArgs e) { // Browse for file if(browsefile.ShowDialog(this) == DialogResult.OK) { // Set this file as background backgroundname = browsefile.FileName; backgroundsource = GridSetup.SOURCE_FILE; ImageData img = new FileImage(Path.GetFileNameWithoutExtension(backgroundname), backgroundname, false, 1.0f, 1.0f); backgroundimage.Image = new Bitmap(img.GetBackgroundBitmap()); img.Dispose(); } } // Cancelled private void cancel_Click(object sender, EventArgs e) { DialogResult = DialogResult.Cancel; this.Close(); } // Apply private void apply_Click(object sender, EventArgs e) { //mxd. Apply double newgridsize = gridsize.GetResultFloat(General.Map.Grid.GridSizeF); if(newgridsize != General.Map.Grid.GridSizeF) { //Disable automatic grid resizing General.MainWindow.DisableDynamicGridResize(); //Apply grid size General.Map.Grid.SetGridSize(newgridsize); } // Apply General.Map.Grid.SetBackgroundView(backoffsetx.GetResult(General.Map.Grid.BackgroundX), backoffsety.GetResult(General.Map.Grid.BackgroundY), backscalex.GetResult((int)(General.Map.Grid.BackgroundScaleX * 100.0f)) / 100.0f, backscaley.GetResult((int)(General.Map.Grid.BackgroundScaleY * 100.0f)) / 100.0f); // Background image? if(showbackground.Checked) { // Set background image General.Map.Grid.SetBackground(backgroundname, backgroundsource); } else { // No background image General.Map.Grid.SetBackground(null, 0); } // Done DialogResult = DialogResult.OK; this.Close(); } // Help private void GridSetupForm_HelpRequested(object sender, HelpEventArgs hlpevent) { General.ShowHelp("w_gridsetup.html"); hlpevent.Handled = true; } } }