BetterDiscordApp-v1/Installers/dotNet2/BetterDiscordWI/BetterDiscordWI/FormMain.cs

72 lines
2.1 KiB
C#

using System;
using System.Drawing;
using System.Windows.Forms;
using BetterDiscordWI.panels;
namespace BetterDiscordWI {
public partial class FormMain : Form {
private readonly IPanel[] _panels = { new LicensePanel(), new ConfigPanel(), new InstallPanel() };
private int _currentPanel;
public string DiscordPath = null;
public bool RestartDiscord = true;
public bool Stable = true, Canary, Ptb;
public FormMain() {
InitializeComponent();
foreach (var panel in _panels) {
panel.SetForm(this);
panel.Control.Dock = DockStyle.Fill;
panelDock.Controls.Add(panel.Control);
}
SwitchPanel(0);
}
public void SetTitle(string title) => lblTitle.Text = title;
public void SwitchPanel(int index) {
_currentPanel = index;
foreach (var panel in _panels) { panel.HidePanel(); }
SetTitle($"BetterDiscord {_panels[index].Title}");
_panels[index].ShowPanel();
}
private readonly Pen _borderPen = new Pen(Color.FromArgb(160, 160, 160));
protected override void OnPaint(PaintEventArgs e) {
base.OnPaint(e);
var g = e.Graphics;
g.FillRectangle(SystemBrushes.Window, new Rectangle(0, 0, Width, 85));
g.DrawLine(_borderPen, 0, 85, Width, 85);
g.DrawLine(SystemPens.Window, 0, 86, Width, 86);
g.DrawLine(_borderPen, 0, 445, Width, 445);
g.DrawLine(SystemPens.Window, 0, 446, Width, 446);
}
private void btnNext_Click(object sender, EventArgs e) {
_currentPanel++;
SwitchPanel(_currentPanel);
}
private void btnCancel_Click(object sender, EventArgs e) {
Application.Exit();
}
private void btnBack_Click(object sender, EventArgs e) {
_currentPanel--;
SwitchPanel(_currentPanel);
}
public void Fail() {
btnCancel.ShowEnable();
btnNext.ShowDisable();
btnBack.ShowEnable();
}
}
}