Files
PDFPatcher/App/Functions/AppOptionForm.cs

104 lines
3.4 KiB
C#

using System;
using System.ComponentModel;
using System.Windows.Forms;
using PDFPatcher.Common;
namespace PDFPatcher.Functions
{
[ToolboxItem(false)]
public partial class AppOptionForm : Form, IResettableControl
{
bool locked;
public AppOptionForm() {
InitializeComponent();
Reload();
this.SetIcon(Properties.Resources.AppOptions);
_BookmarkEncodingBox.SelectedIndexChanged += ControlChanged;
_DocInfoEncodingBox.SelectedIndexChanged += ControlChanged;
_TextEncodingBox.SelectedIndexChanged += ControlChanged;
_FontNameEncodingBox.SelectedIndexChanged += ControlChanged;
_SaveAppSettingsBox.CheckedChanged += ControlChanged;
_LoadEntireFileBox.CheckedChanged += ControlChanged;
_DefaultOverwritePdfFileBox.CheckedChanged += ControlChanged;
_AddContextMenuBox.CheckedChanged += ControlChanged;
}
public void Reset() {
AppContext.SaveAppSettings = true;
AppContext.LoadPartialPdfFile = false;
AppContext.Encodings = new EncodingOptions();
Reload();
}
public void Reload() {
locked = true;
_SaveAppSettingsBox.Checked = AppContext.SaveAppSettings;
_LoadPartialFileBox.Checked = AppContext.LoadPartialPdfFile;
_LoadEntireFileBox.Checked = !AppContext.LoadPartialPdfFile;
_DefaultOverwritePdfFileBox.Checked = AppContext.Editor.DefaultOverwriteDocument;
_AddContextMenuBox.Checked = ShellHelper.CheckPdfOpenWithAssociation();
InitEncodingList(_BookmarkEncodingBox, AppContext.Encodings.BookmarkEncodingName);
InitEncodingList(_DocInfoEncodingBox, AppContext.Encodings.DocInfoEncodingName);
InitEncodingList(_TextEncodingBox, AppContext.Encodings.TextEncodingName);
InitEncodingList(_FontNameEncodingBox, AppContext.Encodings.FontNameEncodingName);
locked = false;
}
static void InitEncodingList(ComboBox list, string encodingName) {
list.Items.Clear();
foreach (var item in Constants.Encoding.EncodingNames) {
list.Items.Add(item);
if (encodingName == item) {
list.SelectedIndex = list.Items.Count - 1;
}
}
if (list.SelectedIndex == -1) {
list.SelectedIndex = 0;
}
}
void ControlChanged(object sender, EventArgs e) {
if (locked) {
return;
}
if (sender == _DocInfoEncodingBox) {
AppContext.Encodings.DocInfoEncodingName = _DocInfoEncodingBox.SelectedItem.ToString();
}
else if (sender == _BookmarkEncodingBox) {
AppContext.Encodings.BookmarkEncodingName = _BookmarkEncodingBox.SelectedItem.ToString();
}
else if (sender == _TextEncodingBox) {
AppContext.Encodings.TextEncodingName = _TextEncodingBox.SelectedItem.ToString();
}
else if (sender == _FontNameEncodingBox) {
AppContext.Encodings.FontNameEncodingName = _FontNameEncodingBox.SelectedItem.ToString();
}
else if (sender == _SaveAppSettingsBox) {
AppContext.SaveAppSettings = _SaveAppSettingsBox.Checked;
}
else if (sender == _LoadEntireFileBox) {
AppContext.LoadPartialPdfFile = _LoadPartialFileBox.Checked;
}
else if (sender == _DefaultOverwritePdfFileBox) {
AppContext.Editor.DefaultOverwriteDocument = _DefaultOverwritePdfFileBox.Checked;
}
else if (sender == _AddContextMenuBox) {
if (_AddContextMenuBox.Checked) {
ShellHelper.AddPdfOpenWithAssociation();
}
else {
ShellHelper.RemovePdfOpenWithAssociation();
}
}
}
void _CreateShortcutButton_Click(object sender, EventArgs e) {
ShellHelper.CreateShortcut();
}
}
}