KMToolbarViewController.swift 82 KB

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