2008-01-02 21:49:43 +00:00
|
|
|
|
|
|
|
|
|
#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;
|
2009-01-05 21:20:51 +00:00
|
|
|
|
using CodeImp.DoomBuilder.Actions;
|
2008-01-02 21:49:43 +00:00
|
|
|
|
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
|
|
|
|
|
|
2008-05-29 11:54:45 +00:00
|
|
|
|
namespace CodeImp.DoomBuilder.Windows
|
2008-01-02 21:49:43 +00:00
|
|
|
|
{
|
2008-01-04 00:16:58 +00:00
|
|
|
|
public interface IMainForm : IWin32Window
|
2008-01-02 21:49:43 +00:00
|
|
|
|
{
|
|
|
|
|
// Properties
|
|
|
|
|
bool AltState { get; }
|
|
|
|
|
bool CtrlState { get; }
|
|
|
|
|
bool ShiftState { get; }
|
|
|
|
|
bool MouseInDisplay { get; }
|
|
|
|
|
bool AutoMerge { get; }
|
|
|
|
|
bool SnapToGrid { get; }
|
2008-05-08 16:39:14 +00:00
|
|
|
|
bool MouseExclusive { get; }
|
2008-12-17 19:35:00 +00:00
|
|
|
|
MouseButtons MouseButtons { get; }
|
2009-01-07 10:44:38 +00:00
|
|
|
|
bool IsActiveWindow { get; }
|
2008-12-17 19:35:00 +00:00
|
|
|
|
|
2008-01-02 21:49:43 +00:00
|
|
|
|
// Methods
|
|
|
|
|
void DisplayReady();
|
2009-02-26 14:16:18 +00:00
|
|
|
|
void DisplayStatus(StatusType type, string message);
|
|
|
|
|
void DisplayStatus(StatusInfo newstatus);
|
2008-01-02 21:49:43 +00:00
|
|
|
|
void RedrawDisplay();
|
2008-06-11 05:02:48 +00:00
|
|
|
|
DialogResult ShowEditLinedefs(ICollection<Linedef> lines);
|
|
|
|
|
DialogResult ShowEditSectors(ICollection<Sector> sectors);
|
|
|
|
|
DialogResult ShowEditThings(ICollection<Thing> things);
|
2008-01-02 21:49:43 +00:00
|
|
|
|
void ShowLinedefInfo(Linedef l);
|
|
|
|
|
void ShowSectorInfo(Sector s);
|
|
|
|
|
void ShowThingInfo(Thing t);
|
|
|
|
|
void ShowVertexInfo(Vertex v);
|
|
|
|
|
void HideInfo();
|
2009-01-10 12:37:31 +00:00
|
|
|
|
void RefreshInfo();
|
2008-01-05 18:11:29 +00:00
|
|
|
|
void UpdateCoordinates(Vector2D coords);
|
2008-01-04 00:16:58 +00:00
|
|
|
|
bool Focus();
|
2009-02-22 22:57:21 +00:00
|
|
|
|
void EnableProcessing();
|
|
|
|
|
void DisableProcessing();
|
2008-01-05 18:11:29 +00:00
|
|
|
|
void StartExclusiveMouseInput();
|
|
|
|
|
void StopExclusiveMouseInput();
|
2008-05-08 16:39:14 +00:00
|
|
|
|
void BreakExclusiveMouseInput();
|
|
|
|
|
void ResumeExclusiveMouseInput();
|
2008-05-16 21:48:23 +00:00
|
|
|
|
void SetCursor(Cursor cursor);
|
2008-09-07 21:28:20 +00:00
|
|
|
|
void MessageBeep(MessageBeepType type);
|
|
|
|
|
|
2008-09-01 12:14:35 +00:00
|
|
|
|
/// <summary>
|
|
|
|
|
/// This browses the lindef types
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <returns>Returns the new action or the same action when cancelled</returns>
|
|
|
|
|
int BrowseLinedefActions(IWin32Window owner, int initialvalue);
|
2008-05-16 20:00:49 +00:00
|
|
|
|
|
2008-09-01 12:14:35 +00:00
|
|
|
|
/// <summary>
|
|
|
|
|
/// This browses sector effects
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <returns>Returns the new effect or the same effect when cancelled</returns>
|
|
|
|
|
int BrowseSectorEffect(IWin32Window owner, int initialvalue);
|
|
|
|
|
|
2008-10-17 09:39:07 +00:00
|
|
|
|
/// <summary>
|
|
|
|
|
/// This browses for a texture
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <returns>Returns the new texture name or the same texture name when cancelled</returns>
|
|
|
|
|
string BrowseTexture(IWin32Window owner, string initialvalue);
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// This browses for a flat
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <returns>Returns the new flat name or the same flat name when cancelled</returns>
|
|
|
|
|
string BrowseFlat(IWin32Window owner, string initialvalue);
|
|
|
|
|
|
2008-05-16 20:00:49 +00:00
|
|
|
|
/// <summary>
|
|
|
|
|
/// This adds a menu to the Doom Builder menu strip.
|
|
|
|
|
/// <para>
|
|
|
|
|
/// NOTE: When the Tag property of menu items is set with a string, this changes the
|
|
|
|
|
/// tag to a fully qualified action name by prefixing it with the assembly name.
|
|
|
|
|
/// </para>
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="menu">The menu to add to Doom Builder.</param>
|
2008-05-14 21:48:36 +00:00
|
|
|
|
void AddMenu(ToolStripMenuItem menu);
|
2008-05-16 20:00:49 +00:00
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// This removes a menu from the Doom Builder menu strip.
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="menu">The menu to remove.</param>
|
2008-05-14 21:48:36 +00:00
|
|
|
|
void RemoveMenu(ToolStripMenuItem menu);
|
2008-05-16 20:00:49 +00:00
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// This method invokes the action specified on the Tag property of the given menu item.
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="sender">Menu item with Tag property set to the name of an action
|
|
|
|
|
/// that you want to invoke.</param>
|
|
|
|
|
/// <param name="e">Unused.</param>
|
2008-05-15 12:36:55 +00:00
|
|
|
|
void InvokeTaggedAction(object sender, EventArgs e);
|
2008-05-26 12:14:48 +00:00
|
|
|
|
|
|
|
|
|
void AddButton(ToolStripItem button);
|
|
|
|
|
void RemoveButton(ToolStripItem button);
|
2008-01-02 21:49:43 +00:00
|
|
|
|
}
|
|
|
|
|
}
|