@ Changed code related to displaying status messages and warnings (now ready for action messages in status bar)

This commit is contained in:
codeimp 2009-02-26 14:16:18 +00:00
parent b70a65273d
commit c848087f12
19 changed files with 359 additions and 285 deletions

View file

@ -666,6 +666,7 @@
<Compile Include="Data\HighResImage.cs" />
<Compile Include="Data\PK3FileImage.cs" />
<Compile Include="Data\PK3StructuredReader.cs" />
<Compile Include="Windows\StatusInfo.cs" />
<Compile Include="ZDoom\ActorStructure.cs" />
<Compile Include="ZDoom\PatchStructure.cs" />
<Compile Include="ZDoom\TexturesParser.cs" />
@ -677,6 +678,9 @@
<EmbeddedResource Include="Resources\Crosshair.png" />
<EmbeddedResource Include="Resources\CrosshairBusy.png" />
<Content Include="Resources\DB2.ico" />
<None Include="Resources\Status11.png" />
<None Include="Resources\Status10.png" />
<None Include="Resources\Status12.png" />
<EmbeddedResource Include="Resources\UnknownTexture3D.png" />
<None Include="Resources\Monster3.png" />
<None Include="Resources\Monster2.png" />

View file

@ -712,7 +712,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
}
else
{
General.Interface.DisplayWarning("Please make a selection first!");
General.Interface.DisplayStatus(StatusType.Warning, "Please make a selection first!");
// Cancel now
General.Editing.CancelMode();

View file

@ -559,15 +559,15 @@ namespace CodeImp.DoomBuilder.Controls
}
// Compile now
General.MainWindow.DisplayStatus("Compiling script " + t.Text + "...");
General.MainWindow.DisplayStatus(StatusType.Busy, "Compiling script " + t.Text + "...");
Cursor.Current = Cursors.WaitCursor;
t.Compile();
// Show warning
if((compilererrors != null) && (compilererrors.Count > 0))
General.MainWindow.DisplayWarning(compilererrors.Count.ToString() + " errors while compiling " + t.Text + "!");
General.MainWindow.DisplayStatus(StatusType.Warning, compilererrors.Count.ToString() + " errors while compiling " + t.Text + "!");
else
General.MainWindow.DisplayReady();
General.MainWindow.DisplayStatus(StatusType.Info, "Script " + t.Text + " compiled without errors.");
Cursor.Current = Cursors.Default;
UpdateToolbar(true);

View file

@ -470,7 +470,7 @@ namespace CodeImp.DoomBuilder.Data
// Done
notifiedbusy = false;
backgroundloader = null;
General.SendMessage(General.MainWindow.Handle, (int)MainForm.ThreadMessages.UpdateStatusIcon, 0, 0);
General.SendMessage(General.MainWindow.Handle, (int)MainForm.ThreadMessages.UpdateStatus, 0, 0);
}
}
@ -516,7 +516,7 @@ namespace CodeImp.DoomBuilder.Data
if(!notifiedbusy)
{
notifiedbusy = true;
General.SendMessage(General.MainWindow.Handle, (int)MainForm.ThreadMessages.UpdateStatusIcon, 0, 0);
General.SendMessage(General.MainWindow.Handle, (int)MainForm.ThreadMessages.UpdateStatus, 0, 0);
}
Thread.Sleep(0);
}
@ -530,7 +530,7 @@ namespace CodeImp.DoomBuilder.Data
if(!notifiedbusy)
{
notifiedbusy = true;
General.SendMessage(General.MainWindow.Handle, (int)MainForm.ThreadMessages.UpdateStatusIcon, 0, 0);
General.SendMessage(General.MainWindow.Handle, (int)MainForm.ThreadMessages.UpdateStatus, 0, 0);
}
Thread.Sleep(0);
}
@ -539,7 +539,7 @@ namespace CodeImp.DoomBuilder.Data
if(notifiedbusy)
{
notifiedbusy = false;
General.SendMessage(General.MainWindow.Handle, (int)MainForm.ThreadMessages.UpdateStatusIcon, 0, 0);
General.SendMessage(General.MainWindow.Handle, (int)MainForm.ThreadMessages.UpdateStatus, 0, 0);
}
// Wait longer to release CPU resources
@ -575,7 +575,7 @@ namespace CodeImp.DoomBuilder.Data
}
// Update icon
General.SendMessage(General.MainWindow.Handle, (int)MainForm.ThreadMessages.UpdateStatusIcon, 0, 0);
General.SendMessage(General.MainWindow.Handle, (int)MainForm.ThreadMessages.UpdateStatus, 0, 0);
}
// This updates the used-in-map status on all textures and flats

View file

