Browse Source

enhance: Combine enable system proxy and proxy mode as one switcher for better user experience.

tags/4.1.6
Kevin2Law 6 years ago
parent
commit
948457fd52
1 changed files with 41 additions and 22 deletions
  1. +41
    -22
      shadowsocks-csharp/View/MenuViewController.cs

+ 41
- 22
shadowsocks-csharp/View/MenuViewController.cs View File

@@ -1,5 +1,4 @@
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Drawing;
using System.Drawing.Imaging;
@@ -33,8 +32,7 @@ namespace Shadowsocks.View
private bool _isFirstRun;
private bool _isStartupChecking;
private MenuItem enableItem;
private MenuItem modeItem;
private MenuItem disableItem;
private MenuItem AutoStartupItem;
private MenuItem ShareOverLANItem;
private MenuItem SeperatorItem;
@@ -99,7 +97,7 @@ namespace Shadowsocks.View
_isFirstRun = true;
ShowConfigForm();
}
else if(config.autoCheckUpdate)
else if (config.autoCheckUpdate)
{
_isStartupChecking = true;
updateChecker.CheckUpdate(config, 3000);
@@ -217,9 +215,9 @@ namespace Shadowsocks.View
{
Color flyBlue = Color.FromArgb(25, 125, 191);
// Multiply with flyBlue
int red = color.R * flyBlue.R / 255;
int green = color.G * flyBlue.G / 255;
int blue = color.B * flyBlue.B / 255;
int red = color.R * flyBlue.R / 255;
int green = color.G * flyBlue.G / 255;
int blue = color.B * flyBlue.B / 255;
iconCopy.SetPixel(x, y, Color.FromArgb(color.A, red, green, blue));
}
}
@@ -262,8 +260,8 @@ namespace Shadowsocks.View
private void LoadMenu()
{
this.contextMenu1 = new ContextMenu(new MenuItem[] {
this.enableItem = CreateMenuItem("Enable System Proxy", new EventHandler(this.EnableItem_Click)),
this.modeItem = CreateMenuGroup("Mode", new MenuItem[] {
CreateMenuGroup("System Proxy", new MenuItem[] {
this.disableItem = CreateMenuItem("Disable", new EventHandler(this.EnableItem_Click)),
this.PACModeItem = CreateMenuItem("PAC", new EventHandler(this.PACModeItem_Click)),
this.globalModeItem = CreateMenuItem("Global", new EventHandler(this.GlobalModeItem_Click))
}),
@@ -319,8 +317,7 @@ namespace Shadowsocks.View
private void controller_EnableStatusChanged(object sender, EventArgs e)
{
enableItem.Checked = controller.GetConfigurationCopy().enabled;
modeItem.Enabled = enableItem.Checked;
disableItem.Checked = !controller.GetConfigurationCopy().enabled;
}
void controller_ShareOverLANStatusChanged(object sender, EventArgs e)
@@ -328,7 +325,8 @@ namespace Shadowsocks.View
ShareOverLANItem.Checked = controller.GetConfigurationCopy().shareOverLan;
}
void controller_VerboseLoggingStatusChanged(object sender, EventArgs e) {
void controller_VerboseLoggingStatusChanged(object sender, EventArgs e)
{
VerboseLoggingToggleItem.Checked = controller.GetConfigurationCopy().isVerboseLogging;
}
@@ -405,10 +403,7 @@ namespace Shadowsocks.View
{
Configuration config = controller.GetConfigurationCopy();
UpdateServersMenu();
enableItem.Checked = config.enabled;
modeItem.Enabled = config.enabled;
globalModeItem.Checked = config.global;
PACModeItem.Checked = !config.global;
UpdateSystemProxyItemsEnabledStatus(config);
ShareOverLANItem.Checked = config.shareOverLan;
VerboseLoggingToggleItem.Checked = config.isVerboseLogging;
AutoStartupItem.Checked = AutoStartup.Check();
@@ -437,7 +432,7 @@ namespace Shadowsocks.View
}
// user wants a seperator item between strategy and servers menugroup
items.Add( i++, new MenuItem("-") );
items.Add(i++, new MenuItem("-"));
int strategyCount = i;
Configuration configuration = controller.GetConfigurationCopy();
@@ -588,7 +583,7 @@ namespace Shadowsocks.View
private void notifyIcon1_Click(object sender, MouseEventArgs e)
{
if ( e.Button == MouseButtons.Middle )
if (e.Button == MouseButtons.Middle)
{
ShowLogForm();
}
@@ -604,17 +599,40 @@ namespace Shadowsocks.View
private void EnableItem_Click(object sender, EventArgs e)
{
controller.ToggleEnable(!enableItem.Checked);
controller.ToggleEnable(false);
Configuration config = controller.GetConfigurationCopy();
UpdateSystemProxyItemsEnabledStatus(config);
}
private void UpdateSystemProxyItemsEnabledStatus(Configuration config)
{
disableItem.Checked = !config.enabled;
if (!config.enabled)
{
globalModeItem.Checked = false;
PACModeItem.Checked = false;
}
else
{
globalModeItem.Checked = config.global;
PACModeItem.Checked = !config.global;
}
}
private void GlobalModeItem_Click(object sender, EventArgs e)
{
controller.ToggleEnable(true);
controller.ToggleGlobal(true);
Configuration config = controller.GetConfigurationCopy();
UpdateSystemProxyItemsEnabledStatus(config);
}
private void PACModeItem_Click(object sender, EventArgs e)
{
controller.ToggleEnable(true);
controller.ToggleGlobal(false);
Configuration config = controller.GetConfigurationCopy();
UpdateSystemProxyItemsEnabledStatus(config);
}
private void ShareOverLANItem_Click(object sender, EventArgs e)
@@ -650,9 +668,10 @@ namespace Shadowsocks.View
controller.SelectStrategy((string)item.Tag);
}
private void VerboseLoggingToggleItem_Click( object sender, EventArgs e ) {
VerboseLoggingToggleItem.Checked = ! VerboseLoggingToggleItem.Checked;
controller.ToggleVerboseLogging( VerboseLoggingToggleItem.Checked );
private void VerboseLoggingToggleItem_Click(object sender, EventArgs e)
{
VerboseLoggingToggleItem.Checked = !VerboseLoggingToggleItem.Checked;
controller.ToggleVerboseLogging(VerboseLoggingToggleItem.Checked);
}
private void StatisticsConfigItem_Click(object sender, EventArgs e)


Loading…
Cancel
Save