KMToolbarViewController.swift 82 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455
  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. KMDocumentEditToolbarItemIdentifier,
  332. KMDocumentToolToolbarItemIdentifier]
  333. case .Annatiton,.Magnify,.Move,.Select,.SelectZoom:
  334. return [KMToolbarMoveToolModeItemIdentifier,
  335. KMToolbarMagnifyToolModeItemIdentifier,
  336. KMToolbarSelectToolModeItemIdentifier,
  337. KMToolbarZoomToSelectionItemIdentifier,
  338. KMNewToolbarSpaceItemIdentifier,
  339. KMToolbarDividerItemIdentifier,
  340. KMNewToolbarSpaceItemIdentifier,
  341. KMToolbarHighlightAnnotationItemIdentifier,
  342. KMToolbarUnderlineAnnotationItemIdentifier,
  343. KMToolbarStrikeOutAnnotationItemIdentifier,
  344. KMToolbarInkAnnotationItemIdentifier,
  345. KMToolbarFreeTextAnnotationItemIdentifier,
  346. KMToolbarAnchoredAnnotationItemIdentifier,
  347. KMToolbarSquareAnnotationItemIdentifier,
  348. KMToolbarLinkAnnotationItemIdentifier,
  349. KMAnnotationStampToolbarItemIdentifier,
  350. KMToolbarSignSignatureAnnotationItemIdentifier,
  351. KMToolbarDividerItemIdentifier,
  352. KMToolbarShowToolbarItemIdentifier]
  353. case .editPDF:
  354. return [KMToolbarAddTextEditPDFItemIdentifier,
  355. KMToolbarAddImageEditPDFItemIdentifier]
  356. case .Page:
  357. return []
  358. case .Tool:
  359. return [KMToolbarToolCompressItemIdentifier,
  360. KMToolbarToolMergeItemIdentifier,
  361. KMToolbarToolSecureItemIdentifier,
  362. KMToolbarToolCropItemIdentifier]
  363. case .Form:
  364. return [KMToolbarToolTextFieldItemIdentifier,
  365. KMToolbarToolCheckBoxItemIdentifier,
  366. KMToolbarToolRadioButtonItemIdentifier,
  367. KMToolbarToolListBoxItemIdentifier,
  368. KMToolbarToolPullDownmenuItemIdentifier,
  369. KMToolbarToolButtonIdentifier,
  370. KMToolbarToolSignBoxIdentifier,
  371. KMToolbarDividerItemIdentifier,
  372. KMToolbarToolFormAlignIdentifier,
  373. KMToolbarToolFormMoreIdentifier]
  374. case .FillSign:
  375. return [KMToolbarToolTextIdentifier,
  376. KMToolbarToolHookItemIdentifier,
  377. KMToolbarToolForkItemIdentifier,
  378. KMToolbarToolRectangleIdentifier,
  379. KMToolbarToolLineItemIdentifier,
  380. KMToolbarToolDotItemIdentifier,
  381. KMToolbarToolDateIdentifier,
  382. KMToolbarFillSignSignatureIdentifier]
  383. case .Conversion:
  384. return [KMToolbarConversionWordItemIdentifier,
  385. KMToolbarConversionExcelItemIdentifier,
  386. KMToolbarConversionPPTItemIdentifier,
  387. KMToolbarConversionRTFItemIdentifier,
  388. KMToolbarConversionCSVItemIdentifier,
  389. KMToolbarConversionHTMLItemIdentifier,
  390. KMToolbarConversionTextItemIdentifier,
  391. KMToolbarConversionImageItemIdentifier]
  392. case .ScanOCR:
  393. return [KMToolbarToolEnhancedScanIdentifier,
  394. KMToolbarToolOCRTextIdentifier]
  395. default:
  396. break
  397. }
  398. return []
  399. }
  400. func toolbar(_ toolbar: KMToolbar!, itemForItemIdentifier identifier: String!) -> KMToolBoxItem! {
  401. var item = self.toolbarItems[identifier] as? KMToolBoxItem
  402. if item == nil {
  403. item = KMToolBoxItem.init(itemIdentifier: identifier)
  404. self.toolbarItems[identifier] = item
  405. if identifier == KMLeftControlToolbarItemIdentifier {
  406. item?.image = NSImage(named: "KMImageNameMainToolbarLeft")
  407. item?.titleName = "View Settings"
  408. item?.alternateImage = NSImage(named: "KMImageNameMainToolbarLeft")
  409. item?.target = self
  410. item?.btnTag = KMToolbarViewType.LeftPanel.rawValue
  411. item?.toolTip = NSLocalizedString("View Settings", comment: "")
  412. item?.boxImagePosition = KMToolBoxImagePosition.only
  413. item?.btnAction = #selector(leftPanelAction)
  414. let menuItem = NSMenuItem.init(title: item?.titleName, action: #selector(leftPanelAction), target: self)
  415. menuItem?.target = self
  416. menuItem?.tag = item!.btnTag
  417. item?.menuFormRepresentation = menuItem
  418. } else if identifier == KMDocumentZoomToolbarItemIdentifier {
  419. item?.image = NSImage(named: "KMImageNameMainToolbarMinus")
  420. item?.titleName = "zoom"
  421. item?.alternateImage = NSImage(named: "KMImageNameMainToolbarMinus")
  422. item?.target = self
  423. item?.btnTag = 0
  424. item?.toolTip = NSLocalizedString("", comment: "")
  425. item?.boxImagePosition = KMToolBoxImagePosition.only
  426. item?.btnAction = #selector(zoomPDFViewButtonAction)
  427. let menuItem = NSMenuItem.init(title: item?.titleName, action: #selector(zoomPDFViewButtonAction), target: self)
  428. menuItem?.target = self
  429. menuItem?.tag = item!.btnTag
  430. item?.menuFormRepresentation = menuItem
  431. } else if identifier == KMDocumentZoomOutToolbarItemIdentifier {
  432. item?.image = NSImage(named: "KMImageNameMainToolbarPlus")
  433. item?.titleName = "zoom"
  434. item?.alternateImage = NSImage(named: "KMImageNameMainToolbarPlus")
  435. item?.target = self
  436. item?.btnTag = 1
  437. // item?.toolTip = NSLocalizedString("Annotate PDF with highlight, text box and markup tools", comment: "")
  438. item?.boxImagePosition = KMToolBoxImagePosition.only
  439. item?.btnAction = #selector(zoomPDFViewButtonAction)
  440. let menuItem = NSMenuItem.init(title: item?.titleName, action: #selector(zoomPDFViewButtonAction), target: self)
  441. menuItem?.target = self
  442. menuItem?.tag = item!.btnTag
  443. item?.menuFormRepresentation = menuItem
  444. } else if identifier == KMDocumentZoomViewToolbarItemIdentifier{
  445. item?.titleName = "Zoom"
  446. item?.target = self
  447. item?.customizeView = self.zoomView;
  448. } else if identifier == KMDocumentNextPageToolbarItemIdentifier {
  449. item?.image = NSImage(named: "KMImageNameMainToolbarForward")
  450. item?.titleName = "Forward"
  451. item?.alternateImage = NSImage(named: "KMImageNameMainToolbarForward")
  452. item?.target = self
  453. item?.btnTag = 2
  454. item?.toolTip = NSLocalizedString("Forward", comment: "")
  455. item?.boxImagePosition = KMToolBoxImagePosition.only
  456. item?.btnAction = #selector(zoomPDFViewButtonAction)
  457. let menuItem = NSMenuItem.init(title: item?.titleName, action: #selector(zoomPDFViewButtonAction), target: self)
  458. menuItem?.target = self
  459. menuItem?.tag = item!.btnTag
  460. item?.menuFormRepresentation = menuItem
  461. } else if identifier == KMDocumentPreviousPageToolbarItemIdentifier {
  462. item?.image = NSImage(named: "KMImageNameMainToolbarBack")
  463. item?.titleName = "Next"
  464. item?.alternateImage = NSImage(named: "KMImageNameMainToolbarBack")
  465. item?.target = self
  466. item?.btnTag = 3
  467. item?.toolTip = NSLocalizedString("Next", comment: "")
  468. item?.boxImagePosition = KMToolBoxImagePosition.only
  469. item?.btnAction = #selector(zoomPDFViewButtonAction)
  470. let menuItem = NSMenuItem.init(title: item?.titleName, action: #selector(zoomPDFViewButtonAction), target: self)
  471. menuItem?.target = self
  472. menuItem?.tag = item!.btnTag
  473. item?.menuFormRepresentation = menuItem
  474. } else if identifier == KMDocumentAnnotationToolbarItemIdentifier {
  475. item?.titleName = NSLocalizedString("Annotation", comment: "")
  476. item?.target = self
  477. item?.isMainTool = true
  478. item?.toolTip = NSLocalizedString("Add annotation with highlight, text and shape tool", comment: "")
  479. item?.btnTag = KMToolbarViewType.Annatiton.rawValue
  480. item?.btnAction = #selector(leftControllButtonAction)
  481. let menuItem = NSMenuItem.init(title: item?.titleName, action: #selector(leftControllButtonAction), target: self)
  482. menuItem?.target = self
  483. menuItem?.tag = item!.btnTag
  484. item?.menuFormRepresentation = menuItem
  485. } else if identifier == KMDocumentPageToolbarItemIdentifier {
  486. item?.titleName = NSLocalizedString("Page Edit", comment: "")
  487. item?.target = self
  488. item?.isMainTool = true
  489. item?.toolTip = NSLocalizedString("PDF Page Editor: rotate, delete, paste, copy, and cut pages", comment: "")
  490. item?.btnTag = KMToolbarViewType.Page.rawValue
  491. item?.btnAction = #selector(leftControllButtonAction)
  492. let menuItem = NSMenuItem.init(title: item?.titleName, action: #selector(leftControllButtonAction), target: self)
  493. menuItem?.target = self
  494. menuItem?.tag = item!.btnTag
  495. item?.menuFormRepresentation = menuItem
  496. } else if identifier == KMDocumentConversonToolbarItemIdentifier {
  497. item?.titleName = NSLocalizedString("Converter", comment: "")
  498. item?.target = self
  499. item?.isMainTool = true
  500. item?.toolTip = NSLocalizedString("Convert PDF to Word, Excel, PPT, RTF, CSV, HTML, Text and Image.", comment: "")
  501. item?.btnTag = KMToolbarViewType.Conversion.rawValue
  502. item?.btnAction = #selector(leftControllButtonAction)
  503. let menuItem = NSMenuItem.init(title: item?.titleName, action: #selector(leftControllButtonAction), target: self)
  504. menuItem?.target = self
  505. menuItem?.tag = item!.btnTag
  506. item?.menuFormRepresentation = menuItem
  507. } else if identifier == KMDocumentScanOCRToolbarItemIdentifier {
  508. item?.titleName = NSLocalizedString("Scan & OCR", comment: "")
  509. item?.target = self
  510. item?.isMainTool = true
  511. item?.btnTag = KMToolbarViewType.ScanOCR.rawValue
  512. item?.toolTip = NSLocalizedString("Scan & OCR", comment: "")
  513. item?.btnAction = #selector(leftControllButtonAction)
  514. let menuItem = NSMenuItem.init(title: item?.titleName, action: #selector(leftControllButtonAction), target: self)
  515. menuItem?.target = self
  516. menuItem?.tag = item!.btnTag
  517. item?.menuFormRepresentation = menuItem
  518. } else if identifier == KMToolbarToolEnhancedScanIdentifier {
  519. item?.image = NSImage(named: "KMImageNameMainToolEnhancedScan")
  520. item?.alternateImage = NSImage(named: "KMImageNameMainToolEnhancedScan")
  521. item?.target = self
  522. item?.btnTag = 0
  523. item?.toolTip = NSLocalizedString("Enhanced Scan", comment: "")
  524. item?.titleName = NSLocalizedString("Enhanced Scan", comment: "")
  525. item?.boxImagePosition = KMToolBoxImagePosition.left
  526. item?.btnAction = #selector(scanOCRModelSelect)
  527. } else if identifier == KMToolbarToolOCRTextIdentifier {
  528. item?.image = NSImage(named: "KMImageNameMainToolOCRText")
  529. item?.alternateImage = NSImage(named: "KMImageNameMainToolOCRText")
  530. item?.target = self
  531. item?.btnTag = 1
  532. item?.toolTip = NSLocalizedString("OCR Text Recognition", comment: "")
  533. item?.titleName = NSLocalizedString("OCR Text Recognition", comment: "")
  534. item?.boxImagePosition = KMToolBoxImagePosition.left
  535. item?.btnAction = #selector(scanOCRModelSelect)
  536. } else if identifier == KMDocumentEditToolbarItemIdentifier {
  537. item?.titleName = NSLocalizedString("Edit", comment: "")
  538. item?.target = self
  539. item?.isMainTool = true
  540. item?.btnTag = KMToolbarViewType.editPDF.rawValue
  541. item?.toolTip = NSLocalizedString("Edit", comment: "")
  542. item?.btnAction = #selector(leftControllButtonAction)
  543. let menuItem = NSMenuItem.init(title: item?.titleName, action: #selector(leftControllButtonAction), target: self)
  544. menuItem?.target = self
  545. menuItem?.tag = item!.btnTag
  546. item?.menuFormRepresentation = menuItem
  547. } else if identifier == KMDocumentFormToolbarItemIdentifier {
  548. item?.titleName = NSLocalizedString("Form", comment: "")
  549. item?.target = self
  550. item?.isMainTool = true
  551. item?.btnTag = KMToolbarViewType.Form.rawValue
  552. item?.toolTip = NSLocalizedString("Form", comment: "")
  553. item?.btnAction = #selector(leftControllButtonAction)
  554. let menuItem = NSMenuItem.init(title: item?.titleName, action: #selector(leftControllButtonAction), target: self)
  555. menuItem?.target = self
  556. menuItem?.tag = item!.btnTag
  557. item?.menuFormRepresentation = menuItem
  558. } else if identifier == KMDocumentFillSginToolbarItemIdentifier {
  559. item?.titleName = NSLocalizedString("Fillsign", comment: "")
  560. item?.target = self
  561. item?.isMainTool = true
  562. item?.btnTag = KMToolbarViewType.FillSign.rawValue
  563. item?.toolTip = NSLocalizedString("Fill and sign forms or allow others to sign them", comment: "")
  564. item?.btnAction = #selector(leftControllButtonAction)
  565. let menuItem = NSMenuItem.init(title: item?.titleName, action: #selector(leftControllButtonAction), target: self)
  566. menuItem?.target = self
  567. menuItem?.tag = item!.btnTag
  568. item?.menuFormRepresentation = menuItem
  569. } else if identifier == KMDocumentToolToolbarItemIdentifier {
  570. item?.titleName = NSLocalizedString("Tools", comment: "")
  571. item?.target = self
  572. item?.isMainTool = true
  573. item?.btnTag = KMToolbarViewType.Tool.rawValue
  574. item?.toolTip = NSLocalizedString("Advanced editing tools", comment: "")
  575. item?.btnAction = #selector(leftControllButtonAction)
  576. let menuItem = NSMenuItem.init(title: item?.titleName, action: #selector(leftControllButtonAction), target: self)
  577. menuItem?.target = self
  578. menuItem?.tag = item!.btnTag
  579. item?.menuFormRepresentation = menuItem
  580. } else if identifier == KMDocumentPrintToolbarItemIdentifier {
  581. item?.image = NSImage(named: "KMImageNameMainToolbarPrint")
  582. item?.titleName = "Print"
  583. item?.alternateImage = NSImage(named: "KMImageNameMainToolbarPrint")
  584. item?.target = self
  585. item?.toolTip = NSLocalizedString("Print", comment: "")
  586. item?.boxImagePosition = KMToolBoxImagePosition.only
  587. item?.btnAction = #selector(printPDFViewButtonAction)
  588. let menuItem = NSMenuItem.init(title: item?.titleName, action: #selector(printPDFViewButtonAction), target: self)
  589. menuItem?.target = self
  590. item?.menuFormRepresentation = menuItem
  591. } else if identifier == KMDocumentShareToolbarItemIdentifier {
  592. item?.image = NSImage(named: "KMImageNameMainToolbarShare")
  593. item?.titleName = "Share"
  594. item?.alternateImage = NSImage(named: "KMImageNameMainToolbarShare")
  595. item?.target = self
  596. item?.toolTip = NSLocalizedString("Share the file with others", comment: "")
  597. item?.boxImagePosition = KMToolBoxImagePosition.only
  598. item?.btnAction = #selector(shareButtonAction)
  599. let menuItem = NSMenuItem.init(title: item?.titleName, action: nil, target: self)
  600. let menu = NSMenu()
  601. menu.addItem(withTitle: NSLocalizedString("Document", comment: ""), action: #selector(shareViaWithDocument), target: self)
  602. menu.addItem(withTitle: NSLocalizedString("Flattened Copy", comment: ""), action: #selector(shareViaWithFlatten), target: self)
  603. menu.addItem(withTitle: NSLocalizedString("Original PDF", comment: ""), action: #selector(shareViaWithOriginalPDF), target: self)
  604. menuItem?.submenu = menu
  605. item?.menuFormRepresentation = menuItem
  606. } else if identifier == KMRightControlToolbarItemIdentifier {
  607. item?.image = NSImage(named: "KMImageNameMainToolbarrRight")
  608. item?.titleName = "right"
  609. item?.alternateImage = NSImage(named: "KMImageNameMainToolbarrRight")
  610. item?.target = self
  611. item?.btnTag = KMToolbarViewType.RightPanel.rawValue
  612. item?.toolTip = NSLocalizedString("Show/hide the right properties panel", comment: "")
  613. item?.boxImagePosition = KMToolBoxImagePosition.only
  614. item?.btnAction = #selector(rightPanelControllButtonAction)
  615. let menuItem = NSMenuItem.init(title: item?.titleName, action: #selector(rightPanelControllButtonAction), target: self)
  616. menuItem?.target = self
  617. menuItem?.tag = item!.btnTag
  618. item?.menuFormRepresentation = menuItem
  619. } else if identifier == KMToolbarMoveToolModeItemIdentifier {
  620. item?.image = NSImage(named: "KMImageNameMainToolMove")
  621. item?.alternateImage = NSImage(named: "KMImageNameMainToolMove")
  622. item?.target = self
  623. item?.btnTag = KMToolbarViewType.Move.rawValue
  624. item?.toolTip = NSLocalizedString("Scroll Tool", comment: "")
  625. item?.boxImagePosition = KMToolBoxImagePosition.only
  626. item?.btnAction = #selector(leftControllButtonAction)
  627. let menuItem = NSMenuItem.init(title: "Scroll Tool", action: #selector(leftControllButtonAction), target: self)
  628. menuItem?.tag = KMToolbarViewType.Move.rawValue
  629. item?.menuFormRepresentation = menuItem
  630. } else if identifier == KMToolbarMagnifyToolModeItemIdentifier {
  631. item?.image = NSImage(named: "KMImageNameMainToolMagnify")
  632. item?.alternateImage = NSImage(named: "KMImageNameMainToolMagnify")
  633. item?.target = self
  634. item?.btnTag = KMToolbarViewType.Magnify.rawValue
  635. item?.toolTip = NSLocalizedString("Magnify Tool", comment: "")
  636. item?.boxImagePosition = KMToolBoxImagePosition.only
  637. item?.btnAction = #selector(leftControllButtonAction)
  638. let menuItem = NSMenuItem.init(title: "Magnify Tool", action: #selector(leftControllButtonAction), target: self)
  639. menuItem?.tag = KMToolbarViewType.Magnify.rawValue
  640. item?.menuFormRepresentation = menuItem
  641. } else if identifier == KMToolbarSelectToolModeItemIdentifier {
  642. item?.image = NSImage(named: "KMImageNameMainToolSelect")
  643. item?.alternateImage = NSImage(named: "KMImageNameMainToolSelect")
  644. item?.target = self
  645. item?.btnTag = KMToolbarViewType.Select.rawValue
  646. item?.toolTip = NSLocalizedString("Content Selection", comment: "")
  647. item?.boxImagePosition = KMToolBoxImagePosition.only
  648. item?.btnAction = #selector(leftControllButtonAction)
  649. let menuItem = NSMenuItem.init(title: "Content Selection", action: #selector(leftControllButtonAction), target: self)
  650. menuItem?.tag = KMToolbarViewType.Select.rawValue
  651. item?.menuFormRepresentation = menuItem
  652. } else if identifier == KMToolbarZoomToSelectionItemIdentifier {
  653. item?.image = NSImage(named: "KMImageNameMainToolSelectZoom")
  654. item?.alternateImage = NSImage(named: "KMImageNameMainToolSelectZoom")
  655. item?.target = self
  656. item?.btnTag = KMToolbarViewType.SelectZoom.rawValue
  657. item?.toolTip = NSLocalizedString("Zoom to selected area", comment: "")
  658. item?.boxImagePosition = KMToolBoxImagePosition.only
  659. item?.btnAction = #selector(leftControllButtonAction)
  660. let menuItem = NSMenuItem.init(title: "", action: #selector(leftControllButtonAction), target: self)
  661. menuItem?.tag = KMToolbarViewType.SelectZoom.rawValue
  662. item?.menuFormRepresentation = menuItem
  663. } else if identifier == KMToolbarHighlightAnnotationItemIdentifier {
  664. item?.image = NSImage(named: "KMImageNameMainToolHighlight")
  665. item?.alternateImage = NSImage(named: "KMImageNameMainToolHighlight")
  666. item?.target = self
  667. item?.btnTag = CAnnotationType.highlight.rawValue
  668. item?.toolTip = NSLocalizedString("Highlight (⌃⌘H)", comment: "")
  669. item?.boxImagePosition = KMToolBoxImagePosition.only
  670. item?.btnAction = #selector(changeAnnotationMode)
  671. let menuItem = NSMenuItem.init(title: "highlight", action: #selector(changeAnnotationMode), target: self)
  672. menuItem?.tag = CAnnotationType.highlight.rawValue
  673. item?.menuFormRepresentation = menuItem
  674. } else if identifier == KMToolbarUnderlineAnnotationItemIdentifier {
  675. item?.image = NSImage(named: "KMImageNameMainToolUnderline")
  676. item?.alternateImage = NSImage(named: "KMImageNameMainToolUnderline")
  677. item?.target = self
  678. item?.btnTag = CAnnotationType.underline.rawValue
  679. item?.toolTip = NSLocalizedString("Underline (⌃⌘U)", comment: "")
  680. item?.boxImagePosition = KMToolBoxImagePosition.only
  681. item?.btnAction = #selector(changeAnnotationMode)
  682. let menuItem = NSMenuItem.init(title: "underline", action: #selector(changeAnnotationMode), target: self)
  683. menuItem?.tag = CAnnotationType.underline.rawValue
  684. item?.menuFormRepresentation = menuItem
  685. } else if identifier == KMToolbarStrikeOutAnnotationItemIdentifier {
  686. item?.image = NSImage(named: "KMImageNameMainToolStrikeththrough")
  687. item?.alternateImage = NSImage(named: "KMImageNameMainToolStrikeththrough")
  688. item?.target = self
  689. item?.btnTag = CAnnotationType.strikeOut.rawValue
  690. item?.toolTip = NSLocalizedString("Strikethrough (⌃⌘S)", comment: "")
  691. item?.boxImagePosition = KMToolBoxImagePosition.only
  692. item?.btnAction = #selector(changeAnnotationMode)
  693. let menuItem = NSMenuItem.init(title: "strikeOut", action: #selector(changeAnnotationMode), target: self)
  694. menuItem?.tag = CAnnotationType.strikeOut.rawValue
  695. item?.menuFormRepresentation = menuItem
  696. } else if identifier == KMToolbarInkAnnotationItemIdentifier {
  697. item?.image = NSImage(named: "KMImageNameMainToolPen")
  698. item?.alternateImage = NSImage(named: "KMImageNameMainToolPen")
  699. item?.target = self
  700. item?.btnTag = CAnnotationType.ink.rawValue
  701. item?.toolTip = NSLocalizedString("Draw freely as you do with a pen", comment: "")
  702. item?.boxImagePosition = KMToolBoxImagePosition.only
  703. item?.btnAction = #selector(changeAnnotationMode)
  704. let menuItem = NSMenuItem.init(title: "Freehand", action: #selector(changeAnnotationMode), target: self)
  705. menuItem?.tag = CAnnotationType.ink.rawValue
  706. item?.menuFormRepresentation = menuItem
  707. } else if identifier == KMToolbarFreeTextAnnotationItemIdentifier {
  708. item?.image = NSImage(named: "KMImageNameMainToolFreeText")
  709. item?.alternateImage = NSImage(named: "KMImageNameMainToolFreeText")
  710. item?.target = self
  711. item?.btnTag = CAnnotationType.freeText.rawValue
  712. item?.toolTip = NSLocalizedString("Text (⌃⌘T)", comment: "")
  713. item?.boxImagePosition = KMToolBoxImagePosition.only
  714. item?.btnAction = #selector(changeAnnotationMode)
  715. let menuItem = NSMenuItem.init(title: "FreeText", action: #selector(changeAnnotationMode), target: self)
  716. menuItem?.tag = CAnnotationType.freeText.rawValue
  717. item?.menuFormRepresentation = menuItem
  718. } else if identifier == KMToolbarAnchoredAnnotationItemIdentifier {
  719. item?.image = NSImage(named: "KMImageNameMainToolAnchored")
  720. item?.alternateImage = NSImage(named: "KMImageNameMainToolAnchored")
  721. item?.target = self
  722. item?.btnTag = CAnnotationType.anchored.rawValue
  723. item?.toolTip = NSLocalizedString("Sticky Note(⌃⌘N)", comment: "")
  724. item?.boxImagePosition = KMToolBoxImagePosition.only
  725. item?.btnAction = #selector(changeAnnotationMode)
  726. let menuItem = NSMenuItem.init(title: "Anchored", action: #selector(changeAnnotationMode), target: self)
  727. menuItem?.tag = CAnnotationType.anchored.rawValue
  728. item?.menuFormRepresentation = menuItem
  729. } else if identifier == KMToolbarSquareAnnotationItemIdentifier {
  730. item?.image = NSImage(named: "KMImageNameMainToolSquare_Default")
  731. item?.alternateImage = NSImage(named: "KMImageNameMainToolSquare_Default")
  732. item?.target = self
  733. item?.btnTag = CAnnotationType.square.rawValue
  734. item?.toolTip = NSLocalizedString("Hold shift to draw square/circle/straight arrow/line", comment: "")
  735. item?.boxImagePosition = KMToolBoxImagePosition.only
  736. item?.btnAction = #selector(changeAnnotationMode)
  737. let menuItem = NSMenuItem.init(title: "Square", action: #selector(changeAnnotationMode), target: self)
  738. menuItem?.tag = CAnnotationType.square.rawValue
  739. item?.menuFormRepresentation = menuItem
  740. } else if identifier == KMToolbarLinkAnnotationItemIdentifier {
  741. item?.image = NSImage(named: "KMImageNameMainToolLine")
  742. item?.alternateImage = NSImage(named: "KMImageNameMainToolLine")
  743. item?.target = self
  744. item?.btnTag = CAnnotationType.link.rawValue
  745. item?.toolTip = NSLocalizedString("Select an area or text on the page for a link to be inserted", comment: "")
  746. item?.boxImagePosition = KMToolBoxImagePosition.only
  747. item?.btnAction = #selector(changeAnnotationMode)
  748. let menuItem = NSMenuItem.init(title: "Link", action: #selector(changeAnnotationMode), target: self)
  749. menuItem?.tag = CAnnotationType.link.rawValue
  750. item?.menuFormRepresentation = menuItem
  751. } else if identifier == KMToolbarSignSignatureAnnotationItemIdentifier {
  752. item?.image = NSImage(named: "KMImageNameMainToolSignSignature")
  753. item?.alternateImage = NSImage(named: "KMImageNameMainToolSignSignature")
  754. item?.target = self
  755. item?.btnTag = CAnnotationType.signSignature.rawValue
  756. item?.toolTip = NSLocalizedString("Add a handwritten signature or create a signature via the trackpad", comment: "")
  757. item?.boxImagePosition = KMToolBoxImagePosition.only
  758. item?.btnAction = #selector(changeAnnotationMode)
  759. let menuItem = NSMenuItem.init(title: "SignSignature", action: #selector(changeAnnotationMode), target: self)
  760. menuItem?.tag = CAnnotationType.signSignature.rawValue
  761. item?.menuFormRepresentation = menuItem
  762. } else if identifier == KMAnnotationStampToolbarItemIdentifier {
  763. item?.image = NSImage(named: "KMImageNameMainToolStamp")
  764. item?.alternateImage = NSImage(named: "KMImageNameMainToolStamp")
  765. item?.target = self
  766. item?.btnTag = CAnnotationType.stamp.rawValue
  767. item?.toolTip = NSLocalizedString("Add Stamp", comment: "")
  768. item?.boxImagePosition = KMToolBoxImagePosition.only
  769. item?.btnAction = #selector(changeAnnotationMode)
  770. let menuItem = NSMenuItem.init(title: "Stamp", action: #selector(changeAnnotationMode), target: self)
  771. menuItem?.tag = CAnnotationType.stamp.rawValue
  772. item?.menuFormRepresentation = menuItem
  773. } else if identifier == KMToolbarShowToolbarItemIdentifier {
  774. item?.image = NSImage(named: "KMImageNameMainToolShow")
  775. item?.selectedImage = NSImage(named: "KMImageNameMainToolHide")
  776. item?.alternateImage = NSImage(named: "KMImageNameMainToolShow")
  777. item?.selectedBackgroundColor = NSColor.clear
  778. item?.target = self
  779. item?.toolTip = NSLocalizedString("Hide", comment: "")
  780. item?.titleName = NSLocalizedString("Hide", comment: "")
  781. item?.boxImagePosition = KMToolBoxImagePosition.only
  782. item?.btnAction = #selector(showPDFLayoutMode)
  783. let menuItem = NSMenuItem.init(title: "Hide", action: #selector(showPDFLayoutMode), target: self)
  784. item?.menuFormRepresentation = menuItem
  785. } else if identifier == KMToolbarAddTextEditPDFItemIdentifier {
  786. item?.image = NSImage(named: "KMImageNameMainToolFreeText")
  787. item?.alternateImage = NSImage(named: "KMImageNameMainToolFreeText")
  788. item?.target = self
  789. item?.btnTag = CAnnotationType.addText.rawValue
  790. item?.toolTip = NSLocalizedString("Add Text", comment: "")
  791. item?.titleName = NSLocalizedString("Add Text", comment: "")
  792. item?.boxImagePosition = KMToolBoxImagePosition.left
  793. item?.btnAction = #selector(changeAnnotationMode)
  794. let menuItem = NSMenuItem.init(title: "Add Text", action: #selector(changeAnnotationMode), target: self)
  795. menuItem?.tag = CAnnotationType.addText.rawValue
  796. item?.menuFormRepresentation = menuItem
  797. } else if identifier == KMToolbarAddImageEditPDFItemIdentifier {
  798. item?.image = NSImage(named: "KMImageNameMainToolEditImage")
  799. item?.alternateImage = NSImage(named: "KMImageNameMainToolEditImage")
  800. item?.target = self
  801. item?.btnTag = CAnnotationType.addImage.rawValue
  802. item?.toolTip = NSLocalizedString("Add Image", comment: "")
  803. item?.titleName = NSLocalizedString("Add Image", comment: "")
  804. item?.boxImagePosition = KMToolBoxImagePosition.left
  805. item?.btnAction = #selector(changeAnnotationMode)
  806. let menuItem = NSMenuItem.init(title: "Add Image", action: #selector(changeAnnotationMode), target: self)
  807. menuItem?.tag = CAnnotationType.addImage.rawValue
  808. item?.menuFormRepresentation = menuItem
  809. } else if identifier == KMToolbarToolCropItemIdentifier {
  810. item?.image = NSImage(named: "KMImageNameMainToolbarrRight")
  811. item?.alternateImage = NSImage(named: "KMImageNameMainToolbarrRight")
  812. item?.target = self
  813. item?.btnTag = KMToolbarType.crop.rawValue
  814. item?.toolTip = NSLocalizedString("Crop pages", comment: "")
  815. item?.titleName = NSLocalizedString("Crop", comment: "")
  816. item?.boxImagePosition = KMToolBoxImagePosition.expandLeft
  817. item?.btnAction = #selector(cropMenuAction)
  818. let menuItem = NSMenuItem.init(title: "Crop", action: #selector(cropMenuAction), target: self)
  819. item?.menuFormRepresentation = menuItem
  820. } else if identifier == KMToolbarToolBatesItemIdentifier {
  821. item?.image = NSImage(named: "KMImageNameMainToolsBatesNumber")
  822. item?.alternateImage = NSImage(named: "KMImageNameMainToolsBatesNumber")
  823. item?.target = self
  824. item?.btnTag = KMToolbarType.bates.rawValue
  825. item?.toolTip = NSLocalizedString("Bates Number", comment: "")
  826. item?.titleName = NSLocalizedString("Bates Number", comment: "")
  827. item?.boxImagePosition = KMToolBoxImagePosition.left
  828. item?.btnAction = #selector(batesMenuAction)
  829. let menuItem = NSMenuItem.init(title: "Bates Number", action: #selector(batesMenuAction), target: self)
  830. item?.menuFormRepresentation = menuItem
  831. } else if identifier == KMToolbarToolHeaderFooterItemIdentifier {
  832. item?.image = NSImage(named: "KMImageNameMainToolsHeadeFooter")
  833. item?.alternateImage = NSImage(named: "KMImageNameMainToolsHeadeFooter")
  834. item?.target = self
  835. item?.btnTag = KMToolbarType.headerAndFooter.rawValue
  836. item?.toolTip = NSLocalizedString("Header&Footer", comment: "")
  837. item?.titleName = NSLocalizedString("Header&Footer", comment: "")
  838. item?.boxImagePosition = KMToolBoxImagePosition.left
  839. item?.btnAction = #selector(headerfooterMenuAction)
  840. let menuItem = NSMenuItem.init(title: "Header&Footer", action: #selector(headerfooterMenuAction), target: self)
  841. item?.menuFormRepresentation = menuItem
  842. } else if identifier == KMToolbarToolBackgroundItemIdentifier {
  843. item?.image = NSImage(named: "KMImageNameMainToolsBackgroud")
  844. item?.alternateImage = NSImage(named: "KMImageNameMainToolsBackgroud")
  845. item?.target = self
  846. item?.btnTag = KMToolbarType.background.rawValue
  847. item?.toolTip = NSLocalizedString("Backgroud", comment: "")
  848. item?.titleName = NSLocalizedString("Backgroud", comment: "")
  849. item?.boxImagePosition = KMToolBoxImagePosition.left
  850. item?.btnAction = #selector(backgroundMenuAction)
  851. let menuItem = NSMenuItem.init(title: "Backgroud", action: #selector(backgroundMenuAction), target: self)
  852. item?.menuFormRepresentation = menuItem
  853. } else if identifier == KMToolbarToolWatermarkItemIdentifier {
  854. item?.image = NSImage(named: "KMImageNameMainToolsWatermark")
  855. item?.alternateImage = NSImage(named: "KMImageNameMainToolsWatermark")
  856. item?.target = self
  857. item?.btnTag = KMToolbarType.watermark.rawValue
  858. item?.toolTip = NSLocalizedString("Watermark", comment: "")
  859. item?.titleName = NSLocalizedString("Watermark", comment: "")
  860. item?.boxImagePosition = KMToolBoxImagePosition.left
  861. item?.btnAction = #selector(watermarkMenuAction)
  862. let menuItem = NSMenuItem.init(title: "Watermark", action: #selector(watermarkMenuAction), target: self)
  863. item?.menuFormRepresentation = menuItem
  864. } else if identifier == KMToolbarToolTextFieldItemIdentifier {
  865. item?.image = NSImage(named: "KMImageNameMainToolFormText")
  866. item?.alternateImage = NSImage(named: "KMImageNameMainToolFormText")
  867. item?.target = self
  868. item?.btnTag = CAnnotationType.textField.rawValue
  869. item?.toolTip = NSLocalizedString("TextField", comment: "")
  870. item?.titleName = NSLocalizedString("TextField", comment: "")
  871. item?.boxImagePosition = KMToolBoxImagePosition.only
  872. item?.btnAction = #selector(changeAnnotationMode)
  873. let menuItem = NSMenuItem.init(title: "TextField", action: #selector(changeAnnotationMode), target: self)
  874. menuItem?.tag = item!.btnTag
  875. item?.menuFormRepresentation = menuItem
  876. } else if identifier == KMToolbarToolCheckBoxItemIdentifier {
  877. item?.image = NSImage(named: "KMImageNameMainToolFormCheckbox")
  878. item?.alternateImage = NSImage(named: "KMImageNameMainToolFormCheckbox")
  879. item?.target = self
  880. item?.btnTag = CAnnotationType.checkBox.rawValue
  881. item?.toolTip = NSLocalizedString("CheckBox", comment: "")
  882. item?.titleName = NSLocalizedString("CheckBox", comment: "")
  883. item?.boxImagePosition = KMToolBoxImagePosition.only
  884. item?.btnAction = #selector(changeAnnotationMode)
  885. let menuItem = NSMenuItem.init(title: "CheckBox", action: #selector(changeAnnotationMode), target: self)
  886. menuItem?.tag = item!.btnTag
  887. item?.menuFormRepresentation = menuItem
  888. } else if identifier == KMToolbarToolRadioButtonItemIdentifier {
  889. item?.image = NSImage(named: "KMImageNameMainToolFormRadio")
  890. item?.alternateImage = NSImage(named: "KMImageNameMainToolFormRadio")
  891. item?.target = self
  892. item?.btnTag = CAnnotationType.radioButton.rawValue
  893. item?.toolTip = NSLocalizedString("RadioButton", comment: "")
  894. item?.titleName = NSLocalizedString("RadioButton", comment: "")
  895. item?.boxImagePosition = KMToolBoxImagePosition.only
  896. item?.btnAction = #selector(changeAnnotationMode)
  897. let menuItem = NSMenuItem.init(title: "RadioButton", action: #selector(changeAnnotationMode), target: self)
  898. menuItem?.tag = item!.btnTag
  899. item?.menuFormRepresentation = menuItem
  900. } else if identifier == KMToolbarToolListBoxItemIdentifier {
  901. item?.image = NSImage(named: "KMImageNameMainToolFormListBox")
  902. item?.alternateImage = NSImage(named: "KMImageNameMainToolFormListBox")
  903. item?.target = self
  904. item?.btnTag = CAnnotationType.listMenu.rawValue
  905. item?.toolTip = NSLocalizedString("ListBox", comment: "")
  906. item?.titleName = NSLocalizedString("ListBox", comment: "")
  907. item?.boxImagePosition = KMToolBoxImagePosition.only
  908. item?.btnAction = #selector(changeAnnotationMode)
  909. let menuItem = NSMenuItem.init(title: "ListBox", action: #selector(changeAnnotationMode), target: self)
  910. menuItem?.tag = item!.btnTag
  911. item?.menuFormRepresentation = menuItem
  912. } else if identifier == KMToolbarToolPullDownmenuItemIdentifier {
  913. item?.image = NSImage(named: "KMImageNameMainToolFormPulldown")
  914. item?.alternateImage = NSImage(named: "KMImageNameMainToolFormPulldown")
  915. item?.target = self
  916. item?.btnTag = CAnnotationType.comboBox.rawValue
  917. item?.toolTip = NSLocalizedString("PullDownmenu", comment: "")
  918. item?.titleName = NSLocalizedString("PullDownmenu", comment: "")
  919. item?.boxImagePosition = KMToolBoxImagePosition.only
  920. item?.btnAction = #selector(changeAnnotationMode)
  921. let menuItem = NSMenuItem.init(title: "PullDownmenu", action: #selector(changeAnnotationMode), target: self)
  922. menuItem?.tag = item!.btnTag
  923. item?.menuFormRepresentation = menuItem
  924. } else if identifier == KMToolbarToolButtonIdentifier {
  925. item?.image = NSImage(named: "KMImageNameMainToolFormButton")
  926. item?.alternateImage = NSImage(named: "KMImageNameMainToolFormButton")
  927. item?.target = self
  928. item?.btnTag = CAnnotationType.actionButton.rawValue
  929. item?.toolTip = NSLocalizedString("Button", comment: "")
  930. item?.titleName = NSLocalizedString("Button", comment: "")
  931. item?.boxImagePosition = KMToolBoxImagePosition.only
  932. item?.btnAction = #selector(changeAnnotationMode)
  933. let menuItem = NSMenuItem.init(title: "Button", action: #selector(changeAnnotationMode), target: self)
  934. menuItem?.tag = item!.btnTag
  935. item?.menuFormRepresentation = menuItem
  936. } else if identifier == KMToolbarToolSignBoxIdentifier {
  937. item?.image = NSImage(named: "KMImageNameMainToolFormSign")
  938. item?.alternateImage = NSImage(named: "KMImageNameMainToolFormSign")
  939. item?.target = self
  940. item?.btnTag = CAnnotationType.signature.rawValue
  941. item?.toolTip = NSLocalizedString("SignBox", comment: "")
  942. item?.titleName = NSLocalizedString("SignBox", comment: "")
  943. item?.boxImagePosition = KMToolBoxImagePosition.only
  944. item?.btnAction = #selector(changeAnnotationMode)
  945. let menuItem = NSMenuItem.init(title: "SignBox", action: #selector(changeAnnotationMode), target: self)
  946. menuItem?.tag = item!.btnTag
  947. item?.menuFormRepresentation = menuItem
  948. } else if identifier == KMToolbarToolFormAlignIdentifier {
  949. item?.image = NSImage(named: "KMImageNameMainToolFormAlignment")
  950. item?.alternateImage = NSImage(named: "KMImageNameMainToolFormAlignment")
  951. item?.target = self
  952. item?.toolTip = NSLocalizedString("Alignment", comment: "")
  953. item?.titleName = NSLocalizedString("Alignment", comment: "")
  954. item?.boxImagePosition = KMToolBoxImagePosition.expandLeft
  955. item?.btnAction = #selector(formsAlignmentAction)
  956. let menuItem = NSMenuItem.init(title: "Alignment", action: #selector(formsAlignmentAction), target: self)
  957. menuItem?.tag = item!.btnTag
  958. item?.menuFormRepresentation = menuItem
  959. } else if identifier == KMToolbarToolFormMoreIdentifier {
  960. item?.image = NSImage(named: "KMImageNameMainToolFormMore")
  961. item?.alternateImage = NSImage(named: "KMImageNameMainToolFormMore")
  962. item?.target = self
  963. item?.toolTip = NSLocalizedString("More", comment: "")
  964. item?.titleName = NSLocalizedString("More", comment: "")
  965. item?.boxImagePosition = KMToolBoxImagePosition.expandLeft
  966. item?.btnAction = #selector(formsMoreOperationAction)
  967. let menuItem = NSMenuItem.init(title: "More", action: #selector(formsMoreOperationAction), target: self)
  968. menuItem?.tag = item!.btnTag
  969. item?.menuFormRepresentation = menuItem
  970. } else if identifier == KMToolbarToolRedactItemIdentifier {
  971. item?.image = NSImage(named: "KMImageNameMainToolsRedact")
  972. item?.alternateImage = NSImage(named: "KMImageNameMainToolsRedact")
  973. item?.target = self
  974. item?.btnTag = KMToolbarType.redact.rawValue
  975. item?.toolTip = NSLocalizedString("Redact", comment: "")
  976. item?.titleName = NSLocalizedString("Redact", comment: "")
  977. item?.btnAction = #selector(redactMenuAction)
  978. let menuItem = NSMenuItem.init(title: "Redact", action: #selector(changeAnnotationMode), target: self)
  979. menuItem?.tag = item!.btnTag
  980. item?.menuFormRepresentation = menuItem
  981. } else if identifier == KMToolbarToolCompressItemIdentifier {
  982. item?.image = NSImage(named: "KMImageNameMainToolsCompress")
  983. item?.alternateImage = NSImage(named: "KMImageNameMainToolsCompress")
  984. item?.target = self
  985. item?.btnTag = KMToolbarType.compress.rawValue
  986. item?.toolTip = NSLocalizedString("Reduce file size or custimize the quality to make the document smaller.", comment: "")
  987. item?.titleName = NSLocalizedString("Compress", comment: "")
  988. item?.btnAction = #selector(compressMenuAction)
  989. let menuItem = NSMenuItem.init(title: "Compress", action: #selector(compressMenuAction), target: self)
  990. menuItem?.tag = item!.btnTag
  991. item?.menuFormRepresentation = menuItem
  992. } else if identifier == KMToolbarToolSecureItemIdentifier {
  993. item?.image = NSImage(named: "KMImageNameMainToolsSecurity")
  994. item?.alternateImage = NSImage(named: "KMImageNameMainToolsSecurity")
  995. item?.target = self
  996. item?.btnTag = KMToolbarType.secure.rawValue
  997. item?.toolTip = NSLocalizedString("", comment: "")
  998. item?.titleName = NSLocalizedString("Security", comment: "")
  999. item?.boxImagePosition = KMToolBoxImagePosition.expandLeft
  1000. item?.btnAction = #selector(secureMenuAction)
  1001. let menuItem = NSMenuItem.init(title: "Security", action: #selector(secureMenuAction), target: self)
  1002. menuItem?.tag = item!.btnTag
  1003. item?.menuFormRepresentation = menuItem
  1004. } else if identifier == KMToolbarToolHookItemIdentifier {
  1005. item?.image = NSImage(named: "KMImageNameFillSignHook")
  1006. item?.alternateImage = NSImage(named: "KMImageNameFillSignHook")
  1007. item?.target = self
  1008. item?.btnTag = CAnnotationType.signTure.rawValue
  1009. item?.toolTip = NSLocalizedString("Check", comment: "")
  1010. item?.titleName = NSLocalizedString("Signature", comment: "")
  1011. item?.boxImagePosition = KMToolBoxImagePosition.only
  1012. item?.btnAction = #selector(changeAnnotationMode)
  1013. let menuItem = NSMenuItem.init(title: "Signature", action: #selector(changeAnnotationMode), target: self)
  1014. menuItem?.tag = item!.btnTag
  1015. item?.menuFormRepresentation = menuItem
  1016. } else if identifier == KMToolbarToolForkItemIdentifier {
  1017. item?.image = NSImage(named: "KMImageNameFillSignFork")
  1018. item?.alternateImage = NSImage(named: "KMImageNameFillSignFork")
  1019. item?.target = self
  1020. item?.btnTag = CAnnotationType.signFalse.rawValue
  1021. item?.toolTip = NSLocalizedString("X", comment: "")
  1022. item?.titleName = NSLocalizedString("signFalse", comment: "")
  1023. item?.boxImagePosition = KMToolBoxImagePosition.only
  1024. item?.btnAction = #selector(changeAnnotationMode)
  1025. let menuItem = NSMenuItem.init(title: "signFalse", action: #selector(changeAnnotationMode), target: self)
  1026. menuItem?.tag = item!.btnTag
  1027. item?.menuFormRepresentation = menuItem
  1028. } else if identifier == KMToolbarToolLineItemIdentifier {
  1029. item?.image = NSImage(named: "KMImageNameFillSignLine")
  1030. item?.alternateImage = NSImage(named: "KMImageNameFillSignLine")
  1031. item?.target = self
  1032. item?.btnTag = CAnnotationType.signLine.rawValue
  1033. item?.toolTip = NSLocalizedString("Line", comment: "")
  1034. item?.titleName = NSLocalizedString("Line", comment: "")
  1035. item?.boxImagePosition = KMToolBoxImagePosition.only
  1036. item?.btnAction = #selector(changeAnnotationMode)
  1037. let menuItem = NSMenuItem.init(title: "Line", action: #selector(changeAnnotationMode), target: self)
  1038. menuItem?.tag = item!.btnTag
  1039. item?.menuFormRepresentation = menuItem
  1040. } else if identifier == KMToolbarToolDotItemIdentifier {
  1041. item?.image = NSImage(named: "KMImageNameFillSignDot")
  1042. item?.alternateImage = NSImage(named: "KMImageNameFillSignDot")
  1043. item?.target = self
  1044. item?.btnTag = CAnnotationType.signDot.rawValue
  1045. item?.toolTip = NSLocalizedString("Dot", comment: "")
  1046. item?.titleName = NSLocalizedString("Dot", comment: "")
  1047. item?.boxImagePosition = KMToolBoxImagePosition.only
  1048. item?.btnAction = #selector(changeAnnotationMode)
  1049. let menuItem = NSMenuItem.init(title: "Dot", action: #selector(changeAnnotationMode), target: self)
  1050. menuItem?.tag = item!.btnTag
  1051. item?.menuFormRepresentation = menuItem
  1052. } else if identifier == KMToolbarToolRectangleIdentifier {
  1053. item?.image = NSImage(named: "KMImageNameFillSignRectangle")
  1054. item?.alternateImage = NSImage(named: "KMImageNameFillSignRectangle")
  1055. item?.target = self
  1056. item?.btnTag = CAnnotationType.signCircle.rawValue
  1057. item?.toolTip = NSLocalizedString("Rectangle", comment: "")
  1058. item?.titleName = NSLocalizedString("Rectangle", comment: "")
  1059. item?.boxImagePosition = KMToolBoxImagePosition.only
  1060. item?.btnAction = #selector(changeAnnotationMode)
  1061. let menuItem = NSMenuItem.init(title: "Rectangle", action: #selector(changeAnnotationMode), target: self)
  1062. menuItem?.tag = item!.btnTag
  1063. item?.menuFormRepresentation = menuItem
  1064. } else if identifier == KMToolbarToolTextIdentifier {
  1065. item?.image = NSImage(named: "KMImageNameMainToolFreeText")
  1066. item?.alternateImage = NSImage(named: "KMImageNameMainToolFreeText")
  1067. item?.target = self
  1068. item?.btnTag = CAnnotationType.signText.rawValue
  1069. item?.toolTip = NSLocalizedString("Add a handwritten signature or create a signature via the trackpad", comment: "")
  1070. item?.titleName = NSLocalizedString("signText", comment: "")
  1071. item?.boxImagePosition = KMToolBoxImagePosition.only
  1072. item?.btnAction = #selector(changeAnnotationMode)
  1073. let menuItem = NSMenuItem.init(title: "signText", action: #selector(changeAnnotationMode), target: self)
  1074. menuItem?.tag = item!.btnTag
  1075. item?.menuFormRepresentation = menuItem
  1076. } else if identifier == KMToolbarToolDateIdentifier {
  1077. item?.image = NSImage(named: "KMImageNameFillSignDate")
  1078. item?.alternateImage = NSImage(named: "KMImageNameFillSignDate")
  1079. item?.target = self
  1080. item?.btnTag = CAnnotationType.signDate.rawValue
  1081. item?.toolTip = NSLocalizedString("Date", comment: "")
  1082. item?.titleName = NSLocalizedString("Date", comment: "")
  1083. item?.boxImagePosition = KMToolBoxImagePosition.only
  1084. item?.btnAction = #selector(changeAnnotationMode)
  1085. let menuItem = NSMenuItem.init(title: "Date", action: #selector(changeAnnotationMode), target: self)
  1086. menuItem?.tag = item!.btnTag
  1087. item?.menuFormRepresentation = menuItem
  1088. } else if (identifier == KMToolbarFillSignSignatureIdentifier) {
  1089. item?.image = NSImage(named: "KMImageNameMainToolSignSignature")
  1090. item?.alternateImage = NSImage(named: "KMImageNameMainToolSignSignature")
  1091. item?.target = self
  1092. item?.btnTag = CAnnotationType.signSignature.rawValue
  1093. item?.toolTip = NSLocalizedString("Add a handwritten signature or create a signature via the trackpad", comment: "")
  1094. item?.boxImagePosition = KMToolBoxImagePosition.only
  1095. item?.btnAction = #selector(changeAnnotationMode)
  1096. let menuItem = NSMenuItem.init(title: "SignSignature", action: #selector(changeAnnotationMode), target: self)
  1097. menuItem?.tag = CAnnotationType.signSignature.rawValue
  1098. item?.menuFormRepresentation = menuItem
  1099. } else if identifier == KMToolbarConversionWordItemIdentifier {
  1100. item?.image = NSImage(named: "KMImageNameMainToolConverterWord")
  1101. item?.alternateImage = NSImage(named: "KMImageNameMainToolConverterWord")
  1102. item?.target = self
  1103. item?.btnTag = KMToolbarType.word.rawValue
  1104. item?.toolTip = NSLocalizedString("Convert PDF to editable Word documents.", comment: "")
  1105. item?.titleName = NSLocalizedString("To Word", comment: "")
  1106. item?.boxImagePosition = KMToolBoxImagePosition.left
  1107. item?.btnAction = #selector(conversionMenuItemAction)
  1108. let menuItem = NSMenuItem.init(title: "To Word", action: #selector(conversionMenuItemAction), target: self)
  1109. menuItem?.tag = item!.btnTag
  1110. item?.menuFormRepresentation = menuItem
  1111. } else if identifier == KMToolbarConversionExcelItemIdentifier {
  1112. item?.image = NSImage(named: "KMImageNameMainToolConverterExcel")
  1113. item?.alternateImage = NSImage(named: "KMImageNameMainToolConverterExcel")
  1114. item?.target = self
  1115. item?.btnTag = KMToolbarType.excel.rawValue
  1116. item?.toolTip = NSLocalizedString("Extract data from PDF to Excel", comment: "")
  1117. item?.titleName = NSLocalizedString("To Excel", comment: "")
  1118. item?.boxImagePosition = KMToolBoxImagePosition.left
  1119. item?.btnAction = #selector(conversionMenuItemAction)
  1120. let menuItem = NSMenuItem.init(title: "To Excel", action: #selector(conversionMenuItemAction), target: self)
  1121. menuItem?.tag = item!.btnTag
  1122. item?.menuFormRepresentation = menuItem
  1123. } else if identifier == KMToolbarConversionPPTItemIdentifier {
  1124. item?.image = NSImage(named: "KMImageNameMainToolConverterPPT")
  1125. item?.alternateImage = NSImage(named: "KMImageNameMainToolConverterPPT")
  1126. item?.target = self
  1127. item?.btnTag = KMToolbarType.ppt.rawValue
  1128. item?.toolTip = NSLocalizedString("Convert PDF documents to PPT while retaining formatting", comment: "")
  1129. item?.titleName = NSLocalizedString("To PPT", comment: "")
  1130. item?.boxImagePosition = KMToolBoxImagePosition.left
  1131. item?.btnAction = #selector(conversionMenuItemAction)
  1132. let menuItem = NSMenuItem.init(title: "To PPT", action: #selector(conversionMenuItemAction), target: self)
  1133. menuItem?.tag = item!.btnTag
  1134. item?.menuFormRepresentation = menuItem
  1135. } else if identifier == KMToolbarConversionRTFItemIdentifier {
  1136. item?.image = NSImage(named: "KMImageNameMainToolConverterRTF")
  1137. item?.alternateImage = NSImage(named: "KMImageNameMainToolConverterRTF")
  1138. item?.target = self
  1139. item?.btnTag = KMToolbarType.rtf.rawValue
  1140. item?.toolTip = NSLocalizedString("Convert PDF to RTF that can be opened in almost any word processor", comment: "")
  1141. item?.titleName = NSLocalizedString("To RTF", comment: "")
  1142. item?.boxImagePosition = KMToolBoxImagePosition.left
  1143. item?.btnAction = #selector(conversionMenuItemAction)
  1144. let menuItem = NSMenuItem.init(title: "To RTF", action: #selector(conversionMenuItemAction), target: self)
  1145. menuItem?.tag = item!.btnTag
  1146. item?.menuFormRepresentation = menuItem
  1147. } else if identifier == KMToolbarConversionCSVItemIdentifier {
  1148. item?.image = NSImage(named: "KMImageNameMainToolConverterCSV")
  1149. item?.alternateImage = NSImage(named: "KMImageNameMainToolConverterCSV")
  1150. item?.target = self
  1151. item?.btnTag = KMToolbarType.csv.rawValue
  1152. item?.toolTip = NSLocalizedString("To CSV", comment: "")
  1153. item?.titleName = NSLocalizedString("To CSV", comment: "")
  1154. item?.boxImagePosition = KMToolBoxImagePosition.left
  1155. item?.btnAction = #selector(conversionMenuItemAction)
  1156. let menuItem = NSMenuItem.init(title: "To CSV", action: #selector(conversionMenuItemAction), target: self)
  1157. menuItem?.tag = item!.btnTag
  1158. item?.menuFormRepresentation = menuItem
  1159. } else if identifier == KMToolbarConversionHTMLItemIdentifier {
  1160. item?.image = NSImage(named: "KMImageNameMainToolConverterHTML")
  1161. item?.alternateImage = NSImage(named: "KMImageNameMainToolConverterHTML")
  1162. item?.target = self
  1163. item?.btnTag = KMToolbarType.html.rawValue
  1164. item?.toolTip = NSLocalizedString("To HTML", comment: "")
  1165. item?.titleName = NSLocalizedString("To HTML", comment: "")
  1166. item?.boxImagePosition = KMToolBoxImagePosition.left
  1167. item?.btnAction = #selector(conversionMenuItemAction)
  1168. let menuItem = NSMenuItem.init(title: "To HTML", action: #selector(conversionMenuItemAction), target: self)
  1169. menuItem?.tag = item!.btnTag
  1170. item?.menuFormRepresentation = menuItem
  1171. } else if identifier == KMToolbarConversionTextItemIdentifier {
  1172. item?.image = NSImage(named: "KMImageNameMainToolConverterText")
  1173. item?.alternateImage = NSImage(named: "KMImageNameMainToolConverterText")
  1174. item?.target = self
  1175. item?.btnTag = KMToolbarType.conversion_text.rawValue
  1176. item?.toolTip = NSLocalizedString("To Text", comment: "")
  1177. item?.titleName = NSLocalizedString("To Text", comment: "")
  1178. item?.boxImagePosition = KMToolBoxImagePosition.left
  1179. item?.btnAction = #selector(conversionMenuItemAction)
  1180. let menuItem = NSMenuItem.init(title: "To Text", action: #selector(conversionMenuItemAction), target: self)
  1181. menuItem?.tag = item!.btnTag
  1182. item?.menuFormRepresentation = menuItem
  1183. } else if identifier == KMToolbarConversionImageItemIdentifier {
  1184. item?.image = NSImage(named: "KMImageNameMainToolConverterImage")
  1185. item?.alternateImage = NSImage(named: "KMImageNameMainToolConverterImage")
  1186. item?.target = self
  1187. item?.btnTag = KMToolbarType.conversion_image.rawValue
  1188. item?.toolTip = NSLocalizedString("Convert each page in a PDF to JPEG, JPG, PNG, GIF and other formats", comment: "")
  1189. item?.titleName = NSLocalizedString("To Image", comment: "")
  1190. item?.boxImagePosition = KMToolBoxImagePosition.left
  1191. item?.btnAction = #selector(conversionMenuItemAction)
  1192. let menuItem = NSMenuItem.init(title: "To Image", action: #selector(conversionMenuItemAction), target: self)
  1193. menuItem?.tag = item!.btnTag
  1194. item?.menuFormRepresentation = menuItem
  1195. } else if identifier == KMToolbarToolMergeItemIdentifier {
  1196. item?.image = NSImage(named: "KMImageNameMainToolsMerge")
  1197. item?.alternateImage = NSImage(named: "KMImageNameMainToolsMerge")
  1198. item?.target = self
  1199. item?.btnTag = KMToolbarType.merge.rawValue
  1200. item?.toolTip = NSLocalizedString("Combine multiple files into a new PDF.", comment: "")
  1201. item?.titleName = NSLocalizedString("Merge", comment: "")
  1202. item?.boxImagePosition = KMToolBoxImagePosition.left
  1203. item?.btnAction = #selector(mergeMenuItemAction)
  1204. let menuItem = NSMenuItem.init(title: "Merge", action: #selector(mergeMenuItemAction), target: self)
  1205. menuItem?.tag = item!.btnTag
  1206. item?.menuFormRepresentation = menuItem
  1207. }
  1208. }
  1209. return item
  1210. }
  1211. func validateToolbarItem(_ item: NSToolbarItem) -> Bool {
  1212. return true
  1213. }
  1214. @objc func listViewAnnotationTypeChangeNotification() {
  1215. let annotationType : CAnnotationType = pdfView.annotationType
  1216. if annotationType == .square || annotationType == .circle || annotationType == .arrow || annotationType == .line{
  1217. UserDefaults.standard.set(pdfView.annotationType.rawValue, forKey: KMToolBarToolPDFShapeStyle)
  1218. UserDefaults.standard.synchronize()
  1219. }
  1220. for item in self.toolbar.items {
  1221. if self.toolbarType == .Annatiton || self.toolbarType == .Move || self.toolbarType == .Magnify ||
  1222. self.toolbarType == .Select || self.toolbarType == .SelectZoom {
  1223. item.isSelected = false
  1224. if item.itemIdentifier == KMDocumentAnnotationToolbarItemIdentifier {
  1225. item.isSelected = true
  1226. } else if item.itemIdentifier == KMToolbarHighlightAnnotationItemIdentifier {
  1227. if annotationType == .highlight {
  1228. item.isSelected = true
  1229. }
  1230. } else if item.itemIdentifier == KMToolbarUnderlineAnnotationItemIdentifier {
  1231. if annotationType == .underline {
  1232. item.isSelected = true
  1233. }
  1234. } else if item.itemIdentifier == KMToolbarStrikeOutAnnotationItemIdentifier {
  1235. if annotationType == .strikeOut {
  1236. item.isSelected = true
  1237. }
  1238. } else if item.itemIdentifier == KMToolbarInkAnnotationItemIdentifier {
  1239. if annotationType == .ink || annotationType == .eraser {
  1240. item.isSelected = true
  1241. }
  1242. } else if item.itemIdentifier == KMToolbarFreeTextAnnotationItemIdentifier {
  1243. if annotationType == .freeText {
  1244. item.isSelected = true
  1245. }
  1246. } else if item.itemIdentifier == KMToolbarAnchoredAnnotationItemIdentifier {
  1247. if annotationType == .anchored {
  1248. item.isSelected = true
  1249. }
  1250. } else if item.itemIdentifier == KMToolbarSquareAnnotationItemIdentifier {
  1251. if annotationType == .square || annotationType == .circle || annotationType == .arrow || annotationType == .line {
  1252. item.isSelected = true
  1253. }
  1254. } else if item.itemIdentifier == KMToolbarLinkAnnotationItemIdentifier {
  1255. if annotationType == .link {
  1256. item.isSelected = true
  1257. }
  1258. } else if item.itemIdentifier == KMAnnotationStampToolbarItemIdentifier {
  1259. if annotationType == .stamp {
  1260. item.isSelected = true
  1261. }
  1262. } else if item.itemIdentifier == KMToolbarSignSignatureAnnotationItemIdentifier {
  1263. if annotationType == .signSignature {
  1264. item.isSelected = true
  1265. }
  1266. } else if pdfView.toolMode == .moveToolMode {
  1267. if item.itemIdentifier == KMToolbarMoveToolModeItemIdentifier {
  1268. item.isSelected = true
  1269. }
  1270. } else if pdfView.toolMode == .magnifyToolMode {
  1271. if item.itemIdentifier == KMToolbarMagnifyToolModeItemIdentifier {
  1272. item.isSelected = true
  1273. }
  1274. } else if pdfView.toolMode == .selectToolMode {
  1275. if item.itemIdentifier == KMToolbarSelectToolModeItemIdentifier {
  1276. item.isSelected = true
  1277. }
  1278. } else if pdfView.toolMode == .selectZoomToolMode {
  1279. if item.itemIdentifier == KMToolbarZoomToSelectionItemIdentifier {
  1280. item.isSelected = true
  1281. }
  1282. }
  1283. if (item.itemIdentifier == KMToolbarShowToolbarItemIdentifier) {
  1284. item.isSelected = !self.isShowAllAnnotations
  1285. }
  1286. } else if self.toolbarType == .FillSign {
  1287. item.isSelected = false
  1288. if pdfView.toolMode == .selfSignMode {
  1289. if item.itemIdentifier == KMToolbarToolHookItemIdentifier {
  1290. if annotationType == .signTure {
  1291. item.isSelected = true
  1292. }
  1293. } else if item.itemIdentifier == KMToolbarToolForkItemIdentifier {
  1294. if annotationType == .signFalse {
  1295. item.isSelected = true
  1296. }
  1297. } else if item.itemIdentifier == KMToolbarToolLineItemIdentifier {
  1298. if annotationType == .signLine {
  1299. item.isSelected = true
  1300. }
  1301. } else if item.itemIdentifier == KMToolbarToolDotItemIdentifier {
  1302. if annotationType == .signDot {
  1303. item.isSelected = true
  1304. }
  1305. } else if item.itemIdentifier == KMToolbarToolRectangleIdentifier {
  1306. if annotationType == .signCircle {
  1307. item.isSelected = true
  1308. }
  1309. } else if item.itemIdentifier == KMToolbarToolDateIdentifier {
  1310. if annotationType == .signDate {
  1311. item.isSelected = true
  1312. }
  1313. } else if item.itemIdentifier == KMToolbarToolTextIdentifier {
  1314. if annotationType == .signText {
  1315. item.isSelected = true
  1316. }
  1317. } else if (item.itemIdentifier == KMToolbarFillSignSignatureIdentifier) {
  1318. if (annotationType == .signSignature) {
  1319. item.isSelected = true
  1320. }
  1321. }
  1322. }
  1323. }
  1324. }
  1325. }
  1326. }