@ -138,8 +138,9 @@ namespace CodeImp.DoomBuilder.Editing
internal void PastePrefab(Stream filedata)
{
// Create undo
General.MainWindow.DisplayStatus(StatusType.Action, "Inserted prefab.");
General.Map.UndoRedo.CreateUndo("Insert prefab");
// Decompress stream
MemoryStream decompressed = new MemoryStream((int)filedata.Length * 3);
filedata.Seek(0, SeekOrigin.Begin);
@ -149,7 +150,7 @@ namespace CodeImp.DoomBuilder.Editing
// Mark all current geometry
General.Map.Map.ClearAllMarks(true);
// Read data stream
UniversalStreamReader reader = new UniversalStreamReader();
reader.StrictChecking = false;
@ -157,10 +158,10 @@ namespace CodeImp.DoomBuilder.Editing
// The new geometry is not marked, so invert the marks to get it marked
General.Map.Map.InvertAllMarks();
// Convert UDMF fields back to flags and activations, if needed
if(!(General.Map.FormatInterface is UniversalMapSetIO)) General.Map.Map.TranslateFromUDMF();
// Done
memstream.Dispose();
General.Map.Map.UpdateConfiguration();
@ -170,7 +171,7 @@ namespace CodeImp.DoomBuilder.Editing
}
// This performs the copy. Returns false when copy was cancelled.
private bool DoCopySelection()
private bool DoCopySelection(string desc)
{
// Let the plugins know
if(General.Plugins.OnCopyBegin())
@ -180,6 +181,8 @@ namespace CodeImp.DoomBuilder.Editing
// that need to be copied.
if(General.Editing.Mode.OnCopyBegin())
{
General.MainWindow.DisplayStatus(StatusType.Action, desc);
// Copy the marked geometry
// This links sidedefs that are not linked to a marked sector to a virtual sector
MapSet copyset = General.Map.Map.CloneMarked();
@ -224,6 +227,7 @@ namespace CodeImp.DoomBuilder.Editing
if(General.Editing.Mode.OnPasteBegin())
{
// Create undo
General.MainWindow.DisplayStatus(StatusType.Action, "Pasted selected elements.");
General.Map.UndoRedo.CreateUndo("Paste");
// Read from clipboard
@ -273,7 +277,7 @@ namespace CodeImp.DoomBuilder.Editing
[BeginAction("copyselection")]
public void CopySelection()
{
DoCopySelection();
DoCopySelection("Copied selected elements.");
}
// This cuts the current selection
@ -281,7 +285,7 @@ namespace CodeImp.DoomBuilder.Editing
public void CutSelection()
{
// Copy selected geometry
if(DoCopySelection())
if(DoCopySelection("Cut selected elements."))
{
// Get the delete action and check if it's bound
Action deleteitem = General.Actions["builder_deleteitem"];
@ -294,7 +298,7 @@ namespace CodeImp.DoomBuilder.Editing
else
{
// Action not bound
General.Interface.DisplayWarning("Cannot remove that in this mode.");
General.Interface.DisplayStatus(StatusType.Warning, "Cannot remove that in this mode.");
}
}
}

View file

@ -295,7 +295,7 @@ namespace CodeImp.DoomBuilder
string name, fullfilename;
// Display status
mainwindow.DisplayStatus("Loading game configurations...");
mainwindow.DisplayStatus(StatusType.Busy, "Loading game configurations...");
// Make array
configs = new List<ConfigurationInfo>();
@ -329,7 +329,7 @@ namespace CodeImp.DoomBuilder
string[] filenames;
// Display status
mainwindow.DisplayStatus("Loading nodebuilder configurations...");
mainwindow.DisplayStatus(StatusType.Busy, "Loading nodebuilder configurations...");
// Make array
nodebuilders = new List<NodebuilderInfo>();
@ -391,7 +391,7 @@ namespace CodeImp.DoomBuilder
string[] filenames;
// Display status
mainwindow.DisplayStatus("Loading script configurations...");
mainwindow.DisplayStatus(StatusType.Busy, "Loading script configurations...");
// Make collection
scriptconfigs = new Dictionary<string, ScriptConfiguration>();
@ -444,7 +444,7 @@ namespace CodeImp.DoomBuilder
string[] filenames;
// Display status
mainwindow.DisplayStatus("Loading compiler configurations...");
mainwindow.DisplayStatus(StatusType.Busy, "Loading compiler configurations...");
// Make array
compilers = new List<CompilerInfo>();
@ -882,7 +882,7 @@ namespace CodeImp.DoomBuilder
if(optionswindow.ShowDialog(mainwindow) == DialogResult.OK)
{
// Display status
mainwindow.DisplayStatus("Creating new map...");
mainwindow.DisplayStatus(StatusType.Busy, "Creating new map...");
Cursor.Current = Cursors.WaitCursor;
// Let the plugins know
@ -935,7 +935,7 @@ namespace CodeImp.DoomBuilder
if(General.AskSaveMap())
{
// Display status
mainwindow.DisplayStatus("Closing map...");
mainwindow.DisplayStatus(StatusType.Busy, "Closing map...");
General.WriteLogLine("Unloading map...");
Cursor.Current = Cursors.WaitCursor;
@ -1012,7 +1012,7 @@ namespace CodeImp.DoomBuilder
internal static void OpenMapFileWithOptions(string filename, MapOptions options)
{
// Display status
mainwindow.DisplayStatus("Opening map file...");
mainwindow.DisplayStatus(StatusType.Busy, "Opening map file...");
Cursor.Current = Cursors.WaitCursor;
// Let the plugins know
@ -1072,7 +1072,7 @@ namespace CodeImp.DoomBuilder
else
{
// Display status
mainwindow.DisplayStatus("Saving map file...");
mainwindow.DisplayStatus(StatusType.Busy, "Saving map file...");
Cursor.Current = Cursors.WaitCursor;
// Save the map
@ -1116,7 +1116,7 @@ namespace CodeImp.DoomBuilder
if(savefile.ShowDialog(mainwindow) == DialogResult.OK)
{
// Display status
mainwindow.DisplayStatus("Saving map file...");
mainwindow.DisplayStatus(StatusType.Busy, "Saving map file...");
Cursor.Current = Cursors.WaitCursor;
// Save the map
@ -1160,7 +1160,7 @@ namespace CodeImp.DoomBuilder
if(savefile.ShowDialog(mainwindow) == DialogResult.OK)
{
// Display status
mainwindow.DisplayStatus("Saving map file...");
mainwindow.DisplayStatus(StatusType.Busy, "Saving map file...");
Cursor.Current = Cursors.WaitCursor;
// Save the map

View file

@ -26,6 +26,7 @@ using CodeImp.DoomBuilder.Data;
using System.Diagnostics;
using CodeImp.DoomBuilder.Actions;
using System.Windows.Forms;
using CodeImp.DoomBuilder.Windows;
#endregion
@ -279,7 +280,7 @@ namespace CodeImp.DoomBuilder
General.WriteLogLine("Program parameters: " + processinfo.Arguments);
// Disable interface
General.MainWindow.DisplayStatus("Waiting for game application to finish...");
General.MainWindow.DisplayStatus(StatusType.Busy, "Waiting for game application to finish...");
try
{

View file

@ -391,7 +391,8 @@ namespace CodeImp.DoomBuilder
internal bool SaveMap(string newfilepathname, int savemode)
{
MapSet outputset;
string nodebuildername, oldstatus, settingsfile;
string nodebuildername, settingsfile;
StatusInfo oldstatus;
WAD targetwad;
int index;
bool includenodes = false;
@ -469,8 +470,8 @@ namespace CodeImp.DoomBuilder
nodebuildername = savemode == SAVE_TEST ? configinfo.NodebuilderTest : configinfo.NodebuilderSave;
// Build the nodes
oldstatus = General.MainWindow.GetCurrentSatus();
General.MainWindow.DisplayStatus("Building map nodes...");
oldstatus = General.MainWindow.Status;
General.MainWindow.DisplayStatus(StatusType.Busy, "Building map nodes...");
if(!string.IsNullOrEmpty(nodebuildername))
includenodes = BuildNodes(nodebuildername, true);
else
@ -1395,15 +1396,15 @@ namespace CodeImp.DoomBuilder
internal void ReloadResources()
{
DataLocation maplocation;
string oldstatus;
StatusInfo oldstatus;
Cursor oldcursor;
// Keep old display info
oldstatus = General.MainWindow.GetCurrentSatus();
oldstatus = General.MainWindow.Status;
oldcursor = Cursor.Current;
// Show status
General.MainWindow.DisplayStatus("Reloading data resources...");
General.MainWindow.DisplayStatus(StatusType.Busy, "Reloading data resources...");
Cursor.Current = Cursors.WaitCursor;
// Clean up

View file

@ -109,7 +109,7 @@ namespace CodeImp.DoomBuilder.Plugins
foreach(string fn in filenames)
{
// Load plugin from this file
General.MainWindow.DisplayStatus("Loading plugin '" + Path.GetFileName(fn) + "'...");
General.MainWindow.DisplayStatus(StatusType.Busy, "Loading plugin '" + Path.GetFileName(fn) + "'...");
try
{
p = new Plugin(fn);

View file

@ -1,7 +1,7 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:2.0.50727.1433
// Runtime Version:2.0.50727.1826
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
@ -347,6 +347,27 @@ namespace CodeImp.DoomBuilder.Properties {
}
}
internal static System.Drawing.Bitmap Status10 {
get {
object obj = ResourceManager.GetObject("Status10", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
internal static System.Drawing.Bitmap Status11 {
get {
object obj = ResourceManager.GetObject("Status11", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
internal static System.Drawing.Bitmap Status12 {
get {
object obj = ResourceManager.GetObject("Status12", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
internal static System.Drawing.Bitmap Status2 {
get {
object obj = ResourceManager.GetObject("Status2", resourceCulture);

View file

@ -280,4 +280,13 @@
<data name="Monster3" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Monster3.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Status10" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Status10.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Status11" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Status11.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Status12" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Status12.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
</root>

Binary file not shown.

After

Width:  |  Height:  |  Size: 678 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 636 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 623 B

View file

@ -54,7 +54,8 @@ namespace CodeImp.DoomBuilder.Windows
// Methods
void DisplayReady();
void DisplayStatus(string status);
void DisplayStatus(StatusType type, string message);
void DisplayStatus(StatusInfo newstatus);
void RedrawDisplay();
DialogResult ShowEditLinedefs(ICollection<Linedef> lines);
DialogResult ShowEditSectors(ICollection<Sector> sectors);
@ -74,8 +75,6 @@ namespace CodeImp.DoomBuilder.Windows
void BreakExclusiveMouseInput();
void ResumeExclusiveMouseInput();
void SetCursor(Cursor cursor);
void DisplayWarning(string warning);
void HideWarning();
void MessageBeep(MessageBeepType type);
/// <summary>

View file

@ -157,8 +157,8 @@ namespace CodeImp.DoomBuilder.Windows
this.redrawtimer = new System.Windows.Forms.Timer(this.components);
this.display = new CodeImp.DoomBuilder.Controls.RenderTargetControl();
this.processor = new System.Windows.Forms.Timer(this.components);
this.warningtimer = new System.Windows.Forms.Timer(this.components);
this.warningflasher = new System.Windows.Forms.Timer(this.components);
this.statusflasher = new System.Windows.Forms.Timer(this.components);
this.statusresetter = new System.Windows.Forms.Timer(this.components);
toolStripMenuItem1 = new System.Windows.Forms.ToolStripSeparator();
toolStripMenuItem3 = new System.Windows.Forms.ToolStripSeparator();
toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
@ -183,13 +183,13 @@ namespace CodeImp.DoomBuilder.Windows
//
toolStripMenuItem1.Margin = new System.Windows.Forms.Padding(0, 3, 0, 3);
toolStripMenuItem1.Name = "toolStripMenuItem1";
toolStripMenuItem1.Size = new System.Drawing.Size(198, 6);
toolStripMenuItem1.Size = new System.Drawing.Size(199, 6);
//
// toolStripMenuItem3
//
toolStripMenuItem3.Margin = new System.Windows.Forms.Padding(0, 3, 0, 3);
toolStripMenuItem3.Name = "toolStripMenuItem3";
toolStripMenuItem3.Size = new System.Drawing.Size(198, 6);
toolStripMenuItem3.Size = new System.Drawing.Size(199, 6);
//
// toolStripSeparator1
//
@ -219,7 +219,7 @@ namespace CodeImp.DoomBuilder.Windows
//
toolStripSeparator11.Margin = new System.Windows.Forms.Padding(0, 3, 0, 3);
toolStripSeparator11.Name = "toolStripSeparator11";
toolStripSeparator11.Size = new System.Drawing.Size(162, 6);
toolStripSeparator11.Size = new System.Drawing.Size(160, 6);
//
// toolstripSeperator1
//
@ -231,7 +231,7 @@ namespace CodeImp.DoomBuilder.Windows
//
toolstripSeperator6.Margin = new System.Windows.Forms.Padding(0, 3, 0, 3);
toolstripSeperator6.Name = "toolstripSeperator6";
toolstripSeperator6.Size = new System.Drawing.Size(162, 6);
toolstripSeperator6.Size = new System.Drawing.Size(160, 6);
//
// toolStripSeparator7
//
@ -248,12 +248,12 @@ namespace CodeImp.DoomBuilder.Windows
// toolStripMenuItem4
//
toolStripMenuItem4.Name = "toolStripMenuItem4";
toolStripMenuItem4.Size = new System.Drawing.Size(161, 6);
toolStripMenuItem4.Size = new System.Drawing.Size(150, 6);
//
// toolStripSeparator2
//
toolStripSeparator2.Name = "toolStripSeparator2";
toolStripSeparator2.Size = new System.Drawing.Size(164, 6);
toolStripSeparator2.Size = new System.Drawing.Size(153, 6);
//
// toolStripSeparator4
//
@ -305,7 +305,7 @@ namespace CodeImp.DoomBuilder.Windows
toolStripMenuItem3,
this.itemexit});
this.menufile.Name = "menufile";
this.menufile.Size = new System.Drawing.Size(35, 20);
this.menufile.Size = new System.Drawing.Size(37, 20);
this.menufile.Text = "File";
//
// itemnewmap
@ -313,7 +313,7 @@ namespace CodeImp.DoomBuilder.Windows
this.itemnewmap.Image = global::CodeImp.DoomBuilder.Properties.Resources.File;
this.itemnewmap.Name = "itemnewmap";
this.itemnewmap.ShortcutKeyDisplayString = "";
this.itemnewmap.Size = new System.Drawing.Size(201, 22);
this.itemnewmap.Size = new System.Drawing.Size(202, 22);
this.itemnewmap.Tag = "builder_newmap";
this.itemnewmap.Text = "New Map";
this.itemnewmap.Click += new System.EventHandler(this.InvokeTaggedAction);
@ -322,7 +322,7 @@ namespace CodeImp.DoomBuilder.Windows
//
this.itemopenmap.Image = global::CodeImp.DoomBuilder.Properties.Resources.OpenMap;
this.itemopenmap.Name = "itemopenmap";
this.itemopenmap.Size = new System.Drawing.Size(201, 22);
this.itemopenmap.Size = new System.Drawing.Size(202, 22);
this.itemopenmap.Tag = "builder_openmap";
this.itemopenmap.Text = "Open Map...";
this.itemopenmap.Click += new System.EventHandler(this.InvokeTaggedAction);
@ -330,7 +330,7 @@ namespace CodeImp.DoomBuilder.Windows
// itemclosemap
//
this.itemclosemap.Name = "itemclosemap";
this.itemclosemap.Size = new System.Drawing.Size(201, 22);
this.itemclosemap.Size = new System.Drawing.Size(202, 22);
this.itemclosemap.Tag = "builder_closemap";
this.itemclosemap.Text = "Close Map";
this.itemclosemap.Click += new System.EventHandler(this.InvokeTaggedAction);
@ -339,7 +339,7 @@ namespace CodeImp.DoomBuilder.Windows
//
this.itemsavemap.Image = global::CodeImp.DoomBuilder.Properties.Resources.SaveMap;
this.itemsavemap.Name = "itemsavemap";
this.itemsavemap.Size = new System.Drawing.Size(201, 22);
this.itemsavemap.Size = new System.Drawing.Size(202, 22);
this.itemsavemap.Tag = "builder_savemap";
this.itemsavemap.Text = "Save Map";
this.itemsavemap.Click += new System.EventHandler(this.InvokeTaggedAction);
@ -347,7 +347,7 @@ namespace CodeImp.DoomBuilder.Windows
// itemsavemapas
//
this.itemsavemapas.Name = "itemsavemapas";
this.itemsavemapas.Size = new System.Drawing.Size(201, 22);
this.itemsavemapas.Size = new System.Drawing.Size(202, 22);
this.itemsavemapas.Tag = "builder_savemapas";
this.itemsavemapas.Text = "Save Map As...";
this.itemsavemapas.Click += new System.EventHandler(this.InvokeTaggedAction);
@ -355,7 +355,7 @@ namespace CodeImp.DoomBuilder.Windows
// itemsavemapinto
//
this.itemsavemapinto.Name = "itemsavemapinto";
this.itemsavemapinto.Size = new System.Drawing.Size(201, 22);
this.itemsavemapinto.Size = new System.Drawing.Size(202, 22);
this.itemsavemapinto.Tag = "builder_savemapinto";
this.itemsavemapinto.Text = "Save Map Into...";
this.itemsavemapinto.Click += new System.EventHandler(this.InvokeTaggedAction);
@ -364,19 +364,19 @@ namespace CodeImp.DoomBuilder.Windows
//
this.toolStripMenuItem5.Margin = new System.Windows.Forms.Padding(0, 3, 0, 3);
this.toolStripMenuItem5.Name = "toolStripMenuItem5";
this.toolStripMenuItem5.Size = new System.Drawing.Size(198, 6);
this.toolStripMenuItem5.Size = new System.Drawing.Size(199, 6);
//
// itemnorecent
//
this.itemnorecent.Enabled = false;
this.itemnorecent.Name = "itemnorecent";
this.itemnorecent.Size = new System.Drawing.Size(201, 22);
this.itemnorecent.Size = new System.Drawing.Size(202, 22);
this.itemnorecent.Text = "No recently opened files";
//
// itemexit
//
this.itemexit.Name = "itemexit";
this.itemexit.Size = new System.Drawing.Size(201, 22);
this.itemexit.Size = new System.Drawing.Size(202, 22);
this.itemexit.Text = "Exit";
this.itemexit.Click += new System.EventHandler(this.itemexit_Click);
//
@ -399,14 +399,14 @@ namespace CodeImp.DoomBuilder.Windows
toolStripSeparator11,
this.itemmapoptions});
this.menuedit.Name = "menuedit";
this.menuedit.Size = new System.Drawing.Size(37, 20);
this.menuedit.Size = new System.Drawing.Size(39, 20);
this.menuedit.Text = "Edit";
//
// itemundo
//
this.itemundo.Image = global::CodeImp.DoomBuilder.Properties.Resources.Undo;
this.itemundo.Name = "itemundo";
this.itemundo.Size = new System.Drawing.Size(165, 22);
this.itemundo.Size = new System.Drawing.Size(163, 22);
this.itemundo.Tag = "builder_undo";
this.itemundo.Text = "Undo";
this.itemundo.Click += new System.EventHandler(this.InvokeTaggedAction);
@ -415,7 +415,7 @@ namespace CodeImp.DoomBuilder.Windows
//
this.itemredo.Image = global::CodeImp.DoomBuilder.Properties.Resources.Redo;
this.itemredo.Name = "itemredo";
this.itemredo.Size = new System.Drawing.Size(165, 22);
this.itemredo.Size = new System.Drawing.Size(163, 22);
this.itemredo.Tag = "builder_redo";
this.itemredo.Text = "Redo";
this.itemredo.Click += new System.EventHandler(this.InvokeTaggedAction);
@ -424,13 +424,13 @@ namespace CodeImp.DoomBuilder.Windows
//
this.toolStripMenuItem7.Margin = new System.Windows.Forms.Padding(0, 3, 0, 3);
this.toolStripMenuItem7.Name = "toolStripMenuItem7";
this.toolStripMenuItem7.Size = new System.Drawing.Size(162, 6);
this.toolStripMenuItem7.Size = new System.Drawing.Size(160, 6);
//
// itemcut
//
this.itemcut.Image = global::CodeImp.DoomBuilder.Properties.Resources.Cut;
this.itemcut.Name = "itemcut";
this.itemcut.Size = new System.Drawing.Size(165, 22);
this.itemcut.Size = new System.Drawing.Size(163, 22);
this.itemcut.Tag = "builder_cutselection";
this.itemcut.Text = "Cut";
this.itemcut.Click += new System.EventHandler(this.InvokeTaggedAction);
@ -439,7 +439,7 @@ namespace CodeImp.DoomBuilder.Windows
//
this.itemcopy.Image = global::CodeImp.DoomBuilder.Properties.Resources.Copy;
this.itemcopy.Name = "itemcopy";
this.itemcopy.Size = new System.Drawing.Size(165, 22);
this.itemcopy.Size = new System.Drawing.Size(163, 22);
this.itemcopy.Tag = "builder_copyselection";
this.itemcopy.Text = "Copy";
this.itemcopy.Click += new System.EventHandler(this.InvokeTaggedAction);
@ -448,7 +448,7 @@ namespace CodeImp.DoomBuilder.Windows
//
this.itempaste.Image = global::CodeImp.DoomBuilder.Properties.Resources.Paste;
this.itempaste.Name = "itempaste";
this.itempaste.Size = new System.Drawing.Size(165, 22);
this.itempaste.Size = new System.Drawing.Size(163, 22);
this.itempaste.Tag = "builder_pasteselection";
this.itempaste.Text = "Paste";
this.itempaste.Click += new System.EventHandler(this.InvokeTaggedAction);
@ -459,7 +459,7 @@ namespace CodeImp.DoomBuilder.Windows
this.itemsnaptogrid.CheckState = System.Windows.Forms.CheckState.Checked;
this.itemsnaptogrid.Image = global::CodeImp.DoomBuilder.Properties.Resources.Grid4;
this.itemsnaptogrid.Name = "itemsnaptogrid";
this.itemsnaptogrid.Size = new System.Drawing.Size(165, 22);
this.itemsnaptogrid.Size = new System.Drawing.Size(163, 22);
this.itemsnaptogrid.Tag = "builder_togglesnap";
this.itemsnaptogrid.Text = "Snap to Grid";
this.itemsnaptogrid.Click += new System.EventHandler(this.InvokeTaggedAction);
@ -470,7 +470,7 @@ namespace CodeImp.DoomBuilder.Windows
this.itemautomerge.CheckState = System.Windows.Forms.CheckState.Checked;
this.itemautomerge.Image = global::CodeImp.DoomBuilder.Properties.Resources.mergegeometry2;
this.itemautomerge.Name = "itemautomerge";
this.itemautomerge.Size = new System.Drawing.Size(165, 22);
this.itemautomerge.Size = new System.Drawing.Size(163, 22);
this.itemautomerge.Tag = "builder_toggleautomerge";
this.itemautomerge.Text = "Merge Geometry";
this.itemautomerge.Click += new System.EventHandler(this.InvokeTaggedAction);
@ -479,12 +479,12 @@ namespace CodeImp.DoomBuilder.Windows
//
this.toolStripMenuItem6.Margin = new System.Windows.Forms.Padding(0, 3, 0, 3);
this.toolStripMenuItem6.Name = "toolStripMenuItem6";
this.toolStripMenuItem6.Size = new System.Drawing.Size(162, 6);
this.toolStripMenuItem6.Size = new System.Drawing.Size(160, 6);
//
// itemgridinc
//
this.itemgridinc.Name = "itemgridinc";
this.itemgridinc.Size = new System.Drawing.Size(165, 22);
this.itemgridinc.Size = new System.Drawing.Size(163, 22);
this.itemgridinc.Tag = "builder_gridinc";
this.itemgridinc.Text = "Increase Grid";
this.itemgridinc.Click += new System.EventHandler(this.InvokeTaggedAction);
@ -492,7 +492,7 @@ namespace CodeImp.DoomBuilder.Windows
// itemgriddec
//
this.itemgriddec.Name = "itemgriddec";
this.itemgriddec.Size = new System.Drawing.Size(165, 22);
this.itemgriddec.Size = new System.Drawing.Size(163, 22);
this.itemgriddec.Tag = "builder_griddec";
this.itemgriddec.Text = "Decrease Grid";
this.itemgriddec.Click += new System.EventHandler(this.InvokeTaggedAction);
@ -501,7 +501,7 @@ namespace CodeImp.DoomBuilder.Windows
//
this.itemgridsetup.Image = global::CodeImp.DoomBuilder.Properties.Resources.Grid2;
this.itemgridsetup.Name = "itemgridsetup";
this.itemgridsetup.Size = new System.Drawing.Size(165, 22);
this.itemgridsetup.Size = new System.Drawing.Size(163, 22);
this.itemgridsetup.Tag = "builder_gridsetup";
this.itemgridsetup.Text = "Grid Setup...";
this.itemgridsetup.Click += new System.EventHandler(this.InvokeTaggedAction);
@ -510,7 +510,7 @@ namespace CodeImp.DoomBuilder.Windows
//
this.itemmapoptions.Image = global::CodeImp.DoomBuilder.Properties.Resources.Properties;
this.itemmapoptions.Name = "itemmapoptions";
this.itemmapoptions.Size = new System.Drawing.Size(165, 22);
this.itemmapoptions.Size = new System.Drawing.Size(163, 22);
this.itemmapoptions.Tag = "builder_mapoptions";
this.itemmapoptions.Text = "Map Options....";
this.itemmapoptions.Click += new System.EventHandler(this.InvokeTaggedAction);
@ -527,14 +527,14 @@ namespace CodeImp.DoomBuilder.Windows
this.toolStripMenuItem10,
this.itemscripteditor});
this.menuview.Name = "menuview";
this.menuview.Size = new System.Drawing.Size(41, 20);
this.menuview.Size = new System.Drawing.Size(44, 20);
this.menuview.Text = "View";
//
// itemthingsfilter
//
this.itemthingsfilter.Image = global::CodeImp.DoomBuilder.Properties.Resources.Filter;
this.itemthingsfilter.Name = "itemthingsfilter";
this.itemthingsfilter.Size = new System.Drawing.Size(210, 22);
this.itemthingsfilter.Size = new System.Drawing.Size(209, 22);
this.itemthingsfilter.Tag = "builder_thingsfilterssetup";
this.itemthingsfilter.Text = "Configure Things Filters...";
this.itemthingsfilter.Click += new System.EventHandler(this.InvokeTaggedAction);
@ -543,13 +543,13 @@ namespace CodeImp.DoomBuilder.Windows
//
this.toolStripMenuItem9.Margin = new System.Windows.Forms.Padding(0, 3, 0, 3);
this.toolStripMenuItem9.Name = "toolStripMenuItem9";
this.toolStripMenuItem9.Size = new System.Drawing.Size(207, 6);
this.toolStripMenuItem9.Size = new System.Drawing.Size(206, 6);
//
// itemviewnormal
//
this.itemviewnormal.Image = global::CodeImp.DoomBuilder.Properties.Resources.ViewNormal;
this.itemviewnormal.Name = "itemviewnormal";
this.itemviewnormal.Size = new System.Drawing.Size(210, 22);
this.itemviewnormal.Size = new System.Drawing.Size(209, 22);
this.itemviewnormal.Tag = "builder_viewmodenormal";
this.itemviewnormal.Text = "Wireframe";
this.itemviewnormal.Click += new System.EventHandler(this.InvokeTaggedAction);
@ -558,7 +558,7 @@ namespace CodeImp.DoomBuilder.Windows
//
this.itemviewbrightness.Image = global::CodeImp.DoomBuilder.Properties.Resources.ViewBrightness;
this.itemviewbrightness.Name = "itemviewbrightness";
this.itemviewbrightness.Size = new System.Drawing.Size(210, 22);
this.itemviewbrightness.Size = new System.Drawing.Size(209, 22);
this.itemviewbrightness.Tag = "builder_viewmodebrightness";
this.itemviewbrightness.Text = "Brightness Levels";
this.itemviewbrightness.Click += new System.EventHandler(this.InvokeTaggedAction);
@ -567,7 +567,7 @@ namespace CodeImp.DoomBuilder.Windows
//
this.itemviewfloors.Image = global::CodeImp.DoomBuilder.Properties.Resources.ViewTextureFloor;
this.itemviewfloors.Name = "itemviewfloors";
this.itemviewfloors.Size = new System.Drawing.Size(210, 22);
this.itemviewfloors.Size = new System.Drawing.Size(209, 22);
this.itemviewfloors.Tag = "builder_viewmodefloors";
this.itemviewfloors.Text = "Floor Textures";
this.itemviewfloors.Click += new System.EventHandler(this.InvokeTaggedAction);
@ -576,7 +576,7 @@ namespace CodeImp.DoomBuilder.Windows
//
this.itemviewceilings.Image = global::CodeImp.DoomBuilder.Properties.Resources.ViewTextureCeiling;
this.itemviewceilings.Name = "itemviewceilings";
this.itemviewceilings.Size = new System.Drawing.Size(210, 22);
this.itemviewceilings.Size = new System.Drawing.Size(209, 22);
this.itemviewceilings.Tag = "builder_viewmodeceilings";
this.itemviewceilings.Text = "Ceiling Textures";
this.itemviewceilings.Click += new System.EventHandler(this.InvokeTaggedAction);
@ -585,13 +585,13 @@ namespace CodeImp.DoomBuilder.Windows
//
this.toolStripMenuItem10.Margin = new System.Windows.Forms.Padding(0, 3, 0, 3);
this.toolStripMenuItem10.Name = "toolStripMenuItem10";
this.toolStripMenuItem10.Size = new System.Drawing.Size(207, 6);
this.toolStripMenuItem10.Size = new System.Drawing.Size(206, 6);
//
// itemscripteditor
//
this.itemscripteditor.Image = global::CodeImp.DoomBuilder.Properties.Resources.Script2;
this.itemscripteditor.Name = "itemscripteditor";
this.itemscripteditor.Size = new System.Drawing.Size(210, 22);
this.itemscripteditor.Size = new System.Drawing.Size(209, 22);
this.itemscripteditor.Tag = "builder_openscripteditor";
this.itemscripteditor.Text = "Script Editor...";
this.itemscripteditor.Click += new System.EventHandler(this.InvokeTaggedAction);
@ -599,7 +599,7 @@ namespace CodeImp.DoomBuilder.Windows
// menumode
//
this.menumode.Name = "menumode";
this.menumode.Size = new System.Drawing.Size(45, 20);
this.menumode.Size = new System.Drawing.Size(50, 20);
this.menumode.Text = "Mode";
//
// menuprefabs
@ -610,13 +610,13 @@ namespace CodeImp.DoomBuilder.Windows
this.toolStripMenuItem12,
this.itemcreateprefab});
this.menuprefabs.Name = "menuprefabs";
this.menuprefabs.Size = new System.Drawing.Size(56, 20);
this.menuprefabs.Size = new System.Drawing.Size(58, 20);
this.menuprefabs.Text = "Prefabs";
//
// iteminsertprefabfile
//
this.iteminsertprefabfile.Name = "iteminsertprefabfile";
this.iteminsertprefabfile.Size = new System.Drawing.Size(205, 22);
this.iteminsertprefabfile.Size = new System.Drawing.Size(199, 22);
this.iteminsertprefabfile.Tag = "builder_insertprefabfile";
this.iteminsertprefabfile.Text = "Insert Prefab from File...";
this.iteminsertprefabfile.Click += new System.EventHandler(this.InvokeTaggedAction);
@ -624,7 +624,7 @@ namespace CodeImp.DoomBuilder.Windows
// iteminsertpreviousprefab
//
this.iteminsertpreviousprefab.Name = "iteminsertpreviousprefab";
this.iteminsertpreviousprefab.Size = new System.Drawing.Size(205, 22);
this.iteminsertpreviousprefab.Size = new System.Drawing.Size(199, 22);
this.iteminsertpreviousprefab.Tag = "builder_insertpreviousprefab";
this.iteminsertpreviousprefab.Text = "Insert Previous Prefab";
this.iteminsertpreviousprefab.Click += new System.EventHandler(this.InvokeTaggedAction);
@ -633,12 +633,12 @@ namespace CodeImp.DoomBuilder.Windows
//
this.toolStripMenuItem12.Margin = new System.Windows.Forms.Padding(0, 3, 0, 3);
this.toolStripMenuItem12.Name = "toolStripMenuItem12";
this.toolStripMenuItem12.Size = new System.Drawing.Size(202, 6);
this.toolStripMenuItem12.Size = new System.Drawing.Size(196, 6);
//
// itemcreateprefab
//
this.itemcreateprefab.Name = "itemcreateprefab";
this.itemcreateprefab.Size = new System.Drawing.Size(205, 22);
this.itemcreateprefab.Size = new System.Drawing.Size(199, 22);
this.itemcreateprefab.Tag = "builder_createprefab";
this.itemcreateprefab.Text = "Create From Selection...";
this.itemcreateprefab.Click += new System.EventHandler(this.InvokeTaggedAction);
@ -653,13 +653,13 @@ namespace CodeImp.DoomBuilder.Windows
this.toolStripMenuItem11,
this.itemtestmap});
this.menutools.Name = "menutools";
this.menutools.Size = new System.Drawing.Size(44, 20);
this.menutools.Size = new System.Drawing.Size(48, 20);
this.menutools.Text = "Tools";
//
// itemreloadresources
//
this.itemreloadresources.Name = "itemreloadresources";
this.itemreloadresources.Size = new System.Drawing.Size(197, 22);
this.itemreloadresources.Size = new System.Drawing.Size(196, 22);
this.itemreloadresources.Tag = "builder_reloadresources";
this.itemreloadresources.Text = "Reload Resources";
this.itemreloadresources.Click += new System.EventHandler(this.InvokeTaggedAction);
@ -668,12 +668,12 @@ namespace CodeImp.DoomBuilder.Windows
//
this.toolStripMenuItem8.Margin = new System.Windows.Forms.Padding(0, 3, 0, 3);
this.toolStripMenuItem8.Name = "toolStripMenuItem8";
this.toolStripMenuItem8.Size = new System.Drawing.Size(194, 6);
this.toolStripMenuItem8.Size = new System.Drawing.Size(193, 6);
//
// configurationToolStripMenuItem
//
this.configurationToolStripMenuItem.Name = "configurationToolStripMenuItem";
this.configurationToolStripMenuItem.Size = new System.Drawing.Size(197, 22);
this.configurationToolStripMenuItem.Size = new System.Drawing.Size(196, 22);
this.configurationToolStripMenuItem.Tag = "builder_configuration";
this.configurationToolStripMenuItem.Text = "Game Configurations...";
this.configurationToolStripMenuItem.Click += new System.EventHandler(this.InvokeTaggedAction);
@ -681,7 +681,7 @@ namespace CodeImp.DoomBuilder.Windows
// preferencesToolStripMenuItem
//
this.preferencesToolStripMenuItem.Name = "preferencesToolStripMenuItem";
this.preferencesToolStripMenuItem.Size = new System.Drawing.Size(197, 22);
this.preferencesToolStripMenuItem.Size = new System.Drawing.Size(196, 22);
this.preferencesToolStripMenuItem.Tag = "builder_preferences";
this.preferencesToolStripMenuItem.Text = "Preferences...";
this.preferencesToolStripMenuItem.Click += new System.EventHandler(this.InvokeTaggedAction);
@ -690,13 +690,13 @@ namespace CodeImp.DoomBuilder.Windows
//
this.toolStripMenuItem11.Margin = new System.Windows.Forms.Padding(0, 3, 0, 3);
this.toolStripMenuItem11.Name = "toolStripMenuItem11";
this.toolStripMenuItem11.Size = new System.Drawing.Size(194, 6);
this.toolStripMenuItem11.Size = new System.Drawing.Size(193, 6);
//
// itemtestmap
//
this.itemtestmap.Image = global::CodeImp.DoomBuilder.Properties.Resources.Test;
this.itemtestmap.Name = "itemtestmap";
this.itemtestmap.Size = new System.Drawing.Size(197, 22);
this.itemtestmap.Size = new System.Drawing.Size(196, 22);
this.itemtestmap.Tag = "builder_testmap";
this.itemtestmap.Text = "Test Map";
this.itemtestmap.Click += new System.EventHandler(this.InvokeTaggedAction);
@ -706,13 +706,13 @@ namespace CodeImp.DoomBuilder.Windows
this.menuhelp.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.itemhelpabout});
this.menuhelp.Name = "menuhelp";
this.menuhelp.Size = new System.Drawing.Size(40, 20);
this.menuhelp.Size = new System.Drawing.Size(44, 20);
this.menuhelp.Text = "Help";
//
// itemhelpabout
//
this.itemhelpabout.Name = "itemhelpabout";
this.itemhelpabout.Size = new System.Drawing.Size(191, 22);
this.itemhelpabout.Size = new System.Drawing.Size(192, 22);
this.itemhelpabout.Text = "About Doom Builder...";
this.itemhelpabout.Click += new System.EventHandler(this.itemhelpabout_Click);
//
@ -1102,7 +1102,7 @@ namespace CodeImp.DoomBuilder.Windows
// itemgrid1024
//
this.itemgrid1024.Name = "itemgrid1024";
this.itemgrid1024.Size = new System.Drawing.Size(164, 22);
this.itemgrid1024.Size = new System.Drawing.Size(153, 22);
this.itemgrid1024.Tag = "1024";
this.itemgrid1024.Text = "1024 mp";
this.itemgrid1024.Click += new System.EventHandler(this.itemgridsize_Click);
@ -1110,7 +1110,7 @@ namespace CodeImp.DoomBuilder.Windows
// itemgrid512
//
this.itemgrid512.Name = "itemgrid512";
this.itemgrid512.Size = new System.Drawing.Size(164, 22);
this.itemgrid512.Size = new System.Drawing.Size(153, 22);
this.itemgrid512.Tag = "512";
this.itemgrid512.Text = "512 mp";
this.itemgrid512.Click += new System.EventHandler(this.itemgridsize_Click);
@ -1118,7 +1118,7 @@ namespace CodeImp.DoomBuilder.Windows
// itemgrid256
//
this.itemgrid256.Name = "itemgrid256";
this.itemgrid256.Size = new System.Drawing.Size(164, 22);
this.itemgrid256.Size = new System.Drawing.Size(153, 22);
this.itemgrid256.Tag = "256";
this.itemgrid256.Text = "256 mp";
this.itemgrid256.Click += new System.EventHandler(this.itemgridsize_Click);
@ -1126,7 +1126,7 @@ namespace CodeImp.DoomBuilder.Windows
// itemgrid128
//
this.itemgrid128.Name = "itemgrid128";
this.itemgrid128.Size = new System.Drawing.Size(164, 22);
this.itemgrid128.Size = new System.Drawing.Size(153, 22);
this.itemgrid128.Tag = "128";
this.itemgrid128.Text = "128 mp";
this.itemgrid128.Click += new System.EventHandler(this.itemgridsize_Click);
@ -1134,7 +1134,7 @@ namespace CodeImp.DoomBuilder.Windows
// itemgrid64
//
this.itemgrid64.Name = "itemgrid64";
this.itemgrid64.Size = new System.Drawing.Size(164, 22);
this.itemgrid64.Size = new System.Drawing.Size(153, 22);
this.itemgrid64.Tag = "64";
this.itemgrid64.Text = "64 mp";
this.itemgrid64.Click += new System.EventHandler(this.itemgridsize_Click);
@ -1142,7 +1142,7 @@ namespace CodeImp.DoomBuilder.Windows
// itemgrid32
//
this.itemgrid32.Name = "itemgrid32";
this.itemgrid32.Size = new System.Drawing.Size(164, 22);
this.itemgrid32.Size = new System.Drawing.Size(153, 22);
this.itemgrid32.Tag = "32";
this.itemgrid32.Text = "32 mp";
this.itemgrid32.Click += new System.EventHandler(this.itemgridsize_Click);
@ -1150,7 +1150,7 @@ namespace CodeImp.DoomBuilder.Windows
// itemgrid16
//
this.itemgrid16.Name = "itemgrid16";
this.itemgrid16.Size = new System.Drawing.Size(164, 22);
this.itemgrid16.Size = new System.Drawing.Size(153, 22);
this.itemgrid16.Tag = "16";
this.itemgrid16.Text = "16 mp";
this.itemgrid16.Click += new System.EventHandler(this.itemgridsize_Click);
@ -1158,7 +1158,7 @@ namespace CodeImp.DoomBuilder.Windows
// itemgrid8
//
this.itemgrid8.Name = "itemgrid8";
this.itemgrid8.Size = new System.Drawing.Size(164, 22);
this.itemgrid8.Size = new System.Drawing.Size(153, 22);
this.itemgrid8.Tag = "8";
this.itemgrid8.Text = "8 mp";
this.itemgrid8.Click += new System.EventHandler(this.itemgridsize_Click);
@ -1166,7 +1166,7 @@ namespace CodeImp.DoomBuilder.Windows
// itemgrid4
//
this.itemgrid4.Name = "itemgrid4";
this.itemgrid4.Size = new System.Drawing.Size(164, 22);
this.itemgrid4.Size = new System.Drawing.Size(153, 22);
this.itemgrid4.Tag = "4";
this.itemgrid4.Text = "4 mp";
this.itemgrid4.Click += new System.EventHandler(this.itemgridsize_Click);
@ -1174,7 +1174,7 @@ namespace CodeImp.DoomBuilder.Windows
// itemgridcustom
//
this.itemgridcustom.Name = "itemgridcustom";
this.itemgridcustom.Size = new System.Drawing.Size(164, 22);
this.itemgridcustom.Size = new System.Drawing.Size(153, 22);
this.itemgridcustom.Text = "Customize...";
this.itemgridcustom.Click += new System.EventHandler(this.itemgridcustom_Click);
//
@ -1213,7 +1213,7 @@ namespace CodeImp.DoomBuilder.Windows
// itemzoom200
//
this.itemzoom200.Name = "itemzoom200";
this.itemzoom200.Size = new System.Drawing.Size(167, 22);
this.itemzoom200.Size = new System.Drawing.Size(156, 22);
this.itemzoom200.Tag = "200";
this.itemzoom200.Text = "200%";
this.itemzoom200.Click += new System.EventHandler(this.itemzoomto_Click);
@ -1221,7 +1221,7 @@ namespace CodeImp.DoomBuilder.Windows
// itemzoom100
//
this.itemzoom100.Name = "itemzoom100";
this.itemzoom100.Size = new System.Drawing.Size(167, 22);
this.itemzoom100.Size = new System.Drawing.Size(156, 22);
this.itemzoom100.Tag = "100";
this.itemzoom100.Text = "100%";
this.itemzoom100.Click += new System.EventHandler(this.itemzoomto_Click);
@ -1229,7 +1229,7 @@ namespace CodeImp.DoomBuilder.Windows
// itemzoom50
//
this.itemzoom50.Name = "itemzoom50";
this.itemzoom50.Size = new System.Drawing.Size(167, 22);
this.itemzoom50.Size = new System.Drawing.Size(156, 22);
this.itemzoom50.Tag = "50";
this.itemzoom50.Text = "50%";
this.itemzoom50.Click += new System.EventHandler(this.itemzoomto_Click);
@ -1237,7 +1237,7 @@ namespace CodeImp.DoomBuilder.Windows
// itemzoom25
//
this.itemzoom25.Name = "itemzoom25";
this.itemzoom25.Size = new System.Drawing.Size(167, 22);
this.itemzoom25.Size = new System.Drawing.Size(156, 22);
this.itemzoom25.Tag = "25";
this.itemzoom25.Text = "25%";
this.itemzoom25.Click += new System.EventHandler(this.itemzoomto_Click);
@ -1245,7 +1245,7 @@ namespace CodeImp.DoomBuilder.Windows
// itemzoom10
//
this.itemzoom10.Name = "itemzoom10";
this.itemzoom10.Size = new System.Drawing.Size(167, 22);
this.itemzoom10.Size = new System.Drawing.Size(156, 22);
this.itemzoom10.Tag = "10";
this.itemzoom10.Text = "10%";
this.itemzoom10.Click += new System.EventHandler(this.itemzoomto_Click);
@ -1253,7 +1253,7 @@ namespace CodeImp.DoomBuilder.Windows
// itemzoom5
//
this.itemzoom5.Name = "itemzoom5";
this.itemzoom5.Size = new System.Drawing.Size(167, 22);
this.itemzoom5.Size = new System.Drawing.Size(156, 22);
this.itemzoom5.Tag = "5";
this.itemzoom5.Text = "5%";
this.itemzoom5.Click += new System.EventHandler(this.itemzoomto_Click);
@ -1261,7 +1261,7 @@ namespace CodeImp.DoomBuilder.Windows
// itemzoomfittoscreen
//
this.itemzoomfittoscreen.Name = "itemzoomfittoscreen";
this.itemzoomfittoscreen.Size = new System.Drawing.Size(167, 22);
this.itemzoomfittoscreen.Size = new System.Drawing.Size(156, 22);
this.itemzoomfittoscreen.Text = "Fit to screen";
this.itemzoomfittoscreen.Click += new System.EventHandler(this.itemzoomfittoscreen_Click);
//
@ -1412,13 +1412,13 @@ namespace CodeImp.DoomBuilder.Windows
this.processor.Interval = 10;
this.processor.Tick += new System.EventHandler(this.processor_Tick);
//
// warningtimer
// statusflasher
//
this.warningtimer.Tick += new System.EventHandler(this.warningtimer_Tick);
this.statusflasher.Tick += new System.EventHandler(this.statusflasher_Tick);
//
// warningflasher
// statusresetter
//
this.warningflasher.Tick += new System.EventHandler(this.warningflasher_Tick);
this.statusresetter.Tick += new System.EventHandler(this.statusresetter_Tick);
//
// MainForm
//
@ -1539,8 +1539,7 @@ namespace CodeImp.DoomBuilder.Windows
private System.Windows.Forms.ToolStripMenuItem itemgriddec;
private System.Windows.Forms.ToolStripMenuItem itemgridsetup;
private System.Windows.Forms.Label modename;
private System.Windows.Forms.Timer warningtimer;
private System.Windows.Forms.Timer warningflasher;
private System.Windows.Forms.Timer statusflasher;
private System.Windows.Forms.ToolStripSplitButton buttontest;
private System.Windows.Forms.ToolStripButton buttoncut;
private System.Windows.Forms.ToolStripButton buttoncopy;
@ -1577,5 +1576,6 @@ namespace CodeImp.DoomBuilder.Windows
private System.Windows.Forms.ToolStripButton buttoninsertpreviousprefab;
private System.Windows.Forms.Button buttontoggleinfo;
private System.Windows.Forms.Label labelcollapsedinfo;
private System.Windows.Forms.Timer statusresetter;
}
}

View file

@ -48,26 +48,40 @@ namespace CodeImp.DoomBuilder.Windows
{
#region ================== Constants
private const string STATUS_READY_TEXT = "Ready.";
private const string STATUS_LOADING_TEXT = "Loading resources...";
private const int MAX_RECENT_FILES = 8;
private const int MAX_RECENT_FILES_PIXELS = 250;
private const int WARNING_FLASH_COUNT = 5;
private const int EXPANDED_INFO_HEIGHT = 106;
private const int COLLAPSED_INFO_HEIGHT = 20;
private enum StatusType : int
// Status bar
private const string STATUS_READY_TEXT = "Ready.";
private const string STATUS_LOADING_TEXT = "Loading resources...";
private const int WARNING_FLASH_COUNT = 10;
private const int WARNING_FLASH_INTERVAL = 100;
private const int WARNING_RESET_DELAY = 3000;
private const int ACTION_FLASH_COUNT = 1;
private const int ACTION_FLASH_INTERVAL = 100;
private readonly Image[,] STATUS_IMAGES = new Image[2, 4]
{
Ready,
Busy,
Warning
}
// Normal versions
{
Properties.Resources.Status0, Properties.Resources.Status1,
Properties.Resources.Status2, Properties.Resources.Warning
},
// Flashing versions
{
Properties.Resources.Status10, Properties.Resources.Status11,
Properties.Resources.Status12, Properties.Resources.WarningOff
}
};
// Message pump
public enum ThreadMessages : int
{
// Sent by the background threat to update the status icon
UpdateStatusIcon = General.WM_USER + 1,
// Sent by the background threat to update the status
UpdateStatus = General.WM_USER + 1,
// This is sent by the background thread when images are loaded
// but only when first loaded or when dimensions were changed
@ -123,9 +137,9 @@ namespace CodeImp.DoomBuilder.Windows
private bool updatingfilters;
// Statusbar
private StatusType statustype;
private int warningflashcount;
private bool warningsignon;
private StatusInfo status;
private int statusflashcount;
private bool statusflashicon;
// Properties
private IntPtr windowptr;
@ -150,6 +164,7 @@ namespace CodeImp.DoomBuilder.Windows
new public IntPtr Handle { get { return windowptr; } }
public bool IsInfoPanelExpanded { get { return (panelinfo.Height == EXPANDED_INFO_HEIGHT); } }
public bool IsActiveWindow { get { return windowactive; } }
public StatusInfo Status { get { return status; } }
#endregion
@ -438,8 +453,9 @@ namespace CodeImp.DoomBuilder.Windows
{
General.WriteLogLine("Closing main interface window...");
// Hide warning to stop timers
HideWarning();
// Stop timers
statusflasher.Stop();
statusresetter.Stop();
// Stop exclusive mode, if any is active
StopExclusiveMouseInput();
@ -513,168 +529,107 @@ namespace CodeImp.DoomBuilder.Windows
UpdateStatusIcon();
}
// This returns the current status text
internal string GetCurrentSatus()
// This flashes the status icon
private void statusflasher_Tick(object sender, EventArgs e)
{
if(statustype == StatusType.Busy)
return statuslabel.Text;
else
return null;
statusflashicon = !statusflashicon;
UpdateStatusIcon();
statusflashcount--;
if(statusflashcount == 0) statusflasher.Stop();
}
// This shows a warning
public void DisplayWarning(string warning)
// This resets the status to ready
private void statusresetter_Tick(object sender, EventArgs e)
{
MessageBeep(MessageBeepType.Warning);
if(statuslabel.Text != warning) statuslabel.Text = warning;
statustype = StatusType.Warning;
statuslabel.Image = Resources.Warning;
warningflashcount = 0;
warningsignon = true;
warningtimer.Stop();
warningtimer.Interval = 3000;
warningtimer.Start();
warningflasher.Start();
// Refresh if needed
statusbar.Invalidate();
this.Update();
}
// This hides any warning
public void HideWarning()
{
if(statustype == StatusType.Warning)
{
warningtimer.Stop();
warningflasher.Stop();
DisplayReady();
}
}
// This flashes the warning sign
private void warningflasher_Tick(object sender, EventArgs e)
{
if(statustype == StatusType.Warning)
{
// Warning sign on?
if(warningsignon)
{
// Turn it off or should we stop?
if(warningflashcount < WARNING_FLASH_COUNT)
{
statuslabel.Image = Resources.WarningOff;
warningsignon = false;
}
else
{
warningflasher.Stop();
}
}
else
{
// Turn it on and count the flash
statuslabel.Image = Resources.Warning;
warningsignon = true;
warningflashcount++;
}
}
}
// Warning timed out
private void warningtimer_Tick(object sender, EventArgs e)
{
HideWarning();
DisplayReady();
}
// This changes status text
public void DisplayStatus(string status)
public void DisplayStatus(StatusType type, string message) { DisplayStatus(new StatusInfo(type, message)); }
public void DisplayStatus(StatusInfo newstatus)
{
// Null is no busy status
if(status == null)
// Stop timers
statusresetter.Stop();
statusflasher.Stop();
statusflashicon = false;
// Determine what to do specifically for this status type
switch(newstatus.type)
{
DisplayReady();
}
else
{
// Stop warning timers
warningtimer.Stop();
warningflasher.Stop();
// Update status description
statustype = StatusType.Busy;
if(statuslabel.Text != status)
statuslabel.Text = status;
// Update icon as well
UpdateStatusIcon();
// Refresh if needed
statusbar.Invalidate();
this.Update();
// When no particular information is to be displayed.
// The messages displayed depends on running background processes.
case StatusType.Ready:
if((General.Map != null) && (General.Map.Data != null) && General.Map.Data.IsLoading)
newstatus.message = STATUS_LOADING_TEXT;
else
newstatus.message = STATUS_READY_TEXT;
break;
// Shows action information and flashes up the status icon once.
case StatusType.Action:
MessageBeep(MessageBeepType.Warning);
statusflashicon = true;
statusflasher.Interval = ACTION_FLASH_INTERVAL;
statusflashcount = ACTION_FLASH_COUNT;
statusflasher.Start();
break;
// Shows a warning, makes a warning sound and flashes a warning icon.
case StatusType.Warning:
MessageBeep(MessageBeepType.Warning);
statusflasher.Interval = WARNING_FLASH_INTERVAL;
statusflashcount = WARNING_FLASH_COUNT;
statusflasher.Start();
statusresetter.Interval = WARNING_RESET_DELAY;
statusresetter.Start();
break;
}
// Update status description
status = newstatus;
if(statuslabel.Text != status.message)
statuslabel.Text = status.message;
// Update icon as well
UpdateStatusIcon();
// Refresh
statusbar.Invalidate();
this.Update();
}
// This changes status text to Ready
public void DisplayReady()
{
// Stop warning timers
warningtimer.Stop();
warningflasher.Stop();
// Update icon, this also sets the ready text
statustype = StatusType.Ready;
UpdateStatusIcon();
// Refresh if needed
statusbar.Invalidate();
this.Update();
DisplayStatus(StatusType.Ready, null);
}
// This updates the status icon
internal void UpdateStatusIcon()
{
// From another thread?
if(statusbar.InvokeRequired)
int statusicon = 0;
int statusflashindex = statusflashicon ? 1 : 0;
// Loading icon?
if((General.Map != null) && (General.Map.Data != null) && General.Map.Data.IsLoading)
statusicon = 1;
// Status type
switch(status.type)
{
// Call to form thread
// This may not be called from a different thread. Send a WM_NOTIFY message instead!
throw new Exception("This should not be called from any other thread than the main application thread!");
}
else
{
// Ready status?
if(statustype == StatusType.Ready)
{
// Map open?
if((General.Map != null) && (General.Map.Data != null))
{
// Check if loading in the background
if(General.Map.Data.IsLoading)
{
// Display semi-ready icon
statuslabel.Image = CodeImp.DoomBuilder.Properties.Resources.Status1;
if(statuslabel.Text != STATUS_LOADING_TEXT) statuslabel.Text = STATUS_LOADING_TEXT;
}
else
{
// Display ready icon
statuslabel.Image = CodeImp.DoomBuilder.Properties.Resources.Status0;
if(statuslabel.Text != STATUS_READY_TEXT) statuslabel.Text = STATUS_READY_TEXT;
}
}
else
{
// Display ready icon
statuslabel.Image = CodeImp.DoomBuilder.Properties.Resources.Status0;
if(statuslabel.Text != STATUS_READY_TEXT) statuslabel.Text = STATUS_READY_TEXT;
}
}
else if(statustype == StatusType.Busy)
{
// Display busy icon
statuslabel.Image = CodeImp.DoomBuilder.Properties.Resources.Status2;
}
case StatusType.Ready:
case StatusType.Info:
case StatusType.Action:
statuslabel.Image = STATUS_IMAGES[statusflashindex, statusicon];
break;
case StatusType.Busy:
statuslabel.Image = STATUS_IMAGES[statusflashindex, 2];
break;
case StatusType.Warning:
statuslabel.Image = STATUS_IMAGES[statusflashindex, 3];
break;
}
}
@ -2200,8 +2155,8 @@ namespace CodeImp.DoomBuilder.Windows
// Notify message?
switch(m.Msg)
{
case (int)ThreadMessages.UpdateStatusIcon:
UpdateStatusIcon();
case (int)ThreadMessages.UpdateStatus:
DisplayStatus(status);
break;
case (int)ThreadMessages.ImageDataLoaded:

View file

@ -169,13 +169,13 @@
<value>True</value>
</metadata>
<metadata name="toolbar.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>121, 17</value>
<value>127, 17</value>
</metadata>
<metadata name="statusbar.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="statusbar.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>207, 17</value>
<value>218, 17</value>
</metadata>
<metadata name="panelinfo.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
@ -196,19 +196,19 @@
<value>True</value>
</metadata>
<metadata name="redrawtimer.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>304, 17</value>
<value>319, 17</value>
</metadata>
<metadata name="display.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="processor.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>416, 17</value>
<value>437, 17</value>
</metadata>
<metadata name="warningtimer.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>515, 17</value>
<metadata name="statusflasher.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>541, 17</value>
</metadata>
<metadata name="warningflasher.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>632, 17</value>
<metadata name="statusresetter.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>661, 17</value>
</metadata>
<metadata name="$this.Locked" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>

View file

@ -0,0 +1,80 @@
#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.Collections;
using System.Collections.Generic;
using System.Globalization;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Reflection;
using System.Drawing;
using System.ComponentModel;
using CodeImp.DoomBuilder.Map;
using SlimDX.Direct3D9;
using SlimDX;
using CodeImp.DoomBuilder.Geometry;
using System.Drawing.Imaging;
using CodeImp.DoomBuilder.Data;
using CodeImp.DoomBuilder.Editing;
#endregion
namespace CodeImp.DoomBuilder.Windows
{
public struct StatusInfo
{
public StatusType type;
public string message;
internal StatusInfo(StatusType type, string message)
{
this.type = type;
this.message = message;
}
}
public enum StatusType : int
{
/// <summary>
/// When no particular information is to be displayed. The messages displayed depends on running background processes.
/// </summary>
Ready,
/// <summary>
/// Shows action information and flashes up the status icon once.
/// </summary>
Action,
/// <summary>
/// Shows information without flashing the icon.
/// </summary>
Info,
/// <summary>
/// Shows information with the busy icon.
/// </summary>
Busy,
/// <summary>
/// Shows a warning, makes a warning sound and flashes a warning icon.
/// </summary>
Warning
}
}