2009-04-19 18:07:22 +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.Generic ;
2016-03-30 23:25:03 +00:00
using System.Drawing ;
2009-04-19 18:07:22 +00:00
using System.Windows.Forms ;
using CodeImp.DoomBuilder.Map ;
using CodeImp.DoomBuilder.Geometry ;
2009-07-22 15:16:28 +00:00
using CodeImp.DoomBuilder.Controls ;
2009-04-19 18:07:22 +00:00
#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 ; }
2014-10-13 22:01:17 +00:00
string ActiveDockerTabName { get ; } //mxd
2009-08-21 14:11:18 +00:00
RenderTargetControl Display { get ; }
2013-07-08 13:13:28 +00:00
//mxd. Events
event EventHandler OnEditFormValuesChanged ;
2009-04-19 18:07:22 +00:00
// 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
2009-04-19 18:07:22 +00:00
DialogResult ShowEditLinedefs ( ICollection < Linedef > lines ) ;
2015-06-15 09:50:22 +00:00
DialogResult ShowEditLinedefs ( ICollection < Linedef > lines , bool selectfront , bool selectback ) ; //mxd
2009-04-19 18:07:22 +00:00
DialogResult ShowEditSectors ( ICollection < Sector > sectors ) ;
DialogResult ShowEditThings ( ICollection < Thing > things ) ;
void ShowLinedefInfo ( Linedef l ) ;
2015-02-25 19:59:17 +00:00
void ShowLinedefInfo ( Linedef l , Sidedef highlightside ) ; //mxd
2009-04-19 18:07:22 +00:00
void ShowSectorInfo ( Sector s ) ;
Fixed(?), Texture Browser: possibly fixed Texture Browser not showing up / locking edit forms when current map has a ton of textures (like 2000 or more) in a single texture group.
Changed, cosmetic, Sector Info panel, Visual mode: info about currently highlighted surface is now shown using different color.
Changed, cosmetic, Linedef Info panel, Visual mode, non-UDMF: texture offset labels for currently highlighted sidedef are now shown using different color.
Changed, cosmetic, Vertex Info panel, UDMF: floor and ceiling offset labels are now grayed out when they have default values.
2015-03-23 22:39:31 +00:00
void ShowSectorInfo ( Sector s , bool highlightceiling , bool highlightfloor ) ; //mxd
2009-04-19 18:07:22 +00:00
void ShowThingInfo ( Thing t ) ;
void ShowVertexInfo ( Vertex v ) ;
void HideInfo ( ) ;
2014-01-23 13:36:51 +00:00
void ShowHints ( string hints ) ; //mxd
void ClearHints ( ) ; //mxd
2009-04-19 18:07:22 +00:00
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 ) ;
2016-03-30 23:25:03 +00:00
SizeF MeasureString ( string text , Font font ) ; //mxd
2009-07-23 05:09:53 +00:00
/// <summary>
/// This moves the focus to the editing display.
/// </summary>
bool FocusDisplay ( ) ;
2009-04-19 18:07:22 +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 ) ;
2016-02-21 00:11:09 +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 , bool addanyaction ) ;
2009-04-19 18:07:22 +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 ) ;
2016-02-21 00:11:09 +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 , bool addanyeffect ) ;
2009-04-19 18:07:22 +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 ) ;
/// <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 ) ;
2009-04-19 18:07:22 +00:00
2010-08-23 09:58:30 +00:00
/// <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 ) ;
2014-02-26 14:11:06 +00:00
/// <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 ) ;
2010-08-23 09:58:30 +00:00
2009-04-19 18:07:22 +00:00
/// <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 ) ;
2009-04-19 18:07:22 +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>
void InvokeTaggedAction ( object sender , EventArgs e ) ;
2009-07-22 15:16:28 +00:00
/// <summary>
/// This adds a custom button to the toolbar.
/// </summary>
2009-04-19 18:07:22 +00:00
void AddButton ( ToolStripItem button ) ;
2010-08-22 20:56:52 +00:00
/// <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 ) ;
2014-02-26 14:11:06 +00:00
/// <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>
2009-04-19 18:07:22 +00:00
void RemoveButton ( ToolStripItem button ) ;
2016-04-04 22:20:49 +00:00
/// <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 ) ;
2016-04-15 14:24:18 +00:00
/// <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 ( ) ;
2009-04-19 18:07:22 +00:00
}
}