mirror of
https://git.do.srb2.org/STJr/ZoneBuilder.git
synced 2024-11-15 00:51:39 +00:00
201 lines
6.8 KiB
C#
201 lines
6.8 KiB
C#
|
|
#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.Windows.Forms;
|
|
using CodeImp.DoomBuilder.Map;
|
|
using CodeImp.DoomBuilder.Geometry;
|
|
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);
|
|
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);
|
|
|
|
/// <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 sector effects
|
|
/// </summary>
|
|
/// <returns>Returns the new effect or the same effect when cancelled</returns>
|
|
int BrowseSectorEffect(IWin32Window owner, int initialvalue);
|
|
|
|
/// <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>
|
|
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>
|
|
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>
|
|
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>
|
|
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);
|
|
|
|
/// <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);
|
|
|
|
/// <summary>
|
|
/// This removes a custom button from the toolbar.
|
|
/// </summary>
|
|
void RemoveButton(ToolStripItem button);
|
|
|
|
/// <summary>
|
|
/// This adds a docker to the side panel.
|
|
/// </summary>
|
|
void AddDocker(Docker d);
|
|
|
|
/// <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();
|
|
}
|
|
}
|