Exemplo n.º 1
0
        public ServerLogWindow(ShadowsocksController controller, WindowStatus status)
        {
            InitializeComponent();
            I18NUtil.SetLanguage(Resources, @"ServerLogWindow");
            LoadLanguage();

            _controller = controller;
            Closed     += (o, e) => { _controller.ConfigChanged -= controller_ConfigChanged; };
            _controller.ConfigChanged += controller_ConfigChanged;
            LoadConfig(true);

            ServerDataGrid.GridColumnSizer.SortIconWidth = 0;
            if (status == null)
            {
                SizeToContent                    = SizeToContent.Width;
                Height                           = 600;
                WindowStartupLocation            = WindowStartupLocation.CenterScreen;
                ServerDataGrid.ShowBusyIndicator = false;
            }
            else
            {
                ServerDataGrid.ShowBusyIndicator = true;
                SizeToContent = SizeToContent.Manual;
                status.SetStatus(this);
            }
        }
Exemplo n.º 2
0
        public ConfigWindow(ShadowsocksController controller, int focusIndex)
        {
            InitializeComponent();
            I18NUtil.SetLanguage(Resources, @"ConfigWindow");
            SizeChanged         += (o, args) => { GenQr(LinkTextBox.Text); };
            Splitter2.DragDelta += (o, args) => { GenQr(LinkTextBox.Text); };
            Closed += (o, e) =>
            {
                _controller.ConfigChanged      -= controller_ConfigChanged;
                ServerViewModel.ServersChanged -= ServerViewModel_ServersChanged;
            };

            _controller = controller;
            foreach (var name in from name in EncryptorFactory.RegisteredEncryptors.Keys let info = EncryptorFactory.GetEncryptorInfo(name) where info.Display select name)
            {
                EncryptionComboBox.Items.Add(name);
            }
            foreach (var protocol in Protocols)
            {
                ProtocolComboBox.Items.Add(protocol);
            }
            foreach (var obfs in ObfsStrings)
            {
                ObfsComboBox.Items.Add(obfs);
            }

            _controller.ConfigChanged      += controller_ConfigChanged;
            ServerViewModel.ServersChanged += ServerViewModel_ServersChanged;
            _focusIndex = focusIndex;
            ServerGroupBox.Visibility = ServersTreeView.SelectedValue == null ? Visibility.Hidden : Visibility.Visible;
        }
        public ServerConfigWindow(MainController controller, int focusIndex)
        {
            InitializeComponent();
            I18NUtil.SetLanguage(Resources, @"ConfigWindow");
            SizeChanged         += (o, args) => { GenQr(LinkTextBox.Text); };
            Splitter2.DragDelta += (o, args) => { GenQr(LinkTextBox.Text); };
            Closed += (o, e) =>
            {
                _controller.ConfigChanged            -= controller_ConfigChanged;
                ServerConfigViewModel.ServersChanged -= ServerViewModel_ServersChanged;
            };

            _controller = controller;
            foreach (var name in from name in EncryptorFactory.RegisteredEncryptors.Keys let info = EncryptorFactory.GetEncryptorInfo(name) where info.Display select name)
            {
                EncryptionComboBox.Items.Add(name);
            }
            foreach (var protocol in Protocols)
            {
                ProtocolComboBox.Items.Add(protocol);
            }
            foreach (var obfs in ObfsStrings)
            {
                ObfsComboBox.Items.Add(obfs);
            }

            _controller.ConfigChanged            += controller_ConfigChanged;
            ServerConfigViewModel.ServersChanged += ServerViewModel_ServersChanged;
            _focusIndex = focusIndex;
            ServersTreeView_OnSelectionChanged(this, new ItemSelectionChangedEventArgs());
        }
Exemplo n.º 4
0
 public SettingsWindow(MainController controller)
 {
     InitializeComponent();
     I18NUtil.SetLanguage(Resources, @"SettingsWindow");
     Closed     += (o, e) => { _controller.ConfigChanged -= controller_ConfigChanged; };
     _controller = controller;
 }
 public PortSettingsWindow(ShadowsocksController controller)
 {
     InitializeComponent();
     I18NUtil.SetLanguage(Resources, @"PortSettingsWindow");
     Closed     += (o, e) => { _controller.ConfigChanged -= controller_ConfigChanged; };
     _controller = controller;
     LoadItems();
 }
