UltimateZoneBuilder/Source/Core/Windows/IMainForm.cs

231 lines
8.1 KiB
C#
Raw Normal View History


#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.Generic;
using System.Drawing;
using System.Windows.Forms;
using CodeImp.DoomBuilder.Map;
using CodeImp.DoomBuilder.Geometry;
2009-07-22 15:16:28 +00:00
using CodeImp.DoomBuilder.Controls;
#endregion
namespace CodeImp.DoomBuilder.Windows
{
public interface IMainForm : IWin32Window
{
// Properties
bool AltState { get; }
bool CtrlState { get; }
bool ShiftState { get; }
bool MouseInDisplay { get; }
bool AutoMerge { get; }
bool SnapToGrid { get; }
bool MouseExclusive { get; }
MouseButtons MouseButtons { get; }
bool IsActiveWindow { get; }
string ActiveDockerTabName { get; } //mxd
RenderTargetControl Display { get; }
//mxd. Events
event EventHandler OnEditFormValuesChanged;
// Methods
void DisplayReady();
void DisplayStatus(StatusType type, string message);
void DisplayStatus(StatusInfo newstatus);
void RedrawDisplay();
DialogResult ShowEditVertices(ICollection<Vertex> vertices);
2013-03-18 13:52:27 +00:00
DialogResult ShowEditVertices(ICollection<Vertex> vertices, bool allowPositionChange); //mxd
DialogResult ShowEditLinedefs(ICollection<Linedef> lines);
DialogResult ShowEditLinedefs(ICollection<Linedef> lines, bool selectfront, bool selectback); //mxd
DialogResult ShowEditSectors(ICollection<Sector> sectors);
DialogResult ShowEditThings(ICollection<Thing> things);
void ShowLinedefInfo(Linedef l);
void ShowLinedefInfo(Linedef l, Sidedef highlightside); //mxd
void ShowSectorInfo(Sector s);
void ShowSectorInfo(Sector s, bool highlightceiling, bool highlightfloor); //mxd
void ShowThingInfo(Thing t);
void ShowVertexInfo(Vertex v);
void HideInfo();
void ShowHints(string hints); //mxd
void ClearHints(); //mxd
void RefreshInfo();
void UpdateCoordinates(Vector2D coords);
bool Focus();
void EnableProcessing();
void DisableProcessing();
void StartExclusiveMouseInput();
void StopExclusiveMouseInput();
void BreakExclusiveMouseInput();
void ResumeExclusiveMouseInput();
void SetCursor(Cursor cursor);
void MessageBeep(MessageBeepType type);
SizeF MeasureString(string text, Font font); //mxd
/// <summary>
/// This moves the focus to the editing display.
/// </summary>
bool FocusDisplay();
/// <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);
/// <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, bool addanyaction);
/// <summary>
/// This browses sector effects
/// </summary>
/// <returns>Returns the new effect or the same effect when cancelled</returns>
int BrowseSectorEffect(IWin32Window owner, int initialvalue);
/// <summary>
/// This browses sector effects
/// </summary>
/// <returns>Returns the new effect or the same effect when cancelled</returns>
int BrowseSectorEffect(IWin32Window owner, int initialvalue, bool addanyeffect);
/// <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);
/// <summary>
/// THis browses for a thing type
/// </summary>
/// <returns>Returns the new thing type or the same thing type when cancelled</returns>
int BrowseThingType(IWin32Window owner, int initialvalue);
/// <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>
Removed "Paste Properties Options" action. Added "Paste Properties Special" actions in "Classic" and "Visual" categories. They work the same way as "Paste Special" action. Added: "Copy Properties", "Paste Properties" and "Paste Properties Special" options are now shown in the Edit menu if current classic mode supports them. Changed, Paste Properties Special window: only options relevant to current map format are now displayed. Changed, Paste Properties Special window, UDMF: all UI-managed options are now available. Fixed: MAPINFO parser was unable to process "include" directives. Fixed, General interface: selection info was reset to "Nothing selected" after few seconds regardless of current selection. Fixed, Visual mode: thing bounding boxes were not updated when changing things positions using Randomize mode. Fixed, Visual mode: event lines were displayed at incorrect height when entering Visual mode for the first time. Fixed, Texture Browser window: when MixTexturesFlats Game Configuration option is disabled, textures/flats are no longer shown in the Used group when flats/textures with the same names are used in the map. Fixed(?): probably fixed an exception some users reported when trying to initialize a Classic mode after switching from Visual mode with "Sync cameras" option enabled. Changed, Game configurations, Thing Categories: a block must have at least one thing category property to be recognized as a thing category. Changed, Visplane Explorer: the plugin now outputs more info when it fails to initialize vpo.dll. Cosmetic, Thing Edit window, Doom/Hexen map format: adjusted UI layout so thing flags control no longer displays scrollbars in Hexen map format. Internal: merged methods from UDMFTools into UniFields, removed UDMFTools. Updated Inno Setup script (added VC++ 2008 SP1 distributive). Updated ZDoom_DECORATE.cfg (A_CheckBlock). Updated documentation (added "System Requirements" page).
2015-10-09 12:38:12 +00:00
void AddMenu(ToolStripItem menu);
/// <summary>
/// This adds a menu or menu item to the Doom Builder menu strip in a specific location.
/// <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>
/// <param name="section">The location where to insert the menu or item.</param>
Removed "Paste Properties Options" action. Added "Paste Properties Special" actions in "Classic" and "Visual" categories. They work the same way as "Paste Special" action. Added: "Copy Properties", "Paste Properties" and "Paste Properties Special" options are now shown in the Edit menu if current classic mode supports them. Changed, Paste Properties Special window: only options relevant to current map format are now displayed. Changed, Paste Properties Special window, UDMF: all UI-managed options are now available. Fixed: MAPINFO parser was unable to process "include" directives. Fixed, General interface: selection info was reset to "Nothing selected" after few seconds regardless of current selection. Fixed, Visual mode: thing bounding boxes were not updated when changing things positions using Randomize mode. Fixed, Visual mode: event lines were displayed at incorrect height when entering Visual mode for the first time. Fixed, Texture Browser window: when MixTexturesFlats Game Configuration option is disabled, textures/flats are no longer shown in the Used group when flats/textures with the same names are used in the map. Fixed(?): probably fixed an exception some users reported when trying to initialize a Classic mode after switching from Visual mode with "Sync cameras" option enabled. Changed, Game configurations, Thing Categories: a block must have at least one thing category property to be recognized as a thing category. Changed, Visplane Explorer: the plugin now outputs more info when it fails to initialize vpo.dll. Cosmetic, Thing Edit window, Doom/Hexen map format: adjusted UI layout so thing flags control no longer displays scrollbars in Hexen map format. Internal: merged methods from UDMFTools into UniFields, removed UDMFTools. Updated Inno Setup script (added VC++ 2008 SP1 distributive). Updated ZDoom_DECORATE.cfg (A_CheckBlock). Updated documentation (added "System Requirements" page).
2015-10-09 12:38:12 +00:00
void AddMenu(ToolStripItem menu, MenuSection section);
/// <summary>
/// This adds a menu or menu item to the speicfied group inside of "Modes" 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>
/// <param name="group">The group in the "Modes" menu in which to insert the menu.</param>
Removed "Paste Properties Options" action. Added "Paste Properties Special" actions in "Classic" and "Visual" categories. They work the same way as "Paste Special" action. Added: "Copy Properties", "Paste Properties" and "Paste Properties Special" options are now shown in the Edit menu if current classic mode supports them. Changed, Paste Properties Special window: only options relevant to current map format are now displayed. Changed, Paste Properties Special window, UDMF: all UI-managed options are now available. Fixed: MAPINFO parser was unable to process "include" directives. Fixed, General interface: selection info was reset to "Nothing selected" after few seconds regardless of current selection. Fixed, Visual mode: thing bounding boxes were not updated when changing things positions using Randomize mode. Fixed, Visual mode: event lines were displayed at incorrect height when entering Visual mode for the first time. Fixed, Texture Browser window: when MixTexturesFlats Game Configuration option is disabled, textures/flats are no longer shown in the Used group when flats/textures with the same names are used in the map. Fixed(?): probably fixed an exception some users reported when trying to initialize a Classic mode after switching from Visual mode with "Sync cameras" option enabled. Changed, Game configurations, Thing Categories: a block must have at least one thing category property to be recognized as a thing category. Changed, Visplane Explorer: the plugin now outputs more info when it fails to initialize vpo.dll. Cosmetic, Thing Edit window, Doom/Hexen map format: adjusted UI layout so thing flags control no longer displays scrollbars in Hexen map format. Internal: merged methods from UDMFTools into UniFields, removed UDMFTools. Updated Inno Setup script (added VC++ 2008 SP1 distributive). Updated ZDoom_DECORATE.cfg (A_CheckBlock). Updated documentation (added "System Requirements" page).
2015-10-09 12:38:12 +00:00
void AddModesMenu(ToolStripItem menu, string group);
/// <summary>
/// This removes a menu from the Doom Builder menu strip.
/// </summary>
/// <param name="menu">The menu to remove.</param>
Removed "Paste Properties Options" action. Added "Paste Properties Special" actions in "Classic" and "Visual" categories. They work the same way as "Paste Special" action. Added: "Copy Properties", "Paste Properties" and "Paste Properties Special" options are now shown in the Edit menu if current classic mode supports them. Changed, Paste Properties Special window: only options relevant to current map format are now displayed. Changed, Paste Properties Special window, UDMF: all UI-managed options are now available. Fixed: MAPINFO parser was unable to process "include" directives. Fixed, General interface: selection info was reset to "Nothing selected" after few seconds regardless of current selection. Fixed, Visual mode: thing bounding boxes were not updated when changing things positions using Randomize mode. Fixed, Visual mode: event lines were displayed at incorrect height when entering Visual mode for the first time. Fixed, Texture Browser window: when MixTexturesFlats Game Configuration option is disabled, textures/flats are no longer shown in the Used group when flats/textures with the same names are used in the map. Fixed(?): probably fixed an exception some users reported when trying to initialize a Classic mode after switching from Visual mode with "Sync cameras" option enabled. Changed, Game configurations, Thing Categories: a block must have at least one thing category property to be recognized as a thing category. Changed, Visplane Explorer: the plugin now outputs more info when it fails to initialize vpo.dll. Cosmetic, Thing Edit window, Doom/Hexen map format: adjusted UI layout so thing flags control no longer displays scrollbars in Hexen map format. Internal: merged methods from UDMFTools into UniFields, removed UDMFTools. Updated Inno Setup script (added VC++ 2008 SP1 distributive). Updated ZDoom_DECORATE.cfg (A_CheckBlock). Updated documentation (added "System Requirements" page).
2015-10-09 12:38:12 +00:00
void RemoveMenu(ToolStripItem menu);
/// <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>
void InvokeTaggedAction(object sender, EventArgs e);
2009-07-22 15:16:28 +00:00
/// <summary>
/// This adds a custom button to the toolbar.
/// </summary>
void AddButton(ToolStripItem button);
/// <summary>
/// This adds a custom button to a specific section in the toolbar. Note that the visibility of the button will be controlled by the user's preferences of that section!
/// </summary>
void AddButton(ToolStripItem button, ToolbarSection section);
/// <summary>
/// This adds a custom button to the Modes section in the toolbar. Note that the visibility of the button will be controlled by the user's preferences of that section!
/// </summary>
void AddModesButton(ToolStripItem toolbarButton, string group);
2009-07-22 15:16:28 +00:00
/// <summary>
/// This removes a custom button from the toolbar.
/// </summary>
void RemoveButton(ToolStripItem button);
/// <summary>
/// This suspends layouts of all toolbars, which can have buttons added/removed using AddButton() / RemoveButton().
/// </summary>
void BeginToolbarUpdate(); //mxd
/// <summary>
/// This resumes layouts of all toolbars, which can have buttons added/removed using AddButton() / RemoveButton().
/// </summary>
void EndToolbarUpdate(); //mxd
2009-07-22 15:16:28 +00:00
/// <summary>
/// This adds a docker to the side panel.
/// </summary>
void AddDocker(Docker d);
/// <summary>
/// This adds a docker to the side panel and plays notify animation when the control is collapsed
/// </summary>
void AddDocker(Docker d, bool notify); //mxd
2009-07-22 15:16:28 +00:00
/// <summary>
/// This removes a docker from the side panel.
/// </summary>
bool RemoveDocker(Docker d);
/// <summary>
/// Selects a docker in the side panel.
/// </summary>
bool SelectDocker(Docker d);
/// <summary>
/// This selected the previously selected docker in the side panel.
/// </summary>
void SelectPreviousDocker();
}
}