ZoneBuilder/Source/Plugins/VisplaneExplorer/InterfaceForm.cs
MaxED b02175a779 Changed, Visplane Explorer mode: calculated data is now fully reset when toggling "Open doors" option.
Changed, Visplane Explorer mode: vpo.dll is now initialized when entering the mode instead of after opening a map.
Fixed inconsistent Hexen Puzzle Gears names between game configuration and spawn numbers list.
Updated ZDoom_DECORATE.cfg (GetMissileDamage).
2023-01-06 13:22:15 +01:00

128 lines
3.1 KiB
C#

#region === Copyright (c) 2010 Pascal van der Heiden ===
using System;
using System.Drawing;
using System.Globalization;
using System.Windows.Forms;
using CodeImp.DoomBuilder.Windows;
#endregion
namespace CodeImp.DoomBuilder.Plugins.VisplaneExplorer
{
public partial class InterfaceForm : DelayedForm
{
#region ================== Constants
#endregion
#region ================== mxd. Event handlers
public event EventHandler OnOpenDoorsChanged;
#endregion
#region ================== Variables
private ViewStats viewstats;
private Point oldttposition;
#endregion
#region ================== Properties
internal ViewStats ViewStats { get { return viewstats; } }
internal bool OpenDoors { get { return cbopendoors.Checked; } } //mxd
internal bool ShowHeatmap { get { return cbheatmap.Checked; } } //mxd
#endregion
#region ================== Constructor / Destructor
// Constructor
public InterfaceForm()
{
InitializeComponent();
cbopendoors.Checked = General.Settings.ReadPluginSetting("opendoors", false); //mxd
cbheatmap.Checked = General.Settings.ReadPluginSetting("showheatmap", false); //mxd
}
#endregion
#region ================== Methods
// This adds the buttons to the toolbar
public void AddToInterface()
{
General.Interface.AddButton(statsbutton);
General.Interface.AddButton(separator); //mxd
General.Interface.AddButton(cbopendoors); //mxd
General.Interface.AddButton(cbheatmap); //mxd
}
// This removes the buttons from the toolbar
public void RemoveFromInterface()
{
General.Interface.RemoveButton(cbheatmap); //mxd
General.Interface.RemoveButton(cbopendoors); //mxd
General.Interface.RemoveButton(separator); //mxd
General.Interface.RemoveButton(statsbutton);
//mxd. Save settings
General.Settings.WritePluginSetting("opendoors", cbopendoors.Checked);
General.Settings.WritePluginSetting("showheatmap", cbheatmap.Checked);
}
// This shows a tooltip
public void ShowTooltip(string text, Point p)
{
Point sp = General.Interface.Display.PointToScreen(p);
Point fp = (General.Interface as Form).Location;
Point tp = new Point(sp.X - fp.X, sp.Y - fp.Y);
if(oldttposition != tp)
{
tooltip.Show(text, General.Interface, tp);
oldttposition = tp;
}
}
// This hides the tooltip
public void HideTooltip()
{
tooltip.Hide(General.Interface);
}
#endregion
#region ================== Events
// Selecting a type of stats to view
private void stats_Click(object sender, EventArgs e)
{
foreach(ToolStripMenuItem i in statsbutton.DropDownItems)
i.Checked = false;
ToolStripMenuItem item = (ToolStripMenuItem)sender;
viewstats = (ViewStats)int.Parse(item.Tag.ToString(), CultureInfo.InvariantCulture);
item.Checked = true;
statsbutton.Image = item.Image;
General.Interface.RedrawDisplay();
}
//mxd
private void cbheatmap_Click(object sender, EventArgs e)
{
General.Interface.RedrawDisplay();
}
//mxd
private void cbopendoors_Click(object sender, EventArgs e)
{
if(OnOpenDoorsChanged != null) OnOpenDoorsChanged(this, EventArgs.Empty);
}
#endregion
}
}