Files
PDFPatcher/App/Functions/ViewerPreferenceEditor.cs
2025-06-24 20:25:57 +08:00

105 lines
3.6 KiB
C#

using System;
using System.Windows.Forms;
using PDFPatcher.Common;
using PDFPatcher.Model;
namespace PDFPatcher.Functions
{
public partial class ViewerPreferenceEditor : UserControl
{
readonly string[] __bookmarkStatus = ["保持不变", "全部关闭", "全部打开", "打开首层"];
bool _settingsLockdown;
ViewerOptions _Options;
internal ViewerOptions Options {
get => _Options;
set {
_Options = value;
_settingsLockdown = true;
_ForceRemoveZoomRateBox.Checked = _Options.RemoveZoomRate;
_FitWindowBox.Checked = _Options.FitWindow;
_DisplayDocTitleBox.Checked = _Options.DisplayDocTitle;
_CenterWindowBox.Checked = _Options.CenterWindow;
_HideMenuBox.Checked = _Options.HideMenu;
_HideToolbarBox.Checked = _Options.HideToolbar;
_HideUIBox.Checked = _Options.HideUI;
_OverrideUISettingsBox.Checked = _Options.SpecifyViewerPreferences;
_ForceInternalLinkBox.Checked = _Options.ForceInternalLink;
_ForceBookmarkOpenBox.SelectedIndex = (int)_Options.CollapseBookmark;
var i = Array.IndexOf(Constants.PageLayoutType.Names, _Options.InitialView);
_ForceInitialViewBox.SelectedIndex = i != -1 ? i : 0;
i = Array.IndexOf(Constants.ViewerPreferencesType.DirectionType.Names, _Options.Direction);
_ForceDirectionBox.SelectedIndex = i != -1 ? i : 0;
i = Array.IndexOf(Constants.PageModes.Names, _Options.InitialMode);
_ForceInitialModeBox.SelectedIndex = i != -1 ? i : 0;
_settingsLockdown = false;
}
}
public ViewerPreferenceEditor() {
InitializeComponent();
_settingsLockdown = true;
_ForceBookmarkOpenBox.FormattingEnabled
= _ForceDirectionBox.FormattingEnabled
= _ForceInitialModeBox.FormattingEnabled
= _ForceInitialViewBox.FormattingEnabled
= false;
_ForceBookmarkOpenBox.AddRange(__bookmarkStatus).Select(0);
_ForceInitialViewBox.AddRange(Constants.PageLayoutType.Names).Select(0);
_ForceDirectionBox.AddRange(Constants.ViewerPreferencesType.DirectionType.Names).Select(0);
_ForceInitialModeBox.AddRange(Constants.PageModes.Names).Select(0);
_settingsLockdown = false;
}
void DocumentInfoChanged(object sender, EventArgs e) {
if (_settingsLockdown) {
return;
}
if (sender == _ForceBookmarkOpenBox) {
Options.CollapseBookmark = (BookmarkStatus)_ForceBookmarkOpenBox.SelectedIndex;
}
else if (sender == _ForceDirectionBox) {
Options.Direction = (string)_ForceDirectionBox.SelectedItem;
}
else if (sender == _ForceInitialModeBox) {
Options.InitialMode = (string)_ForceInitialModeBox.SelectedItem;
}
else if (sender == _ForceInitialViewBox) {
Options.InitialView = (string)_ForceInitialViewBox.SelectedItem;
}
else if (sender == _ForceRemoveZoomRateBox) {
Options.RemoveZoomRate = _ForceRemoveZoomRateBox.Checked;
}
else if (sender == _OverrideUISettingsBox) {
Options.SpecifyViewerPreferences
= _UISettingsPanel.Enabled
= _OverrideUISettingsBox.Checked;
}
else if (sender == _HideMenuBox) {
Options.HideMenu = _HideMenuBox.Checked;
}
else if (sender == _HideToolbarBox) {
Options.HideToolbar = _HideToolbarBox.Checked;
}
else if (sender == _HideUIBox) {
Options.HideUI = _HideUIBox.Checked;
}
else if (sender == _CenterWindowBox) {
Options.CenterWindow = _CenterWindowBox.Checked;
}
else if (sender == _FitWindowBox) {
Options.FitWindow = _FitWindowBox.Checked;
}
else if (sender == _DisplayDocTitleBox) {
Options.DisplayDocTitle = _DisplayDocTitleBox.Checked;
}
else if (sender == _ForceInternalLinkBox) {
Options.ForceInternalLink = _ForceInternalLinkBox.Checked;
}
}
}
}