ソースを参照

【综合】系统菜单栏文件拆分

tangchao 1 年間 前
コミット
bdac83f44e

+ 72 - 8
PDF Office/PDF Master.xcodeproj/project.pbxproj

@@ -3666,9 +3666,6 @@
 		BBB14A6329792D6900936EDB /* KMRedactPageRangeContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBB14A6229792D6900936EDB /* KMRedactPageRangeContentView.swift */; };
 		BBB14A6429792D6900936EDB /* KMRedactPageRangeContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBB14A6229792D6900936EDB /* KMRedactPageRangeContentView.swift */; };
 		BBB14A6529792D6900936EDB /* KMRedactPageRangeContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBB14A6229792D6900936EDB /* KMRedactPageRangeContentView.swift */; };
-		BBB1A39E29F6128200E54E47 /* KMSystemMenu.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBB1A39D29F6128200E54E47 /* KMSystemMenu.swift */; };
-		BBB1A39F29F6128200E54E47 /* KMSystemMenu.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBB1A39D29F6128200E54E47 /* KMSystemMenu.swift */; };
-		BBB1A3A029F6128200E54E47 /* KMSystemMenu.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBB1A39D29F6128200E54E47 /* KMSystemMenu.swift */; };
 		BBB1A3A629F6B66400E54E47 /* NSPanel+KMExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBB1A3A529F6B66400E54E47 /* NSPanel+KMExtension.swift */; };
 		BBB1A3A729F6B66400E54E47 /* NSPanel+KMExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBB1A3A529F6B66400E54E47 /* NSPanel+KMExtension.swift */; };
 		BBB1A3A829F6B66400E54E47 /* NSPanel+KMExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBB1A3A529F6B66400E54E47 /* NSPanel+KMExtension.swift */; };
@@ -4261,6 +4258,30 @@
 		BBFE6E87293210AB00142C01 /* KMCompressCellView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBFE6E86293210AB00142C01 /* KMCompressCellView.swift */; };
 		BBFE6E88293210AB00142C01 /* KMCompressCellView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBFE6E86293210AB00142C01 /* KMCompressCellView.swift */; };
 		BBFE6E89293210AB00142C01 /* KMCompressCellView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBFE6E86293210AB00142C01 /* KMCompressCellView.swift */; };
+		BBFEF7132B3A766C00C28AC0 /* KMSystemMenu.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBFEF7122B3A766C00C28AC0 /* KMSystemMenu.swift */; };
+		BBFEF7142B3A766C00C28AC0 /* KMSystemMenu.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBFEF7122B3A766C00C28AC0 /* KMSystemMenu.swift */; };
+		BBFEF7152B3A766C00C28AC0 /* KMSystemMenu.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBFEF7122B3A766C00C28AC0 /* KMSystemMenu.swift */; };
+		BBFEF7172B3A77E700C28AC0 /* KMSystemFileMenu.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBFEF7162B3A77E700C28AC0 /* KMSystemFileMenu.swift */; };
+		BBFEF7182B3A77E700C28AC0 /* KMSystemFileMenu.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBFEF7162B3A77E700C28AC0 /* KMSystemFileMenu.swift */; };
+		BBFEF7192B3A77E700C28AC0 /* KMSystemFileMenu.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBFEF7162B3A77E700C28AC0 /* KMSystemFileMenu.swift */; };
+		BBFEF71B2B3A784200C28AC0 /* KMSystemEditMenu.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBFEF71A2B3A784200C28AC0 /* KMSystemEditMenu.swift */; };
+		BBFEF71C2B3A784200C28AC0 /* KMSystemEditMenu.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBFEF71A2B3A784200C28AC0 /* KMSystemEditMenu.swift */; };
+		BBFEF71D2B3A784200C28AC0 /* KMSystemEditMenu.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBFEF71A2B3A784200C28AC0 /* KMSystemEditMenu.swift */; };
+		BBFEF71F2B3A787900C28AC0 /* KMSystemAnnotationMenu.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBFEF71E2B3A787900C28AC0 /* KMSystemAnnotationMenu.swift */; };
+		BBFEF7202B3A787900C28AC0 /* KMSystemAnnotationMenu.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBFEF71E2B3A787900C28AC0 /* KMSystemAnnotationMenu.swift */; };
+		BBFEF7212B3A787900C28AC0 /* KMSystemAnnotationMenu.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBFEF71E2B3A787900C28AC0 /* KMSystemAnnotationMenu.swift */; };
+		BBFEF7232B3A78BC00C28AC0 /* KMSystemGotoMenu.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBFEF7222B3A78BC00C28AC0 /* KMSystemGotoMenu.swift */; };
+		BBFEF7242B3A78BC00C28AC0 /* KMSystemGotoMenu.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBFEF7222B3A78BC00C28AC0 /* KMSystemGotoMenu.swift */; };
+		BBFEF7252B3A78BC00C28AC0 /* KMSystemGotoMenu.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBFEF7222B3A78BC00C28AC0 /* KMSystemGotoMenu.swift */; };
+		BBFEF7272B3A78EC00C28AC0 /* KMSystemToolMenu.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBFEF7262B3A78EC00C28AC0 /* KMSystemToolMenu.swift */; };
+		BBFEF7282B3A78EC00C28AC0 /* KMSystemToolMenu.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBFEF7262B3A78EC00C28AC0 /* KMSystemToolMenu.swift */; };
+		BBFEF7292B3A78EC00C28AC0 /* KMSystemToolMenu.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBFEF7262B3A78EC00C28AC0 /* KMSystemToolMenu.swift */; };
+		BBFEF72B2B3A791B00C28AC0 /* KMSystemWindowMenu.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBFEF72A2B3A791B00C28AC0 /* KMSystemWindowMenu.swift */; };
+		BBFEF72C2B3A791B00C28AC0 /* KMSystemWindowMenu.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBFEF72A2B3A791B00C28AC0 /* KMSystemWindowMenu.swift */; };
+		BBFEF72D2B3A791B00C28AC0 /* KMSystemWindowMenu.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBFEF72A2B3A791B00C28AC0 /* KMSystemWindowMenu.swift */; };
+		BBFEF72F2B3A794700C28AC0 /* KMSystemViewMenu.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBFEF72E2B3A794700C28AC0 /* KMSystemViewMenu.swift */; };
+		BBFEF7302B3A794700C28AC0 /* KMSystemViewMenu.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBFEF72E2B3A794700C28AC0 /* KMSystemViewMenu.swift */; };
+		BBFEF7312B3A794700C28AC0 /* KMSystemViewMenu.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBFEF72E2B3A794700C28AC0 /* KMSystemViewMenu.swift */; };
 		F34BF926295303E8002C25A2 /* NSCursor+PDFListView.m in Sources */ = {isa = PBXBuildFile; fileRef = F34BF925295303E8002C25A2 /* NSCursor+PDFListView.m */; };
 		F34BF927295303E8002C25A2 /* NSCursor+PDFListView.m in Sources */ = {isa = PBXBuildFile; fileRef = F34BF925295303E8002C25A2 /* NSCursor+PDFListView.m */; };
 		F34BF928295303E8002C25A2 /* NSCursor+PDFListView.m in Sources */ = {isa = PBXBuildFile; fileRef = F34BF925295303E8002C25A2 /* NSCursor+PDFListView.m */; };
