protected override void WndProc(ref Message m) { try { if (m.Msg == WM_DEVICECHANGE) { DEV_BROADCAST_VOLUME vol = (DEV_BROADCAST_VOLUME)Marshal.PtrToStructure(m.LParam, typeof(DEV_BROADCAST_VOLUME)); if ((m.WParam.ToInt32() == DBT_DEVICEARRIVAL) && (vol.dbcv_devicetype == DBT_DEVTYPVOLUME)) { if (Helpers.Settings.config.sdDriveLetter.Contains(DriveMaskToLetter(vol.dbcv_unitmask).ToString())) { locationToolStripComboBox.SelectedIndex = 1; XciHelper.LoadXcisInBackground(); UpdateSdInfo(); } } if ((m.WParam.ToInt32() == DBT_DEVICEREMOVALCOMPLETE) && (vol.dbcv_devicetype == DBT_DEVTYPVOLUME)) { if (Helpers.Settings.config.sdDriveLetter.Contains(DriveMaskToLetter(vol.dbcv_unitmask).ToString())) { locationToolStripComboBox.SelectedIndex = 0; XciHelper.LoadXcisInBackground(); UpdateSdInfo(); } } } base.WndProc(ref m); } catch { } }
private void formMain_Load(object sender, EventArgs e) { XciHelper.formMain = this; FileHelper.formMain = this; this.Text += " " + Application.ProductVersion; if (!File.Exists("keys.txt")) { MessageBox.Show("Please make sure to put the keys.txt file in the same folder as SwitchGameManager.exe" + Environment.NewLine + "The program will now close.", "Keys.txt not found"); Application.Exit(); return; } SetupObjectListView(); SetupDelegates(); //Load the settings if (Helpers.Settings.LoadSettings() == false) { manageXciLocToolStripMenuItem_Click(null, null); } SetupFileSysWatcher(); locationToolStripComboBox.SelectedIndex = 0; //Setup the OLV with the saved state (if it was saved) if (Helpers.Settings.config.olvState != null) { olvList.RestoreState(Helpers.Settings.config.olvState); ProcessChangeIconSize(Helpers.Settings.config.listIconSize); } if (Helpers.Settings.config.formHeight > 0) { this.Height = Helpers.Settings.config.formHeight; } if (Helpers.Settings.config.formWidth > 0) { this.Width = Helpers.Settings.config.formWidth; } UpdateToolMenus(); XciHelper.LoadXcisInBackground(); /* todo * Check if Keys.txt exists, otherwise download it. Maybe procedurally generate the URL? brute force the key? * Add red X or green check for Game cert, either use a Resource img or system image? */ }
private void manageXciLocToolStripMenuItem_Click(object sender, EventArgs e) { formFolderList form = new formFolderList(); DialogResult result = form.ShowDialog(); if (result == DialogResult.OK) { Helpers.Settings.config.localXciFolders = form.localFolders; Helpers.Settings.config.sdDriveLetter = form.sdDriveLetter; SetupFileSysWatcher(); XciHelper.LoadXcisInBackground(); //XciHelper.LoadXcis(); UpdateToolMenus(); } }
private void buttonRename_Click(object sender, EventArgs e) { buttonRename.Enabled = false; List <RenameItem> filtered = olvRenameList.FilteredObjects.Cast <RenameItem>().ToList(); for (int i = filtered.Count - 1; i >= 0; i--) { if (TryRename(filtered[i])) { olvRenameList.RemoveObject(filtered[i]); } else { columnError.IsVisible = true; olvRenameList.UpdateObject(filtered[i]); } } olvRenameList.RebuildColumns(); buttonRename.Enabled = true; XciHelper.LoadXcisInBackground(); }
private void SetupDelegates() { textBoxFilter.TextChanged += delegate(object o, EventArgs e) { TextMatchFilter filter = TextMatchFilter.Contains(olvList, textBoxFilter.Text); olvList.AdditionalFilter = filter; UpdateToolStripLabel(); }; olvList.MouseClick += delegate(object s, MouseEventArgs e) { UpdateToolMenus(); if (e.Button == MouseButtons.Right) { contextMenuStrip.Show(e.X, e.Y); } }; gameManagementToolStripMenuItem.Click += delegate(object s, EventArgs e) { UpdateToolMenus(); }; olvList.MouseDoubleClick += delegate(object s, MouseEventArgs e) { XciItem xci = (XciItem)olvList.GetItem(olvList.SelectedIndex).RowObject; XciHelper.ShowXciExplorer(xci.xciFilePath); }; exitToolStripMenuItem.Click += delegate(object s, EventArgs e) { Application.Exit(); }; locationToolStripComboBox.SelectedIndexChanged += delegate(object s, EventArgs e) { Helpers.Settings.config.defaultView = (XciLocation)locationToolStripComboBox.SelectedIndex; XciHelper.RefreshList(); UpdateToolStripLabel(); }; aboutToolStripMenuItem.Click += delegate(object o, EventArgs e) { formAbout formAbout = new formAbout(); formAbout.Show(); }; this.FormClosing += delegate(object s, FormClosingEventArgs e) { SaveSettings(); }; this.ResizeEnd += delegate(object s, EventArgs e) { if (this.WindowState != FormWindowState.Maximized) { Helpers.Settings.config.formHeight = this.Height; Helpers.Settings.config.formWidth = this.Width; } }; cancelTransfersToolStripMenuItem.Click += delegate(object s, EventArgs e) { FileHelper.StopTransfers(); }; rebuildCachetoolStripMenuItem.Click += delegate(object s, EventArgs e) { XciHelper.RebuildCache(); }; refreshGamesListToolStripMenuItem.Click += delegate(object s, EventArgs e) { XciHelper.LoadXcisInBackground(); }; }