Files
community/Ink Canvas/Helpers/ComPPTLinkManager.cs
T
doudou0720 ab7905696d refactor(PPT)!: 重构PPT链接管理器,引入基类并优化代码结构
将ROTPPTManager重命名为ROTPPTLinkManager
新增BasePPTLinkManager抽象基类,提取公共逻辑
重构ComPPTLinkManager继承自基类,减少重复代码

Signed-off-by: doudou0720 <98651603+doudou0720@users.noreply.github.com>
2026-04-12 13:40:54 +08:00

92 lines
3.0 KiB
C#

using System;
namespace Ink_Canvas.Helpers
{
public class ComPPTLinkManager : BasePPTLinkManager
{
private readonly PPTManager _inner;
public ComPPTLinkManager()
{
_inner = new PPTManager();
_inner.SlideShowBegin += wn => OnSlideShowBegin(wn);
_inner.SlideShowNextSlide += wn => OnSlideShowNextSlide(wn);
_inner.SlideShowEnd += pres => OnSlideShowEnd(pres);
_inner.PresentationOpen += pres => OnPresentationOpen(pres);
_inner.PresentationClose += pres => OnPresentationClose(pres);
_inner.PPTConnectionChanged += connected => OnPPTConnectionChanged(connected);
_inner.SlideShowStateChanged += inSlideShow => OnSlideShowStateChanged(inSlideShow);
}
#region BasePPTLinkManager
public override bool IsConnected => _inner.IsConnected;
public override bool IsInSlideShow => _inner.IsInSlideShow;
public override bool IsSupportWPS
{
get => _inner.IsSupportWPS;
set => _inner.IsSupportWPS = value;
}
public override bool SkipAnimationsWhenNavigating
{
get => _inner.SkipAnimationsWhenNavigating;
set => _inner.SkipAnimationsWhenNavigating = value;
}
public override int SlidesCount => _inner.SlidesCount;
public override object PPTApplication
{
get => _inner.PPTApplication;
protected set { }
}
#endregion
#region
public override void StartMonitoring() => _inner.StartMonitoring();
public override void StopMonitoring() => _inner.StopMonitoring();
public override void ReloadConnection()
{
LogHelper.WriteLogToFile("COM PPT 执行热重载:强制断开并重新连接", LogHelper.LogType.Event);
_inner.StopMonitoring();
}
#endregion
#region
public override bool TryStartSlideShow() => _inner.TryStartSlideShow();
public override bool TryEndSlideShow() => _inner.TryEndSlideShow();
#endregion
#region
public override bool TryNavigateToSlide(int slideNumber) => _inner.TryNavigateToSlide(slideNumber);
public override bool TryNavigateNext() => _inner.TryNavigateNext();
public override bool TryNavigatePrevious() => _inner.TryNavigatePrevious();
#endregion
#region
public override int GetCurrentSlideNumber() => _inner.GetCurrentSlideNumber();
public override string GetPresentationName() => _inner.GetPresentationName();
public override bool TryShowSlideNavigation() => _inner.TryShowSlideNavigation();
public override object GetCurrentActivePresentation() => _inner.GetCurrentActivePresentation();
#endregion
#region IDisposable
public override void Dispose()
{
_inner?.Dispose();
}
#endregion
}
}