private void Uri_TextChanged(object sender, TextChangedEventArgs e)
        {
            var textBox = (TextBox)sender;
            var border  = (Border)textBox.Parent;

            // Validate if specified URI is valid
            border.BorderBrush = AppConfigurationWindow.GetUriSetting(textBox.Text) == null ? Brushes.Red : Brushes.Transparent;
        }
        private void SafeUri_TextChanged(object sender, TextChangedEventArgs e)
        {
            var textBox = (TextBox)sender;
            var border  = (Border)textBox.Parent;

            var uris       = textBox.Text.Split(new [] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries);
            var errorFound = false;

            foreach (var uri in uris)
            {
                errorFound |= AppConfigurationWindow.GetUriSetting(uri) == null;
            }

            // Validate if specified URI is valid
            border.BorderBrush = errorFound ? Brushes.Red : Brushes.Transparent;
        }
示例#3
0
        private void Application_Startup(object sender, StartupEventArgs startupEventArgs)
        {
            AppConfiguration config;

            try
            {
                config = AppConfiguration.FromString(Settings.Default.Config);
            }
            catch (Exception ex)
            {
                MessageBox.Show($"Failed to read config: {ex.ToString()}");
                config = new AppConfiguration();
            }

            if (!BrowserEmulationHelper.IsBrowserEmulationSet())
            {
                BrowserEmulationHelper.SetBrowserEmulationVersion();
            }

            if (startupEventArgs.Args[0].ToLower().StartsWith("/p"))
            {
                var previewHandle = Convert.ToInt32(startupEventArgs.Args[1]);
                LaunchPreviewWinodw(previewHandle: previewHandle, config: config);
            }
            else if (startupEventArgs.Args[0].ToLower().StartsWith("/s"))
            {
                LaunchScreensaverWindows(config);
            }
            else if (startupEventArgs.Args[0].ToLower().StartsWith("/c"))
            {
                var win = new AppConfigurationWindow();
                win.InitializeConfig(config);
                win.Closed += delegate
                {
                    Settings.Default.Config = config.ToString();
                    Settings.Default.Save();
                };
                win.Show();
            }
            else
            {
                Application.Current.Shutdown();
            }

            Current.ShutdownMode = ShutdownMode.OnMainWindowClose;
        }
        private void OKButton_OnClick(object sender, RoutedEventArgs e)
        {
            // Only persist values back upon "OK"
            for (int monitorIdx = 0; monitorIdx < monitorUris.Length && monitorIdx < config.Windows.Count; monitorIdx++)
            {
                for (int i = 0; i < 4; i++)
                {
                    config.Windows[monitorIdx].Panes[i].Uri = AppConfigurationWindow.GetUriSetting(monitorUris[monitorIdx][i].Text) ?? config.Windows[monitorIdx].Panes[i].Uri;
                }
            }

            uint startupDelaySec = 0;

            uint.TryParse(this.PreStartupDelay.Text, out startupDelaySec);
            this.config.SharedWindowConfig.OnResumeDisplayLogon = this.OnResume.IsChecked ?? true;
            this.config.SharedWindowConfig.StartupDelaySec      = startupDelaySec;
            this.config.SharedPanelConfig.SafeUris.Clear();
            var uris = this.SafeUris.Text.Split(new[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries).Select(s => new Uri(s, UriKind.Absolute)).ToArray();

            this.config.SharedPanelConfig.AddSafeUris(uris);
            this.Close();
        }