@@ -5828,7 +5849,6 @@
 		BBB14A5A2978EBBE00936EDB /* KMRedactMutilPageFlagContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMRedactMutilPageFlagContentView.swift; sourceTree = "<group>"; };
 		BBB14A5E297929BD00936EDB /* KMRedactPageRangeWindowController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMRedactPageRangeWindowController.swift; sourceTree = "<group>"; };
 		BBB14A6229792D6900936EDB /* KMRedactPageRangeContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMRedactPageRangeContentView.swift; sourceTree = "<group>"; };
-		BBB1A39D29F6128200E54E47 /* KMSystemMenu.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMSystemMenu.swift; sourceTree = "<group>"; };
 		BBB1A3A529F6B66400E54E47 /* NSPanel+KMExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "NSPanel+KMExtension.swift"; sourceTree = "<group>"; };
 		BBB29BCB2AEA190D005F1B6B /* KMToolbarCustomViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = KMToolbarCustomViewController.xib; sourceTree = "<group>"; };
 		BBB376952B10A7F9009539CC /* a_2a.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = a_2a.png; sourceTree = "<group>"; };
@@ -6061,6 +6081,14 @@
 		BBFE6E7D2930EBD400142C01 /* KMCompressWindowController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMCompressWindowController.swift; sourceTree = "<group>"; };
 		BBFE6E7E2930EBD400142C01 /* KMCompressWindowController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KMCompressWindowController.xib; sourceTree = "<group>"; };
 		BBFE6E86293210AB00142C01 /* KMCompressCellView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMCompressCellView.swift; sourceTree = "<group>"; };
+		BBFEF7122B3A766C00C28AC0 /* KMSystemMenu.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = KMSystemMenu.swift; sourceTree = "<group>"; };
+		BBFEF7162B3A77E700C28AC0 /* KMSystemFileMenu.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMSystemFileMenu.swift; sourceTree = "<group>"; };
+		BBFEF71A2B3A784200C28AC0 /* KMSystemEditMenu.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMSystemEditMenu.swift; sourceTree = "<group>"; };
+		BBFEF71E2B3A787900C28AC0 /* KMSystemAnnotationMenu.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMSystemAnnotationMenu.swift; sourceTree = "<group>"; };
+		BBFEF7222B3A78BC00C28AC0 /* KMSystemGotoMenu.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMSystemGotoMenu.swift; sourceTree = "<group>"; };
+		BBFEF7262B3A78EC00C28AC0 /* KMSystemToolMenu.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMSystemToolMenu.swift; sourceTree = "<group>"; };
+		BBFEF72A2B3A791B00C28AC0 /* KMSystemWindowMenu.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMSystemWindowMenu.swift; sourceTree = "<group>"; };
+		BBFEF72E2B3A794700C28AC0 /* KMSystemViewMenu.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMSystemViewMenu.swift; sourceTree = "<group>"; };
 		F34BF924295303E8002C25A2 /* NSCursor+PDFListView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "NSCursor+PDFListView.h"; sourceTree = "<group>"; };
 		F34BF925295303E8002C25A2 /* NSCursor+PDFListView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "NSCursor+PDFListView.m"; sourceTree = "<group>"; };
 		F34BF93329530708002C25A2 /* NSImage+PDFListView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "NSImage+PDFListView.h"; sourceTree = "<group>"; };
@@ -9411,6 +9439,7 @@
 		BB2C6A7128F2652500478A33 /* Class */ = {
 			isa = PBXGroup;
 			children = (
+				BBFEF7112B3A766C00C28AC0 /* SystemMenu */,
 				ADDF82E02B391A5C00A81A4E /* DigtalSignature */,
 				BB46CF3F2AFB659800281EDF /* AutoSave */,
 				AD6260762A9DC62C006C6413 /* KMResourceDownload */,
@@ -11048,7 +11077,6 @@
 				BB2C6A7128F2652500478A33 /* Class */,
 				BBFBE6C128DD7B98008B2335 /* Assets.xcassets */,
 				BBFBE6C328DD7B98008B2335 /* Main.storyboard */,
-				BBB1A39D29F6128200E54E47 /* KMSystemMenu.swift */,
 				BBFBE6C628DD7B98008B2335 /* PDF_Master.entitlements */,
 				BB2C6A7C28F26CEF00478A33 /* PDF_Master-Bridging-Header.h */,
 				BB2C6A7D28F26CEF00478A33 /* PDF_Master Pro-Bridging-Header.h */,
@@ -11172,6 +11200,21 @@
 			path = View;
 			sourceTree = "<group>";
 		};
+		BBFEF7112B3A766C00C28AC0 /* SystemMenu */ = {
+			isa = PBXGroup;
+			children = (
+				BBFEF7122B3A766C00C28AC0 /* KMSystemMenu.swift */,
+				BBFEF7162B3A77E700C28AC0 /* KMSystemFileMenu.swift */,
+				BBFEF71A2B3A784200C28AC0 /* KMSystemEditMenu.swift */,
+				BBFEF71E2B3A787900C28AC0 /* KMSystemAnnotationMenu.swift */,
+				BBFEF7222B3A78BC00C28AC0 /* KMSystemGotoMenu.swift */,
+				BBFEF7262B3A78EC00C28AC0 /* KMSystemToolMenu.swift */,
+				BBFEF72A2B3A791B00C28AC0 /* KMSystemWindowMenu.swift */,
+				BBFEF72E2B3A794700C28AC0 /* KMSystemViewMenu.swift */,
+			);
+			path = SystemMenu;
+			sourceTree = "<group>";
+		};
 		F344A3B1293094DB003A4383 /* Signature */ = {
 			isa = PBXGroup;
 			children = (
@@ -13111,7 +13154,6 @@
 				9FD0D2A32AD4ECA800DA3FF8 /* KMPDFEditAppendCustomView.swift in Sources */,
 				9FCFEC842AD0EF6700EAD2CB /* KMCustomButtonPopMenuViewController.swift in Sources */,
 				9FDD0F77294FEF64000C4DAD /* KMConvertPDFManager.swift in Sources */,
-				BBB1A39E29F6128200E54E47 /* KMSystemMenu.swift in Sources */,
 				9F8539D62943180000DF644E /* KMTabAppearance.swift in Sources */,
 				BB5DF1E92959C5CB0025CDA1 /* KMHeaderFooterPreviewController.swift in Sources */,
 				9FCFEC702AC40F9B00EAD2CB /* CStampSignatureObject.swift in Sources */,
@@ -13190,6 +13232,7 @@
 				BB4EEF3C29764578003A3537 /* KMRedactPropertyContentView.swift in Sources */,
 				ADDF83262B391A5C00A81A4E /* CPDFDigtalView.m in Sources */,
 				BB147023299DC0D100784A6A /* OIDResponseTypes.m in Sources */,
+				BBFEF7132B3A766C00C28AC0 /* KMSystemMenu.swift in Sources */,
 				9F1FE4D529406E4700E952CA /* NSPasteboard+Utils.m in Sources */,
 				9F1FE4B129406E4700E952CA /* CTTabWindowController.m in Sources */,
 				AD867FA129DEB4B000F00440 /* KMBOTAAnnotationTool.swift in Sources */,
@@ -13214,6 +13257,7 @@
 				BBB9B319299A5D6D004F3235 /* KMCloudServer.m in Sources */,
 				ADE86A782B0221E100414DFA /* KMSecurityWindowController.swift in Sources */,
 				9F1FE4A829406E4700E952CA /* CTBrowserWindowController.m in Sources */,
+				BBFEF71B2B3A784200C28AC0 /* KMSystemEditMenu.swift in Sources */,
 				ADBC374129CAB1C300D93208 /* KMComparativeOutlineCell.swift in Sources */,
 				9FDD0F802952FC36000C4DAD /* KMDesignToken.swift in Sources */,
 				BBFE6E582930724B00142C01 /* KMMergePageModel.swift in Sources */,
@@ -13306,6 +13350,7 @@
 				AD0FA51229A9FA8600EDEB50 /* KMResetPasswordView.swift in Sources */,
 				AD3AAD632B0DA3F600DE5FE7 /* KMCompareTextHeaderView.swift in Sources */,
 				BB3A668C2B06FD0100575343 /* KMBotaEnum.swift in Sources */,
+				BBFEF7172B3A77E700C28AC0 /* KMSystemFileMenu.swift in Sources */,
 				9FDD0F882952FCC6000C4DAD /* KMCompLightParser.swift in Sources */,
 				9F1FE4C629406E4700E952CA /* CTUtil.m in Sources */,
 				BB147035299DC0D200784A6A /* OIDRegistrationResponse.m in Sources */,
@@ -13318,6 +13363,7 @@
 				AD1D480F2AFB1907007AC1F0 /* KMCompressView.swift in Sources */,
 				BBFBE6C028DD7B97008B2335 /* ViewController.swift in Sources */,
 				BB4EEF3429764166003A3537 /* KMRedactPropertyWindowController.swift in Sources */,
+				BBFEF7272B3A78EC00C28AC0 /* KMSystemToolMenu.swift in Sources */,
 				BB6013842AD3A0DE00A76FB2 /* CPDFTextWidgetAnnotation+PDFListView.swift in Sources */,
 				9F8DDF2629237910006CDC73 /* Array+KMExtensions.swift in Sources */,
 				BB8F4560295AA39F0037EA22 /* KMHeaderFooterModel.swift in Sources */,
@@ -13510,6 +13556,7 @@
 				89E4E7822967BF5A002DBA6F /* KMCustomizeStampViewController.m in Sources */,
 				9F8DDF2D2924B855006CDC73 /* KMPDFToolsViewController.swift in Sources */,
 				BB897275294DC04F0045787C /* KMWatermartAdjectivePageRangeView.swift in Sources */,
+				BBFEF72F2B3A794700C28AC0 /* KMSystemViewMenu.swift in Sources */,
 				9FCFEC902AD11E5F00EAD2CB /* KMSplitView.swift in Sources */,
 				BBEC00D9295C39FD00A26C98 /* KMBatesPropertyInfoController.swift in Sources */,
 				9F0CB529298656C900007028 /* KMDesignToken+BorderWidthTop.swift in Sources */,
@@ -13580,6 +13627,7 @@
 				BB10FAE52AFE039E00F18D65 /* KMPDFEditPageRangeWindowController.swift in Sources */,
 				BB9599C32B31647B0062D346 /* KMRedactPropertiesWindowController.swift in Sources */,
 				ADD1B6B729420B2300C3FFF7 /* KMPrintChooseView.swift in Sources */,
+				BBFEF7232B3A78BC00C28AC0 /* KMSystemGotoMenu.swift in Sources */,
 				BB146FFF299DC0D100784A6A /* OIDRedirectHTTPHandler.m in Sources */,
 				ADD5AE552A64D31200C14249 /* KMPurchaseAlertView.swift in Sources */,
 				BBF729B32B19630500576AC5 /* KMAddBatesOperationQueue.swift in Sources */,
@@ -13669,6 +13717,7 @@
 				9F1FE4DB29406E4700E952CA /* NSURL+Utils.m in Sources */,
 				BB1CA5C6298E20820059E31C /* KMPreferenceAligementView.swift in Sources */,
 				BBD3C8B62B2C438F00EB0867 /* KMToolbarPreviousNextItemView.swift in Sources */,
+				BBFEF71F2B3A787900C28AC0 /* KMSystemAnnotationMenu.swift in Sources */,
 				8942F817292B678100389627 /* KMAnnotationTableCellView.swift in Sources */,
 				9FE0BBF02B0F2FB000CD1CAC /* KMAnnotationLineWindowController.swift in Sources */,
 				BB1A91732AFB8D95005E5FD8 /* KMBookletMaskView.swift in Sources */,
@@ -13762,6 +13811,7 @@
 				BB99ACC2292DE22E0048AFD9 /* KMMergeViewController.swift in Sources */,
 				BBEC00B7295C2C1600A26C98 /* KMBatesPropertyHomeController.swift in Sources */,
 				9F78EFC228F7E395001E66F4 /* KMHomeViewController+Action.swift in Sources */,
+				BBFEF72B2B3A791B00C28AC0 /* KMSystemWindowMenu.swift in Sources */,
 				BBF7299B2B1961E800576AC5 /* KMAddWatermarkOprationQueue.swift in Sources */,
 				BB8F4576295AFA2D0037EA22 /* KMHeaderFooterAdjectiveInfoBaseView.swift in Sources */,
 				9F0CB4E12986556400007028 /* KMDesignToken+PaddingTop.swift in Sources */,
@@ -13983,6 +14033,7 @@
 				F37322F4292DF9410013862C /* CSelfSignAnnotationFreeText.m in Sources */,
 				899700E028F3A9F2009AF911 /* KMHomeWindowController.swift in Sources */,
 				AD59993F2AD7E88600412F8B /* KMStampManager.swift in Sources */,
+				BBFEF7282B3A78EC00C28AC0 /* KMSystemToolMenu.swift in Sources */,
 				9F53D5502AD677A000CCF9D8 /* CPDFListViewConfig.swift in Sources */,
 				BBF729B02B1962C900576AC5 /* KMRemoveHeaderFooterQueue.swift in Sources */,
 				BB8F4548295A9CDC0037EA22 /* KMHeaderFooterListController.swift in Sources */,
@@ -14142,7 +14193,6 @@
 				BBD1F78C296FACA300343885 /* KMPageEditExtractSettingView.swift in Sources */,
 				ADBC375129CAE27900D93208 /* KMComparativeOutlineRowView.swift in Sources */,
 				AD8DD2A42A9C35B2007CC9D0 /* KMThumbnailManager.swift in Sources */,
-				BBB1A39F29F6128200E54E47 /* KMSystemMenu.swift in Sources */,
 				89D2D2E3294C452B00BFF5FE /* KMPDFThumbnailView.swift in Sources */,
 				BB5DF1EA2959C5CB0025CDA1 /* KMHeaderFooterPreviewController.swift in Sources */,
 				BB6B4C0D292F62B20071CA06 /* KMPDFThumbnialPageView.swift in Sources */,
@@ -14206,6 +14256,7 @@
 				AD2D74AE29F0CEB300EDC5E4 /* KMCancellationWindowController.swift in Sources */,
 				BB146FD9299DC0D100784A6A /* GTLRFramework.m in Sources */,
 				BB4EEF3D29764578003A3537 /* KMRedactPropertyContentView.swift in Sources */,
+				BBFEF7242B3A78BC00C28AC0 /* KMSystemGotoMenu.swift in Sources */,
 				BB147024299DC0D100784A6A /* OIDResponseTypes.m in Sources */,
 				BB162E93294FFE020088E9D1 /* KMWatermarkModel.swift in Sources */,
 				BB03D6992B0221FF008C9976 /* NSImage+KMExtension.swift in Sources */,
@@ -14319,6 +14370,7 @@
 				ADD1B6ED2946C04C00C3FFF7 /* KMPrintChoosePageSizePamphletView.swift in Sources */,
 				BB4EEF3529764166003A3537 /* KMRedactPropertyWindowController.swift in Sources */,
 				BB8F4561295AA39F0037EA22 /* KMHeaderFooterModel.swift in Sources */,
+				BBFEF7142B3A766C00C28AC0 /* KMSystemMenu.swift in Sources */,
 				BBB9B326299A5D6D004F3235 /* GTMKeychain_macOS.m in Sources */,
 				BB146FAF299DC0D100784A6A /* GTLRService.m in Sources */,
 				BB8B99FE2B355E7600A066EC /* KMLeftSideViewController+Action.swift in Sources */,
@@ -14403,6 +14455,7 @@
 				BB1BFF7A2AEA0B8E003EB179 /* KMBatchOperateRightViewController.swift in Sources */,
 				BB8115FC29924A5F0008F536 /* KMSecureEncryptCheckCellView.swift in Sources */,
 				AD867FB029DFBB1200F00440 /* KMAnnotationOutlineCellView.swift in Sources */,
+				BBFEF7182B3A77E700C28AC0 /* KMSystemFileMenu.swift in Sources */,
 				AD867F9529D955BF00F00440 /* KMBOTAOutlineCellView.swift in Sources */,
 				AD58F40F2B1DAAA800299EE0 /* KMPrintDefaultView.swift in Sources */,
 				BB03D68D2B01C782008C9976 /* KMPDFEditInsertBlankPageWindow.swift in Sources */,
@@ -14492,6 +14545,7 @@
 				BB24FFE72B2863EF00A59054 /* KMTTSManager.swift in Sources */,
 				AD88108429A719D400178CA1 /* KMRegisterView.swift in Sources */,
 				BB31981F2AC57ACA00107371 /* CPDFPage+PDFListView.swift in Sources */,
+				BBFEF71C2B3A784200C28AC0 /* KMSystemEditMenu.swift in Sources */,
 				AD3AAD5D2B0DA3D400DE5FE7 /* KMCompareTextViewItem.swift in Sources */,
 				AD3AAD242B0B6F9E00DE5FE7 /* KMCompareContentView.swift in Sources */,
 				BB10FAE62AFE039E00F18D65 /* KMPDFEditPageRangeWindowController.swift in Sources */,
@@ -14548,6 +14602,7 @@
 				AD88109329A7612000178CA1 /* KMRegisterModel.swift in Sources */,
 				ADBC2D20299CDA29006280C8 /* NSView+Layer.swift in Sources */,
 				AD1CA3F82A05FCB60070541F /* KMAnnotationScreenViewController.swift in Sources */,
+				BBFEF7302B3A794700C28AC0 /* KMSystemViewMenu.swift in Sources */,
 				9FE0BBEC2B0F242C00CD1CAC /* NSUserDefaults_KMExtension.swift in Sources */,
 				BB49ED07293F461500C82CA2 /* KMConvertCSVWindowController.swift in Sources */,
 				BB853C922AF8DCBF009C20C1 /* KMBatchOperateRemovePasswordViewController.swift in Sources */,
@@ -14564,6 +14619,7 @@
 				ADDF833C2B391A5C00A81A4E /* CPDFSignatureWidgetAnnotation+PDFListView.m in Sources */,
 				BB10FAEF2AFE233C00F18D65 /* KMLineInspector.swift in Sources */,
 				9FAAA32B290BD01D0046FFCE /* KMHomeHistoryFileViewController.swift in Sources */,
+				BBFEF72C2B3A791B00C28AC0 /* KMSystemWindowMenu.swift in Sources */,
 				BB49ED16293F489500C82CA2 /* KMConvertImageSettingView.swift in Sources */,
 				ADBC375E29CC61E100D93208 /* KMReadModelView.swift in Sources */,
 				BB2EDF7A296ECE17003BCF58 /* KMPageEditThumbnailItem.swift in Sources */,
@@ -14772,6 +14828,7 @@
 				ADAFDA652AEB46D600F084BC /* KMQucikToolsView.swift in Sources */,
 				9F8DDF2729237910006CDC73 /* Array+KMExtensions.swift in Sources */,
 				8942F7EA2925E1C400389627 /* KMLiftSideCellView.swift in Sources */,
+				BBFEF7202B3A787900C28AC0 /* KMSystemAnnotationMenu.swift in Sources */,
 				ADE8BC3029F8CD7200570F89 /* KMPDFThumbnailModel.swift in Sources */,
 				BB90E4EF2AF3546500B04B9F /* NSUserDefaultsController+KMExtension.swift in Sources */,
 				ADDEEA7F2AD3FB1D00EF675D /* KMImageAccessoryController.swift in Sources */,
@@ -14910,7 +14967,6 @@
 				BBEC00B1295C2AF300A26C98 /* KMBatesPreviewController.swift in Sources */,
 				BB897260294C5DDA0045787C /* KMWatermarkPropertyInfoController.swift in Sources */,
 				BB0A55162A3052F800B6E84B /* KMCustomTextField.swift in Sources */,
-				BBB1A3A029F6128200E54E47 /* KMSystemMenu.swift in Sources */,
 				9F0201882A1DA28B00C9B673 /* KMAILanguagePopVC.swift in Sources */,
 				BB8F4562295AA39F0037EA22 /* KMHeaderFooterModel.swift in Sources */,
 				BB89723C294B3C840045787C /* KMWatermarkPropertyController.swift in Sources */,
@@ -15006,6 +15062,7 @@
 				BB89DD802953F863007C3FFA /* KMWatermarkFileOutsideView.swift in Sources */,
 				ADAFDA442AE8F3C400F084BC /* KMAdvertisementTimeStampConversion.swift in Sources */,
 				BB3D97182B3023C5007094C8 /* KMCustomButton.swift in Sources */,
+				BBFEF71D2B3A784200C28AC0 /* KMSystemEditMenu.swift in Sources */,
 				BB6B4C0A292F53CE0071CA06 /* KMMergeFileModel.swift in Sources */,
 				9F0CB4B72977BC1000007028 /* KMPropertiesPanelPreviewSubVC.swift in Sources */,
 				BB3A81B72AC2C0F4006FC66C /* NSObject+KMExtension.swift in Sources */,
@@ -15057,6 +15114,7 @@
 				ADBC375F29CC61E100D93208 /* KMReadModelView.swift in Sources */,
 				AD867F8829D94F5100F00440 /* KMBOTAOutlineView.swift in Sources */,
 				BB146FEF299DC0D100784A6A /* GTLRBatchResult.m in Sources */,
+				BBFEF7192B3A77E700C28AC0 /* KMSystemFileMenu.swift in Sources */,
 				9F8539C02943085A00DF644E /* KMBrowser.swift in Sources */,
 				BB3A66982B071B0300575343 /* KMSnapshotTableViewCell.swift in Sources */,
 				BB4DD04D299B296500E80DF6 /* KMCloudPathControl.swift in Sources */,
@@ -15106,6 +15164,7 @@
 				AD8810AB29A8463600178CA1 /* KMAccountInfoWindowController.swift in Sources */,
 				BBC3480E29558DC1008D2CD1 /* KMBackgroundController.swift in Sources */,
 				BBF62C722B0347AF007B7E86 /* SplitWindowController.swift in Sources */,
+				BBFEF7312B3A794700C28AC0 /* KMSystemViewMenu.swift in Sources */,
 				9F0CB4F7298655D500007028 /* KMDesignToken+Fill.swift in Sources */,
 				BB49ED1F293F4FB200C82CA2 /* KMConvertPPTsSettingView.swift in Sources */,
 				BB14703D299DC0D200784A6A /* OIDErrorUtilities.m in Sources */,
@@ -15276,6 +15335,7 @@
 				ADAFD9F52AE68A7400F084BC /* KMCreatPDFView.swift in Sources */,
 				BB74DA792AC41182006EDFE7 /* NSFont+KMExtension.swift in Sources */,
 				BB49ECF3293F40F500C82CA2 /* KMConvertPageRangeSettingItemView.swift in Sources */,
+				BBFEF7212B3A787900C28AC0 /* KMSystemAnnotationMenu.swift in Sources */,
 				9F1FE4F529406E4700E952CA /* FastResizeView.m in Sources */,
 				9F1FE4FE29406E4700E952CA /* CTTabStripController.m in Sources */,
 				BBA762D429D2D98D00844513 /* KMCommonDefine.swift in Sources */,
@@ -15300,6 +15360,7 @@
 				ADE3C1E629A5ABC200793B13 /* KMLoginWindowController.swift in Sources */,
 				BBC3483029559E12008D2CD1 /* KMBackgroundModel.swift in Sources */,
 				BB146FE9299DC0D100784A6A /* GTLRQuery.m in Sources */,
+				BBFEF7152B3A766C00C28AC0 /* KMSystemMenu.swift in Sources */,
 				BB147016299DC0D100784A6A /* OIDAuthState.m in Sources */,
 				BBF8A3FF2AE8B04400788BAC /* KMBatchOperateFile.swift in Sources */,
 				BB897258294C559F0045787C /* KMWatermarkPropertyCreateController.swift in Sources */,
@@ -15590,6 +15651,7 @@
 				ADD1B7082946CBB600C3FFF7 /* KMBaseTextFormatter.swift in Sources */,
 				89D2D2C329495D2100BFF5FE /* KMFormModel.swift in Sources */,
 				BBFE6E67293097A600142C01 /* KMPageRangePickerWindowController.swift in Sources */,
+				BBFEF7292B3A78EC00C28AC0 /* KMSystemToolMenu.swift in Sources */,
 				BB88E43D294023CB002B3655 /* KMDocumentModel.swift in Sources */,
 				9FB221102B1AE35E00A5B208 /* NSBitmapImageRep_KMExtension.swift in Sources */,
 				BBF2455A2AE78D0300037D08 /* KMBatchOperateWindowController.swift in Sources */,
@@ -15665,6 +15727,7 @@
 				BB6DD81A29348A00001F0544 /* KMSecureEncryptComboBoxCellView.swift in Sources */,
 				BB147019299DC0D100784A6A /* OIDGrantTypes.m in Sources */,
 				BB146FC5299DC0D100784A6A /* GTMReadMonitorInputStream.m in Sources */,
+				BBFEF72D2B3A791B00C28AC0 /* KMSystemWindowMenu.swift in Sources */,
 				9F1FE4FB29406E4700E952CA /* CTTabStripView.m in Sources */,
 				9FF94F1329A7476000B1EF69 /* KMDesignPropertySelector.swift in Sources */,
 				9F39B9462A661ED500930ACA /* KMHomeScrollView.swift in Sources */,
@@ -15781,6 +15844,7 @@
 				ADDF83702B391A5C00A81A4E /* CDSignatureTextViewController.swift in Sources */,
 				ADAC0DE72AC2B04900FD4F52 /* KMNoteTypeImageView.swift in Sources */,
 				BB853C652AF8742A009C20C1 /* KMBatchOperateRemoveWatermarkViewController.swift in Sources */,
+				BBFEF7252B3A78BC00C28AC0 /* KMSystemGotoMenu.swift in Sources */,
 				9F1FE4F229406E4700E952CA /* BackgroundGradientView.m in Sources */,
 				ADAFDA272AE8DE1B00F084BC /* KMAdvertisementModel.swift in Sources */,
 				89316824296D73CC0073EA59 /* KMSignatureAnnotationViewController.m in Sources */,

+ 86 - 0
PDF Office/PDF Master/Class/SystemMenu/KMSystemAnnotationMenu.swift

@@ -0,0 +1,86 @@
+//
+//  KMSystemAnnotationMenu.swift
+//  PDF Master
+//
+//  Created by tangchao on 2023/12/26.
+//
+
+import Foundation
+
+protocol KMSystemAnnotationMenuProtocol: NSObjectProtocol {
+    func menuItemAction_highlight(_ sender: Any)
+    func menuItemAction_underline(_ sender: Any)
+    func menuItemAction_deleteLine(_ sender: Any)
+    func menuItemAction_freehand(_ sender: Any)
+    func menuItemAction_text(_ sender: Any)
+    func menuItemAction_note(_ sender: Any)
+    func menuItemAction_squre(_ sender: Any)
+    func menuItemAction_circle(_ sender: Any)
+    func menuItemAction_arrow(_ sender: Any)
+    func menuItemAction_line(_ sender: Any)
+
+    // link
+    func menuItemAction_link(_ sender: Any)
+    func menuItemAction_linkPage(_ sender: Any)
+    func menuItemAction_linkHttps(_ sender: Any)
+    func menuItemAction_linkEmail(_ sender: Any)
+    
+    // stamp
+    func menuItemAction_stamp(_ sender: Any)
+    func menuItemAction_stampStandard(_ sender: Any)
+    func menuItemAction_stampDynamic(_ sender: Any)
+    func menuItemAction_stampCustom(_ sender: Any)
+    
+    func menuItemAction_signure(_ sender: Any)
+    
+    func menuItemAction_hiddenAllAnnotation(_ sender: Any)
+    func menuItemAction_clearAllAnnotation(_ sender: Any)
+}
+
+extension KMSystemAnnotationMenuProtocol {
+    func menuItemAction_linkHttps(_ sender: Any) {}
+    func menuItemAction_linkEmail(_ sender: Any) {}
+    
+    func menuItemAction_stampStandard(_ sender: Any) {}
+    func menuItemAction_stampDynamic(_ sender: Any) {}
+    func menuItemAction_stampCustom(_ sender: Any) {}
+}
+
+extension KMSystemMenu.Annotation {
+    public static let highlightSelector     = NSSelectorFromString("menuItemAction_highlight:")
+    public static let underlineSelector     = NSSelectorFromString("menuItemAction_underline:")
+    public static let strikeOutSelector     = NSSelectorFromString("menuItemAction_deleteLine:")
+    public static let freehandSelector      = NSSelectorFromString("menuItemAction_freehand:")
+    public static let textSelector          = NSSelectorFromString("menuItemAction_text:")
+    public static let noteSelector          = NSSelectorFromString("menuItemAction_note:")
+    public static let squreSelector         = NSSelectorFromString("menuItemAction_squre:")
+    public static let circleSelector        = NSSelectorFromString("menuItemAction_circle:")
+    public static let arrowSelector         = NSSelectorFromString("menuItemAction_arrow:")
+    public static let lineSelector          = NSSelectorFromString("menuItemAction_line:")
+    
+    public static let linkSelector          = NSSelectorFromString("menuItemAction_link:")
+    public static let linkPageSelector      = NSSelectorFromString("menuItemAction_linkPage:")
+    public static let linkHttpsSelector     = NSSelectorFromString("menuItemAction_linkHttps:")
+    public static let linkEmailSelector     = NSSelectorFromString("menuItemAction_linkEmail:")
+    
+    public static let stampSelector         = NSSelectorFromString("menuItemAction_stamp:")
+    public static let stampStandardSelector = NSSelectorFromString("menuItemAction_stampStandard:")
+    public static let stampDynamicSelector  = NSSelectorFromString("menuItemAction_stampDynamic:")
+    public static let stampCustomSelector   = NSSelectorFromString("menuItemAction_stampCustom:")
+    
+    public static let signureSelector       = NSSelectorFromString("menuItemAction_signure:")
+    public static let hiddenAllSelector     = NSSelectorFromString("menuItemAction_hiddenAllAnnotation:")
+    public static let clearAllSelector      = NSSelectorFromString("menuItemAction_clearAllAnnotation:")
+    
+    public static func actions() -> [Selector] {
+        return [self.highlightSelector, self.underlineSelector, self.strikeOutSelector, self.freehandSelector,
+                self.textSelector, self.noteSelector, self.squreSelector, self.circleSelector,
+                self.arrowSelector, self.lineSelector,
+                // link
+                self.linkSelector, self.linkPageSelector, self.linkHttpsSelector, self.linkEmailSelector,
+                // stamp
+                self.stampSelector, self.stampStandardSelector, self.stampDynamicSelector, self.stampCustomSelector,
+                // other
+                self.signureSelector, self.hiddenAllSelector, self.clearAllSelector]
+    }
+}

+ 37 - 0
PDF Office/PDF Master/Class/SystemMenu/KMSystemEditMenu.swift

@@ -0,0 +1,37 @@
+//
+//  KMSystemEditMenu.swift
+//  PDF Master
+//
+//  Created by tangchao on 2023/12/26.
+//
+
+import Foundation
+
+@objc protocol KMSystemEditMenuProtocol {
+    @objc optional func undo(_ sender: Any?)
+    @objc optional func redo(_ sender: Any?)
+    
+    @objc optional func cut(_ sender: Any?)
+    @objc optional func copy(_ sender: Any?)
+    @objc optional func paste(_ sender: Any?)
+    @objc optional func delete(_ sender: Any?)
+    
+    @objc optional func menuItemAction_find(_ sender: Any)
+}
+
+extension KMSystemMenu.Edit {
+    public static let undoSelector              = NSSelectorFromString("undo:")
+    public static let redoSelector              = NSSelectorFromString("redo:")
+    
+    public static let cutSelector               = NSSelectorFromString("cut:")
+    public static let copySelector              = NSSelectorFromString("copy:")
+    public static let pasteSelector             = NSSelectorFromString("paste:")
+    public static let deleteSelector            = NSSelectorFromString("delete:")
+    
+    public static let findSelector              = NSSelectorFromString("menuItemAction_find:")
+    public static func actions() -> [Selector] {
+        return [self.undoSelector, self.redoSelector,
+                self.cutSelector, self.copySelector, self.pasteSelector, self.deleteSelector,
+                self.findSelector]
+    }
+}

+ 99 - 0
PDF Office/PDF Master/Class/SystemMenu/KMSystemFileMenu.swift

@@ -0,0 +1,99 @@
+//
+//  KMSystemFileMenu.swift
+//  PDF Master
+//
+//  Created by tangchao on 2023/12/26.
+//
+
+import Foundation
+
+protocol KMSystemFileMenuProtocol {
+    /// New
+    func menuItemAction_newDocumentFromClipboard(_ sender: Any?)
+    func menuItemAction_newDocumetFromImage(_ sender: Any?)
+    func menuItemAction_importFromWebPage(_ sender: Any?)
+    ///  screenShot
+    func menuItemAction_screenShotSelectArea(_ sender: Any?)
+    func menuItemAction_screenShotWindow(_ sender: Any?)
+    func menuItemAction_screenShotFullScreenDelay(_ sender: Any?)
+    func menuItemAction_screenShotFullScreen(_ sender: Any?)
+    
+    func menuItemClick_saveAsFlattenedPDF(_ sender: Any)
+    func menuItemClick_mergePDF(_ sender: Any)
+    func menuItemClick_Compress(_ sender: Any)
+    
+    func menuItemClick_Convert(_ sender: Any)
+    func menuItemAction_ConvertToWord(_ sender: Any)
+    func menuItemAction_ConvertToExcel(_ sender: Any)
+    func menuItemAction_ConvertToPPT(_ sender: Any)
+    func menuItemAction_ConvertToRTF(_ sender: Any)
+    func menuItemAction_ConvertToHTML(_ sender: Any)
+    func menuItemAction_ConvertToText(_ sender: Any)
+    func menuItemAction_ConvertToCSV(_ sender: Any)
+    func menuItemAction_ConvertToImage(_ sender: Any)
+    
+    func menuItemClick_SettingPassword(_ sender: Any)
+    func menuItemClick_RemovePassword(_ sender: Any)
+    
+    func menuItemAction_closeWindow(_ sender: Any)
+    func menuItemAction_closeAllWindows(_ sender: Any)
+    func menuItemAction_closeTagPage(_ sender: Any)
+    
+    func menuItemAction_showInFinder(_ sender: Any)
+    func menuItemAction_property(_ sender: Any)
+    
+    func menuItemAction_print(_ sender: Any)
+}
+
+extension KMSystemFileMenuProtocol {
+    func menuItemClick_Convert(_ sender: Any) {}
+    func menuItemAction_newDocumentFromClipboard(_ sender: Any?) {}
+    func menuItemAction_newDocumetFromImage(_ sender: Any?) {}
+    func menuItemAction_importFromWebPage(_ sender: Any?) {}
+    func menuItemAction_screenShotSelectArea(_ sender: Any?) {}
+    func menuItemAction_screenShotWindow(_ sender: Any?) {}
+    func menuItemAction_screenShotFullScreenDelay(_ sender: Any?) {}
+    func menuItemAction_screenShotFullScreen(_ sender: Any?) {}
+}
+
+extension KMSystemMenu.File {
+    public static let saveAsFlattenedPDFSelector              = NSSelectorFromString("menuItemClick_saveAsFlattenedPDF:")
+    public static let mergePDFSelector              = NSSelectorFromString("menuItemClick_mergePDF:")
+    public static let compressSelector              = NSSelectorFromString("menuItemClick_Compress:")
+    
+    public static let convertSelector               = NSSelectorFromString("menuItemClick_Convert:")
+    public static let convertToWordSelector         = NSSelectorFromString("menuItemAction_ConvertToWord:")
+    public static let convertToExcelSelector        = NSSelectorFromString("menuItemAction_ConvertToExcel:")
+    public static let convertToPPTSelector          = NSSelectorFromString("menuItemAction_ConvertToPPT:")
+    public static let convertToRTFSelector          = NSSelectorFromString("menuItemAction_ConvertToRTF:")
+    public static let convertToHTMLSelector         = NSSelectorFromString("menuItemAction_ConvertToHTML:")
+    public static let convertToTextSelector         = NSSelectorFromString("menuItemAction_ConvertToText:")
+    public static let convertToCSVSelector          = NSSelectorFromString("menuItemAction_ConvertToCSV:")
+    public static let convertToImageSelector        = NSSelectorFromString("menuItemAction_ConvertToImage:")
+    
+    public static let settingPasswordSelector       = NSSelectorFromString("menuItemClick_SettingPassword:")
+    public static let removePasswordSelector        = NSSelectorFromString("menuItemClick_RemovePassword:")
+    
+    public static let closeWindowSelector           = NSSelectorFromString("menuItemAction_closeWindow:")
+    public static let closeAllWindowsSelector       = NSSelectorFromString("menuItemAction_closeAllWindows:")
+    public static let closeTagPageSelector          = NSSelectorFromString("menuItemAction_closeTagPage:")
+    
+    public static let showInFinderSelector          = NSSelectorFromString("menuItemAction_showInFinder:")
+    public static let propertySelector              = NSSelectorFromString("menuItemAction_property:")
+    
+    public static let printSelector                 = NSSelectorFromString("menuItemAction_print:")
+    
+    public static func actions() -> [Selector] {
+        return [self.saveAsFlattenedPDFSelector, self.mergePDFSelector, self.compressSelector,
+                // convert
+                self.convertSelector, self.convertToWordSelector, self.convertToExcelSelector, self.convertToPPTSelector,
+                self.convertToRTFSelector, self.convertToHTMLSelector, self.convertToTextSelector, self.convertToCSVSelector,
+                self.convertToImageSelector,
+                // secure
+                self.settingPasswordSelector, self.removePasswordSelector,
+                // other
+                self.closeWindowSelector, self.closeAllWindowsSelector, self.closeTagPageSelector,
+                self.showInFinderSelector, self.propertySelector,
+                self.printSelector]
+    }
+}

+ 33 - 0
PDF Office/PDF Master/Class/SystemMenu/KMSystemGotoMenu.swift

@@ -0,0 +1,33 @@
+//
+//  KMSystemGotoMenu.swift
+//  PDF Master
+//
+//  Created by tangchao on 2023/12/26.
+//
+
+import Foundation
+
+protocol KMSystemGotoMenuProtocol {
+    func menuItemAction_nextPage(_ sender: Any)
+    func menuItemAction_forwardPage(_ sender: Any)
+    func menuItemAction_firstPage(_ sender: Any)
+    func menuItemAction_lastPage(_ sender: Any)
+    func menuItemAction_forward(_ sender: Any)
+    func menuItemAction_goback(_ sender: Any)
+    func menuItemAction_gotoPage(_ sender: Any)
+}
+
+extension KMSystemMenu.Goto {
+    public static let nextPageSelector     = NSSelectorFromString("menuItemAction_nextPage:")
+    public static let forwardPageSelector  = NSSelectorFromString("menuItemAction_forwardPage:")
+    public static let firstPageSelector    = NSSelectorFromString("menuItemAction_firstPage:")
+    public static let lastPageSelector     = NSSelectorFromString("menuItemAction_lastPage:")
+    public static let forwardSelector      = NSSelectorFromString("menuItemAction_forward:")
+    public static let gobackSelector       = NSSelectorFromString("menuItemAction_goback:")
+    public static let gotoPageSelector     = NSSelectorFromString("menuItemAction_gotoPage:")
+    
+    public static func actions() -> [Selector] {
+        return [self.nextPageSelector, self.forwardPageSelector, self.firstPageSelector, self.lastPageSelector,
+                self.forwardSelector, self.gobackSelector, self.gotoPageSelector]
+    }
+}

+ 54 - 0
PDF Office/PDF Master/Class/SystemMenu/KMSystemMenu.swift

@@ -0,0 +1,54 @@
+//
+//  KMSystemMenu.swift
+//  PDF Master
+//
+//  Created by tangchao on 2023/4/24.
+//
+
+import Cocoa
+
+class KMSystemMenu: NSObject {
+    public struct File {
+        
+    }
+    public struct Edit {
+        
+    }
+    public struct View {
+        
+    }
+    public struct Annotation {
+
+    }
+    public struct Goto {
+        
+    }
+    public struct Tool {
+        
+    }
+    public struct Window {
+        
+    }
+    
+    public static func isFileSelector(sel: Selector) -> Bool {
+        return KMSystemMenu.File.actions().contains(sel)
+    }
+    public static func isEditSelector(sel: Selector) -> Bool {
+        return KMSystemMenu.Edit.actions().contains(sel)
+    }
+    public static func isViewSelector(sel: Selector) -> Bool {
+        return KMSystemMenu.View.actions().contains(sel)
+    }
+    public static func isAnnotationSelector(sel: Selector) -> Bool {
+        return KMSystemMenu.Annotation.actions().contains(sel)
+    }
+    public static func isGotoSelector(sel: Selector) -> Bool {
+        return KMSystemMenu.Goto.actions().contains(sel)
+    }
+    public static func isToolSelector(sel: Selector) -> Bool {
+        return KMSystemMenu.Tool.actions().contains(sel)
+    }
+    public static func isWindowSelector(sel: Selector) -> Bool {
+        return KMSystemMenu.Window.actions().contains(sel)
+    }
+}

+ 55 - 0
PDF Office/PDF Master/Class/SystemMenu/KMSystemToolMenu.swift

@@ -0,0 +1,55 @@
+//
+//  KMSystemToolMenu.swift
+//  PDF Master
+//
+//  Created by tangchao on 2023/12/26.
+//
+
+import Foundation
+
+protocol KMSystemToolMenuProtocol {
+    func menuItemAction_textTool(_ sender: Any)
+    func menuItemAction_scrolTool(_ sender: Any)
+    func menuItemAction_zoomOutTool(_ sender: Any)
+    func menuItemAction_selectTool(_ sender: Any)
+    func menuItemAction_redact(_ sender: Any)
+    func menuItemAction_warkmark(_ sender: Any)
+    func menuItemAction_background(_ sender: Any)
+    func menuItemAction_headerfooter(_ sender: Any)
+    func menuItemAction_bates(_ sender: Any)
+    func menuItemAction_batch(_ sender: Any)
+}
+extension KMSystemToolMenuProtocol {
+    func menuItemAction_textTool(_ sender: Any) {}
+    
+    func menuItemAction_redact(_ sender: Any) {}
+    func menuItemAction_warkmark(_ sender: Any) {}
+    func menuItemAction_background(_ sender: Any) {}
+    func menuItemAction_headerfooter(_ sender: Any) {}
+    func menuItemAction_bates(_ sender: Any) {}
+    func menuItemAction_batch(_ sender: Any) {}
+}
+
+extension KMSystemMenu.Tool {
+    public static let textToolSelector    = NSSelectorFromString("menuItemAction_textTool:")
+    public static let scrolToolSelector   = NSSelectorFromString("menuItemAction_scrolTool:")
+    public static let zoomToolSelector    = NSSelectorFromString("menuItemAction_zoomOutTool:")
+    public static let selectToolSelector  = NSSelectorFromString("menuItemAction_selectTool:")
+    public static let redactSelector      = NSSelectorFromString("menuItemAction_redact:")
+    public static let warkmarkSelector    = NSSelectorFromString("menuItemAction_warkmark:")
+    public static let backgroundSelector  = NSSelectorFromString("menuItemAction_background:")
+    public static let headerfooterSelector = NSSelectorFromString("menuItemAction_headerfooter:")
+    public static let batesSelector       = NSSelectorFromString("menuItemAction_bates:")
+    public static let batchSelector       = NSSelectorFromString("menuItemAction_batch:")
+    
+    // Editor
+    public static let compressSelector       = NSSelectorFromString("compression:")
+    
+    public static func actions() -> [Selector] {
+        return [self.textToolSelector, self.scrolToolSelector, self.zoomToolSelector, self.selectToolSelector,
+                self.redactSelector, self.warkmarkSelector, self.backgroundSelector, self.headerfooterSelector,
+                self.batesSelector, self.batchSelector,
+                // Editor
+                self.compressSelector]
+    }
+}

+ 124 - 0
PDF Office/PDF Master/Class/SystemMenu/KMSystemViewMenu.swift

@@ -0,0 +1,124 @@
+//
+//  KMSystemViewMenu.swift
+//  PDF Master
+//
+//  Created by tangchao on 2023/12/26.
+//
+
+import Foundation
+
+protocol KMSystemViewMenuProtocol {
+    // scale
+    func menuItemAction_adjustWidth(_ sender: Any)
+    func menuItemAction_adjustPage(_ sender: Any)
+    func menuItemAction_size(_ sender: Any)
+    func menuItemAction_zoomOut(_ sender: Any)
+    func menuItemAction_zoomIn(_ sender: Any)
+    
+    // page show
+    func menuItemAction_singlePage(_ sender: Any)
+    func menuItemAction_singlePageContinue(_ sender: Any)
+    func menuItemAction_doublePage(_ sender: Any)
+    func menuItemAction_doublePageContinue(_ sender: Any)
+    func menuItemAction_bookMode(_ sender: Any)
+    func menuItemAction_readMode(_ sender: Any)
+    func menuItemAction_showSplitPage(_ sender: Any)
+
+    func menuItemAction_autoScrol(_ sender: Any)
+    func menuItemAction_autoScrolSetting(_ sender: Any)
+    
+    // rotate
+    func menuItemAction_rotateLeft(_ sender: Any)
+    func menuItemAction_rotateRight(_ sender: Any)
+    func menuItemAction_rotateAllPageLeft(_ sender: Any)
+    func menuItemAction_rotateAllPageRight(_ sender: Any)
+    
+    // split screen
+    func menuItemAction_splitScreenVerti(_ sender: Any)
+    func menuItemAction_splitScreenHorti(_ sender: Any)
+    func menuItemAction_splitScreenNo(_ sender: Any)
+    
+    func menuItemAction_view_readMode(_ sender: Any)
+
+    func menuItemAction_enterFullScreen(_ sender: Any)
+
+    func menuItemAction_hiddenLeftSide(_ sender: Any)
+    func menuItemAction_hiddenRightSide(_ sender: Any)
+    func menuItemAction_thumai(_ sender: Any)
+    func menuItemAction_outline(_ sender: Any)
+    func menuItemAction_bookmark(_ sender: Any)
+    func menuItemAction_annotation(_ sender: Any)
+    func menuItemAction_search(_ sender: Any)
+
+    func menuItemAction_topic(_ sender: Any)
+    func menuItemAction_hiddenPageIndicator(_ sender: Any)
+}
+extension KMSystemViewMenuProtocol {
+    func menuItemAction_autoScrol(_ sender: Any) {}
+    func menuItemAction_autoScrolSetting(_ sender: Any) {}
+    
+    func menuItemAction_splitScreenVerti(_ sender: Any) {}
+    func menuItemAction_splitScreenHorti(_ sender: Any) {}
+    func menuItemAction_splitScreenNo(_ sender: Any) {}
+    
+    func menuItemAction_enterFullScreen(_ sender: Any) {}
+    func menuItemAction_topic(_ sender: Any) {}
+}
+
+extension KMSystemMenu.View {
+    // scale
+    public static let adjustWidthSelector           = NSSelectorFromString("menuItemAction_adjustWidth:")
+    public static let adjustPageSelector            = NSSelectorFromString("menuItemAction_adjustPage:")
+    public static let sizeSelector                  = NSSelectorFromString("menuItemAction_size:")
+    public static let zoomOutSelector               = NSSelectorFromString("menuItemAction_zoomOut:")
+    public static let zoomInSelector                = NSSelectorFromString("menuItemAction_zoomIn:")
+    // page show
+    public static let singlePageSelector            = NSSelectorFromString("menuItemAction_singlePage:")
+    public static let singlePageContinueSelector    = NSSelectorFromString("menuItemAction_singlePageContinue:")
+    public static let doublePageSelector            = NSSelectorFromString("menuItemAction_doublePage:")
+    public static let doublePageContinueSelector    = NSSelectorFromString("menuItemAction_doublePageContinue:")
+    public static let bookModeSelector              = NSSelectorFromString("menuItemAction_bookMode:")
+    public static let readModeSelector              = NSSelectorFromString("menuItemAction_readMode:")
+    public static let showSplitPageSelector         = NSSelectorFromString("menuItemAction_showSplitPage:")
+    public static let autoScrolSelector             = NSSelectorFromString("menuItemAction_autoScrol:")
+    public static let autoScrolSettingSelector      = NSSelectorFromString("menuItemAction_autoScrolSetting:")
+    // rotate
+    public static let rotateLeftSelector            = NSSelectorFromString("menuItemAction_rotateLeft:")
+    public static let rotateRightSelector           = NSSelectorFromString("menuItemAction_rotateRight:")
+    public static let rotateAllPageLeftSelector     = NSSelectorFromString("menuItemAction_rotateAllPageLeft:")
+    public static let rotateAllPageRightSelector    = NSSelectorFromString("menuItemAction_rotateAllPageRight:")
+    // split screen
+    public static let splitScreenVertiSelector      = NSSelectorFromString("menuItemAction_splitScreenVerti:")
+    public static let splitScreenHortiSelector      = NSSelectorFromString("menuItemAction_splitScreenHorti:")
+    public static let splitScreenNoSelector         = NSSelectorFromString("menuItemAction_splitScreenNo:")
+
+    public static let viewReadModeSelector          = NSSelectorFromString("menuItemAction_view_readMode:")
+    public static let enterFullScreenSelector       = NSSelectorFromString("menuItemAction_enterFullScreen:")
+    
+    public static let hiddenLeftSideSelector        = NSSelectorFromString("menuItemAction_hiddenLeftSide:")
+    public static let hiddenRightSideSelector       = NSSelectorFromString("menuItemAction_hiddenRightSide:")
+    public static let thumaiSelector                = NSSelectorFromString("menuItemAction_thumai:")
+    public static let outlineSelector               = NSSelectorFromString("menuItemAction_outline:")
+    public static let bookmarkSelector              = NSSelectorFromString("menuItemAction_bookmark:")
+    public static let annotationSelector            = NSSelectorFromString("menuItemAction_annotation:")
+    public static let searchSelector                = NSSelectorFromString("menuItemAction_search:")
+    
+    public static let topicSelector                 = NSSelectorFromString("menuItemAction_topic:")
+    public static let hiddenPageIndicatorSelector   = NSSelectorFromString("menuItemAction_hiddenPageIndicator:")
+    
+    public static func actions() -> [Selector] {
+        return [self.adjustWidthSelector, self.adjustPageSelector, self.sizeSelector, self.zoomOutSelector, self.zoomInSelector,
+                // page show
+                self.singlePageSelector, self.singlePageContinueSelector, self.doublePageSelector, self.doublePageContinueSelector,
+                self.bookModeSelector, self.readModeSelector, self.showSplitPageSelector, self.autoScrolSelector,
+                self.autoScrolSettingSelector,
+                // rotate
+                self.rotateLeftSelector, self.rotateRightSelector, self.rotateAllPageLeftSelector, self.rotateAllPageRightSelector,
+                // split screen
+                self.splitScreenVertiSelector, self.splitScreenHortiSelector, self.splitScreenNoSelector,
+                self.viewReadModeSelector, self.enterFullScreenSelector,
+                self.hiddenLeftSideSelector, self.hiddenRightSideSelector,
+                self.thumaiSelector, self.outlineSelector, self.bookmarkSelector, self.annotationSelector,
+                self.searchSelector, self.topicSelector, self.hiddenPageIndicatorSelector]
+    }
+}

+ 33 - 0
PDF Office/PDF Master/Class/SystemMenu/KMSystemWindowMenu.swift

@@ -0,0 +1,33 @@
+//
+//  KMSystemWindowMenu.swift
+//  PDF Master
+//
+//  Created by tangchao on 2023/12/26.
+//
+
+import Foundation
+
+protocol KMSystemWindowMenuRrotocol {
+    func menuItemAction_showForwardTagPage(_ sender: Any)
+    func menuItemAction_showNextTagPage(_ sender: Any)
+    func menuItemAction_newTagPageToNewWindow(_ sender: Any)
+    func menuItemAction_mergeAllWindow(_ sender: Any)
+    func menuItemAction_currentWindowName(_ sender: Any)
+}
+extension KMSystemWindowMenuRrotocol {
+    func menuItemAction_currentWindowName(_ sender: Any) {}
+}
+
+extension KMSystemMenu.Window {
+    public static let showForwardTagPageSelector    = NSSelectorFromString("menuItemAction_showForwardTagPage:")
+    public static let showNextTagPageSelector       = NSSelectorFromString("menuItemAction_showNextTagPage:")
+    public static let newTagPageToNewWindowSelector = NSSelectorFromString("menuItemAction_newTagPageToNewWindow:")
+    public static let mergeAllWindowSelector        = NSSelectorFromString("menuItemAction_mergeAllWindow:")
+    public static let currentWindowNameSelector     = NSSelectorFromString("menuItemAction_currentWindowName:")
+    
+    public static func actions() -> [Selector] {
+        return [self.showForwardTagPageSelector, self.showNextTagPageSelector,
+                self.newTagPageToNewWindowSelector, self.mergeAllWindowSelector,
+                self.currentWindowNameSelector]
+    }
+}

+ 0 - 467
PDF Office/PDF Master/KMSystemMenu.swift

@@ -1,467 +0,0 @@
-//
-//  KMSystemMenu.swift
-//  PDF Master
-//
-//  Created by tangchao on 2023/4/24.
-//
-
-import Cocoa
-
-// MARK: - File Menu
-
-protocol KMSystemFileMenuProtocol {
-    /// New
-    func menuItemAction_newDocumentFromClipboard(_ sender: Any?)
-    func menuItemAction_newDocumetFromImage(_ sender: Any?)
-    func menuItemAction_importFromWebPage(_ sender: Any?)
-    ///  screenShot
-    func menuItemAction_screenShotSelectArea(_ sender: Any?)
-    func menuItemAction_screenShotWindow(_ sender: Any?)
-    func menuItemAction_screenShotFullScreenDelay(_ sender: Any?)
-    func menuItemAction_screenShotFullScreen(_ sender: Any?)
-    
-    func menuItemClick_saveAsFlattenedPDF(_ sender: Any)
-    func menuItemClick_mergePDF(_ sender: Any)
-    func menuItemClick_Compress(_ sender: Any)
-    
-    func menuItemClick_Convert(_ sender: Any)
-    func menuItemAction_ConvertToWord(_ sender: Any)
-    func menuItemAction_ConvertToExcel(_ sender: Any)
-    func menuItemAction_ConvertToPPT(_ sender: Any)
-    func menuItemAction_ConvertToRTF(_ sender: Any)
-    func menuItemAction_ConvertToHTML(_ sender: Any)
-    func menuItemAction_ConvertToText(_ sender: Any)
-    func menuItemAction_ConvertToCSV(_ sender: Any)
-    func menuItemAction_ConvertToImage(_ sender: Any)
-    
-    func menuItemClick_SettingPassword(_ sender: Any)
-    func menuItemClick_RemovePassword(_ sender: Any)
-    
-    func menuItemAction_closeWindow(_ sender: Any)
-    func menuItemAction_closeAllWindows(_ sender: Any)
-    func menuItemAction_closeTagPage(_ sender: Any)
-    
-    func menuItemAction_showInFinder(_ sender: Any)
-    func menuItemAction_property(_ sender: Any)
-    
-    func menuItemAction_print(_ sender: Any)
-}
-
-extension KMSystemFileMenuProtocol {
-    func menuItemClick_Convert(_ sender: Any) {}
-    func menuItemAction_newDocumentFromClipboard(_ sender: Any?) {}
-    func menuItemAction_newDocumetFromImage(_ sender: Any?) {}
-    func menuItemAction_importFromWebPage(_ sender: Any?) {}
-    func menuItemAction_screenShotSelectArea(_ sender: Any?) {}
-    func menuItemAction_screenShotWindow(_ sender: Any?) {}
-    func menuItemAction_screenShotFullScreenDelay(_ sender: Any?) {}
-    func menuItemAction_screenShotFullScreen(_ sender: Any?) {}
-}
-
-@objc protocol KMSystemEditMenuProtocol {
-    @objc optional func undo(_ sender: Any?)
-    @objc optional func redo(_ sender: Any?)
-    
-    @objc optional func cut(_ sender: Any?)
-    @objc optional func copy(_ sender: Any?)
-    @objc optional func paste(_ sender: Any?)
-    @objc optional func delete(_ sender: Any?)
-    
-    @objc optional func menuItemAction_find(_ sender: Any)
-}
-
-protocol KMSystemAnnotationMenuProtocol: NSObjectProtocol {
-    func menuItemAction_highlight(_ sender: Any)
-    func menuItemAction_underline(_ sender: Any)
-    func menuItemAction_deleteLine(_ sender: Any)
-    func menuItemAction_freehand(_ sender: Any)
-    func menuItemAction_text(_ sender: Any)
-    func menuItemAction_note(_ sender: Any)
-    func menuItemAction_squre(_ sender: Any)
-    func menuItemAction_circle(_ sender: Any)
-    func menuItemAction_arrow(_ sender: Any)
-    func menuItemAction_line(_ sender: Any)
-
-    // link
-    func menuItemAction_link(_ sender: Any)
-    func menuItemAction_linkPage(_ sender: Any)
-    func menuItemAction_linkHttps(_ sender: Any)
-    func menuItemAction_linkEmail(_ sender: Any)
-    
-    // stamp
-    func menuItemAction_stamp(_ sender: Any)
-    func menuItemAction_stampStandard(_ sender: Any)
-    func menuItemAction_stampDynamic(_ sender: Any)
-    func menuItemAction_stampCustom(_ sender: Any)
-    
-    func menuItemAction_signure(_ sender: Any)
-    
-    func menuItemAction_hiddenAllAnnotation(_ sender: Any)
-    func menuItemAction_clearAllAnnotation(_ sender: Any)
-}
-
-extension KMSystemAnnotationMenuProtocol {
-    func menuItemAction_linkHttps(_ sender: Any) {}
-    func menuItemAction_linkEmail(_ sender: Any) {}
-    
-    func menuItemAction_stampStandard(_ sender: Any) {}
-    func menuItemAction_stampDynamic(_ sender: Any) {}
-    func menuItemAction_stampCustom(_ sender: Any) {}
-}
-
-protocol KMSystemGotoMenuProtocol {
-    func menuItemAction_nextPage(_ sender: Any)
-    func menuItemAction_forwardPage(_ sender: Any)
-    func menuItemAction_firstPage(_ sender: Any)
-    func menuItemAction_lastPage(_ sender: Any)
-    func menuItemAction_forward(_ sender: Any)
-    func menuItemAction_goback(_ sender: Any)
-    func menuItemAction_gotoPage(_ sender: Any)
-}
-
-protocol KMSystemToolMenuProtocol {
-    func menuItemAction_textTool(_ sender: Any)
-    func menuItemAction_scrolTool(_ sender: Any)
-    func menuItemAction_zoomOutTool(_ sender: Any)
-    func menuItemAction_selectTool(_ sender: Any)
-    func menuItemAction_redact(_ sender: Any)
-    func menuItemAction_warkmark(_ sender: Any)
-    func menuItemAction_background(_ sender: Any)
-    func menuItemAction_headerfooter(_ sender: Any)
-    func menuItemAction_bates(_ sender: Any)
-    func menuItemAction_batch(_ sender: Any)
-}
-extension KMSystemToolMenuProtocol {
-    func menuItemAction_textTool(_ sender: Any) {}
-    
-    func menuItemAction_redact(_ sender: Any) {}
-    func menuItemAction_warkmark(_ sender: Any) {}
-    func menuItemAction_background(_ sender: Any) {}
-    func menuItemAction_headerfooter(_ sender: Any) {}
-    func menuItemAction_bates(_ sender: Any) {}
-    func menuItemAction_batch(_ sender: Any) {}
-}
-
-protocol KMSystemWindowMenuRrotocol {
-    func menuItemAction_showForwardTagPage(_ sender: Any)
-    func menuItemAction_showNextTagPage(_ sender: Any)
-    func menuItemAction_newTagPageToNewWindow(_ sender: Any)
-    func menuItemAction_mergeAllWindow(_ sender: Any)
-    func menuItemAction_currentWindowName(_ sender: Any)
-}
-extension KMSystemWindowMenuRrotocol {
-    func menuItemAction_currentWindowName(_ sender: Any) {}
-}
-
-protocol KMSystemViewMenuProtocol {
-    // scale
-    func menuItemAction_adjustWidth(_ sender: Any)
-    func menuItemAction_adjustPage(_ sender: Any)
-    func menuItemAction_size(_ sender: Any)
-    func menuItemAction_zoomOut(_ sender: Any)
-    func menuItemAction_zoomIn(_ sender: Any)
-    
-    // page show
-    func menuItemAction_singlePage(_ sender: Any)
-    func menuItemAction_singlePageContinue(_ sender: Any)
-    func menuItemAction_doublePage(_ sender: Any)
-    func menuItemAction_doublePageContinue(_ sender: Any)
-    func menuItemAction_bookMode(_ sender: Any)
-    func menuItemAction_readMode(_ sender: Any)
-    func menuItemAction_showSplitPage(_ sender: Any)
-
-    func menuItemAction_autoScrol(_ sender: Any)
-    func menuItemAction_autoScrolSetting(_ sender: Any)
-    
-    // rotate
-    func menuItemAction_rotateLeft(_ sender: Any)
-    func menuItemAction_rotateRight(_ sender: Any)
-    func menuItemAction_rotateAllPageLeft(_ sender: Any)
-    func menuItemAction_rotateAllPageRight(_ sender: Any)
-    
-    // split screen
-    func menuItemAction_splitScreenVerti(_ sender: Any)
-    func menuItemAction_splitScreenHorti(_ sender: Any)
-    func menuItemAction_splitScreenNo(_ sender: Any)
-    
-    func menuItemAction_view_readMode(_ sender: Any)
-
-    func menuItemAction_enterFullScreen(_ sender: Any)
-
-    func menuItemAction_hiddenLeftSide(_ sender: Any)
-    func menuItemAction_hiddenRightSide(_ sender: Any)
-    func menuItemAction_thumai(_ sender: Any)
-    func menuItemAction_outline(_ sender: Any)
-    func menuItemAction_bookmark(_ sender: Any)
-    func menuItemAction_annotation(_ sender: Any)
-    func menuItemAction_search(_ sender: Any)
-
-    func menuItemAction_topic(_ sender: Any)
-    func menuItemAction_hiddenPageIndicator(_ sender: Any)
-}
-extension KMSystemViewMenuProtocol {
-    func menuItemAction_autoScrol(_ sender: Any) {}
-    func menuItemAction_autoScrolSetting(_ sender: Any) {}
-    
-    func menuItemAction_splitScreenVerti(_ sender: Any) {}
-    func menuItemAction_splitScreenHorti(_ sender: Any) {}
-    func menuItemAction_splitScreenNo(_ sender: Any) {}
-    
-    func menuItemAction_enterFullScreen(_ sender: Any) {}
-    func menuItemAction_topic(_ sender: Any) {}
-}
-
-extension KMSystemMenu.File {
-    public static let saveAsFlattenedPDFSelector              = NSSelectorFromString("menuItemClick_saveAsFlattenedPDF:")
-    public static let mergePDFSelector              = NSSelectorFromString("menuItemClick_mergePDF:")
-    public static let compressSelector              = NSSelectorFromString("menuItemClick_Compress:")
-    
-    public static let convertSelector               = NSSelectorFromString("menuItemClick_Convert:")
-    public static let convertToWordSelector         = NSSelectorFromString("menuItemAction_ConvertToWord:")
-    public static let convertToExcelSelector        = NSSelectorFromString("menuItemAction_ConvertToExcel:")
-    public static let convertToPPTSelector          = NSSelectorFromString("menuItemAction_ConvertToPPT:")
-    public static let convertToRTFSelector          = NSSelectorFromString("menuItemAction_ConvertToRTF:")
-    public static let convertToHTMLSelector         = NSSelectorFromString("menuItemAction_ConvertToHTML:")
-    public static let convertToTextSelector         = NSSelectorFromString("menuItemAction_ConvertToText:")
-    public static let convertToCSVSelector          = NSSelectorFromString("menuItemAction_ConvertToCSV:")
-    public static let convertToImageSelector        = NSSelectorFromString("menuItemAction_ConvertToImage:")
-    
-    public static let settingPasswordSelector       = NSSelectorFromString("menuItemClick_SettingPassword:")
-    public static let removePasswordSelector        = NSSelectorFromString("menuItemClick_RemovePassword:")
-    
-    public static let closeWindowSelector           = NSSelectorFromString("menuItemAction_closeWindow:")
-    public static let closeAllWindowsSelector       = NSSelectorFromString("menuItemAction_closeAllWindows:")
-    public static let closeTagPageSelector          = NSSelectorFromString("menuItemAction_closeTagPage:")
-    
-    public static let showInFinderSelector          = NSSelectorFromString("menuItemAction_showInFinder:")
-    public static let propertySelector              = NSSelectorFromString("menuItemAction_property:")
-    
-    public static let printSelector                 = NSSelectorFromString("menuItemAction_print:")
-    
-    public static func actions() -> [Selector] {
-        return [self.saveAsFlattenedPDFSelector, self.mergePDFSelector, self.compressSelector,
-                // convert
-                self.convertSelector, self.convertToWordSelector, self.convertToExcelSelector, self.convertToPPTSelector,
-                self.convertToRTFSelector, self.convertToHTMLSelector, self.convertToTextSelector, self.convertToCSVSelector,
-                self.convertToImageSelector,
-                // secure
-                self.settingPasswordSelector, self.removePasswordSelector,
-                // other
-                self.closeWindowSelector, self.closeAllWindowsSelector, self.closeTagPageSelector,
-                self.showInFinderSelector, self.propertySelector,
-                self.printSelector]
-    }
-}
-
-extension KMSystemMenu.Edit {
-    public static let undoSelector              = NSSelectorFromString("undo:")
-    public static let redoSelector              = NSSelectorFromString("redo:")
-    
-    public static let cutSelector               = NSSelectorFromString("cut:")
-    public static let copySelector              = NSSelectorFromString("copy:")
-    public static let pasteSelector             = NSSelectorFromString("paste:")
-    public static let deleteSelector            = NSSelectorFromString("delete:")
-    
-    public static let findSelector              = NSSelectorFromString("menuItemAction_find:")
-    public static func actions() -> [Selector] {
-        return [self.undoSelector, self.redoSelector,
-                self.cutSelector, self.copySelector, self.pasteSelector, self.deleteSelector,
-                self.findSelector]
-    }
-}
-
-extension KMSystemMenu.View {
-    // scale
-    public static let adjustWidthSelector           = NSSelectorFromString("menuItemAction_adjustWidth:")
-    public static let adjustPageSelector            = NSSelectorFromString("menuItemAction_adjustPage:")
-    public static let sizeSelector                  = NSSelectorFromString("menuItemAction_size:")
-    public static let zoomOutSelector               = NSSelectorFromString("menuItemAction_zoomOut:")
-    public static let zoomInSelector                = NSSelectorFromString("menuItemAction_zoomIn:")
-    // page show
-    public static let singlePageSelector            = NSSelectorFromString("menuItemAction_singlePage:")
-    public static let singlePageContinueSelector    = NSSelectorFromString("menuItemAction_singlePageContinue:")
-    public static let doublePageSelector            = NSSelectorFromString("menuItemAction_doublePage:")
-    public static let doublePageContinueSelector    = NSSelectorFromString("menuItemAction_doublePageContinue:")
-    public static let bookModeSelector              = NSSelectorFromString("menuItemAction_bookMode:")
-    public static let readModeSelector              = NSSelectorFromString("menuItemAction_readMode:")
-    public static let showSplitPageSelector         = NSSelectorFromString("menuItemAction_showSplitPage:")
-    public static let autoScrolSelector             = NSSelectorFromString("menuItemAction_autoScrol:")
-    public static let autoScrolSettingSelector      = NSSelectorFromString("menuItemAction_autoScrolSetting:")
-    // rotate
-    public static let rotateLeftSelector            = NSSelectorFromString("menuItemAction_rotateLeft:")
-    public static let rotateRightSelector           = NSSelectorFromString("menuItemAction_rotateRight:")
-    public static let rotateAllPageLeftSelector     = NSSelectorFromString("menuItemAction_rotateAllPageLeft:")
-    public static let rotateAllPageRightSelector    = NSSelectorFromString("menuItemAction_rotateAllPageRight:")
-    // split screen
-    public static let splitScreenVertiSelector      = NSSelectorFromString("menuItemAction_splitScreenVerti:")
-    public static let splitScreenHortiSelector      = NSSelectorFromString("menuItemAction_splitScreenHorti:")
-    public static let splitScreenNoSelector         = NSSelectorFromString("menuItemAction_splitScreenNo:")
-
-    public static let viewReadModeSelector          = NSSelectorFromString("menuItemAction_view_readMode:")
-    public static let enterFullScreenSelector       = NSSelectorFromString("menuItemAction_enterFullScreen:")
-    
-    public static let hiddenLeftSideSelector        = NSSelectorFromString("menuItemAction_hiddenLeftSide:")
-    public static let hiddenRightSideSelector       = NSSelectorFromString("menuItemAction_hiddenRightSide:")
-    public static let thumaiSelector                = NSSelectorFromString("menuItemAction_thumai:")
-    public static let outlineSelector               = NSSelectorFromString("menuItemAction_outline:")
-    public static let bookmarkSelector              = NSSelectorFromString("menuItemAction_bookmark:")
-    public static let annotationSelector            = NSSelectorFromString("menuItemAction_annotation:")
-    public static let searchSelector                = NSSelectorFromString("menuItemAction_search:")
-    
-    public static let topicSelector                 = NSSelectorFromString("menuItemAction_topic:")
-    public static let hiddenPageIndicatorSelector   = NSSelectorFromString("menuItemAction_hiddenPageIndicator:")
-    
-    public static func actions() -> [Selector] {
-        return [self.adjustWidthSelector, self.adjustPageSelector, self.sizeSelector, self.zoomOutSelector, self.zoomInSelector,
-                // page show
-                self.singlePageSelector, self.singlePageContinueSelector, self.doublePageSelector, self.doublePageContinueSelector,
-                self.bookModeSelector, self.readModeSelector, self.showSplitPageSelector, self.autoScrolSelector,
-                self.autoScrolSettingSelector,
-                // rotate
-                self.rotateLeftSelector, self.rotateRightSelector, self.rotateAllPageLeftSelector, self.rotateAllPageRightSelector,
-                // split screen
-                self.splitScreenVertiSelector, self.splitScreenHortiSelector, self.splitScreenNoSelector,
-                self.viewReadModeSelector, self.enterFullScreenSelector,
-                self.hiddenLeftSideSelector, self.hiddenRightSideSelector,
-                self.thumaiSelector, self.outlineSelector, self.bookmarkSelector, self.annotationSelector,
-                self.searchSelector, self.topicSelector, self.hiddenPageIndicatorSelector]
-    }
-}
-
-extension KMSystemMenu.Annotation {
-    public static let highlightSelector     = NSSelectorFromString("menuItemAction_highlight:")
-    public static let underlineSelector     = NSSelectorFromString("menuItemAction_underline:")
-    public static let strikeOutSelector     = NSSelectorFromString("menuItemAction_deleteLine:")
-    public static let freehandSelector      = NSSelectorFromString("menuItemAction_freehand:")
-    public static let textSelector          = NSSelectorFromString("menuItemAction_text:")
-    public static let noteSelector          = NSSelectorFromString("menuItemAction_note:")
-    public static let squreSelector         = NSSelectorFromString("menuItemAction_squre:")
-    public static let circleSelector        = NSSelectorFromString("menuItemAction_circle:")
-    public static let arrowSelector         = NSSelectorFromString("menuItemAction_arrow:")
-    public static let lineSelector          = NSSelectorFromString("menuItemAction_line:")
-    
-    public static let linkSelector          = NSSelectorFromString("menuItemAction_link:")
-    public static let linkPageSelector      = NSSelectorFromString("menuItemAction_linkPage:")
-    public static let linkHttpsSelector     = NSSelectorFromString("menuItemAction_linkHttps:")
-    public static let linkEmailSelector     = NSSelectorFromString("menuItemAction_linkEmail:")
-    
-    public static let stampSelector         = NSSelectorFromString("menuItemAction_stamp:")
-    public static let stampStandardSelector = NSSelectorFromString("menuItemAction_stampStandard:")
-    public static let stampDynamicSelector  = NSSelectorFromString("menuItemAction_stampDynamic:")
-    public static let stampCustomSelector   = NSSelectorFromString("menuItemAction_stampCustom:")
-    
-    public static let signureSelector       = NSSelectorFromString("menuItemAction_signure:")
-    public static let hiddenAllSelector     = NSSelectorFromString("menuItemAction_hiddenAllAnnotation:")
-    public static let clearAllSelector      = NSSelectorFromString("menuItemAction_clearAllAnnotation:")
-    
-    public static func actions() -> [Selector] {
-        return [self.highlightSelector, self.underlineSelector, self.strikeOutSelector, self.freehandSelector,
-                self.textSelector, self.noteSelector, self.squreSelector, self.circleSelector,
-                self.arrowSelector, self.lineSelector,
-                // link
-                self.linkSelector, self.linkPageSelector, self.linkHttpsSelector, self.linkEmailSelector,
-                // stamp
-                self.stampSelector, self.stampStandardSelector, self.stampDynamicSelector, self.stampCustomSelector,
-                // other
-                self.signureSelector, self.hiddenAllSelector, self.clearAllSelector]
-    }
-}
-
-extension KMSystemMenu.Goto {
-    public static let nextPageSelector     = NSSelectorFromString("menuItemAction_nextPage:")
-    public static let forwardPageSelector  = NSSelectorFromString("menuItemAction_forwardPage:")
-    public static let firstPageSelector    = NSSelectorFromString("menuItemAction_firstPage:")
-    public static let lastPageSelector     = NSSelectorFromString("menuItemAction_lastPage:")
-    public static let forwardSelector      = NSSelectorFromString("menuItemAction_forward:")
-    public static let gobackSelector       = NSSelectorFromString("menuItemAction_goback:")
-    public static let gotoPageSelector     = NSSelectorFromString("menuItemAction_gotoPage:")
-    
-    public static func actions() -> [Selector] {
-        return [self.nextPageSelector, self.forwardPageSelector, self.firstPageSelector, self.lastPageSelector,
-                self.forwardSelector, self.gobackSelector, self.gotoPageSelector]
-    }
-}
-
-extension KMSystemMenu.Tool {
-    public static let textToolSelector    = NSSelectorFromString("menuItemAction_textTool:")
-    public static let scrolToolSelector   = NSSelectorFromString("menuItemAction_scrolTool:")
-    public static let zoomToolSelector    = NSSelectorFromString("menuItemAction_zoomOutTool:")
-    public static let selectToolSelector  = NSSelectorFromString("menuItemAction_selectTool:")
-    public static let redactSelector      = NSSelectorFromString("menuItemAction_redact:")
-    public static let warkmarkSelector    = NSSelectorFromString("menuItemAction_warkmark:")
-    public static let backgroundSelector  = NSSelectorFromString("menuItemAction_background:")
-    public static let headerfooterSelector = NSSelectorFromString("menuItemAction_headerfooter:")
-    public static let batesSelector       = NSSelectorFromString("menuItemAction_bates:")
-    public static let batchSelector       = NSSelectorFromString("menuItemAction_batch:")
-    
-    // Editor
-    public static let compressSelector       = NSSelectorFromString("compression:")
-    
-    public static func actions() -> [Selector] {
-        return [self.textToolSelector, self.scrolToolSelector, self.zoomToolSelector, self.selectToolSelector,
-                self.redactSelector, self.warkmarkSelector, self.backgroundSelector, self.headerfooterSelector,
-                self.batesSelector, self.batchSelector,
-                // Editor
-                self.compressSelector]
-    }
-}
-
-extension KMSystemMenu.Window {
-    public static let showForwardTagPageSelector    = NSSelectorFromString("menuItemAction_showForwardTagPage:")
-    public static let showNextTagPageSelector       = NSSelectorFromString("menuItemAction_showNextTagPage:")
-    public static let newTagPageToNewWindowSelector = NSSelectorFromString("menuItemAction_newTagPageToNewWindow:")
-    public static let mergeAllWindowSelector        = NSSelectorFromString("menuItemAction_mergeAllWindow:")
-    public static let currentWindowNameSelector     = NSSelectorFromString("menuItemAction_currentWindowName:")
-    
-    public static func actions() -> [Selector] {
-        return [self.showForwardTagPageSelector, self.showNextTagPageSelector,
-                self.newTagPageToNewWindowSelector, self.mergeAllWindowSelector,
-                self.currentWindowNameSelector]
-    }
-}
-
-class KMSystemMenu: NSObject {
-    public struct File {
-        
-    }
-    public struct Edit {
-        
-    }
-    public struct View {
-        
-    }
-    public struct Annotation {
-
-    }
-    public struct Goto {
-        
-    }
-    public struct Tool {
-        
-    }
-    public struct Window {
-        
-    }
-    
-    public static func isFileSelector(sel: Selector) -> Bool {
-        return KMSystemMenu.File.actions().contains(sel)
-    }
-    public static func isEditSelector(sel: Selector) -> Bool {
-        return KMSystemMenu.Edit.actions().contains(sel)
-    }
-    public static func isViewSelector(sel: Selector) -> Bool {
-        return KMSystemMenu.View.actions().contains(sel)
-    }
-    public static func isAnnotationSelector(sel: Selector) -> Bool {
-        return KMSystemMenu.Annotation.actions().contains(sel)
-    }
-    public static func isGotoSelector(sel: Selector) -> Bool {
-        return KMSystemMenu.Goto.actions().contains(sel)
-    }
-    public static func isToolSelector(sel: Selector) -> Bool {
-        return KMSystemMenu.Tool.actions().contains(sel)
-    }
-    public static func isWindowSelector(sel: Selector) -> Bool {
-        return KMSystemMenu.Window.actions().contains(sel)
-    }
-}