90 lines
1.4 KiB
C#
90 lines
1.4 KiB
C#
using System.Drawing;
|
|
using Newtonsoft.Json;
|
|
|
|
namespace BizHawk.Client.Common
|
|
{
|
|
public class ToolDialogSettings
|
|
{
|
|
private int? _wndx = null;
|
|
private int? _wndy = null;
|
|
|
|
public ToolDialogSettings()
|
|
{
|
|
SaveWindowPosition = true;
|
|
FloatingWindow = true;
|
|
}
|
|
|
|
[JsonIgnore]
|
|
public int? Wndx
|
|
{
|
|
get { return _wndx; }
|
|
set
|
|
{
|
|
if (value != -32000)
|
|
{
|
|
_wndx = value;
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
[JsonIgnore]
|
|
public int? Wndy
|
|
{
|
|
get { return _wndy; }
|
|
set
|
|
{
|
|
if (value != -32000)
|
|
{
|
|
_wndy = value;
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
public int? Width { get; set; }
|
|
public int? Height { get; set; }
|
|
|
|
public bool SaveWindowPosition { get; set; }
|
|
public bool TopMost { get; set; }
|
|
public bool FloatingWindow { get; set; }
|
|
|
|
[JsonIgnore]
|
|
public bool UseWindowPosition
|
|
{
|
|
get
|
|
{
|
|
return SaveWindowPosition && Wndx.HasValue && Wndy.HasValue
|
|
&& Wndx != -32000 && Wndy != -32000; // Windows OS annoyance, this is saved if the tool was minimized when closing
|
|
}
|
|
}
|
|
|
|
[JsonIgnore]
|
|
public bool UseWindowSize
|
|
{
|
|
get
|
|
{
|
|
return SaveWindowPosition && Width.HasValue && Height.HasValue;
|
|
}
|
|
}
|
|
|
|
[JsonIgnore]
|
|
public Point WindowPosition
|
|
{
|
|
get
|
|
{
|
|
return new Point(Wndx ?? 0, Wndy ?? 0);
|
|
}
|
|
}
|
|
|
|
[JsonIgnore]
|
|
public Size WindowSize
|
|
{
|
|
get
|
|
{
|
|
return new Size(Width ?? 0, Height ?? 0);
|
|
}
|
|
}
|
|
}
|
|
}
|