diff --git a/ShadowsocksX-NG/AppDelegate.swift b/ShadowsocksX-NG/AppDelegate.swift index 2ae6ad0..97a77a2 100644 --- a/ShadowsocksX-NG/AppDelegate.swift +++ b/ShadowsocksX-NG/AppDelegate.swift @@ -25,6 +25,7 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSUserNotificationCenterDele @IBOutlet weak var toggleRunningMenuItem: NSMenuItem! @IBOutlet weak var autoModeMenuItem: NSMenuItem! @IBOutlet weak var globalModeMenuItem: NSMenuItem! + @IBOutlet weak var manualModeMenuItem: NSMenuItem! @IBOutlet weak var serversMenuItem: NSMenuItem! @IBOutlet var serversPreferencesMenuItem: NSMenuItem! @@ -140,13 +141,11 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSUserNotificationCenterDele if isOn { StartSSLocal() if mode == "auto" { - autoModeMenuItem.state = 1 - globalModeMenuItem.state = 0 ProxyConfHelper.enablePACProxy() } else if mode == "global" { - autoModeMenuItem.state = 0 - globalModeMenuItem.state = 1 ProxyConfHelper.enableGlobalProxy() + } else if mode == "manual" { + ProxyConfHelper.disableProxy() } } else { StopSSLocal() @@ -227,6 +226,13 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSUserNotificationCenterDele applyConfig() } + @IBAction func selectManualMode(sender: NSMenuItem) { + let defaults = NSUserDefaults.standardUserDefaults() + defaults.setValue("manual", forKey: "ShadowsocksRunningMode") + updateRunningModeMenu() + applyConfig() + } + @IBAction func editServerPreferences(sender: NSMenuItem) { if preferencesWinCtrl != nil { preferencesWinCtrl.close() @@ -276,9 +282,15 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSUserNotificationCenterDele if mode == "auto" { autoModeMenuItem.state = 1 globalModeMenuItem.state = 0 + manualModeMenuItem.state = 0 } else if mode == "global" { autoModeMenuItem.state = 0 globalModeMenuItem.state = 1 + manualModeMenuItem.state = 0 + } else if mode == "manual" { + autoModeMenuItem.state = 0 + globalModeMenuItem.state = 0 + manualModeMenuItem.state = 1 } } diff --git a/ShadowsocksX-NG/Base.lproj/MainMenu.xib b/ShadowsocksX-NG/Base.lproj/MainMenu.xib index 34d0e68..0038595 100644 --- a/ShadowsocksX-NG/Base.lproj/MainMenu.xib +++ b/ShadowsocksX-NG/Base.lproj/MainMenu.xib @@ -17,6 +17,7 @@ + @@ -49,6 +50,12 @@ + + + + + + diff --git a/ShadowsocksX-NG/en.lproj/MainMenu.strings b/ShadowsocksX-NG/en.lproj/MainMenu.strings deleted file mode 100644 index 754d532..0000000 --- a/ShadowsocksX-NG/en.lproj/MainMenu.strings +++ /dev/null @@ -1,42 +0,0 @@ - -/* Class = "NSMenuItem"; title = "Global Mode"; ObjectID = "3Sa-e9-VXX"; */ -"3Sa-e9-VXX.title" = "Global Mode"; - -/* Class = "NSMenu"; title = "Servers"; ObjectID = "9Y1-db-3HK"; */ -"9Y1-db-3HK.title" = "Servers"; - -/* Class = "NSMenuItem"; title = "Open ShadowsocksX"; ObjectID = "GSu-Tf-StS"; */ -"GSu-Tf-StS.title" = "Open ShadowsocksX"; - -/* Class = "NSMenu"; title = "ShadowsocksX-NE"; ObjectID = "Hob-KD-bx9"; */ -"Hob-KD-bx9.title" = "ShadowsocksX-NE"; - -/* Class = "NSMenuItem"; title = "Server Preferences..."; ObjectID = "M5r-E7-44f"; */ -"M5r-E7-44f.title" = "Server Preferences..."; - -/* Class = "NSMenuItem"; title = "Scan QR Code From Screen ..."; ObjectID = "Qe6-bF-paT"; */ -"Qe6-bF-paT.title" = "Scan QR Code From Screen ..."; - -/* Class = "NSMenuItem"; title = "Show QR Code For Current Server..."; ObjectID = "R6A-96-Zcb"; */ -"R6A-96-Zcb.title" = "Show QR Code For Current Server..."; - -/* Class = "NSMenuItem"; title = "Update PAC from GFW List"; ObjectID = "TFc-Ec-duM"; */ -"TFc-Ec-duM.title" = "Update PAC from GFW List"; - -/* Class = "NSMenuItem"; title = "Advance Preference ..."; ObjectID = "bZ3-fy-34d"; */ -"bZ3-fy-34d.title" = "Advance Preference ..."; - -/* Class = "NSMenuItem"; title = "Launch At Login"; ObjectID = "eUq-p7-ICK"; */ -"eUq-p7-ICK.title" = "Launch At Login"; - -/* Class = "NSMenuItem"; title = "Showsocks: On"; ObjectID = "fzk-mE-CEV"; */ -"fzk-mE-CEV.title" = "Showsocks: On"; - -/* Class = "NSMenuItem"; title = "Auto Mode By PAC"; ObjectID = "hOa-5N-3ik"; */ -"hOa-5N-3ik.title" = "Auto Mode By PAC"; - -/* Class = "NSMenuItem"; title = "Servers"; ObjectID = "u5M-hQ-VSc"; */ -"u5M-hQ-VSc.title" = "Servers"; - -/* Class = "NSMenuItem"; title = "Quit"; ObjectID = "vJS-JW-byz"; */ -"vJS-JW-byz.title" = "Quit"; diff --git a/ShadowsocksX-NG/zh-Hans.lproj/MainMenu.strings b/ShadowsocksX-NG/zh-Hans.lproj/MainMenu.strings index 5bf8f13..02f97c9 100644 --- a/ShadowsocksX-NG/zh-Hans.lproj/MainMenu.strings +++ b/ShadowsocksX-NG/zh-Hans.lproj/MainMenu.strings @@ -40,3 +40,6 @@ /* Class = "NSMenuItem"; title = "Quit"; ObjectID = "vJS-JW-byz"; */ "vJS-JW-byz.title" = "退出"; + +/* Class = "NSMenuItem"; title = "Manual Mode"; ObjectID = "vRc-N6-z1e"; */ +"vRc-N6-z1e.title" = "手动模式";