|
|
@@ -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)
|
|
|
|