Files
netch/Netch/ServerEx/VMess/Form/VMessForm.cs
2020-09-26 15:00:18 +08:00

97 lines
4.2 KiB
C#

using System;
using System.Windows.Forms;
using Netch.Models;
using Netch.Utils;
namespace Netch.ServerEx.VMess.Form
{
public partial class VMessForm : System.Windows.Forms.Form
{
private static VMess _server;
public VMessForm(Server server = default)
{
InitializeComponent();
_server = (VMess) server ?? new VMess();
}
private void ComboBox_DrawItem(object sender, DrawItemEventArgs e)
{
Utils.Utils.DrawCenterComboBox(sender, e);
}
private void VMess_Load(object sender, EventArgs e)
{
#region InitText
ConfigurationGroupBox.Text = i18N.Translate(ConfigurationGroupBox.Text);
RemarkLabel.Text = i18N.Translate(RemarkLabel.Text);
AddressLabel.Text = i18N.Translate(AddressLabel.Text);
UserIDLabel.Text = i18N.Translate(UserIDLabel.Text);
AlterIDLabel.Text = i18N.Translate(AlterIDLabel.Text);
EncryptMethodLabel.Text = i18N.Translate(EncryptMethodLabel.Text);
TransferProtocolLabel.Text = i18N.Translate(TransferProtocolLabel.Text);
FakeTypeLabel.Text = i18N.Translate(FakeTypeLabel.Text);
HostLabel.Text = i18N.Translate(HostLabel.Text);
PathLabel.Text = i18N.Translate(PathLabel.Text);
QUICSecurityLabel.Text = i18N.Translate(QUICSecurityLabel.Text);
QUICSecretLabel.Text = i18N.Translate(QUICSecretLabel.Text);
TLSSecureCheckBox.Text = i18N.Translate(TLSSecureCheckBox.Text);
UseMuxCheckBox.Text = i18N.Translate(UseMuxCheckBox.Text);
ControlButton.Text = i18N.Translate(ControlButton.Text);
EncryptMethodComboBox.Items.AddRange(VMessGlobal.EncryptMethods.ToArray());
TransferProtocolComboBox.Items.AddRange(VMessGlobal.TransferProtocols.ToArray());
FakeTypeComboBox.Items.AddRange(VMessGlobal.FakeTypes.ToArray());
QUICSecurityComboBox.Items.AddRange(VMessGlobal.QUIC.ToArray());
#endregion
RemarkTextBox.Text = _server.Remark;
AddressTextBox.Text = _server.Hostname;
PortTextBox.Text = _server.Port.ToString();
UserIDTextBox.Text = _server.UserID;
AlterIDTextBox.Text = _server.AlterID.ToString();
EncryptMethodComboBox.SelectedIndex = VMessGlobal.EncryptMethods.IndexOf(_server.EncryptMethod);
TransferProtocolComboBox.SelectedIndex = VMessGlobal.TransferProtocols.IndexOf(_server.TransferProtocol);
FakeTypeComboBox.SelectedIndex = VMessGlobal.FakeTypes.IndexOf(_server.FakeType);
HostTextBox.Text = _server.Host;
PathTextBox.Text = _server.Path;
QUICSecurityComboBox.SelectedIndex = VMessGlobal.QUIC.IndexOf(_server.QUICSecure);
QUICSecretTextBox.Text = _server.QUICSecret;
TLSSecureCheckBox.Checked = _server.TLSSecure;
UseMuxCheckBox.Checked = _server.UseMux;
}
private void ControlButton_Click(object sender, EventArgs e)
{
if (!ushort.TryParse(PortTextBox.Text, out var port)) return;
if (!int.TryParse(AlterIDTextBox.Text, out var alterId)) return;
_server.Remark = RemarkTextBox.Text;
_server.Type = "VMess";
_server.Hostname = AddressTextBox.Text;
_server.Port = port;
_server.UserID = UserIDTextBox.Text;
_server.AlterID = alterId;
_server.EncryptMethod = EncryptMethodComboBox.Text;
_server.TransferProtocol = TransferProtocolComboBox.Text;
_server.FakeType = FakeTypeComboBox.Text;
_server.Host = HostTextBox.Text;
_server.Path = PathTextBox.Text;
_server.QUICSecure = QUICSecurityComboBox.Text;
_server.QUICSecret = QUICSecretTextBox.Text;
_server.TLSSecure = TLSSecureCheckBox.Checked;
_server.UseMux = UseMuxCheckBox.Checked;
_server.Country = null;
if (Global.Settings.Server.IndexOf(_server) == -1)
Global.Settings.Server.Add(_server);
MessageBoxX.Show(i18N.Translate("Saved"));
Close();
}
}
}