コード例 #1
0
        public UpdaterWindow(UpdateItem updateItem)
        {
            if (updateItem == null)
            {
                throw new ArgumentNullException(nameof(updateItem));
            }

            updaterViewModel = new WpfUpdaterViewModel(this, updateItem);
            DataContext      = updaterViewModel;

            InitializeComponent();

            new XcbWebView(webBrowser);
            webBrowser.Loaded     += (o, e) => webBrowser.NavigateToString(updaterViewModel.ReleaseNotes);
            webBrowser.Navigating += (o, e) => {
                if (e.Uri != null)
                {
                    Process.Start(e.Uri.ToString());
                    e.Cancel = true;
                }
            };

            remindMeLaterButton.Click += (o, e) => Close();
            downloadButton.Click      += (o, e) => updaterViewModel.StartDownloadAsync().Forget();
            cancelButton.Click        += (o, e) => updaterViewModel.CancelDownload();

            preferenceChangeSubscription = PreferenceStore.Default.Subscribe(ObservePreferenceChange);
        }
コード例 #2
0
        public override void ViewDidLoad()
        {
            progressBar.MinValue = 0;
            progressBar.MaxValue = 1;

            remindMeLaterButton.Activated += (sender, e) => {
                viewModel.RemindMeLater();
                View.Window.Close();
            };

            downloadButton.Activated += (sender, e) => viewModel.StartDownloadAsync().Forget();

            cancelButton.Activated += (sender, e) => Cancel();

            webView.DecidePolicyForNavigation += (sender, e) => {
                if (e.NavigationType == WebKit.WebNavigationType.LinkClicked)
                {
                    NSWorkspace.SharedWorkspace.OpenUrl(e.OriginalUrl);
                    WebKit.WebView.DecideIgnore(e.DecisionToken);
                    return;
                }

                WebKit.WebView.DecideUse(e.DecisionToken);
            };

            base.ViewDidLoad();
        }