Beispiel #1
0
 public static bool DownloadAndInstall(Uri uri, string localPath, Uri infoPage, bool runElevated = false)
 {
     try
     {
         var file = DownloadFile(uri, localPath);
         if (runElevated)
         {
             ControlsHelper.OpenPath(file.FullName);
         }
         else
         {
             Win32.WinAPI.RunElevatedAsync(file.FullName, null);
         }
         return(true);
     }
     catch (Exception ex)
     {
         var form = new MessageBoxForm();
         form.StartPosition = FormStartPosition.CenterParent;
         ControlsHelper.CheckTopMost(form);
         var text = string.Format("Unable to download {0} file:\r\n\r\n{1}\r\n\r\nOpen source web page?",
                                  uri.AbsoluteUri, ex.Message);
         var result = form.ShowForm(text, "Download Error", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
         form.Dispose();
         if (result == DialogResult.Yes)
         {
             ControlsHelper.OpenUrl("https://support.microsoft.com/en-gb/help/2977003/the-latest-supported-visual-c-downloads");
         }
     }
     return(false);
 }
Beispiel #2
0
        private void SettingsEditNoteButton_Click(object sender, System.Windows.RoutedEventArgs e)
        {
            var item = MainDataGrid.SelectedItems
                       .Cast <UserSetting>()
                       .FirstOrDefault();

            if (item == null)
            {
                return;
            }
            var note = item.Comment ?? "";
            var form = new PromptForm();

            form.EditTextBox.MaxLength = 1024;
            form.EditTextBox.Text      = note;
            form.StartPosition         = System.Windows.Forms.FormStartPosition.CenterParent;
            form.Text = "X360CE - Edit Note";
            ControlsHelper.CheckTopMost(form);
            var result = form.ShowDialog();

            if (result == System.Windows.Forms.DialogResult.OK)
            {
                item.Comment = form.EditTextBox.Text.Trim();
                UpdateNoteLabel();
            }
        }
Beispiel #3
0
        public void StatusErrorLabel_Click(object sender, EventArgs e)
        {
            win = new Forms.ErrorReportWindow();
            ControlsHelper.CheckTopMost(win);
            ControlsHelper.AutoSizeByOpenForms(win);
            win.Width = Math.Min(1450, SystemParameters.WorkArea.Width - 200);
            // Suspend displaying cloud queue results, because ShowDialog locks UI updates in the back.
            Global.DHelper.Stop();
            FormEventsEnabled = false;
            MainBodyPanel.CloudPanel.EnableDataSource(false);
            win.ErrorReportPanel.SendMessages += win.ErrorReportPanel_SendMessages;
            win.ErrorReportPanel.ClearErrors  += ErrorReportPanel_ClearErrors;
            Global.CloudClient.TasksTimer.Queue.ListChanged += Queue_ListChanged;
            var result = win.ShowDialog();

            Global.CloudClient.TasksTimer.Queue.ListChanged -= Queue_ListChanged;
            win.ErrorReportPanel.SendMessages -= win.ErrorReportPanel_SendMessages;
            win.ErrorReportPanel.ClearErrors  -= ErrorReportPanel_ClearErrors;
            MainBodyPanel.CloudPanel.EnableDataSource(true);
            if (Global.AllowDHelperStart)
            {
                FormEventsEnabled = true;
                Global.DHelper.Start();
            }
        }
Beispiel #4
0
 public static bool DownloadAndInstall(Uri uri, string localPath, Uri infoPage, bool runElevated = false)
 {
     try
     {
         var file = DownloadFile(uri, localPath);
         if (runElevated)
         {
             var proc = new ProcessStartInfo();
             proc.UseShellExecute  = true;
             proc.WorkingDirectory = Environment.CurrentDirectory;
             proc.FileName         = file.FullName;
             proc.Verb             = "runas";
             Process.Start(proc);
             //Win32.UacHelper.RunElevatedAsync(file.FullName, null);
         }
         else
         {
             ControlsHelper.OpenPath(file.FullName);
         }
         return(true);
     }
     catch (Exception ex)
     {
         var form = new MessageBoxWindow();
         ControlsHelper.CheckTopMost(form);
         var text = string.Format("Unable to download {0} file:\r\n\r\n{1}\r\n\r\nOpen source web page?",
                                  uri.AbsoluteUri, ex.Message);
         var result = form.ShowDialog(text, "Download Error", System.Windows.MessageBoxButton.YesNo, System.Windows.MessageBoxImage.Question);
         if (result == System.Windows.MessageBoxResult.Yes)
         {
             ControlsHelper.OpenUrl("https://support.microsoft.com/en-gb/help/2977003/the-latest-supported-visual-c-downloads");
         }
     }
     return(false);
 }
Beispiel #5
0
        private void SettingsEditNoteButton_Click(object sender, EventArgs e)
        {
            var item = SettingsDataGridView.SelectedRows
                       .Cast <DataGridViewRow>()
                       .Select(x => (UserSetting)x.DataBoundItem)
                       .FirstOrDefault();

            if (item == null)
            {
                return;
            }
            var note = item.Comment ?? "";
            var form = new PromptForm();

            form.EditTextBox.MaxLength = 1024;
            form.EditTextBox.Text      = note;
            form.StartPosition         = FormStartPosition.CenterParent;
            form.Text = "X360CE - Edit Note";
            ControlsHelper.CheckTopMost(form);
            var result = form.ShowDialog();

            if (result == DialogResult.OK)
            {
                item.Comment = form.EditTextBox.Text.Trim();
                UpdateNoteLabel();
            }
        }
        private void HardwareButton_Click(object sender, RoutedEventArgs e)
        {
            var form = new HardwareForm();

            form.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
            ControlsHelper.CheckTopMost(form);
            form.ShowDialog();
            form.Dispose();
        }
Beispiel #7
0
        private void HardwareButton_Click(object sender, RoutedEventArgs e)
        {
            var form = new HardwareWindow();

            form.Owner = Global._MainWindow;
            form.WindowStartupLocation = WindowStartupLocation.CenterOwner;
            ControlsHelper.CheckTopMost(form);
            form.ShowDialog();
        }
Beispiel #8
0
        void OpenWebWindow(string title, string navigateUrl)
        {
            var form = new Forms.WebBrowserWindow();

            form.Owner = Global._MainWindow;
            form.WindowStartupLocation = WindowStartupLocation.CenterOwner;
            form.Width       = 400;
            form.Height      = 500;
            form.Title       = title;
            form.NavigateUrl = navigateUrl;
            ControlsHelper.CheckTopMost(form);
            form.ShowDialog();
        }
Beispiel #9
0
 public UserDevicesWindow()
 {
     InitializeComponent();
     WinControl.MainBody.Content = WinControl.MainContent;
     ControlsHelper.CheckTopMost(this);
     WinControl.SetTitle("X360CE - Map Device To Controller");
     WinControl.SetHead("Map Device To Controller");
     WinControl.SetBodyInfo("Select Devices and press [Add Selected Devices] button.");
     WinControl.SetImage(Icons_Default.Icon_gamepad);
     WinControl.SetButton1("Add Selected Devices", Icons_Default.Icon_ok);
     WinControl.SetButton2("Cancel", Icons_Default.Icon_close);
     WinControl.SetButton3();
     MainControl.MapDeviceToControllerMode = true;
 }
Beispiel #10
0
 public LoadPresetsWindow()
 {
     InitHelper.InitTimer(this, InitializeComponent);
     ControlsHelper.CheckTopMost(this);
     WinControl.MainBody.Content = WinControl.MainContent;
     WinControl.InfoPanel.SetTitle("X360CE - Load Preset");
     WinControl.InfoPanel.SetHead("Load Preset");
     WinControl.InfoPanel.SetBodyInfo("Select Preset and press [Load Selected] button.");
     WinControl.InfoPanel.SetImage(Application.Current.Resources[Icons_Default.Icon_gamepad]);
     WinControl.SetButton1("Load Selected", Icons_Default.Icon_ok);
     WinControl.SetButton2("Cancel", Icons_Default.Icon_close);
     WinControl.SetButton3();
     MainControl._ParentControl = WinControl;
 }
Beispiel #11
0
 public UserDevicesWindow()
 {
     InitHelper.InitTimer(this, InitializeComponent);
     WinControl.MainBody.Content = WinControl.MainContent;
     ControlsHelper.CheckTopMost(this);
     Title = "X360CE - Map Device To Controller";
     WinControl.InfoPanel.SetHead("Map Device To Controller");
     WinControl.InfoPanel.SetBodyInfo("Select Devices and press [Add Selected Devices] button.");
     WinControl.InfoPanel.SetImage(Application.Current.Resources[Icons_Default.Icon_gamepad]);
     WinControl.SetButton1("Add Selected Devices", Icons_Default.Icon_ok);
     WinControl.SetButton2("Cancel", Icons_Default.Icon_close);
     WinControl.SetButton3();
     // This window will be used to map DInput devices to XInput controller.
     MainControl.MapDeviceToControllerMode = true;
 }
Beispiel #12
0
        private void ResetButton_Click(object sender, RoutedEventArgs e)
        {
            var o           = SettingsManager.Options;
            var url         = o.InternetDatabaseUrl;
            var pql         = new Uri(url).PathAndQuery.Length;
            var navigateUrl = url.Substring(0, url.Length - pql) + "/Security/Login.aspx?ShowLogin=0&ShowCreate=0";
            var form        = new Forms.WebBrowserForm();

            form.Size          = new System.Drawing.Size(400, 300);
            form.Text          = "Reset Login";
            form.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
            form.NavigateUrl   = navigateUrl;
            ControlsHelper.CheckTopMost(form);
            form.ShowDialog();
            form.Dispose();
        }
Beispiel #13
0
 private void PasteButton_Click(object sender, RoutedEventArgs e)
 {
     try
     {
         var xml = Clipboard.GetText();
         var ps  = JocysCom.ClassLibrary.Runtime.Serializer.DeserializeFromXmlString <PadSetting>(xml);
         _PadSetting.Load(ps);
     }
     catch (Exception ex)
     {
         var form = new MessageBoxWindow();
         ControlsHelper.CheckTopMost(form);
         form.ShowDialog(ex.Message);
         return;
     }
 }
Beispiel #14
0
        public bool?ShowUpdateForm()
        {
            lock (UpdateFormLock)
            {
                if (_UpdateWindow == null)
                {
                    return(null);
                }
                var oldTab = MainBodyPanel.MainTabControl.SelectedItem;
                MainBodyPanel.MainTabControl.SelectedItem = MainBodyPanel.CloudTabPage;

                ControlsHelper.CenterWindowOnApplication(_UpdateWindow);
                _UpdateWindow.OpenDialog();
                ControlsHelper.CheckTopMost(_UpdateWindow);
                var result = _UpdateWindow.ShowDialog();
                _UpdateWindow.CloseDialog();
                MainBodyPanel.MainTabControl.SelectedItem = oldTab;
                return(null);
            }
        }
Beispiel #15
0
 private void LoadButton_Click(object sender, RoutedEventArgs e)
 {
     var form = new Forms.LoadPresetsWindow();
     form.Width = 800;
     form.Height = 400;
     ControlsHelper.CheckTopMost(form);
     form.MainControl.InitForm();
     var result = form.ShowDialog();
     if (result == true)
     {
         var ps = form.MainControl.SelectedItem;
         if (ps != null)
         {
             Global._MainWindow.UpdateTimer.Stop();
             SettingsManager.Current.LoadPadSettingsIntoSelectedDevice(_MappedTo, ps);
             Global._MainWindow.UpdateTimer.Start();
         }
     }
     form.MainControl.UnInitForm();
 }
Beispiel #16
0
 private async Task CheckAndClean(bool clean)
 {
     LogTextBox.Clear();
     MainTabControl.SelectedTab = LogsTabPage;
     var cancellationToken = new CancellationToken(false);
     var so     = ControlsHelper.MainTaskScheduler;
     var unused = Task.Factory.StartNew(() =>
     {
         AddLogLine("Enumerating Devices...");
         var devices = DeviceDetector.GetDevices();
         var offline = devices.Where(x => !x.IsPresent && x.IsRemovable && !x.Description.Contains("RAS Async Adapter")).ToArray();
         var problem = devices.Where(x => x.Status.HasFlag(DeviceNodeStatus.DN_HAS_PROBLEM)).Except(offline).ToArray();
         var unknown = devices.Where(x => x.Description.Contains("Unknown")).Except(offline).Except(problem).ToArray();
         var list    = new List <string>();
         if (offline.Length > 0)
         {
             list.Add(string.Format("{0} offline devices.", offline.Length));
         }
         if (problem.Length > 0)
         {
             list.Add(string.Format("{0} problem devices.", problem.Length));
         }
         if (unknown.Length > 0)
         {
             list.Add(string.Format("{0} unknown devices.", unknown.Length));
         }
         var message = string.Join("\r\n", list);
         if (list.Count == 0)
         {
             AddLogLine("No offline, problem or unknown devices found.");
         }
         else if (clean)
         {
             foreach (var item in list)
             {
                 AddLogLine(item);
             }
             var result = DialogResult.No;
             ControlsHelper.Invoke(new Action(() =>
             {
                 var form = new JocysCom.ClassLibrary.Controls.MessageBoxForm
                 {
                     StartPosition = FormStartPosition.CenterParent
                 };
                 ControlsHelper.CheckTopMost(form);
                 result = form.ShowForm(
                     "Do you want to remove offline, problem or unknown devices?\r\n\r\n" + message,
                     "Do you want to remove devices?",
                     MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
                 form.Dispose();
             }));
             if (result != DialogResult.Yes)
             {
                 return;
             }
             var devList = new List <DeviceInfo>();
             devList.AddRange(offline);
             devList.AddRange(problem);
             devList.AddRange(unknown);
             for (var i = 0; i < devList.Count; i++)
             {
                 var item = devList[i];
                 AddLogLine("Removing Device: {0}/{1} - {2}", i + 1, list.Count, item.Description);
                 try
                 {
                     var exception = DeviceDetector.RemoveDevice(item.DeviceId);
                     if (exception != null)
                     {
                         AddLogLine(exception.Message);
                     }
                     //System.Windows.Forms.Application.DoEvents();
                 }
                 catch (Exception ex)
                 {
                     AddLogLine(ex.Message);
                 }
             }
         }
         AddLogLine("Done");
     }, CancellationToken.None, TaskCreationOptions.LongRunning, so).ConfigureAwait(true);
 }