Files
2025-08-23 21:39:21 +08:00

519 lines
22 KiB
C#

using System;
using Newtonsoft.Json;
namespace Ink_Canvas
{
public class Settings
{
[JsonProperty("advanced")]
public Advanced Advanced { get; set; } = new Advanced();
[JsonProperty("appearance")]
public Appearance Appearance { get; set; } = new Appearance();
[JsonProperty("automation")]
public Automation Automation { get; set; } = new Automation();
[JsonProperty("behavior")]
public PowerPointSettings PowerPointSettings { get; set; } = new PowerPointSettings();
[JsonProperty("canvas")]
public Canvas Canvas { get; set; } = new Canvas();
[JsonProperty("gesture")]
public Gesture Gesture { get; set; } = new Gesture();
[JsonProperty("inkToShape")]
public InkToShape InkToShape { get; set; } = new InkToShape();
[JsonProperty("startup")]
public Startup Startup { get; set; } = new Startup();
[JsonProperty("randSettings")]
public RandSettings RandSettings { get; set; } = new RandSettings();
[JsonProperty("snapshot")]
public Snapshot Snapshot { get; set; } = new Snapshot();
[JsonProperty("storage")]
public Storage Storage { get; set; } = new Storage();
}
public class Snapshot {
[JsonProperty("usingMagnificationAPI")]
public bool ScreenshotUsingMagnificationAPI { get; set; } = false;
[JsonProperty("copyScreenshotToClipboard")]
public bool CopyScreenshotToClipboard { get; set; } = true;
[JsonProperty("hideMainWinWhenScreenshot")]
public bool HideMainWinWhenScreenshot { get; set; } = true;
[JsonProperty("attachInkWhenScreenshot")]
public bool AttachInkWhenScreenshot { get; set; } = true;
[JsonProperty("onlySnapshotMaximizeWindow")]
public bool OnlySnapshotMaximizeWindow { get; set; } = false;
[JsonProperty("screenshotFileName")]
public string ScreenshotFileName { get; set; } = "Screenshot-[YYYY]-[MM]-[DD]-[HH]-[mm]-[ss].png";
}
public class Storage {
[JsonProperty("storageLocation")]
public string StorageLocation { get; set; } = "a-";
[JsonProperty("userStorageLocation")]
public string UserStorageLocation { get; set; } = "";
}
public class Canvas
{
[JsonProperty("inkWidth")]
public double InkWidth { get; set; } = 2.5;
[JsonProperty("highlighterWidth")]
public double HighlighterWidth { get; set; } = 20;
[JsonProperty("inkAlpha")]
public double InkAlpha { get; set; } = 255;
[JsonProperty("isShowCursor")]
public bool IsShowCursor { get; set; } = false;
[JsonProperty("inkStyle")]
public int InkStyle { get; set; } = 0;
[JsonProperty("eraserSize")]
public int EraserSize { get; set; } = 2;
[JsonProperty("eraserType")]
public int EraserType { get; set; } = 0; // 0 - 图标切换模式 1 - 面积擦 2 - 线条擦
[JsonProperty("eraserShapeType")]
public int EraserShapeType { get; set; } = 0; // 0 - 圆形擦 1 - 黑板擦
[JsonProperty("hideStrokeWhenSelecting")]
public bool HideStrokeWhenSelecting { get; set; } = true;
[JsonProperty("fitToCurve")]
public bool FitToCurve { get; set; } = true;
[JsonProperty("clearCanvasAndClearTimeMachine")]
public bool ClearCanvasAndClearTimeMachine { get; set; } = false;
[Obsolete("已经使用多背景色“blackboardBackgroundColor”替换该选项")]
[JsonProperty("usingWhiteboard")]
public bool UsingWhiteboard { get; set; }
[JsonProperty("hyperbolaAsymptoteOption")]
public OptionalOperation HyperbolaAsymptoteOption { get; set; } = OptionalOperation.Ask;
[JsonProperty("blackboardBackgroundColor")]
public BlackboardBackgroundColorEnum BlackboardBackgroundColor { get; set; } =
BlackboardBackgroundColorEnum.White;
[JsonProperty("blackboardBackgroundPattern")]
public BlackboardBackgroundPatternEnum BlackboardBackgroundPattern { get; set; } =
BlackboardBackgroundPatternEnum.None;
[JsonProperty("useDefaultBackgroundColorForEveryNewAddedBlackboardPage")]
public bool UseDefaultBackgroundColorForEveryNewAddedBlackboardPage { get; set; } = false;
[JsonProperty("useDefaultBackgroundPatternForEveryNewAddedBlackboardPage")]
public bool UseDefaultBackgroundPatternForEveryNewAddedBlackboardPage { get; set; } = false;
[JsonProperty("isEnableAutoConvertInkColorWhenBackgroundChanged")]
public bool IsEnableAutoConvertInkColorWhenBackgroundChanged { get; set; } = false;
[JsonProperty("ApplyScaleToStylusTip")]
public bool ApplyScaleToStylusTip { get; set; } = false;
[JsonProperty("onlyHitTestFullyContainedStrokes")]
public bool OnlyHitTestFullyContainedStrokes { get; set; } = false;
[JsonProperty("allowClickToSelectLockedStroke")]
public bool AllowClickToSelectLockedStroke { get; set; } = false;
[JsonProperty("selectionMethod")]
public int SelectionMethod { get; set; } = 0;
}
public enum OptionalOperation
{
Yes,
No,
Ask
}
public enum BlackboardBackgroundColorEnum
{
GrayBlack,
BlackBoardGreen,
White,
BlueBlack,
EyeProtectionGreen,
RealBlack
}
public enum BlackboardBackgroundPatternEnum
{
None,
Dots,
Grid
}
public class Gesture
{
[JsonIgnore]
public bool IsEnableTwoFingerGesture => IsEnableTwoFingerZoom || IsEnableTwoFingerTranslate || IsEnableTwoFingerRotation;
[JsonIgnore]
public bool IsEnableTwoFingerGestureTranslateOrRotation => IsEnableTwoFingerTranslate || IsEnableTwoFingerRotation;
[JsonProperty("isEnableMultiTouchMode")]
public bool IsEnableMultiTouchMode { get; set; } = true;
[JsonProperty("isEnableTwoFingerZoom")]
public bool IsEnableTwoFingerZoom { get; set; } = true;
[JsonProperty("isEnableTwoFingerTranslate")]
public bool IsEnableTwoFingerTranslate { get; set; } = true;
[JsonProperty("AutoSwitchTwoFingerGesture")]
public bool AutoSwitchTwoFingerGesture { get; set; } = true;
[JsonProperty("isEnableTwoFingerRotation")]
public bool IsEnableTwoFingerRotation { get; set; } = false;
[JsonProperty("isEnableTwoFingerRotationOnSelection")]
public bool IsEnableTwoFingerRotationOnSelection { get; set; } = false;
[JsonProperty("disableGestureEraser")]
public bool DisableGestureEraser { get; set; } = true;
[JsonProperty("defaultMultiPointHandWritingMode")]
public int DefaultMultiPointHandWritingMode { get; set; } = 2;
[JsonProperty("hideCursorWhenUsingTouchDevice")]
public bool HideCursorWhenUsingTouchDevice { get; set; } = true;
[JsonProperty("enableMouseGesture")]
public bool EnableMouseGesture { get; set; } = true;
[JsonProperty("enableMouseRightBtnGesture")]
public bool EnableMouseRightBtnGesture { get; set; } = true;
[JsonProperty("enableMouseWheelGesture")]
public bool EnableMouseWheelGesture { get; set; } = true;
[JsonProperty("windowsInkEraserButtonAction")]
public int WindowsInkEraserButtonAction { get; set; } = 2;
[JsonProperty("windowsInkBarrelButtonAction")]
public int WindowsInkBarrelButtonAction { get; set; } = 0;
}
public class Startup
{
[JsonProperty("isAutoUpdate")]
public bool IsAutoUpdate { get; set; } = true;
[JsonProperty("isAutoUpdateWithSilence")]
public bool IsAutoUpdateWithSilence { get; set; } = false;
[JsonProperty("isAutoUpdateWithSilenceStartTime")]
public string AutoUpdateWithSilenceStartTime { get; set; } = "00:00";
[JsonProperty("isAutoUpdateWithSilenceEndTime")]
public string AutoUpdateWithSilenceEndTime { get; set; } = "00:00";
[JsonProperty("isEnableNibMode")]
public bool IsEnableNibMode { get; set; } = false;
/*
[JsonProperty("isAutoHideCanvas")]
public bool IsAutoHideCanvas { get; set; } = true;
[JsonProperty("isAutoEnterModeFinger")]
public bool IsAutoEnterModeFinger { get; set; } = false;*/
[JsonProperty("isFoldAtStartup")]
public bool IsFoldAtStartup { get; set; } = false;
[JsonProperty("enableWindowChromeRendering")]
public bool EnableWindowChromeRendering { get; set; } = false;
}
public class Appearance
{
[JsonProperty("isEnableDisPlayNibModeToggler")]
public bool IsEnableDisPlayNibModeToggler { get; set; } = true;
[JsonProperty("isColorfulViewboxFloatingBar")]
public bool IsColorfulViewboxFloatingBar { get; set; } = false;
// [JsonProperty("enableViewboxFloatingBarScaleTransform")]
// public bool EnableViewboxFloatingBarScaleTransform { get; set; } = false;
[JsonProperty("viewboxFloatingBarScaleTransformValue")]
public double ViewboxFloatingBarScaleTransformValue { get; set; } = 1.0;
[JsonProperty("floatingBarImg")]
public int FloatingBarImg { get; set; } = 0;
[JsonProperty("viewboxFloatingBarOpacityValue")]
public double ViewboxFloatingBarOpacityValue { get; set; } = 1.0;
[JsonProperty("enableTrayIcon")]
public bool EnableTrayIcon { get; set; } = true;
[JsonProperty("viewboxFloatingBarOpacityInPPTValue")]
public double ViewboxFloatingBarOpacityInPPTValue { get; set; } = 0.5;
[JsonProperty("enableViewboxBlackBoardScaleTransform")]
public bool EnableViewboxBlackBoardScaleTransform { get; set; } = false;
[JsonProperty("isTransparentButtonBackground")]
public bool IsTransparentButtonBackground { get; set; } = true;
[JsonProperty("isShowExitButton")]
public bool IsShowExitButton { get; set; } = true;
[JsonProperty("isShowEraserButton")]
public bool IsShowEraserButton { get; set; } = true;
[JsonProperty("enableTimeDisplayInWhiteboardMode")]
public bool EnableTimeDisplayInWhiteboardMode { get; set; } = true;
[JsonProperty("enableChickenSoupInWhiteboardMode")]
public bool EnableChickenSoupInWhiteboardMode { get; set; } = true;
[JsonProperty("isShowHideControlButton")]
public bool IsShowHideControlButton { get; set; } = false;
[JsonProperty("unFoldButtonImageType")]
public int UnFoldButtonImageType { get; set; } = 0;
[JsonProperty("isShowLRSwitchButton")]
public bool IsShowLRSwitchButton { get; set; } = false;
[JsonProperty("isShowQuickPanel")]
public bool IsShowQuickPanel { get; set; } = true;
[JsonProperty("chickenSoupSource")]
public int ChickenSoupSource { get; set; } = 1;
[JsonProperty("isShowModeFingerToggleSwitch")]
public bool IsShowModeFingerToggleSwitch { get; set; } = true;
[JsonProperty("theme")]
public int Theme { get; set; } = 0;
[JsonProperty("floatingBarButtonLabelVisibility")]
public bool FloatingBarButtonLabelVisibility = true;
[JsonProperty("floatingBarIconsVisibility")]
public string FloatingBarIconsVisibility = "1111111111";
[JsonProperty("eraserButtonsVisibility")]
public int EraserButtonsVisibility = 0;
[JsonProperty("onlyDisplayEraserBtn")]
public bool OnlyDisplayEraserBtn = false;
}
public class PowerPointSettings
{
// -- new --
[JsonProperty("showPPTButton")]
public bool ShowPPTButton { get; set; } = true;
// 每一个数位代表一个选项,2就是开启,1就是关闭
[JsonProperty("pptButtonsDisplayOption")]
public int PPTButtonsDisplayOption { get; set; } = 2222;
// 0居中,+就是往上,-就是往下
[JsonProperty("pptLSButtonPosition")]
public int PPTLSButtonPosition { get; set; } = 0;
// 0居中,+就是往上,-就是往下
[JsonProperty("pptRSButtonPosition")]
public int PPTRSButtonPosition { get; set; } = 0;
[JsonProperty("pptSButtonsOption")]
public int PPTSButtonsOption { get; set; } = 221;
[JsonProperty("pptBButtonsOption")]
public int PPTBButtonsOption { get; set; } = 121;
[JsonProperty("enablePPTButtonPageClickable")]
public bool EnablePPTButtonPageClickable { get; set; } = true;
// -- new --
[JsonProperty("powerPointSupport")]
public bool PowerPointSupport { get; set; } = true;
[JsonProperty("isShowCanvasAtNewSlideShow")]
public bool IsShowCanvasAtNewSlideShow { get; set; } = true;
[JsonProperty("isNoClearStrokeOnSelectWhenInPowerPoint")]
public bool IsNoClearStrokeOnSelectWhenInPowerPoint { get; set; } = true;
[JsonProperty("isAutoSaveStrokesInPowerPoint")]
public bool IsAutoSaveStrokesInPowerPoint { get; set; } = true;
[JsonProperty("isAutoSaveScreenShotInPowerPoint")]
public bool IsAutoSaveScreenShotInPowerPoint { get; set; } = false;
[JsonProperty("isNotifyPreviousPage")]
public bool IsNotifyPreviousPage { get; set; } = false;
[JsonProperty("isNotifyHiddenPage")]
public bool IsNotifyHiddenPage { get; set; } = true;
[JsonProperty("isNotifyAutoPlayPresentation")]
public bool IsNotifyAutoPlayPresentation { get; set; } = true;
[JsonProperty("isEnableTwoFingerGestureInPresentationMode")]
public bool IsEnableTwoFingerGestureInPresentationMode { get; set; } = false;
[JsonProperty("isSupportWPS")]
public bool IsSupportWPS { get; set; } = true;
[JsonProperty("registryShowSlideShowToolbar")]
public bool RegistryShowSlideShowToolbar { get; set; } = false;
[JsonProperty("registryShowBlackScreenLastSlideShow")]
public bool RegistryShowBlackScreenLastSlideShow { get; set; } = false;
}
public class Automation
{
[JsonIgnore]
public bool IsEnableAutoFold =>
IsAutoFoldInEasiNote
|| IsAutoFoldInEasiCamera
|| IsAutoFoldInEasiNote3C
|| IsAutoFoldInEasiNote5C
|| IsAutoFoldInSeewoPincoTeacher
|| IsAutoFoldInHiteTouchPro
|| IsAutoFoldInHiteCamera
|| IsAutoFoldInWxBoardMain
|| IsAutoFoldInOldZyBoard
|| IsAutoFoldInPPTSlideShow
|| IsAutoFoldInMSWhiteboard
|| IsAutoFoldInAdmoxWhiteboard
|| IsAutoFoldInAdmoxBooth
|| IsAutoFoldInQPoint
|| IsAutoFoldInYiYunVisualPresenter
|| IsAutoFoldInMaxHubWhiteboard;
[JsonProperty("isAutoFoldInEasiNote")]
public bool IsAutoFoldInEasiNote { get; set; } = false;
[JsonProperty("isAutoFoldInEasiNoteIgnoreDesktopAnno")]
public bool IsAutoFoldInEasiNoteIgnoreDesktopAnno { get; set; } = false;
[JsonProperty("isAutoFoldInEasiCamera")]
public bool IsAutoFoldInEasiCamera { get; set; } = false;
[JsonProperty("isAutoFoldInEasiNote3")]
public bool IsAutoFoldInEasiNote3 { get; set; } = false;
[JsonProperty("isAutoFoldInEasiNote3C")]
public bool IsAutoFoldInEasiNote3C { get; set; } = false;
[JsonProperty("isAutoFoldInEasiNote5C")]
public bool IsAutoFoldInEasiNote5C { get; set; } = false;
[JsonProperty("isAutoFoldInSeewoPincoTeacher")]
public bool IsAutoFoldInSeewoPincoTeacher { get; set; } = false;
[JsonProperty("isAutoFoldInHiteTouchPro")]
public bool IsAutoFoldInHiteTouchPro { get; set; } = false;
[JsonProperty("isAutoFoldInHiteLightBoard")]
public bool IsAutoFoldInHiteLightBoard { get; set; } = false;
[JsonProperty("isAutoFoldInHiteCamera")]
public bool IsAutoFoldInHiteCamera { get; set; } = false;
[JsonProperty("isAutoFoldInWxBoardMain")]
public bool IsAutoFoldInWxBoardMain { get; set; } = false;
/*
[JsonProperty("isAutoFoldInZySmartBoard")]
public bool IsAutoFoldInZySmartBoard { get; set; } = false;
*/
[JsonProperty("isAutoFoldInOldZyBoard")]
public bool IsAutoFoldInOldZyBoard { get; set; } = false;
[JsonProperty("isAutoFoldInMSWhiteboard")]
public bool IsAutoFoldInMSWhiteboard { get; set; } = false;
[JsonProperty("isAutoFoldInAdmoxWhiteboard")]
public bool IsAutoFoldInAdmoxWhiteboard { get; set; } = false;
[JsonProperty("isAutoFoldInAdmoxBooth")]
public bool IsAutoFoldInAdmoxBooth { get; set; } = false;
[JsonProperty("isAutoFoldInQPoint")]
public bool IsAutoFoldInQPoint { get; set; } = false;
[JsonProperty("isAutoFoldInYiYunVisualPresenter")]
public bool IsAutoFoldInYiYunVisualPresenter { get; set; } = false;
[JsonProperty("isAutoFoldInMaxHubWhiteboard")]
public bool IsAutoFoldInMaxHubWhiteboard { get; set; } = false;
[JsonProperty("isAutoFoldInPPTSlideShow")]
public bool IsAutoFoldInPPTSlideShow { get; set; } = false;
[JsonProperty("isAutoKillPptService")]
public bool IsAutoKillPptService { get; set; } = false;
[JsonProperty("isAutoKillEasiNote")]
public bool IsAutoKillEasiNote { get; set; } = false;
[JsonProperty("isAutoKillHiteAnnotation")]
public bool IsAutoKillHiteAnnotation { get; set; } = false;
[JsonProperty("isAutoKillVComYouJiao")]
public bool IsAutoKillVComYouJiao { get; set; } = false;
[JsonProperty("isAutoKillSeewoLauncher2DesktopAnnotation")]
public bool IsAutoKillSeewoLauncher2DesktopAnnotation { get; set; } = false;
[JsonProperty("isAutoKillInkCanvas")]
public bool IsAutoKillInkCanvas { get; set; } = false;
[JsonProperty("isAutoKillICA")]
public bool IsAutoKillICA { get; set; } = false;
[JsonProperty("isAutoKillIDT")]
public bool IsAutoKillIDT { get; set; } = true;
[JsonProperty("isSaveScreenshotsInDateFolders")]
public bool IsSaveScreenshotsInDateFolders { get; set; } = false;
[JsonProperty("isAutoSaveStrokesAtScreenshot")]
public bool IsAutoSaveStrokesAtScreenshot { get; set; } = false;
[JsonProperty("isAutoSaveStrokesAtClear")]
public bool IsAutoSaveStrokesAtClear { get; set; } = false;
[JsonProperty("isAutoClearWhenExitingWritingMode")]
public bool IsAutoClearWhenExitingWritingMode { get; set; } = false;
[JsonProperty("minimumAutomationStrokeNumber")]
public int MinimumAutomationStrokeNumber { get; set; } = 0;
[JsonProperty("autoSavedStrokesLocation")]
public string AutoSavedStrokesLocation = @"D:\Ink Canvas";
[JsonProperty("autoDelSavedFiles")]
public bool AutoDelSavedFiles = false;
[JsonProperty("autoDelSavedFilesDaysThreshold")]
public int AutoDelSavedFilesDaysThreshold = 15;
[JsonProperty("isEnableLimitAutoSaveAmount")]
public bool IsEnableLimitAutoSaveAmount { get; set; } = false;
[JsonProperty("limitAutoSaveAmount")]
public int LimitAutoSaveAmount { get; set; } = 3;
}
public class Advanced
{
[JsonProperty("isSpecialScreen")]
public bool IsSpecialScreen { get; set; } = false;
[JsonProperty("isQuadIR")]
public bool IsQuadIR { get; set; } = false;
[JsonProperty("touchMultiplier")]
public double TouchMultiplier { get; set; } = 0.25;
[JsonProperty("nibModeBoundsWidth")]
public int NibModeBoundsWidth { get; set; } = 10;
[JsonProperty("fingerModeBoundsWidth")]
public int FingerModeBoundsWidth { get; set; } = 30;
[JsonProperty("eraserBindTouchMultiplier")]
public bool EraserBindTouchMultiplier { get; set; } = false;
[JsonProperty("nibModeBoundsWidthThresholdValue")]
public double NibModeBoundsWidthThresholdValue { get; set; } = 2.5;
[JsonProperty("fingerModeBoundsWidthThresholdValue")]
public double FingerModeBoundsWidthThresholdValue { get; set; } = 2.5;
[JsonProperty("nibModeBoundsWidthEraserSize")]
public double NibModeBoundsWidthEraserSize { get; set; } = 0.8;
[JsonProperty("fingerModeBoundsWidthEraserSize")]
public double FingerModeBoundsWidthEraserSize { get; set; } = 0.8;
[JsonProperty("isLogEnabled")]
public bool IsLogEnabled { get; set; } = true;
[JsonProperty("isEnableFullScreenHelper")]
public bool IsEnableFullScreenHelper { get; set; } = false;
[JsonProperty("isEnableEdgeGestureUtil")]
public bool IsEnableEdgeGestureUtil { get; set; } = false;
[JsonProperty("edgeGestureUtilOnlyAffectBlackboardMode")]
public bool EdgeGestureUtilOnlyAffectBlackboardMode { get; set; } = false;
[JsonProperty("isEnableForceFullScreen")]
public bool IsEnableForceFullScreen { get; set; } = false;
[JsonProperty("isEnableResolutionChangeDetection")]
public bool IsEnableResolutionChangeDetection { get; set; } = false;
[JsonProperty("isEnableDPIChangeDetection")]
public bool IsEnableDPIChangeDetection { get; set; } = false;
[JsonProperty("isDisableCloseWindow")]
public bool IsDisableCloseWindow { get; set; } = true;
[JsonProperty("enableForceTopMost")]
public bool EnableForceTopMost { get; set; } = false;
}
public class InkToShape
{
[JsonProperty("isInkToShapeEnabled")]
public bool IsInkToShapeEnabled { get; set; } = true;
[JsonProperty("isInkToShapeNoFakePressureRectangle")]
public bool IsInkToShapeNoFakePressureRectangle { get; set; } = false;
[JsonProperty("isInkToShapeNoFakePressureTriangle")]
public bool IsInkToShapeNoFakePressureTriangle { get; set; } = false;
[JsonProperty("isInkToShapeTriangle")]
public bool IsInkToShapeTriangle { get; set; } = true;
[JsonProperty("isInkToShapeRectangle")]
public bool IsInkToShapeRectangle { get; set; } = true;
[JsonProperty("isInkToShapeRounded")]
public bool IsInkToShapeRounded { get; set; } = true;
}
public class RandSettings {
[JsonProperty("displayRandWindowNamesInputBtn")]
public bool DisplayRandWindowNamesInputBtn { get; set; } = false;
[JsonProperty("randWindowOnceCloseLatency")]
public double RandWindowOnceCloseLatency { get; set; } = 2.5;
[JsonProperty("randWindowOnceMaxStudents")]
public int RandWindowOnceMaxStudents { get; set; } = 10;
}
}