KMToolbarViewController.swift 83 KB

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