KMToolbarViewController.swift 80 KB

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