1
1
using System ;
2
- using System . Collections . Generic ;
3
2
using System . Diagnostics ;
4
3
using System . Drawing ;
5
4
using System . Drawing . Imaging ;
@@ -33,8 +32,7 @@ public class MenuViewController
33
32
34
33
private bool _isFirstRun ;
35
34
private bool _isStartupChecking ;
36
- private MenuItem enableItem ;
37
- private MenuItem modeItem ;
35
+ private MenuItem disableItem ;
38
36
private MenuItem AutoStartupItem ;
39
37
private MenuItem ShareOverLANItem ;
40
38
private MenuItem SeperatorItem ;
@@ -99,7 +97,7 @@ public MenuViewController(ShadowsocksController controller)
99
97
_isFirstRun = true ;
100
98
ShowConfigForm ( ) ;
101
99
}
102
- else if ( config . autoCheckUpdate )
100
+ else if ( config . autoCheckUpdate )
103
101
{
104
102
_isStartupChecking = true ;
105
103
updateChecker . CheckUpdate ( config , 3000 ) ;
@@ -217,9 +215,9 @@ private Bitmap getTrayIconByState(Bitmap originIcon, bool enabled, bool global)
217
215
{
218
216
Color flyBlue = Color . FromArgb ( 25 , 125 , 191 ) ;
219
217
// Multiply with flyBlue
220
- int red = color . R * flyBlue . R / 255 ;
221
- int green = color . G * flyBlue . G / 255 ;
222
- int blue = color . B * flyBlue . B / 255 ;
218
+ int red = color . R * flyBlue . R / 255 ;
219
+ int green = color . G * flyBlue . G / 255 ;
220
+ int blue = color . B * flyBlue . B / 255 ;
223
221
iconCopy . SetPixel ( x , y , Color . FromArgb ( color . A , red , green , blue ) ) ;
224
222
}
225
223
}
@@ -262,8 +260,8 @@ private MenuItem CreateMenuGroup(string text, MenuItem[] items)
262
260
private void LoadMenu ( )
263
261
{
264
262
this . contextMenu1 = new ContextMenu ( new MenuItem [ ] {
265
- this . enableItem = CreateMenuItem ( "Enable System Proxy", new EventHandler ( this . EnableItem_Click ) ) ,
266
- this . modeItem = CreateMenuGroup ( "Mode ", new MenuItem [ ] {
263
+ CreateMenuGroup ( " System Proxy", new MenuItem [ ] {
264
+ this . disableItem = CreateMenuItem ( "Disable ", new EventHandler ( this . EnableItem_Click ) ) ,
267
265
this . PACModeItem = CreateMenuItem ( "PAC" , new EventHandler ( this . PACModeItem_Click ) ) ,
268
266
this . globalModeItem = CreateMenuItem ( "Global" , new EventHandler ( this . GlobalModeItem_Click ) )
269
267
} ) ,
@@ -319,16 +317,16 @@ private void controller_ConfigChanged(object sender, EventArgs e)
319
317
320
318
private void controller_EnableStatusChanged ( object sender , EventArgs e )
321
319
{
322
- enableItem . Checked = controller . GetConfigurationCopy ( ) . enabled ;
323
- modeItem . Enabled = enableItem . Checked ;
320
+ disableItem . Checked = ! controller . GetConfigurationCopy ( ) . enabled ;
324
321
}
325
322
326
323
void controller_ShareOverLANStatusChanged ( object sender , EventArgs e )
327
324
{
328
325
ShareOverLANItem . Checked = controller . GetConfigurationCopy ( ) . shareOverLan ;
329
326
}
330
327
331
- void controller_VerboseLoggingStatusChanged ( object sender , EventArgs e ) {
328
+ void controller_VerboseLoggingStatusChanged ( object sender , EventArgs e )
329
+ {
332
330
VerboseLoggingToggleItem . Checked = controller . GetConfigurationCopy ( ) . isVerboseLogging ;
333
331
}
334
332
@@ -405,10 +403,7 @@ private void LoadCurrentConfiguration()
405
403
{
406
404
Configuration config = controller . GetConfigurationCopy ( ) ;
407
405
UpdateServersMenu ( ) ;
408
- enableItem . Checked = config . enabled ;
409
- modeItem . Enabled = config . enabled ;
410
- globalModeItem . Checked = config . global ;
411
- PACModeItem . Checked = ! config . global ;
406
+ UpdateSystemProxyItemsEnabledStatus ( config ) ;
412
407
ShareOverLANItem . Checked = config . shareOverLan ;
413
408
VerboseLoggingToggleItem . Checked = config . isVerboseLogging ;
414
409
AutoStartupItem . Checked = AutoStartup . Check ( ) ;
@@ -437,7 +432,7 @@ private void UpdateServersMenu()
437
432
}
438
433
439
434
// user wants a seperator item between strategy and servers menugroup
440
- items . Add ( i ++ , new MenuItem ( "-" ) ) ;
435
+ items . Add ( i ++ , new MenuItem ( "-" ) ) ;
441
436
442
437
int strategyCount = i ;
443
438
Configuration configuration = controller . GetConfigurationCopy ( ) ;
@@ -588,7 +583,7 @@ private void AboutItem_Click(object sender, EventArgs e)
588
583
589
584
private void notifyIcon1_Click ( object sender , MouseEventArgs e )
590
585
{
591
- if ( e . Button == MouseButtons . Middle )
586
+ if ( e . Button == MouseButtons . Middle )
592
587
{
593
588
ShowLogForm ( ) ;
594
589
}
@@ -604,17 +599,40 @@ private void notifyIcon1_DoubleClick(object sender, MouseEventArgs e)
604
599
605
600
private void EnableItem_Click ( object sender , EventArgs e )
606
601
{
607
- controller . ToggleEnable ( ! enableItem . Checked ) ;
602
+ controller . ToggleEnable ( false ) ;
603
+ Configuration config = controller . GetConfigurationCopy ( ) ;
604
+ UpdateSystemProxyItemsEnabledStatus ( config ) ;
605
+ }
606
+
607
+ private void UpdateSystemProxyItemsEnabledStatus ( Configuration config )
608
+ {
609
+ disableItem . Checked = ! config . enabled ;
610
+ if ( ! config . enabled )
611
+ {
612
+ globalModeItem . Checked = false ;
613
+ PACModeItem . Checked = false ;
614
+ }
615
+ else
616
+ {
617
+ globalModeItem . Checked = config . global ;
618
+ PACModeItem . Checked = ! config . global ;
619
+ }
608
620
}
609
621
610
622
private void GlobalModeItem_Click ( object sender , EventArgs e )
611
623
{
624
+ controller . ToggleEnable ( true ) ;
612
625
controller . ToggleGlobal ( true ) ;
626
+ Configuration config = controller . GetConfigurationCopy ( ) ;
627
+ UpdateSystemProxyItemsEnabledStatus ( config ) ;
613
628
}
614
629
615
630
private void PACModeItem_Click ( object sender , EventArgs e )
616
631
{
632
+ controller . ToggleEnable ( true ) ;
617
633
controller . ToggleGlobal ( false ) ;
634
+ Configuration config = controller . GetConfigurationCopy ( ) ;
635
+ UpdateSystemProxyItemsEnabledStatus ( config ) ;
618
636
}
619
637
620
638
private void ShareOverLANItem_Click ( object sender , EventArgs e )
@@ -650,9 +668,10 @@ private void AStrategyItem_Click(object sender, EventArgs e)
650
668
controller . SelectStrategy ( ( string ) item . Tag ) ;
651
669
}
652
670
653
- private void VerboseLoggingToggleItem_Click ( object sender , EventArgs e ) {
654
- VerboseLoggingToggleItem . Checked = ! VerboseLoggingToggleItem . Checked ;
655
- controller . ToggleVerboseLogging ( VerboseLoggingToggleItem . Checked ) ;
671
+ private void VerboseLoggingToggleItem_Click ( object sender , EventArgs e )
672
+ {
673
+ VerboseLoggingToggleItem . Checked = ! VerboseLoggingToggleItem . Checked ;
674
+ controller . ToggleVerboseLogging ( VerboseLoggingToggleItem . Checked ) ;
656
675
}
657
676
658
677
private void StatisticsConfigItem_Click ( object sender , EventArgs e )
0 commit comments