Exemplo n.º 6
0
 public DnsSettingWindow()
 {
     InitializeComponent();
     I18NUtil.SetLanguage(Resources, @"DnsSettingWindow");
     Closed += (o, e) =>
     {
         DnsSettingViewModel.DnsClientsChanged -= DnsSettingViewModel_DnsClientsChanged;
     };
     DnsSettingViewModel.DnsClientsChanged += DnsSettingViewModel_DnsClientsChanged;
     LoadConfig();
 }
 public SubscribeWindow(MainController controller)
 {
     InitializeComponent();
     I18NUtil.SetLanguage(Resources, @"SubscribeWindow");
     Closed += (o, e) =>
     {
         controller.ConfigChanged -= controller_ConfigChanged;
         SubscribeWindowViewModel.SubscribesChanged -= SubscribeWindowViewModel_SubscribesChanged;
     };
     _controller = controller;
     _controller.ConfigChanged += controller_ConfigChanged;
     LoadCurrentConfiguration();
     SubscribeWindowViewModel.SubscribesChanged += SubscribeWindowViewModel_SubscribesChanged;
 }
 public SubscribeWindow(ShadowsocksController controller, UpdateSubscribeManager updateSubscribeManager, UpdateNode updateNodeChecker)
 {
     InitializeComponent();
     I18NUtil.SetLanguage(Resources, @"SubscribeWindow");
     Closed += (o, e) =>
     {
         controller.ConfigChanged -= controller_ConfigChanged;
         SubscribeWindowViewModel.SubscribesChanged -= SubscribeWindowViewModel_SubscribesChanged;
     };
     _controller                = controller;
     _updateSubscribeManager    = updateSubscribeManager;
     _updateNodeChecker         = updateNodeChecker;
     _controller.ConfigChanged += controller_ConfigChanged;
     LoadCurrentConfiguration();
     SubscribeWindowViewModel.SubscribesChanged += SubscribeWindowViewModel_SubscribesChanged;
 }
        public ConfigWindow(ShadowsocksController controller, int focusIndex)
        {
            InitializeComponent();
            I18NUtil.SetLanguage(Resources, @"ConfigWindow");
            SizeChanged         += (o, args) => { GenQr(LinkTextBox.Text); };
            Splitter2.DragDelta += (o, args) => { GenQr(LinkTextBox.Text); };
            Closed += (o, e) =>
            {
                _controller.ConfigChanged      -= controller_ConfigChanged;
                ServerViewModel.ServersChanged -= ServerViewModel_ServersChanged;
            };

            _controller = controller;
            foreach (var name in from name in EncryptorFactory.GetEncryptor().Keys let info = EncryptorFactory.GetEncryptorInfo(name) where info.display select name)
            {
                EncryptionComboBox.Items.Add(name);
            }
            foreach (var protocol in Protocols)
            {
                ProtocolComboBox.Items.Add(protocol);
            }
            foreach (var obfs in ObfsStrings)
            {
                ObfsComboBox.Items.Add(obfs);
            }

            _controller.ConfigChanged += controller_ConfigChanged;

            LoadCurrentConfiguration();
            ServerViewModel.ServersChanged += ServerViewModel_ServersChanged;

            if (focusIndex == -1)
            {
                var index = _modifiedConfiguration.index + 1;
                if (index < 0 || index > _modifiedConfiguration.configs.Count)
                {
                    index = _modifiedConfiguration.configs.Count;
                }

                focusIndex = index;
            }

            if (focusIndex >= 0 && focusIndex < _modifiedConfiguration.configs.Count)
            {
                SetServerListSelectedIndex(focusIndex);
            }
        }
