mirror of
				https://github.com/bolucat/Archive.git
				synced 2025-10-31 11:57:05 +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
 | |
| 
 | |
|     }
 | |
| }
 | 
![github-action[bot]](/assets/img/avatar_default.png)