diff --git a/ShadowsocksX-NG/AppDelegate.swift b/ShadowsocksX-NG/AppDelegate.swift index 3fc0af2..7b766a1 100644 --- a/ShadowsocksX-NG/AppDelegate.swift +++ b/ShadowsocksX-NG/AppDelegate.swift @@ -29,6 +29,7 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSUserNotificationCenterDele @IBOutlet weak var autoModeMenuItem: NSMenuItem! @IBOutlet weak var globalModeMenuItem: NSMenuItem! @IBOutlet weak var manualModeMenuItem: NSMenuItem! + @IBOutlet weak var whiteListModeMenuItem: NSMenuItem! @IBOutlet weak var serversMenuItem: NSMenuItem! @IBOutlet var showQRCodeMenuItem: NSMenuItem! @@ -159,6 +160,8 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSUserNotificationCenterDele ProxyConfHelper.enableGlobalProxy() } else if mode == "manual" { ProxyConfHelper.disableProxy() + } else if mode == "whiteList"{ + //ProxyConfHelper.enableWhiteListProxy() } } else { StopSSLocal() @@ -181,6 +184,9 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSUserNotificationCenterDele UpdatePACFromGFWList() } + @IBAction func updateWhiteList(sender: NSMenuItem) { + } + @IBAction func editUserRulesForPAC(sender: NSMenuItem) { if editUserRulesWinCtrl != nil { editUserRulesWinCtrl.close() @@ -252,6 +258,13 @@ class AppDelegate: NSObject, NSApplicationDelegate, NSUserNotificationCenterDele applyConfig() } + @IBAction func selectWhiteListMode(sender: NSMenuItem) { + let defaults = NSUserDefaults.standardUserDefaults() + defaults.setValue("whiteList", forKey: "ShadowsocksRunningMode") + updateRunningModeMenu() + applyConfig() + } + @IBAction func editServerPreferences(sender: NSMenuItem) { if preferencesWinCtrl != nil { preferencesWinCtrl.close() diff --git a/ShadowsocksX-NG/Base.lproj/Localizable.strings b/ShadowsocksX-NG/Base.lproj/Localizable.strings index 4ca70bf..95f39d9 100644 --- a/ShadowsocksX-NG/Base.lproj/Localizable.strings +++ b/ShadowsocksX-NG/Base.lproj/Localizable.strings @@ -45,3 +45,5 @@ "Proxy - Global" = "Proxy - Global"; "Proxy - Manual" = "Proxy - Manual"; + +"Proxy - WhiteList" = "Proxy - WhiteList"; diff --git a/ShadowsocksX-NG/Base.lproj/MainMenu.xib b/ShadowsocksX-NG/Base.lproj/MainMenu.xib index 381559a..3e716a8 100644 --- a/ShadowsocksX-NG/Base.lproj/MainMenu.xib +++ b/ShadowsocksX-NG/Base.lproj/MainMenu.xib @@ -1,5 +1,5 @@ - + @@ -26,6 +26,7 @@ + @@ -63,6 +64,12 @@ + + + + + + @@ -70,6 +77,12 @@ + + + + + + diff --git a/ShadowsocksX-NG/ProxyConfHelper.h b/ShadowsocksX-NG/ProxyConfHelper.h index 46ec2c8..b1448ac 100644 --- a/ShadowsocksX-NG/ProxyConfHelper.h +++ b/ShadowsocksX-NG/ProxyConfHelper.h @@ -18,4 +18,6 @@ + (void)disableProxy; ++ (void)enableWhiteListProxy; + @end diff --git a/ShadowsocksX-NG/ProxyConfHelper.m b/ShadowsocksX-NG/ProxyConfHelper.m index d18303d..78f5832 100644 --- a/ShadowsocksX-NG/ProxyConfHelper.m +++ b/ShadowsocksX-NG/ProxyConfHelper.m @@ -149,4 +149,8 @@ [self callHelper:args]; } ++ (void)enableWhiteListProxy { + +} + @end diff --git a/ShadowsocksX-NG/zh-Hans.lproj/Localizable.strings b/ShadowsocksX-NG/zh-Hans.lproj/Localizable.strings index 47d528d..ccce8aa 100644 --- a/ShadowsocksX-NG/zh-Hans.lproj/Localizable.strings +++ b/ShadowsocksX-NG/zh-Hans.lproj/Localizable.strings @@ -50,3 +50,5 @@ "Proxy - Manual" = "代理 - 手动"; +"Proxy - WhiteList" = "代理 - 白名单"; +