Exemplo n.º 10
0
        private static void Main(string[] args)
        {
            Directory.SetCurrentDirectory(Path.GetDirectoryName(Utils.GetExecutablePath()) ?? throw new InvalidOperationException());
            var identifier = $@"Global\{Controller.HttpRequest.UpdateChecker.Name}_{Directory.GetCurrentDirectory().GetClassicHashCode()}";

            using var singleInstance = new SingleInstanceService(identifier);
            if (!singleInstance.IsFirstInstance)
            {
                singleInstance.PassArgumentsToFirstInstance(args.Length == 0
                        ? args.Append(Constants.ParameterMultiplyInstance)
                        : args);
                return;
            }
            singleInstance.ArgumentsReceived.Subscribe(SingleInstance_ArgumentsReceived);

            var app = new Application
            {
                ShutdownMode = ShutdownMode.OnExplicitShutdown
            };

            AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;

            SystemEvents.PowerModeChanged += SystemEvents_PowerModeChanged;
            app.Exit += App_Exit;

            Syncfusion.Licensing.SyncfusionLicenseProvider.RegisterLicense(@"##SyncfusionLicense##");

            Global.LoadConfig();

            I18NUtil.SetLanguage(Global.GuiConfig.LangName);
            ViewUtils.SetResource(app.Resources, @"../View/NotifyIconResources.xaml", 1);

            Global.Controller = new MainController();

            // Logging
            Logging.DefaultOut   = Console.Out;
            Logging.DefaultError = Console.Error;

            Utils.SetTls();

            Global.ViewController       = new MenuViewController(Global.Controller);
            SystemEvents.SessionEnding += Global.ViewController.Quit_Click;

            Global.Controller.Reload();
            if (Global.GuiConfig.IsDefaultConfig())
            {
                var res = MessageBox.Show(
                    $@"{I18NUtil.GetAppStringValue(@"DefaultConfigMessage")}{Environment.NewLine}{I18NUtil.GetAppStringValue(@"DefaultConfigQuestion")}",
                    Controller.HttpRequest.UpdateChecker.Name, MessageBoxButton.YesNo, MessageBoxImage.Question, MessageBoxResult.OK);
                switch (res)
                {
                case MessageBoxResult.Yes:
                {
                    Global.Controller.ShowConfigForm();
                    break;
                }

                case MessageBoxResult.No:
                {
                    Global.Controller.ShowSubscribeWindow();
                    break;
                }

                default:
                {
                    StopController();
                    return;
                }
                }
            }

            Reg.SetUrlProtocol(@"ssr");
            Reg.SetUrlProtocol(@"sub");

            singleInstance.ListenForArgumentsFromSuccessiveInstances();
            app.Run();
        }
Exemplo n.º 11
0
        private static void Main(string[] args)
        {
            Directory.SetCurrentDirectory(Path.GetDirectoryName(Utils.GetExecutablePath()) ?? throw new InvalidOperationException());
            if (args.Contains(Constants.ParameterSetautorun))
            {
                if (!AutoStartup.Switch())
                {
                    Environment.ExitCode = 1;
                }
                return;
            }

            var identifier = $@"Global\{UpdateChecker.Name}_{Directory.GetCurrentDirectory().GetDeterministicHashCode()}";

            using var singleInstance = new SingleInstance(identifier);
            if (!singleInstance.IsFirstInstance)
            {
                singleInstance.PassArgumentsToFirstInstance(args.Length == 0
                        ? args.Append(Constants.ParameterMultiplyInstance)
                        : args);
                return;
            }
            singleInstance.ArgumentsReceived += SingleInstance_ArgumentsReceived;

            var app = new Application
            {
                ShutdownMode = ShutdownMode.OnExplicitShutdown
            };

            AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;

            I18NUtil.SetLanguage(app.Resources, @"App");
            ViewUtils.SetResource(app.Resources, @"../View/NotifyIconResources.xaml", 1);

            SystemEvents.PowerModeChanged += SystemEvents_PowerModeChanged;
            app.Exit += App_Exit;

            var tryTimes = 0;

            while (Configuration.Load() == null)
            {
                if (tryTimes >= 5)
                {
                    return;
                }
                var dlg = new InputPasswordWindow();
                if (dlg.ShowDialog() == true)
                {
                    Configuration.SetPassword(dlg.Password);
                }
                else
                {
                    return;
                }
                tryTimes += 1;
            }

            _controller = new ShadowsocksController();
            HostMap.Instance().LoadHostFile();

            // Logging
            Logging.DefaultOut   = Console.Out;
            Logging.DefaultError = Console.Error;

            ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls13 | SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls;

            _viewController             = new MenuViewController(_controller);
            SystemEvents.SessionEnding += _viewController.Quit_Click;

            _controller.Start();
            Reg.SetUrlProtocol(@"ssr");
            Reg.SetUrlProtocol(@"sub");
            singleInstance.ListenForArgumentsFromSuccessiveInstances();
            app.Run();
        }
 public ResetPassword()
 {
     InitializeComponent();
     I18NUtil.SetLanguage(Resources, @"ResetPassword");
     OldPassword.Focus();
 }
