add proxy settings

This commit is contained in:
noisyfox
2016-06-29 18:21:11 +08:00
parent 31f6864e20
commit 2307c9515e
8 changed files with 517 additions and 1 deletions
@@ -45,7 +45,9 @@ namespace Shadowsocks.View
private MenuItem editGFWUserRuleItem;
private MenuItem editOnlinePACItem;
private MenuItem autoCheckUpdatesToggleItem;
private MenuItem proxyItem;
private ConfigForm configForm;
private ProxyForm proxyForm;
private List<LogForm> logForms = new List<LogForm>();
private bool logFormsVisible = false;
private string _urlToOpen;
@@ -211,6 +213,7 @@ namespace Shadowsocks.View
this.editGFWUserRuleItem = CreateMenuItem("Edit User Rule for GFWList...", new EventHandler(this.EditUserRuleFileForGFWListItem_Click)),
this.editOnlinePACItem = CreateMenuItem("Edit Online PAC URL...", new EventHandler(this.UpdateOnlinePACURLItem_Click)),
}),
this.proxyItem = CreateMenuItem("Proxy...", new EventHandler(this.proxyItem_Click)),
new MenuItem("-"),
this.AutoStartupItem = CreateMenuItem("Start on Boot", new EventHandler(this.AutoStartupItem_Click)),
this.ShareOverLANItem = CreateMenuItem("Allow Clients from LAN", new EventHandler(this.ShareOverLANItem_Click)),
@@ -377,6 +380,20 @@ namespace Shadowsocks.View
}
}
private void ShowProxyForm()
{
if (proxyForm != null)
{
proxyForm.Activate();
}
else
{
proxyForm = new ProxyForm(controller);
proxyForm.Show();
proxyForm.FormClosed += proxyForm_FormClosed;
}
}
private void ShowLogForms()
{
if (logForms.Count == 0)
@@ -415,6 +432,12 @@ namespace Shadowsocks.View
}
}
void proxyForm_FormClosed(object sender, FormClosedEventArgs e)
{
proxyForm = null;
Utils.ReleaseMemory(true);
}
private void Config_Click(object sender, EventArgs e)
{
ShowConfigForm();
@@ -721,5 +744,10 @@ namespace Shadowsocks.View
{
updateChecker.CheckUpdate(controller.GetConfigurationCopy());
}
private void proxyItem_Click(object sender, EventArgs e)
{
ShowProxyForm();
}
}
}