211 lines
8.8 KiB
C#
211 lines
8.8 KiB
C#
using System.ComponentModel;
|
|||
|
|
using System.Drawing;
|
||
|
|
using System.IO;
|
||
|
|
using System.Windows.Forms;
|
||
|
|
using MaterialSkin;
|
||
|
|
using MaterialSkin.Controls;
|
||
|
|
using Newtonsoft.Json;
|
||
|
|
using Server.Data;
|
||
|
|
|
||
|
|
namespace Server.Helper;
|
||
|
|
|
||
|
|
public class FormMaterial : MaterialForm
|
||
|
|
{
|
||
|
|
public static Color PrimaryColor;
|
||
|
|
|
||
|
|
private IContainer components;
|
||
|
|
|
||
|
|
public FormMaterial()
|
||
|
|
{
|
||
|
|
InitializeComponent();
|
||
|
|
MaterialSkinManager instance = MaterialSkinManager.Instance;
|
||
|
|
instance.ColorSchemeChanged += delegate
|
||
|
|
{
|
||
|
|
Refresh();
|
||
|
|
};
|
||
|
|
if (File.Exists("local\\Settings.json"))
|
||
|
|
{
|
||
|
|
Settings settings = JsonConvert.DeserializeObject<Settings>(File.ReadAllText("local\\Settings.json"));
|
||
|
|
GetColorScheme(settings.Style, instance);
|
||
|
|
// Apply theme setting
|
||
|
|
if (settings.Theme == 1)
|
||
|
|
{
|
||
|
|
instance.Theme = MaterialSkinManager.Themes.DARK;
|
||
|
|
}
|
||
|
|
else
|
||
|
|
{
|
||
|
|
instance.Theme = MaterialSkinManager.Themes.LIGHT;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
else
|
||
|
|
{
|
||
|
|
GetColorScheme(Randomizer.random.Next(15), instance);
|
||
|
|
instance.Theme = MaterialSkinManager.Themes.LIGHT;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
public static void GetColorScheme(int index, MaterialSkinManager materialSkinManager)
|
||
|
|
{
|
||
|
|
switch (index % 20) // Increased to 20 for more themes
|
||
|
|
{
|
||
|
|
case 0:
|
||
|
|
PrimaryColor = ToColor(9315498);
|
||
|
|
break;
|
||
|
|
case 1:
|
||
|
|
PrimaryColor = ToColor(2001125);
|
||
|
|
break;
|
||
|
|
case 2:
|
||
|
|
PrimaryColor = ToColor(15022389);
|
||
|
|
break;
|
||
|
|
case 3:
|
||
|
|
PrimaryColor = ToColor(4431943);
|
||
|
|
break;
|
||
|
|
case 4:
|
||
|
|
PrimaryColor = ToColor(16485376);
|
||
|
|
break;
|
||
|
|
case 5:
|
||
|
|
PrimaryColor = ToColor(16635957);
|
||
|
|
break;
|
||
|
|
case 6:
|
||
|
|
PrimaryColor = ToColor(6174129);
|
||
|
|
break;
|
||
|
|
case 7:
|
||
|
|
PrimaryColor = ToColor(35195);
|
||
|
|
break;
|
||
|
|
case 8:
|
||
|
|
PrimaryColor = ToColor(44225);
|
||
|
|
break;
|
||
|
|
case 9:
|
||
|
|
PrimaryColor = ToColor(236517);
|
||
|
|
break;
|
||
|
|
case 10:
|
||
|
|
PrimaryColor = ToColor(12634675);
|
||
|
|
break;
|
||
|
|
case 11:
|
||
|
|
PrimaryColor = ToColor(3754411);
|
||
|
|
break;
|
||
|
|
case 12:
|
||
|
|
PrimaryColor = ToColor(16011550);
|
||
|
|
break;
|
||
|
|
case 13:
|
||
|
|
PrimaryColor = ToColor(16757504);
|
||
|
|
break;
|
||
|
|
case 14:
|
||
|
|
PrimaryColor = ToColor(14162784);
|
||
|
|
break;
|
||
|
|
case 15:
|
||
|
|
PrimaryColor = ToColor(8172354);
|
||
|
|
break;
|
||
|
|
// New dark themes
|
||
|
|
case 16:
|
||
|
|
PrimaryColor = ToColor(2236962); // Dark Blue
|
||
|
|
break;
|
||
|
|
case 17:
|
||
|
|
PrimaryColor = ToColor(3355443); // Dark Green
|
||
|
|
break;
|
||
|
|
case 18:
|
||
|
|
PrimaryColor = ToColor(5592405); // Dark Purple
|
||
|
|
break;
|
||
|
|
case 19:
|
||
|
|
PrimaryColor = ToColor(1118481); // Dark Gray
|
||
|
|
break;
|
||
|
|
default:
|
||
|
|
PrimaryColor = ToColor(9315498);
|
||
|
|
break;
|
||
|
|
}
|
||
|
|
switch (index % 20)
|
||
|
|
{
|
||
|
|
case 0:
|
||
|
|
materialSkinManager.ColorScheme = new ColorScheme(Primary.Purple600, Primary.Purple700, Primary.Purple800, Accent.Purple200, TextShade.WHITE);
|
||
|
|
break;
|
||
|
|
case 1:
|
||
|
|
materialSkinManager.ColorScheme = new ColorScheme(Primary.Blue600, Primary.Blue700, Primary.Blue800, Accent.Blue200, TextShade.WHITE);
|
||
|
|
break;
|
||
|
|
case 2:
|
||
|
|
materialSkinManager.ColorScheme = new ColorScheme(Primary.Red600, Primary.Red700, Primary.Red800, Accent.Red200, TextShade.WHITE);
|
||
|
|
break;
|
||
|
|
case 3:
|
||
|
|
materialSkinManager.ColorScheme = new ColorScheme(Primary.Green600, Primary.Green700, Primary.Green800, Accent.Green200, TextShade.WHITE);
|
||
|
|
break;
|
||
|
|
case 4:
|
||
|
|
materialSkinManager.ColorScheme = new ColorScheme(Primary.Orange600, Primary.Orange700, Primary.Orange800, Accent.Orange200, TextShade.WHITE);
|
||
|
|
break;
|
||
|
|
case 5:
|
||
|
|
materialSkinManager.ColorScheme = new ColorScheme(Primary.Yellow600, Primary.Yellow700, Primary.Yellow800, Accent.Yellow200, TextShade.WHITE);
|
||
|
|
break;
|
||
|
|
case 6:
|
||
|
|
materialSkinManager.ColorScheme = new ColorScheme(Primary.DeepPurple600, Primary.DeepPurple700, Primary.DeepPurple800, Accent.DeepPurple200, TextShade.WHITE);
|
||
|
|
break;
|
||
|
|
case 7:
|
||
|
|
materialSkinManager.ColorScheme = new ColorScheme(Primary.Teal600, Primary.Teal700, Primary.Teal800, Accent.Teal200, TextShade.WHITE);
|
||
|
|
break;
|
||
|
|
case 8:
|
||
|
|
materialSkinManager.ColorScheme = new ColorScheme(Primary.Cyan600, Primary.Cyan700, Primary.Cyan800, Accent.Cyan200, TextShade.WHITE);
|
||
|
|
break;
|
||
|
|
case 9:
|
||
|
|
materialSkinManager.ColorScheme = new ColorScheme(Primary.LightBlue600, Primary.LightBlue700, Primary.LightBlue800, Accent.LightBlue200, TextShade.WHITE);
|
||
|
|
break;
|
||
|
|
case 10:
|
||
|
|
materialSkinManager.ColorScheme = new ColorScheme(Primary.Lime600, Primary.Lime700, Primary.Lime800, Accent.Lime200, TextShade.WHITE);
|
||
|
|
break;
|
||
|
|
case 11:
|
||
|
|
materialSkinManager.ColorScheme = new ColorScheme(Primary.Indigo600, Primary.Indigo700, Primary.Indigo800, Accent.Indigo200, TextShade.WHITE);
|
||
|
|
break;
|
||
|
|
case 12:
|
||
|
|
materialSkinManager.ColorScheme = new ColorScheme(Primary.DeepOrange600, Primary.DeepOrange700, Primary.DeepOrange800, Accent.DeepOrange200, TextShade.WHITE);
|
||
|
|
break;
|
||
|
|
case 13:
|
||
|
|
materialSkinManager.ColorScheme = new ColorScheme(Primary.Amber600, Primary.Amber700, Primary.Amber800, Accent.Amber200, TextShade.WHITE);
|
||
|
|
break;
|
||
|
|
case 14:
|
||
|
|
materialSkinManager.ColorScheme = new ColorScheme(Primary.Pink600, Primary.Pink700, Primary.Pink800, Accent.Pink200, TextShade.WHITE);
|
||
|
|
break;
|
||
|
|
case 15:
|
||
|
|
materialSkinManager.ColorScheme = new ColorScheme(Primary.LightGreen600, Primary.LightGreen700, Primary.LightGreen800, Accent.LightGreen200, TextShade.WHITE);
|
||
|
|
break;
|
||
|
|
// New dark themes - ČŃĎĐŔÂËĹÍÎ ÇÄĹŃÜ
|
||
|
|
case 16:
|
||
|
|
materialSkinManager.ColorScheme = new ColorScheme(Primary.BlueGrey600, Primary.BlueGrey700, Primary.BlueGrey800, Accent.LightBlue200, TextShade.WHITE);
|
||
|
|
break;
|
||
|
|
case 17:
|
||
|
|
materialSkinManager.ColorScheme = new ColorScheme(Primary.Brown600, Primary.Brown700, Primary.Brown800, Accent.Amber200, TextShade.WHITE);
|
||
|
|
break;
|
||
|
|
case 18:
|
||
|
|
materialSkinManager.ColorScheme = new ColorScheme(Primary.Grey600, Primary.Grey700, Primary.Grey800, Accent.LightBlue200, TextShade.WHITE);
|
||
|
|
break;
|
||
|
|
case 19:
|
||
|
|
materialSkinManager.ColorScheme = new ColorScheme(Primary.BlueGrey800, Primary.BlueGrey900, Primary.BlueGrey900, Accent.LightBlue200, TextShade.WHITE);
|
||
|
|
break;
|
||
|
|
default:
|
||
|
|
materialSkinManager.ColorScheme = new ColorScheme(Primary.Purple600, Primary.Purple700, Primary.Purple800, Accent.Purple200, TextShade.WHITE);
|
||
|
|
break;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
private static Color ToColor(int argb)
|
||
|
|
{
|
||
|
|
return Color.FromArgb((argb & 0xFF0000) >> 16, (argb & 0xFF00) >> 8, argb & 0xFF);
|
||
|
|
}
|
||
|
|
|
||
|
|
protected override void Dispose(bool disposing)
|
||
|
|
{
|
||
|
|
if (disposing && components != null)
|
||
|
|
{
|
||
|
|
components.Dispose();
|
||
|
|
}
|
||
|
|
base.Dispose(disposing);
|
||
|
|
}
|
||
|
|
|
||
|
|
private void InitializeComponent()
|
||
|
|
{
|
||
|
|
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Server.Helper.FormMaterial));
|
||
|
|
base.SuspendLayout();
|
||
|
|
base.AutoScaleDimensions = new System.Drawing.SizeF(6f, 13f);
|
||
|
|
base.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||
|
|
base.ClientSize = new System.Drawing.Size(800, 450);
|
||
|
|
base.Icon = (System.Drawing.Icon)resources.GetObject("$this.Icon");
|
||
|
|
base.Name = "FormMaterial";
|
||
|
|
this.Text = "FormMaterial";
|
||
|
|
base.ResumeLayout(false);
|
||
|
|
}
|
||
|
|
}
|