KMToolbarViewController.swift 77 KB

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