Bunch of screensavers in Windows
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

73 lines
2.6 KiB

  1. using Microsoft.Win32;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.ComponentModel;
  5. using System.Data;
  6. using System.Drawing;
  7. using System.Text;
  8. using System.Windows.Forms;
  9. namespace GameOfLife
  10. {
  11. public partial class SettingsForm : Form
  12. {
  13. private void LoadSettings() {
  14. RegistryKey key = Registry.CurrentUser.OpenSubKey("SOFTWARE\\TheoryOfNekomata\\WindowsScreensavers\\GameOfLife");
  15. object retrievedGridSize = 3;
  16. object retrievedSpores = 0;
  17. object retrievedDensity = 50;
  18. object retrievedInterval = 250;
  19. if (key != null)
  20. {
  21. retrievedGridSize = key.GetValue("GridSizeIndex", 3);
  22. retrievedSpores = key.GetValue("Spores", 0);
  23. retrievedDensity = key.GetValue("DensityPercentage", 50);
  24. retrievedInterval = key.GetValue("IntervalMs", 250);
  25. }
  26. ctrlGridSize.SelectedIndex = (int) retrievedGridSize;
  27. ctrlSpores.Value = decimal.Parse(retrievedSpores.ToString());
  28. ctrlDensity.Value = (int)retrievedDensity;
  29. lblDensityValue.Text = string.Format("Current Value: {0}%", ctrlDensity.Value);
  30. ctrlInterval.Value = (int)retrievedInterval;
  31. lblIntervalValue.Text = string.Format("Current Value: {0}ms", ctrlInterval.Value);
  32. }
  33. private void SaveSettings() {
  34. RegistryKey key = Registry.CurrentUser.CreateSubKey("SOFTWARE\\TheoryOfNekomata\\WindowsScreensavers\\GameOfLife");
  35. key.SetValue("GridSizeIndex", ctrlGridSize.SelectedIndex);
  36. key.SetValue("Spores", int.Parse(ctrlSpores.Value.ToString()));
  37. key.SetValue("DensityPercentage", ctrlDensity.Value);
  38. key.SetValue("IntervalMs", ctrlInterval.Value);
  39. }
  40. public SettingsForm()
  41. {
  42. InitializeComponent();
  43. LoadSettings();
  44. }
  45. private void ctrlDensity_Scroll(object sender, EventArgs e)
  46. {
  47. lblDensityValue.Text = string.Format("Current Value: {0}%", (sender as TrackBar).Value);
  48. }
  49. private void ctrlInterval_Scroll(object sender, EventArgs e)
  50. {
  51. lblIntervalValue.Text = string.Format("Current Value: {0}ms", (sender as TrackBar).Value);
  52. }
  53. private void btnOK_Click(object sender, EventArgs e)
  54. {
  55. SaveSettings();
  56. Close();
  57. }
  58. private void btnCancel_Click(object sender, EventArgs e)
  59. {
  60. Close();
  61. }
  62. }
  63. }