This repository has been archived on 2022-08-05. You can view files and clone it, but cannot push or open issues or pull requests.
Resizor/Resizor/SettingsForm.cs

91 lines
3.1 KiB
C#

using System;
using System.Drawing;
using System.IO;
using System.Windows.Forms;
using CC_Functions.W32.Hooks;
using Microsoft.Win32;
namespace Resizor
{
public partial class SettingsForm : Form
{
private const string AppName = "Resizor";
private readonly RegistryKey _rkApp;
public SettingsForm()
{
InitializeComponent();
Program.Kh = new KeyboardHook();
keySelectButton.Text = Settings.ImmediateResizeKey.ToString();
keySelectButton.Tag = false;
rowsSelect.Value = Settings.ResizeDividor.Y;
columnsSelect.Value = Settings.ResizeDividor.X;
_rkApp = Registry.CurrentUser.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run", true);
startupBox.Checked = _rkApp.GetValue(AppName) != null;
}
private void KeySelectButton_Click(object sender, EventArgs e)
{
if ((bool) keySelectButton.Tag)
{
Program.Kh.OnKeyPress -= Hook_OnKeyPress;
keySelectButton.BackColor = SystemColors.Control;
keySelectButton.Tag = false;
keySelectButton.Text = Settings.ImmediateResizeKey.ToString();
}
else
{
keySelectButton.BackColor = Color.Red;
keySelectButton.Text = "Cancel";
keySelectButton.Tag = true;
Program.Kh.OnKeyPress += Hook_OnKeyPress;
}
}
private void Hook_OnKeyPress(KeyboardHookEventArgs e)
{
Program.Kh.OnKeyPress -= Hook_OnKeyPress;
keySelectButton.BackColor = SystemColors.Control;
if (e.Key != Keys.Escape)
{
Settings.ImmediateResizeKey = e.Key;
Settings.Save();
}
keySelectButton.Text = Settings.ImmediateResizeKey.ToString();
keySelectButton.Tag = false;
}
private void RowsSelect_ValueChanged(object sender, EventArgs e)
{
Point tmp = Settings.ResizeDividor;
tmp.Y = (int) rowsSelect.Value;
Settings.ResizeDividor = tmp;
Settings.Save();
}
private void ColumnsSelect_ValueChanged(object sender, EventArgs e)
{
Point tmp = Settings.ResizeDividor;
tmp.X = (int) columnsSelect.Value;
Settings.ResizeDividor = tmp;
Settings.Save();
}
private void StartupBox_CheckedChanged(object sender, EventArgs e)
{
try
{
if (startupBox.Checked)
_rkApp.SetValue(AppName, Path.ChangeExtension(Application.ExecutablePath, ".exe"));
else
_rkApp.DeleteValue(AppName, false);
startupBox.Checked = _rkApp.GetValue(AppName) != null;
}
catch (Exception e1)
{
startupBox.Checked = _rkApp.GetValue(AppName) != null;
MessageBox.Show(e1.ToString(), "Failed");
}
}
}
}