KMToolbarViewController.swift 82 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452
  1. //
  2. // KMToolbarViewController.swift
  3. // PDF Master
  4. //
  5. // Created by lxy on 2022/12/2.
  6. //
  7. import Cocoa
  8. @objc enum KMToolbarViewType : Int {
  9. case None
  10. case Main
  11. case Annatiton
  12. case Page
  13. case Conversion
  14. case ScanOCR
  15. case editPDF
  16. case Form
  17. case FillSign
  18. case Tool
  19. case Move
  20. case Magnify
  21. case Select
  22. case SelectZoom
  23. case LeftPanel
  24. case RightPanel
  25. func isToolMode() -> Bool {
  26. return (self == .Move || self == .Magnify || self == .Select || self == .SelectZoom)
  27. }
  28. func itemIdentifier() -> String {
  29. if (self == .Annatiton) {
  30. return KMDocumentAnnotationToolbarItemIdentifier
  31. } else if (self == .Page) {
  32. return KMDocumentPageToolbarItemIdentifier
  33. } else if (self == .Conversion) {
  34. return KMDocumentConversonToolbarItemIdentifier
  35. } else if (self == .ScanOCR) {
  36. return KMDocumentScanOCRToolbarItemIdentifier
  37. } else if (self == .editPDF) {
  38. return KMDocumentEditToolbarItemIdentifier
  39. } else if (self == .Form) {
  40. return KMDocumentFormToolbarItemIdentifier
  41. } else if (self == .FillSign) {
  42. return KMDocumentFillSginToolbarItemIdentifier
  43. } else if (self == .Tool) {
  44. return KMDocumentToolToolbarItemIdentifier
  45. } else if (self == .Move) {
  46. return KMToolbarMoveToolModeItemIdentifier
  47. } else if (self == .Magnify) {
  48. return KMToolbarMagnifyToolModeItemIdentifier
  49. } else if (self == .Select) {
  50. return KMToolbarSelectToolModeItemIdentifier
  51. } else if (self == .SelectZoom) {
  52. return KMToolbarZoomToSelectionItemIdentifier
  53. } else if (self == .LeftPanel) {
  54. return KMLeftControlToolbarItemIdentifier
  55. } else if (self == .RightPanel) {
  56. return KMRightControlToolbarItemIdentifier
  57. }
  58. return ""
  59. }
  60. }
  61. @objc enum KMToolbarType: Int {
  62. /// conversion
  63. case word = 3000
  64. case excel = 3001
  65. case ppt = 3002
  66. case rtf = 3003
  67. case csv = 3004
  68. case html = 3005
  69. case conversion_text = 3006
  70. case conversion_image = 3007
  71. /// tool
  72. case compress = 8000
  73. case merge = 8001
  74. case fileCompare = 8002
  75. case secure = 8003
  76. case redact = 8004
  77. case watermark = 8005
  78. case background = 8006
  79. case headerAndFooter = 8007
  80. case bates = 8008
  81. case crop = 8009
  82. }
  83. @objc protocol KMToolbarViewControllerDelegate {
  84. @objc optional func changeAnnotationModeAction(item:KMToolbarClickButton)
  85. @objc optional func showPDFLayoutModeAction(show:Bool)
  86. @objc optional func changePDFViewZoomInAction()
  87. @objc optional func changePDFViewZoomOutAction()
  88. @objc optional func changePDFViewGotoNextPageAction()
  89. @objc optional func changePDFViewGoToPreviousPageAction()
  90. @objc optional func showPDFViewPrintViewController()
  91. @objc optional func toolbarViewController(_ viewController:KMToolbarViewController, zoomSting : String)
  92. @objc optional func toolbarViewController(_ viewController:KMToolbarViewController, zoomModel selectedTag:Int)
  93. @objc optional func toolbarViewController(_ viewController:KMToolbarViewController, shareDocument item:NSMenuItem)
  94. @objc optional func toolbarViewController(_ viewController:KMToolbarViewController, shareFlatten item:NSMenuItem)
  95. @objc optional func toolbarViewController(_ viewController:KMToolbarViewController, shareOriginalPDF item:NSMenuItem)
  96. @objc optional func toolbarViewController(_ viewController: KMToolbarViewController, clickMode toolMode: KMToolbarViewType, toolbar toolbarItem: KMToolBoxItem, _ pages: [Int])
  97. @objc optional func toolbarViewController(_ viewController: KMToolbarViewController, clickChaildToolType: KMToolbarType, toolbar toolbarItem: KMToolBoxItem)
  98. @objc optional func toolbarViewController(_ viewController:KMToolbarViewController, scanOCRModel selectedTag:Int)
  99. @objc optional func toolbarViewController(_ viewController:KMToolbarViewController, rightPanel toolbarItem: KMToolBoxItem)
  100. @objc optional func toolbarViewController(_ viewController:KMToolbarViewController, leftPanel toolbarItem: KMToolBoxItem)
  101. }
  102. class KMToolbarViewController: NSViewController, NSTextFieldDelegate {
  103. var toolbar : KMToolbar!
  104. var toolbarType : KMToolbarViewType = KMToolbarViewType.None
  105. var toolbarItems : [String : Any] = [:]
  106. @IBOutlet weak var mainWindowController : MainWindowController!
  107. open weak var delegate: KMToolbarViewControllerDelegate?
  108. @IBOutlet var zoomButton: NSPopUpButton!
  109. @IBOutlet var zoomView: NSView!
  110. @IBOutlet weak var zoomTextField: NSTextField!
  111. var pdfView : CPDFListView = CPDFListView()
  112. var shareButton = KMToolbarClickButton()
  113. private var bottomLine = NSView()
  114. // 是否显示所有注释
  115. var isShowAllAnnotations = true
  116. override func viewDidLoad() {
  117. super.viewDidLoad()
  118. self.zoomTextField.delegate = self
  119. NotificationCenter.default.addObserver(self, selector: #selector(listViewAnnotationTypeChangeNotification), name: Notification.Name("CPDFListViewAnnotationTypeChangeNotification"), object: nil)
  120. NotificationCenter.default.addObserver(self, selector: #selector(listViewAnnotationTypeChangeNotification), name: Notification.Name("CPDFListViewToolModeChangeNotification"), object: nil)
  121. }
  122. override func loadView() {
  123. super.loadView()
  124. self.toolbar = KMToolbar.init(identifier: "KMToolbar_New")
  125. self.toolbar.frame = self.view.bounds
  126. self.toolbar.autoresizingMask = [.width,.height]
  127. self.toolbar.delegate = self
  128. self.view.addSubview(self.toolbar)
  129. self.view.addSubview(self.bottomLine)
  130. self.bottomLine.frame = NSMakeRect(0, 0, NSWidth(self.view.bounds), 1)
  131. self.bottomLine.autoresizingMask = [.width]
  132. self.bottomLine.wantsLayer = true
  133. self.bottomLine.layer?.backgroundColor = NSColor(hex: "#0000001A").cgColor
  134. }
  135. func updateType(newType:KMToolbarViewType) {
  136. if newType != toolbarType {
  137. toolbarType = newType
  138. if self.toolbar != nil && self.toolbar.superview != nil {
  139. self.toolbar.removeFromSuperview()
  140. }
  141. self.toolbar = KMToolbar.init(identifier: "KMToolbar_New")
  142. self.toolbar.frame = self.view.bounds
  143. self.toolbar.autoresizingMask = [.width,.height]
  144. self.toolbar.delegate = self
  145. self.view.addSubview(self.toolbar)
  146. }
  147. }
  148. func reloadateToolbar() -> Void {
  149. toolbar.reloadData()
  150. }
  151. func resetToolbar() -> Void {
  152. for item in toolbar.items {
  153. item.isSelected = false
  154. }
  155. }
  156. // MARK: Action
  157. @IBAction func changeAnnotationMode(item: KMToolbarClickButton) {
  158. self.delegate?.changeAnnotationModeAction?(item: item)
  159. }
  160. @IBAction func leftControllButtonAction(item: KMToolbarClickButton) {
  161. let tag = KMToolbarViewType(rawValue: item.tag) ?? .None
  162. self.delegate?.toolbarViewController?(self, clickMode: tag, toolbar: item.clickObject as! KMToolBoxItem, [])
  163. }
  164. @objc private func leftPanelAction(sender: KMToolbarClickButton) {
  165. self.delegate?.toolbarViewController?(self, leftPanel: sender.clickObject as! KMToolBoxItem)
  166. }
  167. @IBAction func rightPanelControllButtonAction(item: KMToolbarClickButton) {
  168. let tag = KMToolbarViewType(rawValue: item.tag) ?? .None
  169. self.delegate?.toolbarViewController?(self, rightPanel: item.clickObject as! KMToolBoxItem)
  170. }
  171. @IBAction func showPDFLayoutMode(sender: KMToolbarClickButton) {
  172. let item = sender.clickObject as? KMToolBoxItem
  173. if (item != nil) {
  174. item?.isSelected = !item!.isSelected
  175. }
  176. self.delegate?.showPDFLayoutModeAction?(show: true)
  177. }
  178. @objc func cropMenuAction(item: KMToolBoxItem) {
  179. self.delegate?.toolbarViewController?(self, clickChaildToolType: .crop, toolbar: item)
  180. }
  181. @objc func batesMenuAction(sender: KMToolbarClickButton) {
  182. self.delegate?.toolbarViewController?(self, clickChaildToolType: .bates, toolbar: sender.clickObject as! KMToolBoxItem)
  183. }
  184. @objc func headerfooterMenuAction(sender: KMToolbarClickButton) {
  185. self.delegate?.toolbarViewController?(self, clickChaildToolType: .headerAndFooter, toolbar: sender.clickObject as! KMToolBoxItem)
  186. }
  187. @objc func backgroundMenuAction(sender: KMToolbarClickButton) {
  188. self.delegate?.toolbarViewController?(self, clickChaildToolType: .background, toolbar: sender.clickObject as! KMToolBoxItem)
  189. }
  190. @objc func watermarkMenuAction(sender: KMToolbarClickButton) {
  191. self.delegate?.toolbarViewController?(self, clickChaildToolType: .watermark, toolbar: sender.clickObject as! KMToolBoxItem)
  192. }
  193. @objc func redactMenuAction(sender: KMToolbarClickButton) {
  194. self.delegate?.toolbarViewController?(self, clickChaildToolType: .redact, toolbar: sender.clickObject as! KMToolBoxItem)
  195. }
  196. @objc func compressMenuAction(sender: KMToolbarClickButton) {
  197. self.delegate?.toolbarViewController?(self, clickChaildToolType: .compress, toolbar: sender.clickObject as! KMToolBoxItem)
  198. }
  199. @objc func secureMenuAction(sender: KMToolbarClickButton) {
  200. self.delegate?.toolbarViewController?(self, clickChaildToolType: .secure, toolbar: sender.clickObject as! KMToolBoxItem)
  201. }
  202. @objc func conversionMenuItemAction(sender: KMToolbarClickButton) {
  203. let item: KMToolBoxItem = sender.clickObject as! KMToolBoxItem
  204. var type: KMToolbarType = .word
  205. if (item.btnTag == KMToolbarType.excel.rawValue) {
  206. type = .excel
  207. } else if (item.btnTag == KMToolbarType.ppt.rawValue) {
  208. type = .ppt
  209. } else if (item.btnTag == KMToolbarType.rtf.rawValue) {
  210. type = .rtf
  211. } else if (item.btnTag == KMToolbarType.csv.rawValue) {
  212. type = .csv
  213. } else if (item.btnTag == KMToolbarType.html.rawValue) {
  214. type = .html
  215. } else if (item.btnTag == KMToolbarType.conversion_text.rawValue) {
  216. type = .conversion_text
  217. } else if (item.btnTag == KMToolbarType.conversion_image.rawValue) {
  218. type = .conversion_image
  219. }
  220. self.delegate?.toolbarViewController?(self, clickChaildToolType: type, toolbar: item)
  221. }
  222. @IBAction func zoomModelSelectButtonAction(_ sender: NSPopUpButton) {
  223. self.delegate?.toolbarViewController?(self, zoomModel: sender.selectedTag())
  224. for item in sender.itemArray {
  225. item.state = .off
  226. }
  227. sender.selectedItem?.state = .on
  228. }
  229. @IBAction func zoomPDFViewButtonAction(sender:KMToolbarClickButton) {
  230. if sender.tag == 0 {
  231. self.delegate?.changePDFViewZoomOutAction?()
  232. } else if sender.tag == 1 {
  233. self.delegate?.changePDFViewZoomInAction?()
  234. } else if sender.tag == 2 {
  235. self.delegate?.changePDFViewGotoNextPageAction?()
  236. } else if sender.tag == 3 {
  237. self.delegate?.changePDFViewGoToPreviousPageAction?()
  238. }
  239. }
  240. @IBAction func printPDFViewButtonAction(sender:KMToolbarClickButton) {
  241. self.delegate?.showPDFViewPrintViewController?()
  242. }
  243. @IBAction func shareButtonAction(sender:KMToolbarClickButton) {
  244. self.shareButton = sender
  245. let menu = NSMenu()
  246. menu.addItem(withTitle: NSLocalizedString("Document", comment: ""), action: #selector(shareViaWithDocument), target: self)
  247. menu.addItem(withTitle: NSLocalizedString("Flattened Copy", comment: ""), action: #selector(shareViaWithFlatten), target: self)
  248. menu.addItem(withTitle: NSLocalizedString("Original PDF", comment: ""), action: #selector(shareViaWithOriginalPDF), target: self)
  249. menu.popUp(positioning: nil, at: NSPoint(x: sender.frame.origin.x, y: sender.frame.origin.y-10), in: sender.superview)
  250. }
  251. @IBAction func shareViaWithDocument(sender:NSMenuItem) {
  252. self.delegate?.toolbarViewController?(self, shareDocument: sender)
  253. }
  254. @IBAction func shareViaWithFlatten(sender:NSMenuItem) {
  255. self.delegate?.toolbarViewController?(self, shareFlatten: sender)
  256. }
  257. @IBAction func shareViaWithOriginalPDF(sender:NSMenuItem) {
  258. self.delegate?.toolbarViewController?(self, shareOriginalPDF: sender)
  259. }
  260. @objc func mergeMenuItemAction(sender: KMToolbarClickButton) {
  261. self.delegate?.toolbarViewController?(self, clickChaildToolType: .merge, toolbar: sender.clickObject as! KMToolBoxItem)
  262. }
  263. @IBAction func scanOCRModelSelect(sender:KMToolbarClickButton) {
  264. self.delegate?.toolbarViewController?(self, scanOCRModel: sender.tag)
  265. }
  266. // Form 对齐
  267. @IBAction func formsAlignmentAction(sender:KMToolbarClickButton) {
  268. }
  269. // Form 更多操作
  270. @IBAction func formsMoreOperationAction(sender:KMToolbarClickButton) {
  271. }
  272. func toolbarItemFindItemIdentifiers(value : String) -> KMToolBoxItem{
  273. for item in self.toolbarItems {
  274. if item.key == value {
  275. return item.value as! KMToolBoxItem
  276. }
  277. }
  278. return KMToolBoxItem()
  279. }
  280. func controlTextDidEndEditing(_ obj: Notification) {
  281. let textField = obj.object as? NSTextField
  282. if textField == self.zoomTextField {
  283. self.delegate?.toolbarViewController?(self, zoomSting: self.zoomTextField.stringValue)
  284. }
  285. }
  286. func controlTextDidChange(_ obj: Notification) {
  287. }
  288. func control(_ control: NSControl, textView: NSTextView, doCommandBy commandSelector: Selector) -> Bool {
  289. switch commandSelector {
  290. case #selector(NSResponder.insertNewline(_:)):
  291. if let inputView = control as? NSTextField {
  292. // //当当前TextField按下enter
  293. if inputView == zoomTextField {
  294. print("按下 enter")
  295. self.delegate?.toolbarViewController?(self, zoomSting: self.zoomTextField.stringValue)
  296. }
  297. }
  298. return true
  299. default:
  300. return false
  301. }
  302. }
  303. }
  304. extension KMToolbarViewController : KMNewToolbarDelegate,NSToolbarItemValidation {
  305. func toolbarLeftDefaultItemIdentifiers(_ toolbar: KMToolbar!) -> [String]! {
  306. if toolbarType == .Main {
  307. return [KMLeftControlToolbarItemIdentifier, KMToolbarDividerItemIdentifier,
  308. KMDocumentZoomToolbarItemIdentifier,
  309. KMDocumentZoomOutToolbarItemIdentifier,
  310. KMDocumentZoomViewToolbarItemIdentifier, KMToolbarDividerItemIdentifier]
  311. }
  312. return []
  313. }
  314. func toolbarRightDefaultItemIdentifiers(_ toolbar: KMToolbar!) -> [String]! {
  315. if toolbarType == .Main {
  316. return [KMDocumentPrintToolbarItemIdentifier,
  317. KMDocumentShareToolbarItemIdentifier,
  318. KMRightControlToolbarItemIdentifier]
  319. }
  320. return []
  321. }
  322. func toolbarDefaultItemIdentifiers(_ toolbar: KMToolbar!) -> [String]! {
  323. switch toolbarType {
  324. case .None:
  325. return []
  326. case .Main:
  327. return [KMDocumentAnnotationToolbarItemIdentifier,
  328. KMDocumentPageToolbarItemIdentifier,
  329. KMDocumentConversonToolbarItemIdentifier,
  330. // KMDocumentFillSginToolbarItemIdentifier,
  331. KMDocumentToolToolbarItemIdentifier]
  332. case .Annatiton,.Magnify,.Move,.Select,.SelectZoom:
  333. return [KMToolbarMoveToolModeItemIdentifier,
  334. KMToolbarMagnifyToolModeItemIdentifier,
  335. KMToolbarSelectToolModeItemIdentifier,
  336. KMToolbarZoomToSelectionItemIdentifier,
  337. KMToolbarDividerItemIdentifier,
  338. KMNewToolbarSpaceItemIdentifier,
  339. KMToolbarHighlightAnnotationItemIdentifier,
  340. KMToolbarUnderlineAnnotationItemIdentifier,
  341. KMToolbarStrikeOutAnnotationItemIdentifier,
  342. KMToolbarInkAnnotationItemIdentifier,
  343. KMToolbarFreeTextAnnotationItemIdentifier,
  344. KMToolbarAnchoredAnnotationItemIdentifier,
  345. KMToolbarSquareAnnotationItemIdentifier,
  346. KMToolbarLinkAnnotationItemIdentifier,
  347. KMAnnotationStampToolbarItemIdentifier,
  348. KMToolbarSignSignatureAnnotationItemIdentifier,
  349. KMToolbarShowToolbarItemIdentifier]
  350. case .editPDF:
  351. return [KMToolbarAddTextEditPDFItemIdentifier,
  352. KMToolbarAddImageEditPDFItemIdentifier]
  353. case .Page:
  354. return []
  355. case .Tool:
  356. return [KMToolbarToolCompressItemIdentifier,
  357. KMToolbarToolMergeItemIdentifier,
  358. KMToolbarToolSecureItemIdentifier,
  359. KMToolbarToolCropItemIdentifier]
  360. case .Form:
  361. return [KMToolbarToolTextFieldItemIdentifier,
  362. KMToolbarToolCheckBoxItemIdentifier,
  363. KMToolbarToolRadioButtonItemIdentifier,
  364. KMToolbarToolListBoxItemIdentifier,
  365. KMToolbarToolPullDownmenuItemIdentifier,
  366. KMToolbarToolButtonIdentifier,
  367. KMToolbarToolSignBoxIdentifier,
  368. KMToolbarDividerItemIdentifier,
  369. KMToolbarToolFormAlignIdentifier,
  370. KMToolbarToolFormMoreIdentifier]
  371. case .FillSign:
  372. return [KMToolbarToolTextIdentifier,
  373. KMToolbarToolHookItemIdentifier,
  374. KMToolbarToolForkItemIdentifier,
  375. KMToolbarToolRectangleIdentifier,
  376. KMToolbarToolLineItemIdentifier,
  377. KMToolbarToolDotItemIdentifier,
  378. KMToolbarToolDateIdentifier,
  379. KMToolbarFillSignSignatureIdentifier]
  380. case .Conversion:
  381. return [KMToolbarConversionWordItemIdentifier,
  382. KMToolbarConversionExcelItemIdentifier,
  383. KMToolbarConversionPPTItemIdentifier,
  384. KMToolbarConversionRTFItemIdentifier,
  385. KMToolbarConversionCSVItemIdentifier,
  386. KMToolbarConversionHTMLItemIdentifier,
  387. KMToolbarConversionTextItemIdentifier,
  388. KMToolbarConversionImageItemIdentifier]
  389. case .ScanOCR:
  390. return [KMToolbarToolEnhancedScanIdentifier,
  391. KMToolbarToolOCRTextIdentifier]
  392. default:
  393. break
  394. }
  395. return []
  396. }
  397. func toolbar(_ toolbar: KMToolbar!, itemForItemIdentifier identifier: String!) -> KMToolBoxItem! {
  398. var item = self.toolbarItems[identifier] as? KMToolBoxItem
  399. if item == nil {
  400. item = KMToolBoxItem.init(itemIdentifier: identifier)
  401. self.toolbarItems[identifier] = item
  402. if identifier == KMLeftControlToolbarItemIdentifier {
  403. item?.image = NSImage(named: "KMImageNameMainToolbarLeft")
  404. item?.titleName = "View Settings"
  405. item?.alternateImage = NSImage(named: "KMImageNameMainToolbarLeft")
  406. item?.target = self
  407. item?.btnTag = KMToolbarViewType.LeftPanel.rawValue
  408. item?.toolTip = NSLocalizedString("View Settings", comment: "")
  409. item?.boxImagePosition = KMToolBoxImagePosition.only
  410. item?.btnAction = #selector(leftPanelAction)
  411. let menuItem = NSMenuItem.init(title: item?.titleName, action: #selector(leftPanelAction), target: self)
  412. menuItem?.target = self
  413. menuItem?.tag = item!.btnTag
  414. item?.menuFormRepresentation = menuItem
  415. } else if identifier == KMDocumentZoomToolbarItemIdentifier {
  416. item?.image = NSImage(named: "KMImageNameMainToolbarMinus")
  417. item?.titleName = "zoom"
  418. item?.alternateImage = NSImage(named: "KMImageNameMainToolbarMinus")
  419. item?.target = self
  420. item?.btnTag = 0
  421. item?.toolTip = NSLocalizedString("", comment: "")
  422. item?.boxImagePosition = KMToolBoxImagePosition.only
  423. item?.btnAction = #selector(zoomPDFViewButtonAction)
  424. let menuItem = NSMenuItem.init(title: item?.titleName, action: #selector(zoomPDFViewButtonAction), target: self)
  425. menuItem?.target = self
  426. menuItem?.tag = item!.btnTag
  427. item?.menuFormRepresentation = menuItem
  428. } else if identifier == KMDocumentZoomOutToolbarItemIdentifier {
  429. item?.image = NSImage(named: "KMImageNameMainToolbarPlus")
  430. item?.titleName = "zoom"
  431. item?.alternateImage = NSImage(named: "KMImageNameMainToolbarPlus")
  432. item?.target = self
  433. item?.btnTag = 1
  434. // item?.toolTip = NSLocalizedString("Annotate PDF with highlight, text box and markup tools", comment: "")
  435. item?.boxImagePosition = KMToolBoxImagePosition.only
  436. item?.btnAction = #selector(zoomPDFViewButtonAction)
  437. let menuItem = NSMenuItem.init(title: item?.titleName, action: #selector(zoomPDFViewButtonAction), target: self)
  438. menuItem?.target = self
  439. menuItem?.tag = item!.btnTag
  440. item?.menuFormRepresentation = menuItem
  441. } else if identifier == KMDocumentZoomViewToolbarItemIdentifier{
  442. item?.titleName = "Zoom"
  443. item?.target = self
  444. item?.customizeView = self.zoomView;
  445. } else if identifier == KMDocumentNextPageToolbarItemIdentifier {
  446. item?.image = NSImage(named: "KMImageNameMainToolbarForward")
  447. item?.titleName = "Forward"
  448. item?.alternateImage = NSImage(named: "KMImageNameMainToolbarForward")
  449. item?.target = self
  450. item?.btnTag = 2
  451. item?.toolTip = NSLocalizedString("Forward", comment: "")
  452. item?.boxImagePosition = KMToolBoxImagePosition.only
  453. item?.btnAction = #selector(zoomPDFViewButtonAction)
  454. let menuItem = NSMenuItem.init(title: item?.titleName, action: #selector(zoomPDFViewButtonAction), target: self)
  455. menuItem?.target = self
  456. menuItem?.tag = item!.btnTag
  457. item?.menuFormRepresentation = menuItem
  458. } else if identifier == KMDocumentPreviousPageToolbarItemIdentifier {
  459. item?.image = NSImage(named: "KMImageNameMainToolbarBack")
  460. item?.titleName = "Next"
  461. item?.alternateImage = NSImage(named: "KMImageNameMainToolbarBack")
  462. item?.target = self
  463. item?.btnTag = 3
  464. item?.toolTip = NSLocalizedString("Next", comment: "")
  465. item?.boxImagePosition = KMToolBoxImagePosition.only
  466. item?.btnAction = #selector(zoomPDFViewButtonAction)
  467. let menuItem = NSMenuItem.init(title: item?.titleName, action: #selector(zoomPDFViewButtonAction), target: self)
  468. menuItem?.target = self
  469. menuItem?.tag = item!.btnTag
  470. item?.menuFormRepresentation = menuItem
  471. } else if identifier == KMDocumentAnnotationToolbarItemIdentifier {
  472. item?.titleName = NSLocalizedString("Annotation", comment: "")
  473. item?.target = self
  474. item?.isMainTool = true
  475. item?.toolTip = NSLocalizedString("Add annotation with highlight, text and shape tool", comment: "")
  476. item?.btnTag = KMToolbarViewType.Annatiton.rawValue
  477. item?.btnAction = #selector(leftControllButtonAction)
  478. let menuItem = NSMenuItem.init(title: item?.titleName, action: #selector(leftControllButtonAction), target: self)
  479. menuItem?.target = self
  480. menuItem?.tag = item!.btnTag
  481. item?.menuFormRepresentation = menuItem
  482. } else if identifier == KMDocumentPageToolbarItemIdentifier {
  483. item?.titleName = NSLocalizedString("Page Edit", comment: "")
  484. item?.target = self
  485. item?.isMainTool = true
  486. item?.toolTip = NSLocalizedString("PDF Page Editor: rotate, delete, paste, copy, and cut pages", comment: "")
  487. item?.btnTag = KMToolbarViewType.Page.rawValue
  488. item?.btnAction = #selector(leftControllButtonAction)
  489. let menuItem = NSMenuItem.init(title: item?.titleName, action: #selector(leftControllButtonAction), target: self)
  490. menuItem?.target = self
  491. menuItem?.tag = item!.btnTag
  492. item?.menuFormRepresentation = menuItem
  493. } else if identifier == KMDocumentConversonToolbarItemIdentifier {
  494. item?.titleName = NSLocalizedString("Converter", comment: "")
  495. item?.target = self
  496. item?.isMainTool = true
  497. item?.toolTip = NSLocalizedString("Convert PDF to Word, Excel, PPT, RTF, CSV, HTML, Text and Image.", comment: "")
  498. item?.btnTag = KMToolbarViewType.Conversion.rawValue
  499. item?.btnAction = #selector(leftControllButtonAction)
  500. let menuItem = NSMenuItem.init(title: item?.titleName, action: #selector(leftControllButtonAction), target: self)
  501. menuItem?.target = self
  502. menuItem?.tag = item!.btnTag
  503. item?.menuFormRepresentation = menuItem
  504. } else if identifier == KMDocumentScanOCRToolbarItemIdentifier {
  505. item?.titleName = NSLocalizedString("Scan & OCR", comment: "")
  506. item?.target = self
  507. item?.isMainTool = true
  508. item?.btnTag = KMToolbarViewType.ScanOCR.rawValue
  509. item?.toolTip = NSLocalizedString("Scan & OCR", comment: "")
  510. item?.btnAction = #selector(leftControllButtonAction)
  511. let menuItem = NSMenuItem.init(title: item?.titleName, action: #selector(leftControllButtonAction), target: self)
  512. menuItem?.target = self
  513. menuItem?.tag = item!.btnTag
  514. item?.menuFormRepresentation = menuItem
  515. } else if identifier == KMToolbarToolEnhancedScanIdentifier {
  516. item?.image = NSImage(named: "KMImageNameMainToolEnhancedScan")
  517. item?.alternateImage = NSImage(named: "KMImageNameMainToolEnhancedScan")
  518. item?.target = self
  519. item?.btnTag = 0
  520. item?.toolTip = NSLocalizedString("Enhanced Scan", comment: "")
  521. item?.titleName = NSLocalizedString("Enhanced Scan", comment: "")
  522. item?.boxImagePosition = KMToolBoxImagePosition.left
  523. item?.btnAction = #selector(scanOCRModelSelect)
  524. } else if identifier == KMToolbarToolOCRTextIdentifier {
  525. item?.image = NSImage(named: "KMImageNameMainToolOCRText")
  526. item?.alternateImage = NSImage(named: "KMImageNameMainToolOCRText")
  527. item?.target = self
  528. item?.btnTag = 1
  529. item?.toolTip = NSLocalizedString("OCR Text Recognition", comment: "")
  530. item?.titleName = NSLocalizedString("OCR Text Recognition", comment: "")
  531. item?.boxImagePosition = KMToolBoxImagePosition.left
  532. item?.btnAction = #selector(scanOCRModelSelect)
  533. } else if identifier == KMDocumentEditToolbarItemIdentifier {
  534. item?.titleName = NSLocalizedString("Edit", comment: "")
  535. item?.target = self
  536. item?.isMainTool = true
  537. item?.btnTag = KMToolbarViewType.editPDF.rawValue
  538. item?.toolTip = NSLocalizedString("Edit", comment: "")
  539. item?.btnAction = #selector(leftControllButtonAction)
  540. let menuItem = NSMenuItem.init(title: item?.titleName, action: #selector(leftControllButtonAction), target: self)
  541. menuItem?.target = self
  542. menuItem?.tag = item!.btnTag
  543. item?.menuFormRepresentation = menuItem
  544. } else if identifier == KMDocumentFormToolbarItemIdentifier {
  545. item?.titleName = NSLocalizedString("Form", comment: "")
  546. item?.target = self
  547. item?.isMainTool = true
  548. item?.btnTag = KMToolbarViewType.Form.rawValue
  549. item?.toolTip = NSLocalizedString("Form", comment: "")
  550. item?.btnAction = #selector(leftControllButtonAction)
  551. let menuItem = NSMenuItem.init(title: item?.titleName, action: #selector(leftControllButtonAction), target: self)
  552. menuItem?.target = self
  553. menuItem?.tag = item!.btnTag
  554. item?.menuFormRepresentation = menuItem
  555. } else if identifier == KMDocumentFillSginToolbarItemIdentifier {
  556. item?.titleName = NSLocalizedString("Fillsign", comment: "")
  557. item?.target = self
  558. item?.isMainTool = true
  559. item?.btnTag = KMToolbarViewType.FillSign.rawValue
  560. item?.toolTip = NSLocalizedString("Fill and sign forms or allow others to sign them", comment: "")
  561. item?.btnAction = #selector(leftControllButtonAction)
  562. let menuItem = NSMenuItem.init(title: item?.titleName, action: #selector(leftControllButtonAction), target: self)
  563. menuItem?.target = self
  564. menuItem?.tag = item!.btnTag
  565. item?.menuFormRepresentation = menuItem
  566. } else if identifier == KMDocumentToolToolbarItemIdentifier {
  567. item?.titleName = NSLocalizedString("Tools", comment: "")
  568. item?.target = self
  569. item?.isMainTool = true
  570. item?.btnTag = KMToolbarViewType.Tool.rawValue
  571. item?.toolTip = NSLocalizedString("Advanced editing tools", comment: "")
  572. item?.btnAction = #selector(leftControllButtonAction)
  573. let menuItem = NSMenuItem.init(title: item?.titleName, action: #selector(leftControllButtonAction), target: self)
  574. menuItem?.target = self
  575. menuItem?.tag = item!.btnTag
  576. item?.menuFormRepresentation = menuItem
  577. } else if identifier == KMDocumentPrintToolbarItemIdentifier {
  578. item?.image = NSImage(named: "KMImageNameMainToolbarPrint")
  579. item?.titleName = "Print"
  580. item?.alternateImage = NSImage(named: "KMImageNameMainToolbarPrint")
  581. item?.target = self
  582. item?.toolTip = NSLocalizedString("Print", comment: "")
  583. item?.boxImagePosition = KMToolBoxImagePosition.only
  584. item?.btnAction = #selector(printPDFViewButtonAction)
  585. let menuItem = NSMenuItem.init(title: item?.titleName, action: #selector(printPDFViewButtonAction), target: self)
  586. menuItem?.target = self
  587. item?.menuFormRepresentation = menuItem
  588. } else if identifier == KMDocumentShareToolbarItemIdentifier {
  589. item?.image = NSImage(named: "KMImageNameMainToolbarShare")
  590. item?.titleName = "Share"
  591. item?.alternateImage = NSImage(named: "KMImageNameMainToolbarShare")
  592. item?.target = self
  593. item?.toolTip = NSLocalizedString("Share the file with others", comment: "")
  594. item?.boxImagePosition = KMToolBoxImagePosition.only
  595. item?.btnAction = #selector(shareButtonAction)
  596. let menuItem = NSMenuItem.init(title: item?.titleName, action: nil, target: self)
  597. let menu = NSMenu()
  598. menu.addItem(withTitle: NSLocalizedString("Document", comment: ""), action: #selector(shareViaWithDocument), target: self)
  599. menu.addItem(withTitle: NSLocalizedString("Flattened Copy", comment: ""), action: #selector(shareViaWithFlatten), target: self)
  600. menu.addItem(withTitle: NSLocalizedString("Original PDF", comment: ""), action: #selector(shareViaWithOriginalPDF), target: self)
  601. menuItem?.submenu = menu
  602. item?.menuFormRepresentation = menuItem
  603. } else if identifier == KMRightControlToolbarItemIdentifier {
  604. item?.image = NSImage(named: "KMImageNameMainToolbarrRight")
  605. item?.titleName = "right"
  606. item?.alternateImage = NSImage(named: "KMImageNameMainToolbarrRight")
  607. item?.target = self
  608. item?.btnTag = KMToolbarViewType.RightPanel.rawValue
  609. item?.toolTip = NSLocalizedString("Show/hide the right properties panel", comment: "")
  610. item?.boxImagePosition = KMToolBoxImagePosition.only
  611. item?.btnAction = #selector(rightPanelControllButtonAction)
  612. let menuItem = NSMenuItem.init(title: item?.titleName, action: #selector(rightPanelControllButtonAction), target: self)
  613. menuItem?.target = self
  614. menuItem?.tag = item!.btnTag
  615. item?.menuFormRepresentation = menuItem
  616. } else if identifier == KMToolbarMoveToolModeItemIdentifier {
  617. item?.image = NSImage(named: "KMImageNameMainToolMove")
  618. item?.alternateImage = NSImage(named: "KMImageNameMainToolMove")
  619. item?.target = self
  620. item?.btnTag = KMToolbarViewType.Move.rawValue
  621. item?.toolTip = NSLocalizedString("Scroll Tool", comment: "")
  622. item?.boxImagePosition = KMToolBoxImagePosition.only
  623. item?.btnAction = #selector(leftControllButtonAction)
  624. let menuItem = NSMenuItem.init(title: "Scroll Tool", action: #selector(leftControllButtonAction), target: self)
  625. menuItem?.tag = KMToolbarViewType.Move.rawValue
  626. item?.menuFormRepresentation = menuItem
  627. } else if identifier == KMToolbarMagnifyToolModeItemIdentifier {
  628. item?.image = NSImage(named: "KMImageNameMainToolMagnify")
  629. item?.alternateImage = NSImage(named: "KMImageNameMainToolMagnify")
  630. item?.target = self
  631. item?.btnTag = KMToolbarViewType.Magnify.rawValue
  632. item?.toolTip = NSLocalizedString("Magnify Tool", comment: "")
  633. item?.boxImagePosition = KMToolBoxImagePosition.only
  634. item?.btnAction = #selector(leftControllButtonAction)
  635. let menuItem = NSMenuItem.init(title: "Magnify Tool", action: #selector(leftControllButtonAction), target: self)
  636. menuItem?.tag = KMToolbarViewType.Magnify.rawValue
  637. item?.menuFormRepresentation = menuItem
  638. } else if identifier == KMToolbarSelectToolModeItemIdentifier {
  639. item?.image = NSImage(named: "KMImageNameMainToolSelect")
  640. item?.alternateImage = NSImage(named: "KMImageNameMainToolSelect")
  641. item?.target = self
  642. item?.btnTag = KMToolbarViewType.Select.rawValue
  643. item?.toolTip = NSLocalizedString("Content Selection", comment: "")
  644. item?.boxImagePosition = KMToolBoxImagePosition.only
  645. item?.btnAction = #selector(leftControllButtonAction)
  646. let menuItem = NSMenuItem.init(title: "Content Selection", action: #selector(leftControllButtonAction), target: self)
  647. menuItem?.tag = KMToolbarViewType.Select.rawValue
  648. item?.menuFormRepresentation = menuItem
  649. } else if identifier == KMToolbarZoomToSelectionItemIdentifier {
  650. item?.image = NSImage(named: "KMImageNameMainToolSelectZoom")
  651. item?.alternateImage = NSImage(named: "KMImageNameMainToolSelectZoom")
  652. item?.target = self
  653. item?.btnTag = KMToolbarViewType.SelectZoom.rawValue
  654. item?.toolTip = NSLocalizedString("Zoom to selected area", comment: "")
  655. item?.boxImagePosition = KMToolBoxImagePosition.only
  656. item?.btnAction = #selector(leftControllButtonAction)
  657. let menuItem = NSMenuItem.init(title: "", action: #selector(leftControllButtonAction), target: self)
  658. menuItem?.tag = KMToolbarViewType.SelectZoom.rawValue
  659. item?.menuFormRepresentation = menuItem
  660. } else if identifier == KMToolbarHighlightAnnotationItemIdentifier {
  661. item?.image = NSImage(named: "KMImageNameMainToolHighlight")
  662. item?.alternateImage = NSImage(named: "KMImageNameMainToolHighlight")
  663. item?.target = self
  664. item?.btnTag = CAnnotationType.highlight.rawValue
  665. item?.toolTip = NSLocalizedString("Highlight (⌃⌘H)", comment: "")
  666. item?.boxImagePosition = KMToolBoxImagePosition.only
  667. item?.btnAction = #selector(changeAnnotationMode)
  668. let menuItem = NSMenuItem.init(title: "highlight", action: #selector(changeAnnotationMode), target: self)
  669. menuItem?.tag = CAnnotationType.highlight.rawValue
  670. item?.menuFormRepresentation = menuItem
  671. } else if identifier == KMToolbarUnderlineAnnotationItemIdentifier {
  672. item?.image = NSImage(named: "KMImageNameMainToolUnderline")
  673. item?.alternateImage = NSImage(named: "KMImageNameMainToolUnderline")
  674. item?.target = self
  675. item?.btnTag = CAnnotationType.underline.rawValue
  676. item?.toolTip = NSLocalizedString("Underline (⌃⌘U)", comment: "")
  677. item?.boxImagePosition = KMToolBoxImagePosition.only
  678. item?.btnAction = #selector(changeAnnotationMode)
  679. let menuItem = NSMenuItem.init(title: "underline", action: #selector(changeAnnotationMode), target: self)
  680. menuItem?.tag = CAnnotationType.underline.rawValue
  681. item?.menuFormRepresentation = menuItem
  682. } else if identifier == KMToolbarStrikeOutAnnotationItemIdentifier {
  683. item?.image = NSImage(named: "KMImageNameMainToolStrikeththrough")
  684. item?.alternateImage = NSImage(named: "KMImageNameMainToolStrikeththrough")
  685. item?.target = self
  686. item?.btnTag = CAnnotationType.strikeOut.rawValue
  687. item?.toolTip = NSLocalizedString("Strikethrough (⌃⌘S)", comment: "")
  688. item?.boxImagePosition = KMToolBoxImagePosition.only
  689. item?.btnAction = #selector(changeAnnotationMode)
  690. let menuItem = NSMenuItem.init(title: "strikeOut", action: #selector(changeAnnotationMode), target: self)
  691. menuItem?.tag = CAnnotationType.strikeOut.rawValue
  692. item?.menuFormRepresentation = menuItem
  693. } else if identifier == KMToolbarInkAnnotationItemIdentifier {
  694. item?.image = NSImage(named: "KMImageNameMainToolPen")
  695. item?.alternateImage = NSImage(named: "KMImageNameMainToolPen")
  696. item?.target = self
  697. item?.btnTag = CAnnotationType.ink.rawValue
  698. item?.toolTip = NSLocalizedString("Draw freely as you do with a pen", comment: "")
  699. item?.boxImagePosition = KMToolBoxImagePosition.only
  700. item?.btnAction = #selector(changeAnnotationMode)
  701. let menuItem = NSMenuItem.init(title: "Freehand", action: #selector(changeAnnotationMode), target: self)
  702. menuItem?.tag = CAnnotationType.ink.rawValue
  703. item?.menuFormRepresentation = menuItem
  704. } else if identifier == KMToolbarFreeTextAnnotationItemIdentifier {
  705. item?.image = NSImage(named: "KMImageNameMainToolFreeText")
  706. item?.alternateImage = NSImage(named: "KMImageNameMainToolFreeText")
  707. item?.target = self
  708. item?.btnTag = CAnnotationType.freeText.rawValue
  709. item?.toolTip = NSLocalizedString("Text (⌃⌘T)", comment: "")
  710. item?.boxImagePosition = KMToolBoxImagePosition.only
  711. item?.btnAction = #selector(changeAnnotationMode)
  712. let menuItem = NSMenuItem.init(title: "FreeText", action: #selector(changeAnnotationMode), target: self)
  713. menuItem?.tag = CAnnotationType.freeText.rawValue
  714. item?.menuFormRepresentation = menuItem
  715. } else if identifier == KMToolbarAnchoredAnnotationItemIdentifier {
  716. item?.image = NSImage(named: "KMImageNameMainToolAnchored")
  717. item?.alternateImage = NSImage(named: "KMImageNameMainToolAnchored")
  718. item?.target = self
  719. item?.btnTag = CAnnotationType.anchored.rawValue
  720. item?.toolTip = NSLocalizedString("Sticky Note(⌃⌘N)", comment: "")
  721. item?.boxImagePosition = KMToolBoxImagePosition.only
  722. item?.btnAction = #selector(changeAnnotationMode)
  723. let menuItem = NSMenuItem.init(title: "Anchored", action: #selector(changeAnnotationMode), target: self)
  724. menuItem?.tag = CAnnotationType.anchored.rawValue
  725. item?.menuFormRepresentation = menuItem
  726. } else if identifier == KMToolbarSquareAnnotationItemIdentifier {
  727. item?.image = NSImage(named: "KMImageNameMainToolSquare_Default")
  728. item?.alternateImage = NSImage(named: "KMImageNameMainToolSquare_Default")
  729. item?.target = self
  730. item?.btnTag = CAnnotationType.square.rawValue
  731. item?.toolTip = NSLocalizedString("Hold shift to draw square/circle/straight arrow/line", comment: "")
  732. item?.boxImagePosition = KMToolBoxImagePosition.only
  733. item?.btnAction = #selector(changeAnnotationMode)
  734. let menuItem = NSMenuItem.init(title: "Square", action: #selector(changeAnnotationMode), target: self)
  735. menuItem?.tag = CAnnotationType.square.rawValue
  736. item?.menuFormRepresentation = menuItem
  737. } else if identifier == KMToolbarLinkAnnotationItemIdentifier {
  738. item?.image = NSImage(named: "KMImageNameMainToolLine")
  739. item?.alternateImage = NSImage(named: "KMImageNameMainToolLine")
  740. item?.target = self
  741. item?.btnTag = CAnnotationType.link.rawValue
  742. item?.toolTip = NSLocalizedString("Select an area or text on the page for a link to be inserted", comment: "")
  743. item?.boxImagePosition = KMToolBoxImagePosition.only
  744. item?.btnAction = #selector(changeAnnotationMode)
  745. let menuItem = NSMenuItem.init(title: "Link", action: #selector(changeAnnotationMode), target: self)
  746. menuItem?.tag = CAnnotationType.link.rawValue
  747. item?.menuFormRepresentation = menuItem
  748. } else if identifier == KMToolbarSignSignatureAnnotationItemIdentifier {
  749. item?.image = NSImage(named: "KMImageNameMainToolSignSignature")
  750. item?.alternateImage = NSImage(named: "KMImageNameMainToolSignSignature")
  751. item?.target = self
  752. item?.btnTag = CAnnotationType.signSignature.rawValue
  753. item?.toolTip = NSLocalizedString("Add a handwritten signature or create a signature via the trackpad", comment: "")
  754. item?.boxImagePosition = KMToolBoxImagePosition.only
  755. item?.btnAction = #selector(changeAnnotationMode)
  756. let menuItem = NSMenuItem.init(title: "SignSignature", action: #selector(changeAnnotationMode), target: self)
  757. menuItem?.tag = CAnnotationType.signSignature.rawValue
  758. item?.menuFormRepresentation = menuItem
  759. } else if identifier == KMAnnotationStampToolbarItemIdentifier {
  760. item?.image = NSImage(named: "KMImageNameMainToolStamp")
  761. item?.alternateImage = NSImage(named: "KMImageNameMainToolStamp")
  762. item?.target = self
  763. item?.btnTag = CAnnotationType.stamp.rawValue
  764. item?.toolTip = NSLocalizedString("Add Stamp", comment: "")
  765. item?.boxImagePosition = KMToolBoxImagePosition.only
  766. item?.btnAction = #selector(changeAnnotationMode)
  767. let menuItem = NSMenuItem.init(title: "Stamp", action: #selector(changeAnnotationMode), target: self)
  768. menuItem?.tag = CAnnotationType.stamp.rawValue
  769. item?.menuFormRepresentation = menuItem
  770. } else if identifier == KMToolbarShowToolbarItemIdentifier {
  771. item?.image = NSImage(named: "KMImageNameMainToolShow")
  772. item?.selectedImage = NSImage(named: "KMImageNameMainToolHide")
  773. item?.alternateImage = NSImage(named: "KMImageNameMainToolShow")
  774. item?.selectedBackgroundColor = NSColor.clear
  775. item?.target = self
  776. item?.toolTip = NSLocalizedString("Hide", comment: "")
  777. item?.titleName = NSLocalizedString("Hide", comment: "")
  778. item?.boxImagePosition = KMToolBoxImagePosition.only
  779. item?.btnAction = #selector(showPDFLayoutMode)
  780. let menuItem = NSMenuItem.init(title: "Hide", action: #selector(showPDFLayoutMode), target: self)
  781. item?.menuFormRepresentation = menuItem
  782. } else if identifier == KMToolbarAddTextEditPDFItemIdentifier {
  783. item?.image = NSImage(named: "KMImageNameMainToolFreeText")
  784. item?.alternateImage = NSImage(named: "KMImageNameMainToolFreeText")
  785. item?.target = self
  786. item?.btnTag = CAnnotationType.addText.rawValue
  787. item?.toolTip = NSLocalizedString("Add Text", comment: "")
  788. item?.titleName = NSLocalizedString("Add Text", comment: "")
  789. item?.boxImagePosition = KMToolBoxImagePosition.left
  790. item?.btnAction = #selector(changeAnnotationMode)
  791. let menuItem = NSMenuItem.init(title: "Add Text", action: #selector(changeAnnotationMode), target: self)
  792. menuItem?.tag = CAnnotationType.addText.rawValue
  793. item?.menuFormRepresentation = menuItem
  794. } else if identifier == KMToolbarAddImageEditPDFItemIdentifier {
  795. item?.image = NSImage(named: "KMImageNameMainToolEditImage")
  796. item?.alternateImage = NSImage(named: "KMImageNameMainToolEditImage")
  797. item?.target = self
  798. item?.btnTag = CAnnotationType.addImage.rawValue
  799. item?.toolTip = NSLocalizedString("Add Image", comment: "")
  800. item?.titleName = NSLocalizedString("Add Image", comment: "")
  801. item?.boxImagePosition = KMToolBoxImagePosition.left
  802. item?.btnAction = #selector(changeAnnotationMode)
  803. let menuItem = NSMenuItem.init(title: "Add Image", action: #selector(changeAnnotationMode), target: self)
  804. menuItem?.tag = CAnnotationType.addImage.rawValue
  805. item?.menuFormRepresentation = menuItem
  806. } else if identifier == KMToolbarToolCropItemIdentifier {
  807. item?.image = NSImage(named: "KMImageNameMainToolbarrRight")
  808. item?.alternateImage = NSImage(named: "KMImageNameMainToolbarrRight")
  809. item?.target = self
  810. item?.btnTag = KMToolbarType.crop.rawValue
  811. item?.toolTip = NSLocalizedString("Crop pages", comment: "")
  812. item?.titleName = NSLocalizedString("Crop", comment: "")
  813. item?.boxImagePosition = KMToolBoxImagePosition.expandLeft
  814. item?.btnAction = #selector(cropMenuAction)
  815. let menuItem = NSMenuItem.init(title: "Crop", action: #selector(cropMenuAction), target: self)
  816. item?.menuFormRepresentation = menuItem
  817. } else if identifier == KMToolbarToolBatesItemIdentifier {
  818. item?.image = NSImage(named: "KMImageNameMainToolsBatesNumber")
  819. item?.alternateImage = NSImage(named: "KMImageNameMainToolsBatesNumber")
  820. item?.target = self
  821. item?.btnTag = KMToolbarType.bates.rawValue
  822. item?.toolTip = NSLocalizedString("Bates Number", comment: "")
  823. item?.titleName = NSLocalizedString("Bates Number", comment: "")
  824. item?.boxImagePosition = KMToolBoxImagePosition.left
  825. item?.btnAction = #selector(batesMenuAction)
  826. let menuItem = NSMenuItem.init(title: "Bates Number", action: #selector(batesMenuAction), target: self)
  827. item?.menuFormRepresentation = menuItem
  828. } else if identifier == KMToolbarToolHeaderFooterItemIdentifier {
  829. item?.image = NSImage(named: "KMImageNameMainToolsHeadeFooter")
  830. item?.alternateImage = NSImage(named: "KMImageNameMainToolsHeadeFooter")
  831. item?.target = self
  832. item?.btnTag = KMToolbarType.headerAndFooter.rawValue
  833. item?.toolTip = NSLocalizedString("Header&Footer", comment: "")
  834. item?.titleName = NSLocalizedString("Header&Footer", comment: "")
  835. item?.boxImagePosition = KMToolBoxImagePosition.left
  836. item?.btnAction = #selector(headerfooterMenuAction)
  837. let menuItem = NSMenuItem.init(title: "Header&Footer", action: #selector(headerfooterMenuAction), target: self)
  838. item?.menuFormRepresentation = menuItem
  839. } else if identifier == KMToolbarToolBackgroundItemIdentifier {
  840. item?.image = NSImage(named: "KMImageNameMainToolsBackgroud")
  841. item?.alternateImage = NSImage(named: "KMImageNameMainToolsBackgroud")
  842. item?.target = self
  843. item?.btnTag = KMToolbarType.background.rawValue
  844. item?.toolTip = NSLocalizedString("Backgroud", comment: "")
  845. item?.titleName = NSLocalizedString("Backgroud", comment: "")
  846. item?.boxImagePosition = KMToolBoxImagePosition.left
  847. item?.btnAction = #selector(backgroundMenuAction)
  848. let menuItem = NSMenuItem.init(title: "Backgroud", action: #selector(backgroundMenuAction), target: self)
  849. item?.menuFormRepresentation = menuItem
  850. } else if identifier == KMToolbarToolWatermarkItemIdentifier {
  851. item?.image = NSImage(named: "KMImageNameMainToolsWatermark")
  852. item?.alternateImage = NSImage(named: "KMImageNameMainToolsWatermark")
  853. item?.target = self
  854. item?.btnTag = KMToolbarType.watermark.rawValue
  855. item?.toolTip = NSLocalizedString("Watermark", comment: "")
  856. item?.titleName = NSLocalizedString("Watermark", comment: "")
  857. item?.boxImagePosition = KMToolBoxImagePosition.left
  858. item?.btnAction = #selector(watermarkMenuAction)
  859. let menuItem = NSMenuItem.init(title: "Watermark", action: #selector(watermarkMenuAction), target: self)
  860. item?.menuFormRepresentation = menuItem
  861. } else if identifier == KMToolbarToolTextFieldItemIdentifier {
  862. item?.image = NSImage(named: "KMImageNameMainToolFormText")
  863. item?.alternateImage = NSImage(named: "KMImageNameMainToolFormText")
  864. item?.target = self
  865. item?.btnTag = CAnnotationType.textField.rawValue
  866. item?.toolTip = NSLocalizedString("TextField", comment: "")
  867. item?.titleName = NSLocalizedString("TextField", comment: "")
  868. item?.boxImagePosition = KMToolBoxImagePosition.only
  869. item?.btnAction = #selector(changeAnnotationMode)
  870. let menuItem = NSMenuItem.init(title: "TextField", action: #selector(changeAnnotationMode), target: self)
  871. menuItem?.tag = item!.btnTag
  872. item?.menuFormRepresentation = menuItem
  873. } else if identifier == KMToolbarToolCheckBoxItemIdentifier {
  874. item?.image = NSImage(named: "KMImageNameMainToolFormCheckbox")
  875. item?.alternateImage = NSImage(named: "KMImageNameMainToolFormCheckbox")
  876. item?.target = self
  877. item?.btnTag = CAnnotationType.checkBox.rawValue
  878. item?.toolTip = NSLocalizedString("CheckBox", comment: "")
  879. item?.titleName = NSLocalizedString("CheckBox", comment: "")
  880. item?.boxImagePosition = KMToolBoxImagePosition.only
  881. item?.btnAction = #selector(changeAnnotationMode)
  882. let menuItem = NSMenuItem.init(title: "CheckBox", action: #selector(changeAnnotationMode), target: self)
  883. menuItem?.tag = item!.btnTag
  884. item?.menuFormRepresentation = menuItem
  885. } else if identifier == KMToolbarToolRadioButtonItemIdentifier {
  886. item?.image = NSImage(named: "KMImageNameMainToolFormRadio")
  887. item?.alternateImage = NSImage(named: "KMImageNameMainToolFormRadio")
  888. item?.target = self
  889. item?.btnTag = CAnnotationType.radioButton.rawValue
  890. item?.toolTip = NSLocalizedString("RadioButton", comment: "")
  891. item?.titleName = NSLocalizedString("RadioButton", comment: "")
  892. item?.boxImagePosition = KMToolBoxImagePosition.only
  893. item?.btnAction = #selector(changeAnnotationMode)
  894. let menuItem = NSMenuItem.init(title: "RadioButton", action: #selector(changeAnnotationMode), target: self)
  895. menuItem?.tag = item!.btnTag
  896. item?.menuFormRepresentation = menuItem
  897. } else if identifier == KMToolbarToolListBoxItemIdentifier {
  898. item?.image = NSImage(named: "KMImageNameMainToolFormListBox")
  899. item?.alternateImage = NSImage(named: "KMImageNameMainToolFormListBox")
  900. item?.target = self
  901. item?.btnTag = CAnnotationType.listMenu.rawValue
  902. item?.toolTip = NSLocalizedString("ListBox", comment: "")
  903. item?.titleName = NSLocalizedString("ListBox", comment: "")
  904. item?.boxImagePosition = KMToolBoxImagePosition.only
  905. item?.btnAction = #selector(changeAnnotationMode)
  906. let menuItem = NSMenuItem.init(title: "ListBox", action: #selector(changeAnnotationMode), target: self)
  907. menuItem?.tag = item!.btnTag
  908. item?.menuFormRepresentation = menuItem
  909. } else if identifier == KMToolbarToolPullDownmenuItemIdentifier {
  910. item?.image = NSImage(named: "KMImageNameMainToolFormPulldown")
  911. item?.alternateImage = NSImage(named: "KMImageNameMainToolFormPulldown")
  912. item?.target = self
  913. item?.btnTag = CAnnotationType.comboBox.rawValue
  914. item?.toolTip = NSLocalizedString("PullDownmenu", comment: "")
  915. item?.titleName = NSLocalizedString("PullDownmenu", comment: "")
  916. item?.boxImagePosition = KMToolBoxImagePosition.only
  917. item?.btnAction = #selector(changeAnnotationMode)
  918. let menuItem = NSMenuItem.init(title: "PullDownmenu", action: #selector(changeAnnotationMode), target: self)
  919. menuItem?.tag = item!.btnTag
  920. item?.menuFormRepresentation = menuItem
  921. } else if identifier == KMToolbarToolButtonIdentifier {
  922. item?.image = NSImage(named: "KMImageNameMainToolFormButton")
  923. item?.alternateImage = NSImage(named: "KMImageNameMainToolFormButton")
  924. item?.target = self
  925. item?.btnTag = CAnnotationType.actionButton.rawValue
  926. item?.toolTip = NSLocalizedString("Button", comment: "")
  927. item?.titleName = NSLocalizedString("Button", comment: "")
  928. item?.boxImagePosition = KMToolBoxImagePosition.only
  929. item?.btnAction = #selector(changeAnnotationMode)
  930. let menuItem = NSMenuItem.init(title: "Button", action: #selector(changeAnnotationMode), target: self)
  931. menuItem?.tag = item!.btnTag
  932. item?.menuFormRepresentation = menuItem
  933. } else if identifier == KMToolbarToolSignBoxIdentifier {
  934. item?.image = NSImage(named: "KMImageNameMainToolFormSign")
  935. item?.alternateImage = NSImage(named: "KMImageNameMainToolFormSign")
  936. item?.target = self
  937. item?.btnTag = CAnnotationType.signature.rawValue
  938. item?.toolTip = NSLocalizedString("SignBox", comment: "")
  939. item?.titleName = NSLocalizedString("SignBox", comment: "")
  940. item?.boxImagePosition = KMToolBoxImagePosition.only
  941. item?.btnAction = #selector(changeAnnotationMode)
  942. let menuItem = NSMenuItem.init(title: "SignBox", action: #selector(changeAnnotationMode), target: self)
  943. menuItem?.tag = item!.btnTag
  944. item?.menuFormRepresentation = menuItem
  945. } else if identifier == KMToolbarToolFormAlignIdentifier {
  946. item?.image = NSImage(named: "KMImageNameMainToolFormAlignment")
  947. item?.alternateImage = NSImage(named: "KMImageNameMainToolFormAlignment")
  948. item?.target = self
  949. item?.toolTip = NSLocalizedString("Alignment", comment: "")
  950. item?.titleName = NSLocalizedString("Alignment", comment: "")
  951. item?.boxImagePosition = KMToolBoxImagePosition.expandLeft
  952. item?.btnAction = #selector(formsAlignmentAction)
  953. let menuItem = NSMenuItem.init(title: "Alignment", action: #selector(formsAlignmentAction), target: self)
  954. menuItem?.tag = item!.btnTag
  955. item?.menuFormRepresentation = menuItem
  956. } else if identifier == KMToolbarToolFormMoreIdentifier {
  957. item?.image = NSImage(named: "KMImageNameMainToolFormMore")
  958. item?.alternateImage = NSImage(named: "KMImageNameMainToolFormMore")
  959. item?.target = self
  960. item?.toolTip = NSLocalizedString("More", comment: "")
  961. item?.titleName = NSLocalizedString("More", comment: "")
  962. item?.boxImagePosition = KMToolBoxImagePosition.expandLeft
  963. item?.btnAction = #selector(formsMoreOperationAction)
  964. let menuItem = NSMenuItem.init(title: "More", action: #selector(formsMoreOperationAction), target: self)
  965. menuItem?.tag = item!.btnTag
  966. item?.menuFormRepresentation = menuItem
  967. } else if identifier == KMToolbarToolRedactItemIdentifier {
  968. item?.image = NSImage(named: "KMImageNameMainToolsRedact")
  969. item?.alternateImage = NSImage(named: "KMImageNameMainToolsRedact")
  970. item?.target = self
  971. item?.btnTag = KMToolbarType.redact.rawValue
  972. item?.toolTip = NSLocalizedString("Redact", comment: "")
  973. item?.titleName = NSLocalizedString("Redact", comment: "")
  974. item?.btnAction = #selector(redactMenuAction)
  975. let menuItem = NSMenuItem.init(title: "Redact", action: #selector(changeAnnotationMode), target: self)
  976. menuItem?.tag = item!.btnTag
  977. item?.menuFormRepresentation = menuItem
  978. } else if identifier == KMToolbarToolCompressItemIdentifier {
  979. item?.image = NSImage(named: "KMImageNameMainToolsCompress")
  980. item?.alternateImage = NSImage(named: "KMImageNameMainToolsCompress")
  981. item?.target = self
  982. item?.btnTag = KMToolbarType.compress.rawValue
  983. item?.toolTip = NSLocalizedString("Reduce file size or custimize the quality to make the document smaller.", comment: "")
  984. item?.titleName = NSLocalizedString("Compress", comment: "")
  985. item?.btnAction = #selector(compressMenuAction)
  986. let menuItem = NSMenuItem.init(title: "Compress", action: #selector(compressMenuAction), target: self)
  987. menuItem?.tag = item!.btnTag
  988. item?.menuFormRepresentation = menuItem
  989. } else if identifier == KMToolbarToolSecureItemIdentifier {
  990. item?.image = NSImage(named: "KMImageNameMainToolsSecurity")
  991. item?.alternateImage = NSImage(named: "KMImageNameMainToolsSecurity")
  992. item?.target = self
  993. item?.btnTag = KMToolbarType.secure.rawValue
  994. item?.toolTip = NSLocalizedString("", comment: "")
  995. item?.titleName = NSLocalizedString("Security", comment: "")
  996. item?.boxImagePosition = KMToolBoxImagePosition.expandLeft
  997. item?.btnAction = #selector(secureMenuAction)
  998. let menuItem = NSMenuItem.init(title: "Security", action: #selector(secureMenuAction), target: self)
  999. menuItem?.tag = item!.btnTag
  1000. item?.menuFormRepresentation = menuItem
  1001. } else if identifier == KMToolbarToolHookItemIdentifier {
  1002. item?.image = NSImage(named: "KMImageNameFillSignHook")
  1003. item?.alternateImage = NSImage(named: "KMImageNameFillSignHook")
  1004. item?.target = self
  1005. item?.btnTag = CAnnotationType.signTure.rawValue
  1006. item?.toolTip = NSLocalizedString("Check", comment: "")
  1007. item?.titleName = NSLocalizedString("Signature", comment: "")
  1008. item?.boxImagePosition = KMToolBoxImagePosition.only
  1009. item?.btnAction = #selector(changeAnnotationMode)
  1010. let menuItem = NSMenuItem.init(title: "Signature", action: #selector(changeAnnotationMode), target: self)
  1011. menuItem?.tag = item!.btnTag
  1012. item?.menuFormRepresentation = menuItem
  1013. } else if identifier == KMToolbarToolForkItemIdentifier {
  1014. item?.image = NSImage(named: "KMImageNameFillSignFork")
  1015. item?.alternateImage = NSImage(named: "KMImageNameFillSignFork")
  1016. item?.target = self
  1017. item?.btnTag = CAnnotationType.signFalse.rawValue
  1018. item?.toolTip = NSLocalizedString("X", comment: "")
  1019. item?.titleName = NSLocalizedString("signFalse", comment: "")
  1020. item?.boxImagePosition = KMToolBoxImagePosition.only
  1021. item?.btnAction = #selector(changeAnnotationMode)
  1022. let menuItem = NSMenuItem.init(title: "signFalse", action: #selector(changeAnnotationMode), target: self)
  1023. menuItem?.tag = item!.btnTag
  1024. item?.menuFormRepresentation = menuItem
  1025. } else if identifier == KMToolbarToolLineItemIdentifier {
  1026. item?.image = NSImage(named: "KMImageNameFillSignLine")
  1027. item?.alternateImage = NSImage(named: "KMImageNameFillSignLine")
  1028. item?.target = self
  1029. item?.btnTag = CAnnotationType.signLine.rawValue
  1030. item?.toolTip = NSLocalizedString("Line", comment: "")
  1031. item?.titleName = NSLocalizedString("Line", comment: "")
  1032. item?.boxImagePosition = KMToolBoxImagePosition.only
  1033. item?.btnAction = #selector(changeAnnotationMode)
  1034. let menuItem = NSMenuItem.init(title: "Line", action: #selector(changeAnnotationMode), target: self)
  1035. menuItem?.tag = item!.btnTag
  1036. item?.menuFormRepresentation = menuItem
  1037. } else if identifier == KMToolbarToolDotItemIdentifier {
  1038. item?.image = NSImage(named: "KMImageNameFillSignDot")
  1039. item?.alternateImage = NSImage(named: "KMImageNameFillSignDot")
  1040. item?.target = self
  1041. item?.btnTag = CAnnotationType.signDot.rawValue
  1042. item?.toolTip = NSLocalizedString("Dot", comment: "")
  1043. item?.titleName = NSLocalizedString("Dot", comment: "")
  1044. item?.boxImagePosition = KMToolBoxImagePosition.only
  1045. item?.btnAction = #selector(changeAnnotationMode)
  1046. let menuItem = NSMenuItem.init(title: "Dot", action: #selector(changeAnnotationMode), target: self)
  1047. menuItem?.tag = item!.btnTag
  1048. item?.menuFormRepresentation = menuItem
  1049. } else if identifier == KMToolbarToolRectangleIdentifier {
  1050. item?.image = NSImage(named: "KMImageNameFillSignRectangle")
  1051. item?.alternateImage = NSImage(named: "KMImageNameFillSignRectangle")
  1052. item?.target = self
  1053. item?.btnTag = CAnnotationType.signCircle.rawValue
  1054. item?.toolTip = NSLocalizedString("Rectangle", comment: "")
  1055. item?.titleName = NSLocalizedString("Rectangle", comment: "")
  1056. item?.boxImagePosition = KMToolBoxImagePosition.only
  1057. item?.btnAction = #selector(changeAnnotationMode)
  1058. let menuItem = NSMenuItem.init(title: "Rectangle", action: #selector(changeAnnotationMode), target: self)
  1059. menuItem?.tag = item!.btnTag
  1060. item?.menuFormRepresentation = menuItem
  1061. } else if identifier == KMToolbarToolTextIdentifier {
  1062. item?.image = NSImage(named: "KMImageNameMainToolFreeText")
  1063. item?.alternateImage = NSImage(named: "KMImageNameMainToolFreeText")
  1064. item?.target = self
  1065. item?.btnTag = CAnnotationType.signText.rawValue
  1066. item?.toolTip = NSLocalizedString("Add a handwritten signature or create a signature via the trackpad", comment: "")
  1067. item?.titleName = NSLocalizedString("signText", comment: "")
  1068. item?.boxImagePosition = KMToolBoxImagePosition.only
  1069. item?.btnAction = #selector(changeAnnotationMode)
  1070. let menuItem = NSMenuItem.init(title: "signText", action: #selector(changeAnnotationMode), target: self)
  1071. menuItem?.tag = item!.btnTag
  1072. item?.menuFormRepresentation = menuItem
  1073. } else if identifier == KMToolbarToolDateIdentifier {
  1074. item?.image = NSImage(named: "KMImageNameFillSignDate")
  1075. item?.alternateImage = NSImage(named: "KMImageNameFillSignDate")
  1076. item?.target = self
  1077. item?.btnTag = CAnnotationType.signDate.rawValue
  1078. item?.toolTip = NSLocalizedString("Date", comment: "")
  1079. item?.titleName = NSLocalizedString("Date", comment: "")
  1080. item?.boxImagePosition = KMToolBoxImagePosition.only
  1081. item?.btnAction = #selector(changeAnnotationMode)
  1082. let menuItem = NSMenuItem.init(title: "Date", action: #selector(changeAnnotationMode), target: self)
  1083. menuItem?.tag = item!.btnTag
  1084. item?.menuFormRepresentation = menuItem
  1085. } else if (identifier == KMToolbarFillSignSignatureIdentifier) {
  1086. item?.image = NSImage(named: "KMImageNameMainToolSignSignature")
  1087. item?.alternateImage = NSImage(named: "KMImageNameMainToolSignSignature")
  1088. item?.target = self
  1089. item?.btnTag = CAnnotationType.signSignature.rawValue
  1090. item?.toolTip = NSLocalizedString("Add a handwritten signature or create a signature via the trackpad", comment: "")
  1091. item?.boxImagePosition = KMToolBoxImagePosition.only
  1092. item?.btnAction = #selector(changeAnnotationMode)
  1093. let menuItem = NSMenuItem.init(title: "SignSignature", action: #selector(changeAnnotationMode), target: self)
  1094. menuItem?.tag = CAnnotationType.signSignature.rawValue
  1095. item?.menuFormRepresentation = menuItem
  1096. } else if identifier == KMToolbarConversionWordItemIdentifier {
  1097. item?.image = NSImage(named: "KMImageNameMainToolConverterWord")
  1098. item?.alternateImage = NSImage(named: "KMImageNameMainToolConverterWord")
  1099. item?.target = self
  1100. item?.btnTag = KMToolbarType.word.rawValue
  1101. item?.toolTip = NSLocalizedString("Convert PDF to editable Word documents.", comment: "")
  1102. item?.titleName = NSLocalizedString("To Word", comment: "")
  1103. item?.boxImagePosition = KMToolBoxImagePosition.left
  1104. item?.btnAction = #selector(conversionMenuItemAction)
  1105. let menuItem = NSMenuItem.init(title: "To Word", action: #selector(conversionMenuItemAction), target: self)
  1106. menuItem?.tag = item!.btnTag
  1107. item?.menuFormRepresentation = menuItem
  1108. } else if identifier == KMToolbarConversionExcelItemIdentifier {
  1109. item?.image = NSImage(named: "KMImageNameMainToolConverterExcel")
  1110. item?.alternateImage = NSImage(named: "KMImageNameMainToolConverterExcel")
  1111. item?.target = self
  1112. item?.btnTag = KMToolbarType.excel.rawValue
  1113. item?.toolTip = NSLocalizedString("Extract data from PDF to Excel", comment: "")
  1114. item?.titleName = NSLocalizedString("To Excel", comment: "")
  1115. item?.boxImagePosition = KMToolBoxImagePosition.left
  1116. item?.btnAction = #selector(conversionMenuItemAction)
  1117. let menuItem = NSMenuItem.init(title: "To Excel", action: #selector(conversionMenuItemAction), target: self)
  1118. menuItem?.tag = item!.btnTag
  1119. item?.menuFormRepresentation = menuItem
  1120. } else if identifier == KMToolbarConversionPPTItemIdentifier {
  1121. item?.image = NSImage(named: "KMImageNameMainToolConverterPPT")
  1122. item?.alternateImage = NSImage(named: "KMImageNameMainToolConverterPPT")
  1123. item?.target = self
  1124. item?.btnTag = KMToolbarType.ppt.rawValue
  1125. item?.toolTip = NSLocalizedString("Convert PDF documents to PPT while retaining formatting", comment: "")
  1126. item?.titleName = NSLocalizedString("To PPT", comment: "")
  1127. item?.boxImagePosition = KMToolBoxImagePosition.left
  1128. item?.btnAction = #selector(conversionMenuItemAction)
  1129. let menuItem = NSMenuItem.init(title: "To PPT", action: #selector(conversionMenuItemAction), target: self)
  1130. menuItem?.tag = item!.btnTag
  1131. item?.menuFormRepresentation = menuItem
  1132. } else if identifier == KMToolbarConversionRTFItemIdentifier {
  1133. item?.image = NSImage(named: "KMImageNameMainToolConverterRTF")
  1134. item?.alternateImage = NSImage(named: "KMImageNameMainToolConverterRTF")
  1135. item?.target = self
  1136. item?.btnTag = KMToolbarType.rtf.rawValue
  1137. item?.toolTip = NSLocalizedString("Convert PDF to RTF that can be opened in almost any word processor", comment: "")
  1138. item?.titleName = NSLocalizedString("To RTF", comment: "")
  1139. item?.boxImagePosition = KMToolBoxImagePosition.left
  1140. item?.btnAction = #selector(conversionMenuItemAction)
  1141. let menuItem = NSMenuItem.init(title: "To RTF", action: #selector(conversionMenuItemAction), target: self)
  1142. menuItem?.tag = item!.btnTag
  1143. item?.menuFormRepresentation = menuItem
  1144. } else if identifier == KMToolbarConversionCSVItemIdentifier {
  1145. item?.image = NSImage(named: "KMImageNameMainToolConverterCSV")
  1146. item?.alternateImage = NSImage(named: "KMImageNameMainToolConverterCSV")
  1147. item?.target = self
  1148. item?.btnTag = KMToolbarType.csv.rawValue
  1149. item?.toolTip = NSLocalizedString("To CSV", comment: "")
  1150. item?.titleName = NSLocalizedString("To CSV", comment: "")
  1151. item?.boxImagePosition = KMToolBoxImagePosition.left
  1152. item?.btnAction = #selector(conversionMenuItemAction)
  1153. let menuItem = NSMenuItem.init(title: "To CSV", action: #selector(conversionMenuItemAction), target: self)
  1154. menuItem?.tag = item!.btnTag
  1155. item?.menuFormRepresentation = menuItem
  1156. } else if identifier == KMToolbarConversionHTMLItemIdentifier {
  1157. item?.image = NSImage(named: "KMImageNameMainToolConverterHTML")
  1158. item?.alternateImage = NSImage(named: "KMImageNameMainToolConverterHTML")
  1159. item?.target = self
  1160. item?.btnTag = KMToolbarType.html.rawValue
  1161. item?.toolTip = NSLocalizedString("To HTML", comment: "")
  1162. item?.titleName = NSLocalizedString("To HTML", comment: "")
  1163. item?.boxImagePosition = KMToolBoxImagePosition.left
  1164. item?.btnAction = #selector(conversionMenuItemAction)
  1165. let menuItem = NSMenuItem.init(title: "To HTML", action: #selector(conversionMenuItemAction), target: self)
  1166. menuItem?.tag = item!.btnTag
  1167. item?.menuFormRepresentation = menuItem
  1168. } else if identifier == KMToolbarConversionTextItemIdentifier {
  1169. item?.image = NSImage(named: "KMImageNameMainToolConverterText")
  1170. item?.alternateImage = NSImage(named: "KMImageNameMainToolConverterText")
  1171. item?.target = self
  1172. item?.btnTag = KMToolbarType.conversion_text.rawValue
  1173. item?.toolTip = NSLocalizedString("To Text", comment: "")
  1174. item?.titleName = NSLocalizedString("To Text", comment: "")
  1175. item?.boxImagePosition = KMToolBoxImagePosition.left
  1176. item?.btnAction = #selector(conversionMenuItemAction)
  1177. let menuItem = NSMenuItem.init(title: "To Text", action: #selector(conversionMenuItemAction), target: self)
  1178. menuItem?.tag = item!.btnTag
  1179. item?.menuFormRepresentation = menuItem
  1180. } else if identifier == KMToolbarConversionImageItemIdentifier {
  1181. item?.image = NSImage(named: "KMImageNameMainToolConverterImage")
  1182. item?.alternateImage = NSImage(named: "KMImageNameMainToolConverterImage")
  1183. item?.target = self
  1184. item?.btnTag = KMToolbarType.conversion_image.rawValue
  1185. item?.toolTip = NSLocalizedString("Convert each page in a PDF to JPEG, JPG, PNG, GIF and other formats", comment: "")
  1186. item?.titleName = NSLocalizedString("To Image", comment: "")
  1187. item?.boxImagePosition = KMToolBoxImagePosition.left
  1188. item?.btnAction = #selector(conversionMenuItemAction)
  1189. let menuItem = NSMenuItem.init(title: "To Image", action: #selector(conversionMenuItemAction), target: self)
  1190. menuItem?.tag = item!.btnTag
  1191. item?.menuFormRepresentation = menuItem
  1192. } else if identifier == KMToolbarToolMergeItemIdentifier {
  1193. item?.image = NSImage(named: "KMImageNameMainToolsMerge")
  1194. item?.alternateImage = NSImage(named: "KMImageNameMainToolsMerge")
  1195. item?.target = self
  1196. item?.btnTag = KMToolbarType.merge.rawValue
  1197. item?.toolTip = NSLocalizedString("Combine multiple files into a new PDF.", comment: "")
  1198. item?.titleName = NSLocalizedString("Merge", comment: "")
  1199. item?.boxImagePosition = KMToolBoxImagePosition.left
  1200. item?.btnAction = #selector(mergeMenuItemAction)
  1201. let menuItem = NSMenuItem.init(title: "Merge", action: #selector(mergeMenuItemAction), target: self)
  1202. menuItem?.tag = item!.btnTag
  1203. item?.menuFormRepresentation = menuItem
  1204. }
  1205. }
  1206. return item
  1207. }
  1208. func validateToolbarItem(_ item: NSToolbarItem) -> Bool {
  1209. return true
  1210. }
  1211. @objc func listViewAnnotationTypeChangeNotification() {
  1212. let annotationType : CAnnotationType = pdfView.annotationType
  1213. if annotationType == .square || annotationType == .circle || annotationType == .arrow || annotationType == .line{
  1214. UserDefaults.standard.set(pdfView.annotationType.rawValue, forKey: KMToolBarToolPDFShapeStyle)
  1215. UserDefaults.standard.synchronize()
  1216. }
  1217. for item in self.toolbar.items {
  1218. if self.toolbarType == .Annatiton || self.toolbarType == .Move || self.toolbarType == .Magnify ||
  1219. self.toolbarType == .Select || self.toolbarType == .SelectZoom {
  1220. item.isSelected = false
  1221. if item.itemIdentifier == KMDocumentAnnotationToolbarItemIdentifier {
  1222. item.isSelected = true
  1223. } else if item.itemIdentifier == KMToolbarHighlightAnnotationItemIdentifier {
  1224. if annotationType == .highlight {
  1225. item.isSelected = true
  1226. }
  1227. } else if item.itemIdentifier == KMToolbarUnderlineAnnotationItemIdentifier {
  1228. if annotationType == .underline {
  1229. item.isSelected = true
  1230. }
  1231. } else if item.itemIdentifier == KMToolbarStrikeOutAnnotationItemIdentifier {
  1232. if annotationType == .strikeOut {
  1233. item.isSelected = true
  1234. }
  1235. } else if item.itemIdentifier == KMToolbarInkAnnotationItemIdentifier {
  1236. if annotationType == .ink || annotationType == .eraser {
  1237. item.isSelected = true
  1238. }
  1239. } else if item.itemIdentifier == KMToolbarFreeTextAnnotationItemIdentifier {
  1240. if annotationType == .freeText {
  1241. item.isSelected = true
  1242. }
  1243. } else if item.itemIdentifier == KMToolbarAnchoredAnnotationItemIdentifier {
  1244. if annotationType == .anchored {
  1245. item.isSelected = true
  1246. }
  1247. } else if item.itemIdentifier == KMToolbarSquareAnnotationItemIdentifier {
  1248. if annotationType == .square || annotationType == .circle || annotationType == .arrow || annotationType == .line {
  1249. item.isSelected = true
  1250. }
  1251. } else if item.itemIdentifier == KMToolbarLinkAnnotationItemIdentifier {
  1252. if annotationType == .link {
  1253. item.isSelected = true
  1254. }
  1255. } else if item.itemIdentifier == KMAnnotationStampToolbarItemIdentifier {
  1256. if annotationType == .stamp {
  1257. item.isSelected = true
  1258. }
  1259. } else if item.itemIdentifier == KMToolbarSignSignatureAnnotationItemIdentifier {
  1260. if annotationType == .signSignature {
  1261. item.isSelected = true
  1262. }
  1263. } else if pdfView.toolMode == .moveToolMode {
  1264. if item.itemIdentifier == KMToolbarMoveToolModeItemIdentifier {
  1265. item.isSelected = true
  1266. }
  1267. } else if pdfView.toolMode == .magnifyToolMode {
  1268. if item.itemIdentifier == KMToolbarMagnifyToolModeItemIdentifier {
  1269. item.isSelected = true
  1270. }
  1271. } else if pdfView.toolMode == .selectToolMode {
  1272. if item.itemIdentifier == KMToolbarSelectToolModeItemIdentifier {
  1273. item.isSelected = true
  1274. }
  1275. } else if pdfView.toolMode == .selectZoomToolMode {
  1276. if item.itemIdentifier == KMToolbarZoomToSelectionItemIdentifier {
  1277. item.isSelected = true
  1278. }
  1279. }
  1280. if (item.itemIdentifier == KMToolbarShowToolbarItemIdentifier) {
  1281. item.isSelected = !self.isShowAllAnnotations
  1282. }
  1283. } else if self.toolbarType == .FillSign {
  1284. item.isSelected = false
  1285. if pdfView.toolMode == .selfSignMode {
  1286. if item.itemIdentifier == KMToolbarToolHookItemIdentifier {
  1287. if annotationType == .signTure {
  1288. item.isSelected = true
  1289. }
  1290. } else if item.itemIdentifier == KMToolbarToolForkItemIdentifier {
  1291. if annotationType == .signFalse {
  1292. item.isSelected = true
  1293. }
  1294. } else if item.itemIdentifier == KMToolbarToolLineItemIdentifier {
  1295. if annotationType == .signLine {
  1296. item.isSelected = true
  1297. }
  1298. } else if item.itemIdentifier == KMToolbarToolDotItemIdentifier {
  1299. if annotationType == .signDot {
  1300. item.isSelected = true
  1301. }
  1302. } else if item.itemIdentifier == KMToolbarToolRectangleIdentifier {
  1303. if annotationType == .signCircle {
  1304. item.isSelected = true
  1305. }
  1306. } else if item.itemIdentifier == KMToolbarToolDateIdentifier {
  1307. if annotationType == .signDate {
  1308. item.isSelected = true
  1309. }
  1310. } else if item.itemIdentifier == KMToolbarToolTextIdentifier {
  1311. if annotationType == .signText {
  1312. item.isSelected = true
  1313. }
  1314. } else if (item.itemIdentifier == KMToolbarFillSignSignatureIdentifier) {
  1315. if (annotationType == .signSignature) {
  1316. item.isSelected = true
  1317. }
  1318. }
  1319. }
  1320. }
  1321. }
  1322. }
  1323. }