Files
community/Ink Canvas/Windows/SettingsViews/Pages/PowerPointPage.xaml.cs
T
2026-04-30 19:09:55 +08:00

709 lines
33 KiB
C#

using Ink_Canvas.Helpers;
using Ink_Canvas.Windows.SettingsViews.Helpers;
using System;
using System.Windows;
using System.Windows.Controls;
using Page = iNKORE.UI.WPF.Modern.Controls.Page;
namespace Ink_Canvas.Windows.SettingsViews.Pages
{
public partial class PowerPointPage : Page
{
private bool _isLoaded = false;
private DelayAction _sliderDelayAction = new DelayAction();
public PowerPointPage()
{
InitializeComponent();
Loaded += PowerPointPage_Loaded;
Unloaded += PowerPointPage_Unloaded;
}
private void PowerPointPage_Loaded(object sender, RoutedEventArgs e)
{
LoadSettings();
_isLoaded = true;
}
private void PowerPointPage_Unloaded(object sender, RoutedEventArgs e)
{
_isLoaded = false;
}
private MainWindow GetMainWindow() => Application.Current.MainWindow as MainWindow;
private void LoadSettings()
{
_isLoaded = false;
var ppt = SettingsManager.Settings.PowerPointSettings;
CardSupportPowerPoint.IsOn = ppt.PowerPointSupport;
CardPowerPointEnhancement.IsOn = ppt.EnablePowerPointEnhancement;
CardSkipAnimationsWhenGoNext.IsOn = ppt.SkipAnimationsWhenGoNext;
CardUseRotPptLink.IsOn = ppt.UseRotPptLink;
CardSupportWPS.IsOn = ppt.IsSupportWPS;
CardEnableWppProcessKill.IsOn = ppt.EnableWppProcessKill;
CardShowPPTButton.IsOn = ppt.ShowPPTButton;
var displayOpt = ppt.PPTButtonsDisplayOption.ToString();
CheckboxEnableLBPPTButton.IsChecked = displayOpt.Length > 0 && displayOpt[0] == '2';
CheckboxEnableRBPPTButton.IsChecked = displayOpt.Length > 1 && displayOpt[1] == '2';
CheckboxEnableLSPPTButton.IsChecked = displayOpt.Length > 2 && displayOpt[2] == '2';
CheckboxEnableRSPPTButton.IsChecked = displayOpt.Length > 3 && displayOpt[3] == '2';
PPTButtonLeftPositionValueSlider.Value = ppt.PPTLSButtonPosition;
PPTButtonRightPositionValueSlider.Value = ppt.PPTRSButtonPosition;
PPTButtonLBPositionValueSlider.Value = ppt.PPTLBButtonPosition;
PPTButtonRBPositionValueSlider.Value = ppt.PPTRBButtonPosition;
PPTLSButtonOpacityValueSlider.Value = ppt.PPTLSButtonOpacity;
PPTRSButtonOpacityValueSlider.Value = ppt.PPTRSButtonOpacity;
PPTLBButtonOpacityValueSlider.Value = ppt.PPTLBButtonOpacity;
PPTRBButtonOpacityValueSlider.Value = ppt.PPTRBButtonOpacity;
var sOpt = ppt.PPTSButtonsOption.ToString();
CheckboxSPPTDisplayPage.IsChecked = sOpt.Length > 0 && sOpt[0] == '2';
CheckboxSPPTHalfOpacity.IsChecked = sOpt.Length > 1 && sOpt[1] == '2';
CheckboxSPPTBlackBackground.IsChecked = sOpt.Length > 2 && sOpt[2] == '2';
var bOpt = ppt.PPTBButtonsOption.ToString();
CheckboxBPPTDisplayPage.IsChecked = bOpt.Length > 0 && bOpt[0] == '2';
CheckboxBPPTHalfOpacity.IsChecked = bOpt.Length > 1 && bOpt[1] == '2';
CheckboxBPPTBlackBackground.IsChecked = bOpt.Length > 2 && bOpt[2] == '2';
CardEnablePPTButtonPageClickable.IsOn = ppt.EnablePPTButtonPageClickable;
CardEnablePPTButtonEnhancedPreview.IsOn = ppt.EnablePPTButtonEnhancedPreview;
CardEnablePPTButtonLongPressPageTurn.IsOn = ppt.EnablePPTButtonLongPressPageTurn;
CardShowCanvasAtNewSlideShow.IsOn = ppt.IsShowCanvasAtNewSlideShow;
CardEnableTwoFingerGestureInPresentationMode.IsOn = ppt.IsEnableTwoFingerGestureInPresentationMode;
CardEnableFingerGestureSlideShowControl.IsOn = ppt.IsEnableFingerGestureSlideShowControl;
CardShowGestureButtonInSlideShow.IsOn = ppt.ShowGestureButtonInSlideShow;
CardEnablePPTTimeCapsule.IsOn = ppt.EnablePPTTimeCapsule;
ComboBoxPPTTimeCapsulePosition.SelectedIndex = ppt.PPTTimeCapsulePosition;
CardShowPPTSidebarByDefault.IsOn = ppt.ShowPPTSidebarByDefault;
CardAutoSaveScreenShotInPowerPoint.IsOn = ppt.IsAutoSaveScreenShotInPowerPoint;
CardAutoSaveStrokesInPowerPoint.IsOn = ppt.IsAutoSaveStrokesInPowerPoint;
CardNotifyPreviousPage.IsOn = ppt.IsNotifyPreviousPage;
CardAlwaysGoToFirstPageOnReenter.IsOn = ppt.IsAlwaysGoToFirstPageOnReenter;
CardNotifyHiddenPage.IsOn = ppt.IsNotifyHiddenPage;
CardNotifyAutoPlayPresentation.IsOn = ppt.IsNotifyAutoPlayPresentation;
_isLoaded = true;
}
#region PPT Basic
private void ToggleSwitchSupportPowerPoint_Toggled(object sender, RoutedEventArgs e)
{
if (!_isLoaded) return;
var mw = GetMainWindow();
var ppt = SettingsManager.Settings.PowerPointSettings;
ppt.PowerPointSupport = CardSupportPowerPoint.IsOn;
if (!ppt.PowerPointSupport && ppt.IsSupportWPS)
{
ppt.IsSupportWPS = false;
CardSupportWPS.IsOn = false;
if (mw?.PPTManager != null) mw.PPTManager.IsSupportWPS = false;
}
SettingsManager.SaveSettingsToFile();
if (mw != null)
{
if (ppt.PowerPointSupport)
{
if (mw.PPTManager == null) mw.InitializePPTManagers();
mw.StartPPTMonitoring();
}
else mw.StopPPTMonitoring();
}
}
private void ToggleSwitchPowerPointEnhancement_Toggled(object sender, RoutedEventArgs e)
{
if (!_isLoaded) return;
var mw = GetMainWindow();
var ppt = SettingsManager.Settings.PowerPointSettings;
ppt.EnablePowerPointEnhancement = CardPowerPointEnhancement.IsOn;
if (ppt.EnablePowerPointEnhancement)
{
ppt.IsSupportWPS = false;
CardSupportWPS.IsOn = false;
if (mw?.PPTManager != null) mw.PPTManager.IsSupportWPS = false;
}
SettingsManager.SaveSettingsToFile();
if (mw != null)
{
if (ppt.EnablePowerPointEnhancement)
mw.StartPowerPointProcessMonitoring();
else
mw.StopPowerPointProcessMonitoring();
}
}
private void ToggleSwitchSkipAnimationsWhenGoNext_Toggled(object sender, RoutedEventArgs e)
{
if (!_isLoaded) return;
var mw = GetMainWindow();
SettingsManager.Settings.PowerPointSettings.SkipAnimationsWhenGoNext = CardSkipAnimationsWhenGoNext.IsOn;
if (mw?.PPTManager != null)
mw.PPTManager.SkipAnimationsWhenNavigating = CardSkipAnimationsWhenGoNext.IsOn;
SettingsManager.SaveSettingsToFile();
}
private void ToggleSwitchUseRotPptLink_Toggled(object sender, RoutedEventArgs e)
{
if (!_isLoaded) return;
var mw = GetMainWindow();
var ppt = SettingsManager.Settings.PowerPointSettings;
ppt.UseRotPptLink = CardUseRotPptLink.IsOn;
SettingsManager.SaveSettingsToFile();
try
{
if (mw != null)
{
mw.StopPPTMonitoring();
if (ppt.UseRotPptLink && ppt.EnablePowerPointEnhancement)
{
ppt.EnablePowerPointEnhancement = false;
CardPowerPointEnhancement.IsOn = false;
mw.StopPowerPointProcessMonitoring();
SettingsManager.SaveSettingsToFile();
}
mw.InitializePPTManagers();
if (ppt.PowerPointSupport) mw.StartPPTMonitoring();
LogHelper.WriteLogToFile($"已切换 PPT 联动架构为 {(ppt.UseRotPptLink ? "ROT" : "COM")}", LogHelper.LogType.Event);
}
}
catch (Exception ex) { LogHelper.WriteLogToFile($"切换 PPT 联动架构失败: {ex}", LogHelper.LogType.Error); }
}
private void ToggleSwitchSupportWPS_Toggled(object sender, RoutedEventArgs e)
{
if (!_isLoaded) return;
var mw = GetMainWindow();
var ppt = SettingsManager.Settings.PowerPointSettings;
ppt.IsSupportWPS = CardSupportWPS.IsOn;
if (ppt.IsSupportWPS)
{
if (!ppt.PowerPointSupport)
{
ppt.PowerPointSupport = true;
CardSupportPowerPoint.IsOn = true;
if (mw != null)
{
if (mw.PPTManager == null) mw.InitializePPTManagers();
mw.StartPPTMonitoring();
}
}
if (ppt.EnablePowerPointEnhancement)
{
ppt.EnablePowerPointEnhancement = false;
CardPowerPointEnhancement.IsOn = false;
mw?.StopPowerPointProcessMonitoring();
}
}
if (mw?.PPTManager != null)
{
mw.PPTManager.IsSupportWPS = ppt.IsSupportWPS;
mw.PPTManager.SkipAnimationsWhenNavigating = ppt.SkipAnimationsWhenGoNext;
}
SettingsManager.SaveSettingsToFile();
}
private void ToggleSwitchEnableWppProcessKill_Toggled(object sender, RoutedEventArgs e)
{
if (!_isLoaded) return;
SettingsManager.Settings.PowerPointSettings.EnableWppProcessKill = CardEnableWppProcessKill.IsOn;
SettingsManager.SaveSettingsToFile();
}
#endregion
#region PPT Flip Buttons
private void ToggleSwitchShowPPTButton_OnToggled(object sender, RoutedEventArgs e)
{
if (!_isLoaded) return;
var mw = GetMainWindow();
SettingsManager.Settings.PowerPointSettings.ShowPPTButton = CardShowPPTButton.IsOn;
SettingsManager.SaveSettingsToFile();
if (mw?.PPTUIManager != null)
{
mw.PPTUIManager.ShowPPTButton = CardShowPPTButton.IsOn;
mw.PPTUIManager.UpdateNavigationPanelsVisibility();
}
mw?.UpdatePPTBtnPreview();
}
private void ToggleSwitchShowPPTSidebarByDefault_Toggled(object sender, RoutedEventArgs e)
{
if (!_isLoaded) return;
var mw = GetMainWindow();
SettingsManager.Settings.PowerPointSettings.ShowPPTSidebarByDefault = CardShowPPTSidebarByDefault.IsOn;
SettingsManager.SaveSettingsToFile();
if (mw != null && mw.BtnPPTSlideShowEnd?.Visibility == Visibility.Visible)
mw.UpdatePPTQuickPanelVisibility();
}
private void ToggleSwitchEnablePPTButtonPageClickable_OnToggled(object sender, RoutedEventArgs e)
{
if (!_isLoaded) return;
SettingsManager.Settings.PowerPointSettings.EnablePPTButtonPageClickable = CardEnablePPTButtonPageClickable.IsOn;
SettingsManager.SaveSettingsToFile();
}
private void ToggleSwitchEnablePPTButtonEnhancedPreview_OnToggled(object sender, RoutedEventArgs e)
{
if (!_isLoaded) return;
SettingsManager.Settings.PowerPointSettings.EnablePPTButtonEnhancedPreview = CardEnablePPTButtonEnhancedPreview.IsOn;
SettingsManager.SaveSettingsToFile();
}
private void ToggleSwitchEnablePPTButtonLongPressPageTurn_OnToggled(object sender, RoutedEventArgs e)
{
if (!_isLoaded) return;
SettingsManager.Settings.PowerPointSettings.EnablePPTButtonLongPressPageTurn = CardEnablePPTButtonLongPressPageTurn.IsOn;
SettingsManager.SaveSettingsToFile();
}
#endregion
#region PPT Button Position & Opacity Sliders
private void PPTButtonLeftPositionValueSlider_ValueChanged(object sender, RoutedEventArgs e)
{
if (!_isLoaded) return;
var mw = GetMainWindow();
SettingsManager.Settings.PowerPointSettings.PPTLSButtonPosition = (int)PPTButtonLeftPositionValueSlider.Value;
mw?.UpdatePPTBtnSlidersStatus();
mw?.UpdatePPTUIManagerSettings();
_sliderDelayAction.DebounceAction(2000, null, () => SettingsManager.SaveSettingsToFile());
mw?.UpdatePPTBtnPreview();
}
private void PPTButtonRightPositionValueSlider_ValueChanged(object sender, RoutedEventArgs e)
{
if (!_isLoaded) return;
var mw = GetMainWindow();
SettingsManager.Settings.PowerPointSettings.PPTRSButtonPosition = (int)PPTButtonRightPositionValueSlider.Value;
mw?.UpdatePPTBtnSlidersStatus();
mw?.UpdatePPTUIManagerSettings();
_sliderDelayAction.DebounceAction(2000, null, () => SettingsManager.SaveSettingsToFile());
mw?.UpdatePPTBtnPreview();
}
private void PPTButtonLBPositionValueSlider_ValueChanged(object sender, RoutedEventArgs e)
{
if (!_isLoaded) return;
var mw = GetMainWindow();
SettingsManager.Settings.PowerPointSettings.PPTLBButtonPosition = (int)PPTButtonLBPositionValueSlider.Value;
mw?.UpdatePPTBtnSlidersStatus();
mw?.UpdatePPTUIManagerSettings();
_sliderDelayAction.DebounceAction(2000, null, () => SettingsManager.SaveSettingsToFile());
mw?.UpdatePPTBtnPreview();
}
private void PPTButtonRBPositionValueSlider_ValueChanged(object sender, RoutedEventArgs e)
{
if (!_isLoaded) return;
var mw = GetMainWindow();
SettingsManager.Settings.PowerPointSettings.PPTRBButtonPosition = (int)PPTButtonRBPositionValueSlider.Value;
mw?.UpdatePPTBtnSlidersStatus();
mw?.UpdatePPTUIManagerSettings();
_sliderDelayAction.DebounceAction(2000, null, () => SettingsManager.SaveSettingsToFile());
mw?.UpdatePPTBtnPreview();
}
private void PPTLSButtonOpacityValueSlider_ValueChanged(object sender, RoutedEventArgs e)
{
if (!_isLoaded) return;
double roundedValue = Math.Round(PPTLSButtonOpacityValueSlider.Value, 1);
PPTLSButtonOpacityValueSlider.ValueChanged -= PPTLSButtonOpacityValueSlider_ValueChanged;
PPTLSButtonOpacityValueSlider.Value = roundedValue;
PPTLSButtonOpacityValueSlider.ValueChanged += PPTLSButtonOpacityValueSlider_ValueChanged;
SettingsManager.Settings.PowerPointSettings.PPTLSButtonOpacity = roundedValue;
SettingsManager.SaveSettingsToFile();
var mw = GetMainWindow();
if (mw?.PPTUIManager != null)
{
mw.PPTUIManager.PPTLSButtonOpacity = roundedValue;
mw.PPTUIManager.UpdateNavigationButtonStyles();
}
mw?.UpdatePPTBtnPreview();
}
private void PPTRSButtonOpacityValueSlider_ValueChanged(object sender, RoutedEventArgs e)
{
if (!_isLoaded) return;
double roundedValue = Math.Round(PPTRSButtonOpacityValueSlider.Value, 1);
PPTRSButtonOpacityValueSlider.ValueChanged -= PPTRSButtonOpacityValueSlider_ValueChanged;
PPTRSButtonOpacityValueSlider.Value = roundedValue;
PPTRSButtonOpacityValueSlider.ValueChanged += PPTRSButtonOpacityValueSlider_ValueChanged;
SettingsManager.Settings.PowerPointSettings.PPTRSButtonOpacity = roundedValue;
SettingsManager.SaveSettingsToFile();
var mw = GetMainWindow();
if (mw?.PPTUIManager != null)
{
mw.PPTUIManager.PPTRSButtonOpacity = roundedValue;
mw.PPTUIManager.UpdateNavigationButtonStyles();
}
mw?.UpdatePPTBtnPreview();
}
private void PPTLBButtonOpacityValueSlider_ValueChanged(object sender, RoutedEventArgs e)
{
if (!_isLoaded) return;
double roundedValue = Math.Round(PPTLBButtonOpacityValueSlider.Value, 1);
PPTLBButtonOpacityValueSlider.ValueChanged -= PPTLBButtonOpacityValueSlider_ValueChanged;
PPTLBButtonOpacityValueSlider.Value = roundedValue;
PPTLBButtonOpacityValueSlider.ValueChanged += PPTLBButtonOpacityValueSlider_ValueChanged;
SettingsManager.Settings.PowerPointSettings.PPTLBButtonOpacity = roundedValue;
SettingsManager.SaveSettingsToFile();
var mw = GetMainWindow();
if (mw?.PPTUIManager != null)
{
mw.PPTUIManager.PPTLBButtonOpacity = roundedValue;
mw.PPTUIManager.UpdateNavigationButtonStyles();
}
mw?.UpdatePPTBtnPreview();
}
private void PPTRBButtonOpacityValueSlider_ValueChanged(object sender, RoutedEventArgs e)
{
if (!_isLoaded) return;
double roundedValue = Math.Round(PPTRBButtonOpacityValueSlider.Value, 1);
PPTRBButtonOpacityValueSlider.ValueChanged -= PPTRBButtonOpacityValueSlider_ValueChanged;
PPTRBButtonOpacityValueSlider.Value = roundedValue;
PPTRBButtonOpacityValueSlider.ValueChanged += PPTRBButtonOpacityValueSlider_ValueChanged;
SettingsManager.Settings.PowerPointSettings.PPTRBButtonOpacity = roundedValue;
SettingsManager.SaveSettingsToFile();
var mw = GetMainWindow();
if (mw?.PPTUIManager != null)
{
mw.PPTUIManager.PPTRBButtonOpacity = roundedValue;
mw.PPTUIManager.UpdateNavigationButtonStyles();
}
mw?.UpdatePPTBtnPreview();
}
#endregion
#region PPT Button Display Checkboxes
private void CheckboxEnableLBPPTButton_IsCheckChanged(object sender, RoutedEventArgs e)
{
if (!_isLoaded) return;
var mw = GetMainWindow();
var str = SettingsManager.Settings.PowerPointSettings.PPTButtonsDisplayOption.ToString();
char[] c = str.ToCharArray();
c[0] = CheckboxEnableLBPPTButton.IsChecked == true ? '2' : '1';
SettingsManager.Settings.PowerPointSettings.PPTButtonsDisplayOption = int.Parse(new string(c));
SettingsManager.SaveSettingsToFile();
if (mw?.PPTUIManager != null && mw.BtnPPTSlideShowEnd.Visibility == Visibility.Visible)
{
mw.PPTUIManager.PPTButtonsDisplayOption = SettingsManager.Settings.PowerPointSettings.PPTButtonsDisplayOption;
mw.PPTUIManager.UpdateNavigationPanelsVisibility();
}
mw?.UpdatePPTBtnPreview();
}
private void CheckboxEnableRBPPTButton_IsCheckChanged(object sender, RoutedEventArgs e)
{
if (!_isLoaded) return;
var mw = GetMainWindow();
var str = SettingsManager.Settings.PowerPointSettings.PPTButtonsDisplayOption.ToString();
char[] c = str.ToCharArray();
c[1] = CheckboxEnableRBPPTButton.IsChecked == true ? '2' : '1';
SettingsManager.Settings.PowerPointSettings.PPTButtonsDisplayOption = int.Parse(new string(c));
SettingsManager.SaveSettingsToFile();
if (mw?.PPTUIManager != null && mw.BtnPPTSlideShowEnd.Visibility == Visibility.Visible)
{
mw.PPTUIManager.PPTButtonsDisplayOption = SettingsManager.Settings.PowerPointSettings.PPTButtonsDisplayOption;
mw.PPTUIManager.UpdateNavigationPanelsVisibility();
}
mw?.UpdatePPTBtnPreview();
}
private void CheckboxEnableLSPPTButton_IsCheckChanged(object sender, RoutedEventArgs e)
{
if (!_isLoaded) return;
var mw = GetMainWindow();
var str = SettingsManager.Settings.PowerPointSettings.PPTButtonsDisplayOption.ToString();
char[] c = str.ToCharArray();
c[2] = CheckboxEnableLSPPTButton.IsChecked == true ? '2' : '1';
SettingsManager.Settings.PowerPointSettings.PPTButtonsDisplayOption = int.Parse(new string(c));
SettingsManager.SaveSettingsToFile();
if (mw?.PPTUIManager != null && mw.BtnPPTSlideShowEnd.Visibility == Visibility.Visible)
{
mw.PPTUIManager.PPTButtonsDisplayOption = SettingsManager.Settings.PowerPointSettings.PPTButtonsDisplayOption;
mw.PPTUIManager.UpdateNavigationPanelsVisibility();
}
mw?.UpdatePPTBtnPreview();
}
private void CheckboxEnableRSPPTButton_IsCheckChanged(object sender, RoutedEventArgs e)
{
if (!_isLoaded) return;
var mw = GetMainWindow();
var str = SettingsManager.Settings.PowerPointSettings.PPTButtonsDisplayOption.ToString();
char[] c = str.ToCharArray();
c[3] = CheckboxEnableRSPPTButton.IsChecked == true ? '2' : '1';
SettingsManager.Settings.PowerPointSettings.PPTButtonsDisplayOption = int.Parse(new string(c));
SettingsManager.SaveSettingsToFile();
if (mw?.PPTUIManager != null && mw.BtnPPTSlideShowEnd.Visibility == Visibility.Visible)
{
mw.PPTUIManager.PPTButtonsDisplayOption = SettingsManager.Settings.PowerPointSettings.PPTButtonsDisplayOption;
mw.PPTUIManager.UpdateNavigationPanelsVisibility();
}
mw?.UpdatePPTBtnPreview();
}
private void CheckboxSPPTDisplayPage_IsCheckChange(object sender, RoutedEventArgs e)
{
if (!_isLoaded) return;
var mw = GetMainWindow();
var str = SettingsManager.Settings.PowerPointSettings.PPTSButtonsOption.ToString();
char[] c = str.ToCharArray();
c[0] = CheckboxSPPTDisplayPage.IsChecked == true ? '2' : '1';
SettingsManager.Settings.PowerPointSettings.PPTSButtonsOption = int.Parse(new string(c));
SettingsManager.SaveSettingsToFile();
if (mw?.PPTUIManager != null && mw.BtnPPTSlideShowEnd.Visibility == Visibility.Visible)
{
mw.PPTUIManager.PPTSButtonsOption = SettingsManager.Settings.PowerPointSettings.PPTSButtonsOption;
mw.PPTUIManager.UpdateNavigationButtonStyles();
}
mw?.UpdatePPTBtnPreview();
}
private void CheckboxSPPTHalfOpacity_IsCheckChange(object sender, RoutedEventArgs e)
{
if (!_isLoaded) return;
var mw = GetMainWindow();
var ppt = SettingsManager.Settings.PowerPointSettings;
var str = ppt.PPTSButtonsOption.ToString();
char[] c = str.ToCharArray();
bool isHalf = CheckboxSPPTHalfOpacity.IsChecked == true;
c[1] = isHalf ? '2' : '1';
ppt.PPTSButtonsOption = int.Parse(new string(c));
if (isHalf)
{
if (ppt.PPTLSButtonOpacity == 1.0) ppt.PPTLSButtonOpacity = 0.5;
if (ppt.PPTRSButtonOpacity == 1.0) ppt.PPTRSButtonOpacity = 0.5;
PPTLSButtonOpacityValueSlider.Value = ppt.PPTLSButtonOpacity;
PPTRSButtonOpacityValueSlider.Value = ppt.PPTRSButtonOpacity;
}
else
{
if (ppt.PPTLSButtonOpacity == 0.5) ppt.PPTLSButtonOpacity = 1.0;
if (ppt.PPTRSButtonOpacity == 0.5) ppt.PPTRSButtonOpacity = 1.0;
PPTLSButtonOpacityValueSlider.Value = ppt.PPTLSButtonOpacity;
PPTRSButtonOpacityValueSlider.Value = ppt.PPTRSButtonOpacity;
}
SettingsManager.SaveSettingsToFile();
if (mw?.PPTUIManager != null && mw.BtnPPTSlideShowEnd.Visibility == Visibility.Visible)
{
mw.PPTUIManager.PPTSButtonsOption = ppt.PPTSButtonsOption;
mw.PPTUIManager.PPTLSButtonOpacity = ppt.PPTLSButtonOpacity;
mw.PPTUIManager.PPTRSButtonOpacity = ppt.PPTRSButtonOpacity;
mw.PPTUIManager.UpdateNavigationButtonStyles();
}
mw?.UpdatePPTBtnPreview();
}
private void CheckboxSPPTBlackBackground_IsCheckChange(object sender, RoutedEventArgs e)
{
if (!_isLoaded) return;
var mw = GetMainWindow();
var str = SettingsManager.Settings.PowerPointSettings.PPTSButtonsOption.ToString();
char[] c = str.ToCharArray();
c[2] = CheckboxSPPTBlackBackground.IsChecked == true ? '2' : '1';
SettingsManager.Settings.PowerPointSettings.PPTSButtonsOption = int.Parse(new string(c));
SettingsManager.SaveSettingsToFile();
if (mw?.PPTUIManager != null && mw.BtnPPTSlideShowEnd.Visibility == Visibility.Visible)
{
mw.PPTUIManager.PPTSButtonsOption = SettingsManager.Settings.PowerPointSettings.PPTSButtonsOption;
mw.PPTUIManager.UpdateNavigationButtonStyles();
}
mw?.UpdatePPTBtnPreview();
}
private void CheckboxBPPTDisplayPage_IsCheckChange(object sender, RoutedEventArgs e)
{
if (!_isLoaded) return;
var mw = GetMainWindow();
var str = SettingsManager.Settings.PowerPointSettings.PPTBButtonsOption.ToString();
char[] c = str.ToCharArray();
c[0] = CheckboxBPPTDisplayPage.IsChecked == true ? '2' : '1';
SettingsManager.Settings.PowerPointSettings.PPTBButtonsOption = int.Parse(new string(c));
SettingsManager.SaveSettingsToFile();
if (mw?.PPTUIManager != null && mw.BtnPPTSlideShowEnd.Visibility == Visibility.Visible)
{
mw.PPTUIManager.PPTBButtonsOption = SettingsManager.Settings.PowerPointSettings.PPTBButtonsOption;
mw.PPTUIManager.UpdateNavigationButtonStyles();
}
mw?.UpdatePPTBtnPreview();
}
private void CheckboxBPPTHalfOpacity_IsCheckChange(object sender, RoutedEventArgs e)
{
if (!_isLoaded) return;
var mw = GetMainWindow();
var ppt = SettingsManager.Settings.PowerPointSettings;
var str = ppt.PPTBButtonsOption.ToString();
char[] c = str.ToCharArray();
bool isHalf = CheckboxBPPTHalfOpacity.IsChecked == true;
c[1] = isHalf ? '2' : '1';
ppt.PPTBButtonsOption = int.Parse(new string(c));
if (isHalf)
{
if (ppt.PPTLBButtonOpacity == 1.0) ppt.PPTLBButtonOpacity = 0.5;
if (ppt.PPTRBButtonOpacity == 1.0) ppt.PPTRBButtonOpacity = 0.5;
PPTLBButtonOpacityValueSlider.Value = ppt.PPTLBButtonOpacity;
PPTRBButtonOpacityValueSlider.Value = ppt.PPTRBButtonOpacity;
}
else
{
if (ppt.PPTLBButtonOpacity == 0.5) ppt.PPTLBButtonOpacity = 1.0;
if (ppt.PPTRBButtonOpacity == 0.5) ppt.PPTRBButtonOpacity = 1.0;
PPTLBButtonOpacityValueSlider.Value = ppt.PPTLBButtonOpacity;
PPTRBButtonOpacityValueSlider.Value = ppt.PPTRBButtonOpacity;
}
SettingsManager.SaveSettingsToFile();
if (mw?.PPTUIManager != null && mw.BtnPPTSlideShowEnd.Visibility == Visibility.Visible)
{
mw.PPTUIManager.PPTBButtonsOption = ppt.PPTBButtonsOption;
mw.PPTUIManager.PPTLBButtonOpacity = ppt.PPTLBButtonOpacity;
mw.PPTUIManager.PPTRBButtonOpacity = ppt.PPTRBButtonOpacity;
mw.PPTUIManager.UpdateNavigationButtonStyles();
}
mw?.UpdatePPTBtnPreview();
}
private void CheckboxBPPTBlackBackground_IsCheckChange(object sender, RoutedEventArgs e)
{
if (!_isLoaded) return;
var mw = GetMainWindow();
var str = SettingsManager.Settings.PowerPointSettings.PPTBButtonsOption.ToString();
char[] c = str.ToCharArray();
c[2] = CheckboxBPPTBlackBackground.IsChecked == true ? '2' : '1';
SettingsManager.Settings.PowerPointSettings.PPTBButtonsOption = int.Parse(new string(c));
SettingsManager.SaveSettingsToFile();
if (mw?.PPTUIManager != null && mw.BtnPPTSlideShowEnd.Visibility == Visibility.Visible)
{
mw.PPTUIManager.PPTBButtonsOption = SettingsManager.Settings.PowerPointSettings.PPTBButtonsOption;
mw.PPTUIManager.UpdateNavigationButtonStyles();
}
mw?.UpdatePPTBtnPreview();
}
#endregion
#region PPT SlideShow Entry & Gesture
private void ToggleSwitchShowCanvasAtNewSlideShow_Toggled(object sender, RoutedEventArgs e)
{
if (!_isLoaded) return;
SettingsManager.Settings.PowerPointSettings.IsShowCanvasAtNewSlideShow = CardShowCanvasAtNewSlideShow.IsOn;
SettingsManager.SaveSettingsToFile();
}
private void ToggleSwitchEnableTwoFingerGestureInPresentationMode_Toggled(object sender, RoutedEventArgs e)
{
if (!_isLoaded) return;
SettingsManager.Settings.PowerPointSettings.IsEnableTwoFingerGestureInPresentationMode = CardEnableTwoFingerGestureInPresentationMode.IsOn;
SettingsManager.SaveSettingsToFile();
}
private void ToggleSwitchEnableFingerGestureSlideShowControl_Toggled(object sender, RoutedEventArgs e)
{
if (!_isLoaded) return;
SettingsManager.Settings.PowerPointSettings.IsEnableFingerGestureSlideShowControl = CardEnableFingerGestureSlideShowControl.IsOn;
SettingsManager.SaveSettingsToFile();
}
private void ToggleSwitchShowGestureButtonInSlideShow_Toggled(object sender, RoutedEventArgs e)
{
if (!_isLoaded) return;
var mw = GetMainWindow();
SettingsManager.Settings.PowerPointSettings.ShowGestureButtonInSlideShow = CardShowGestureButtonInSlideShow.IsOn;
SettingsManager.SaveSettingsToFile();
if (mw != null && mw.BtnPPTSlideShowEnd.Visibility == Visibility.Visible)
mw.UpdateGestureButtonVisibilityInPPTMode();
}
private void ToggleSwitchEnablePPTTimeCapsule_Toggled(object sender, RoutedEventArgs e)
{
if (!_isLoaded) return;
var mw = GetMainWindow();
SettingsManager.Settings.PowerPointSettings.EnablePPTTimeCapsule = CardEnablePPTTimeCapsule.IsOn;
SettingsManager.SaveSettingsToFile();
if (mw != null && mw.BtnPPTSlideShowEnd.Visibility == Visibility.Visible)
{
mw.UpdatePPTTimeCapsuleVisibility();
mw.UpdatePPTQuickPanelVisibility();
}
}
private void ComboBoxPPTTimeCapsulePosition_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (!_isLoaded || ComboBoxPPTTimeCapsulePosition == null) return;
var mw = GetMainWindow();
SettingsManager.Settings.PowerPointSettings.PPTTimeCapsulePosition = ComboBoxPPTTimeCapsulePosition.SelectedIndex;
SettingsManager.SaveSettingsToFile();
if (mw != null && mw.BtnPPTSlideShowEnd.Visibility == Visibility.Visible)
mw.UpdatePPTTimeCapsulePosition();
}
#endregion
#region PPT Auto Save & Notifications
private void ToggleSwitchAutoSaveScreenShotInPowerPoint_Toggled(object sender, RoutedEventArgs e)
{
if (!_isLoaded) return;
SettingsManager.Settings.PowerPointSettings.IsAutoSaveScreenShotInPowerPoint = CardAutoSaveScreenShotInPowerPoint.IsOn;
SettingsManager.SaveSettingsToFile();
}
private void ToggleSwitchAutoSaveStrokesInPowerPoint_Toggled(object sender, RoutedEventArgs e)
{
if (!_isLoaded) return;
SettingsManager.Settings.PowerPointSettings.IsAutoSaveStrokesInPowerPoint = CardAutoSaveStrokesInPowerPoint.IsOn;
SettingsManager.SaveSettingsToFile();
}
private void ToggleSwitchNotifyPreviousPage_Toggled(object sender, RoutedEventArgs e)
{
if (!_isLoaded) return;
SettingsManager.Settings.PowerPointSettings.IsNotifyPreviousPage = CardNotifyPreviousPage.IsOn;
SettingsManager.SaveSettingsToFile();
}
private void ToggleSwitchAlwaysGoToFirstPageOnReenter_Toggled(object sender, RoutedEventArgs e)
{
if (!_isLoaded) return;
SettingsManager.Settings.PowerPointSettings.IsAlwaysGoToFirstPageOnReenter = CardAlwaysGoToFirstPageOnReenter.IsOn;
SettingsManager.SaveSettingsToFile();
}
private void ToggleSwitchNotifyHiddenPage_Toggled(object sender, RoutedEventArgs e)
{
if (!_isLoaded) return;
SettingsManager.Settings.PowerPointSettings.IsNotifyHiddenPage = CardNotifyHiddenPage.IsOn;
SettingsManager.SaveSettingsToFile();
}
private void ToggleSwitchNotifyAutoPlayPresentation_Toggled(object sender, RoutedEventArgs e)
{
if (!_isLoaded) return;
SettingsManager.Settings.PowerPointSettings.IsNotifyAutoPlayPresentation = CardNotifyAutoPlayPresentation.IsOn;
SettingsManager.SaveSettingsToFile();
}
#endregion
}
}