mirror of
https://github.com/bolucat/Archive.git
synced 2025-11-02 20:54:04 +08:00
95 lines
2.5 KiB
C#
95 lines
2.5 KiB
C#
using System;
|
|
using System.Drawing;
|
|
using System.Windows.Forms;
|
|
using Newtonsoft.Json;
|
|
|
|
namespace Shadowsocks.Model
|
|
{
|
|
[Serializable]
|
|
public class LogViewerConfig
|
|
{
|
|
public bool topMost;
|
|
public bool wrapText;
|
|
public bool toolbarShown;
|
|
|
|
public Font Font { get; set; } = new Font("Consolas", 8F);
|
|
|
|
public Color BackgroundColor { get; set; } = Color.Black;
|
|
|
|
public Color TextColor { get; set; } = Color.White;
|
|
|
|
public LogViewerConfig()
|
|
{
|
|
topMost = false;
|
|
wrapText = false;
|
|
toolbarShown = false;
|
|
}
|
|
|
|
|
|
#region Size
|
|
|
|
public void SaveSize()
|
|
{
|
|
Properties.Settings.Default.Save();
|
|
}
|
|
|
|
[JsonIgnore]
|
|
public int Width
|
|
{
|
|
get { return Properties.Settings.Default.LogViewerWidth; }
|
|
set { Properties.Settings.Default.LogViewerWidth = value; }
|
|
}
|
|
|
|
[JsonIgnore]
|
|
public int Height
|
|
{
|
|
get { return Properties.Settings.Default.LogViewerHeight; }
|
|
set { Properties.Settings.Default.LogViewerHeight = value; }
|
|
}
|
|
[JsonIgnore]
|
|
public int Top
|
|
{
|
|
get { return Properties.Settings.Default.LogViewerTop; }
|
|
set { Properties.Settings.Default.LogViewerTop = value; }
|
|
}
|
|
[JsonIgnore]
|
|
public int Left
|
|
{
|
|
get { return Properties.Settings.Default.LogViewerLeft; }
|
|
set { Properties.Settings.Default.LogViewerLeft = value; }
|
|
}
|
|
[JsonIgnore]
|
|
public bool Maximized
|
|
{
|
|
get { return Properties.Settings.Default.LogViewerMaximized; }
|
|
set { Properties.Settings.Default.LogViewerMaximized = value; }
|
|
}
|
|
|
|
[JsonIgnore]
|
|
// Use GetBestTop() and GetBestLeft() to ensure the log viwer form can be always display IN screen.
|
|
public int BestLeft
|
|
{
|
|
get
|
|
{
|
|
int width = Width;
|
|
width = (width >= 400) ? width : 400; // set up the minimum size
|
|
return Screen.PrimaryScreen.WorkingArea.Width - width;
|
|
}
|
|
}
|
|
|
|
[JsonIgnore]
|
|
public int BestTop
|
|
{
|
|
get
|
|
{
|
|
int height = Height;
|
|
height = (height >= 200) ? height : 200; // set up the minimum size
|
|
return Screen.PrimaryScreen.WorkingArea.Height - height;
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
}
|
|
}
|