Exemplo n.º 13
0
 public LogWindow()
 {
     InitializeComponent();
     I18NUtil.SetLanguage(Resources, @"LogWindow");
 }
Exemplo n.º 14
0
        private static void Main(string[] args)
        {
            Directory.SetCurrentDirectory(Path.GetDirectoryName(Utils.GetExecutablePath()) ?? throw new InvalidOperationException());
            if (args.Contains(Constants.ParameterSetautorun))
            {
                if (!AutoStartup.Switch())
                {
                    Environment.ExitCode = 1;
                }
                return;
            }

            var identifier = $@"Global\{UpdateChecker.Name}_{Directory.GetCurrentDirectory().GetDeterministicHashCode()}";

            using var singleInstance = new SingleInstance(identifier);
            if (!singleInstance.IsFirstInstance)
            {
                singleInstance.PassArgumentsToFirstInstance(args.Length == 0
                        ? args.Append(Constants.ParameterMultiplyInstance)
                        : args);
                return;
            }
            singleInstance.ArgumentsReceived += SingleInstance_ArgumentsReceived;

            var app = new Application
            {
                ShutdownMode = ShutdownMode.OnExplicitShutdown
            };

            AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;

            SystemEvents.PowerModeChanged += SystemEvents_PowerModeChanged;
            app.Exit += App_Exit;

            Syncfusion.Licensing.SyncfusionLicenseProvider.RegisterLicense(@"##SyncfusionLicense##");

            I18NUtil.SetLanguage(Configuration.Load().LangName);
            ViewUtils.SetResource(app.Resources, @"../View/NotifyIconResources.xaml", 1);

            _controller = new ShadowsocksController();

            // Logging
            Logging.DefaultOut   = Console.Out;
            Logging.DefaultError = Console.Error;

            ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls13 | SecurityProtocolType.Tls12;

            _viewController             = new MenuViewController(_controller);
            SystemEvents.SessionEnding += _viewController.Quit_Click;

            // _controller.Reload();
            // if (_controller.IsDefaultConfig())
            {
                /*
                 * var res = MessageBox.Show(
                 * $@"{I18NUtil.GetAppStringValue(@"DefaultConfigMessage")}{Environment.NewLine}{I18NUtil.GetAppStringValue(@"DefaultConfigQuestion")}",
                 * UpdateChecker.Name, MessageBoxButton.YesNo, MessageBoxImage.Question, MessageBoxResult.OK);
                 * switch (res)
                 * {
                 *  case MessageBoxResult.Yes:
                 *  {
                 *      _controller.ShowLoginScreen();
                 *      break;
                 *  }
                 *  case MessageBoxResult.No:
                 *  {
                 *      _controller.ShowSubscribeWindow();
                 *      break;
                 *  }
                 *  default:
                 *  {
                 *      StopController();
                 *      return;
                 *  }
                 * }
                 */
                _controller.ShowLoginScreen();
            }
#if !DEBUG
            Reg.SetUrlProtocol(@"ssr");
            Reg.SetUrlProtocol(@"sub");
#endif
            singleInstance.ListenForArgumentsFromSuccessiveInstances();
            app.Run();
        }
 public InputPasswordWindow()
 {
     InitializeComponent();
     I18NUtil.SetLanguage(Resources, @"InputPasswordWindow");
 }