KMToolbarViewController.swift 80 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407
  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?.boxImagePosition = KMToolBoxImagePosition.only
  629. item?.btnAction = #selector(changeAnnotationMode)
  630. let menuItem = NSMenuItem.init(title: "highlight", action: #selector(changeAnnotationMode), target: self)
  631. menuItem?.tag = CAnnotationType.highlight.rawValue
  632. item?.menuFormRepresentation = menuItem
  633. } else if identifier == KMToolbarUnderlineAnnotationItemIdentifier {
  634. item?.image = NSImage(named: "KMImageNameMainToolUnderline")
  635. item?.alternateImage = NSImage(named: "KMImageNameMainToolUnderline")
  636. item?.target = self
  637. item?.btnTag = CAnnotationType.underline.rawValue
  638. item?.boxImagePosition = KMToolBoxImagePosition.only
  639. item?.btnAction = #selector(changeAnnotationMode)
  640. let menuItem = NSMenuItem.init(title: "underline", action: #selector(changeAnnotationMode), target: self)
  641. menuItem?.tag = CAnnotationType.underline.rawValue
  642. item?.menuFormRepresentation = menuItem
  643. } else if identifier == KMToolbarStrikeOutAnnotationItemIdentifier {
  644. item?.image = NSImage(named: "KMImageNameMainToolStrikeththrough")
  645. item?.alternateImage = NSImage(named: "KMImageNameMainToolStrikeththrough")
  646. item?.target = self
  647. item?.btnTag = CAnnotationType.strikeOut.rawValue
  648. item?.boxImagePosition = KMToolBoxImagePosition.only
  649. item?.btnAction = #selector(changeAnnotationMode)
  650. let menuItem = NSMenuItem.init(title: "strikeOut", action: #selector(changeAnnotationMode), target: self)
  651. menuItem?.tag = CAnnotationType.strikeOut.rawValue
  652. item?.menuFormRepresentation = menuItem
  653. } else if identifier == KMToolbarInkAnnotationItemIdentifier {
  654. item?.image = NSImage(named: "KMImageNameMainToolPen")
  655. item?.alternateImage = NSImage(named: "KMImageNameMainToolPen")
  656. item?.target = self
  657. item?.btnTag = CAnnotationType.ink.rawValue
  658. item?.toolTip = NSLocalizedString("Draw freely as you do with a pen", comment: "")
  659. item?.boxImagePosition = KMToolBoxImagePosition.only
  660. item?.btnAction = #selector(changeAnnotationMode)
  661. let menuItem = NSMenuItem.init(title: "Freehand", action: #selector(changeAnnotationMode), target: self)
  662. menuItem?.tag = CAnnotationType.ink.rawValue
  663. item?.menuFormRepresentation = menuItem
  664. } else if identifier == KMToolbarFreeTextAnnotationItemIdentifier {
  665. item?.image = NSImage(named: "KMImageNameMainToolFreeText")
  666. item?.alternateImage = NSImage(named: "KMImageNameMainToolFreeText")
  667. item?.target = self
  668. item?.btnTag = CAnnotationType.freeText.rawValue
  669. item?.toolTip = NSLocalizedString("Text (⌘N)", comment: "")
  670. item?.boxImagePosition = KMToolBoxImagePosition.only
  671. item?.btnAction = #selector(changeAnnotationMode)
  672. let menuItem = NSMenuItem.init(title: "FreeText", action: #selector(changeAnnotationMode), target: self)
  673. menuItem?.tag = CAnnotationType.freeText.rawValue
  674. item?.menuFormRepresentation = menuItem
  675. } else if identifier == KMToolbarAnchoredAnnotationItemIdentifier {
  676. item?.image = NSImage(named: "KMImageNameMainToolAnchored")
  677. item?.alternateImage = NSImage(named: "KMImageNameMainToolAnchored")
  678. item?.target = self
  679. item?.btnTag = CAnnotationType.anchored.rawValue
  680. item?.boxImagePosition = KMToolBoxImagePosition.only
  681. item?.btnAction = #selector(changeAnnotationMode)
  682. let menuItem = NSMenuItem.init(title: "Anchored", action: #selector(changeAnnotationMode), target: self)
  683. menuItem?.tag = CAnnotationType.anchored.rawValue
  684. item?.menuFormRepresentation = menuItem
  685. } else if identifier == KMToolbarSquareAnnotationItemIdentifier {
  686. item?.image = NSImage(named: "KMImageNameMainToolSquare_Default")
  687. item?.alternateImage = NSImage(named: "KMImageNameMainToolSquare_Default")
  688. item?.target = self
  689. item?.btnTag = CAnnotationType.square.rawValue
  690. item?.toolTip = NSLocalizedString("Hold shift to draw square/circle/straight arrow/line", comment: "")
  691. item?.boxImagePosition = KMToolBoxImagePosition.only
  692. item?.btnAction = #selector(changeAnnotationMode)
  693. let menuItem = NSMenuItem.init(title: "Square", action: #selector(changeAnnotationMode), target: self)
  694. menuItem?.tag = CAnnotationType.square.rawValue
  695. item?.menuFormRepresentation = menuItem
  696. } else if identifier == KMToolbarLinkAnnotationItemIdentifier {
  697. item?.image = NSImage(named: "KMImageNameMainToolLine")
  698. item?.alternateImage = NSImage(named: "KMImageNameMainToolLine")
  699. item?.target = self
  700. item?.btnTag = CAnnotationType.link.rawValue
  701. item?.boxImagePosition = KMToolBoxImagePosition.only
  702. item?.btnAction = #selector(changeAnnotationMode)
  703. let menuItem = NSMenuItem.init(title: "Link", action: #selector(changeAnnotationMode), target: self)
  704. menuItem?.tag = CAnnotationType.link.rawValue
  705. item?.menuFormRepresentation = menuItem
  706. } else if identifier == KMToolbarSignSignatureAnnotationItemIdentifier {
  707. item?.image = NSImage(named: "KMImageNameMainToolSignSignature")
  708. item?.alternateImage = NSImage(named: "KMImageNameMainToolSignSignature")
  709. item?.target = self
  710. item?.btnTag = CAnnotationType.signSignature.rawValue
  711. item?.toolTip = NSLocalizedString("Add a handwritten signature or create a signature via the trackpad", comment: "")
  712. item?.boxImagePosition = KMToolBoxImagePosition.only
  713. item?.btnAction = #selector(changeAnnotationMode)
  714. let menuItem = NSMenuItem.init(title: "SignSignature", action: #selector(changeAnnotationMode), target: self)
  715. menuItem?.tag = CAnnotationType.signSignature.rawValue
  716. item?.menuFormRepresentation = menuItem
  717. } else if identifier == KMAnnotationStampToolbarItemIdentifier {
  718. item?.image = NSImage(named: "KMImageNameMainToolStamp")
  719. item?.alternateImage = NSImage(named: "KMImageNameMainToolStamp")
  720. item?.target = self
  721. item?.btnTag = CAnnotationType.stamp.rawValue
  722. item?.toolTip = NSLocalizedString("Add Stamp", comment: "")
  723. item?.boxImagePosition = KMToolBoxImagePosition.only
  724. item?.btnAction = #selector(changeAnnotationMode)
  725. let menuItem = NSMenuItem.init(title: "Stamp", action: #selector(changeAnnotationMode), target: self)
  726. menuItem?.tag = CAnnotationType.stamp.rawValue
  727. item?.menuFormRepresentation = menuItem
  728. } else if identifier == KMToolbarShowToolbarItemIdentifier {
  729. item?.image = NSImage(named: "KMImageNameMainToolShow")
  730. item?.selectedImage = NSImage(named: "KMImageNameMainToolHide")
  731. item?.alternateImage = NSImage(named: "KMImageNameMainToolShow")
  732. item?.selectedBackgroundColor = NSColor.clear
  733. item?.target = self
  734. item?.toolTip = NSLocalizedString("Hide", comment: "")
  735. item?.titleName = NSLocalizedString("Hide", comment: "")
  736. item?.boxImagePosition = KMToolBoxImagePosition.only
  737. item?.btnAction = #selector(showPDFLayoutMode)
  738. let menuItem = NSMenuItem.init(title: "Hide", action: #selector(showPDFLayoutMode), target: self)
  739. item?.menuFormRepresentation = menuItem
  740. } else if identifier == KMToolbarAddTextEditPDFItemIdentifier {
  741. item?.image = NSImage(named: "KMImageNameMainToolFreeText")
  742. item?.alternateImage = NSImage(named: "KMImageNameMainToolFreeText")
  743. item?.target = self
  744. item?.btnTag = CAnnotationType.addText.rawValue
  745. item?.toolTip = NSLocalizedString("Add Text", comment: "")
  746. item?.titleName = NSLocalizedString("Add Text", comment: "")
  747. item?.boxImagePosition = KMToolBoxImagePosition.left
  748. item?.btnAction = #selector(changeAnnotationMode)
  749. let menuItem = NSMenuItem.init(title: "Add Text", action: #selector(changeAnnotationMode), target: self)
  750. menuItem?.tag = CAnnotationType.addText.rawValue
  751. item?.menuFormRepresentation = menuItem
  752. } else if identifier == KMToolbarAddImageEditPDFItemIdentifier {
  753. item?.image = NSImage(named: "KMImageNameMainToolEditImage")
  754. item?.alternateImage = NSImage(named: "KMImageNameMainToolEditImage")
  755. item?.target = self
  756. item?.btnTag = CAnnotationType.addImage.rawValue
  757. item?.toolTip = NSLocalizedString("Add Image", comment: "")
  758. item?.titleName = NSLocalizedString("Add Image", comment: "")
  759. item?.boxImagePosition = KMToolBoxImagePosition.left
  760. item?.btnAction = #selector(changeAnnotationMode)
  761. let menuItem = NSMenuItem.init(title: "Add Image", action: #selector(changeAnnotationMode), target: self)
  762. menuItem?.tag = CAnnotationType.addImage.rawValue
  763. item?.menuFormRepresentation = menuItem
  764. } else if identifier == KMToolbarToolCropItemIdentifier {
  765. item?.image = NSImage(named: "KMImageNameMainToolbarrRight")
  766. item?.alternateImage = NSImage(named: "KMImageNameMainToolbarrRight")
  767. item?.target = self
  768. item?.btnTag = KMToolbarType.crop.rawValue
  769. item?.toolTip = NSLocalizedString("", comment: "")
  770. item?.titleName = NSLocalizedString("Crop", comment: "")
  771. item?.boxImagePosition = KMToolBoxImagePosition.expandLeft
  772. item?.btnAction = #selector(cropMenuAction)
  773. let menuItem = NSMenuItem.init(title: "Crop", action: #selector(cropMenuAction), target: self)
  774. item?.menuFormRepresentation = menuItem
  775. } else if identifier == KMToolbarToolBatesItemIdentifier {
  776. item?.image = NSImage(named: "KMImageNameMainToolsBatesNumber")
  777. item?.alternateImage = NSImage(named: "KMImageNameMainToolsBatesNumber")
  778. item?.target = self
  779. item?.btnTag = KMToolbarType.bates.rawValue
  780. item?.toolTip = NSLocalizedString("Bates Number", comment: "")
  781. item?.titleName = NSLocalizedString("Bates Number", comment: "")
  782. item?.boxImagePosition = KMToolBoxImagePosition.left
  783. item?.btnAction = #selector(batesMenuAction)
  784. let menuItem = NSMenuItem.init(title: "Bates Number", action: #selector(batesMenuAction), target: self)
  785. item?.menuFormRepresentation = menuItem
  786. } else if identifier == KMToolbarToolHeaderFooterItemIdentifier {
  787. item?.image = NSImage(named: "KMImageNameMainToolsHeadeFooter")
  788. item?.alternateImage = NSImage(named: "KMImageNameMainToolsHeadeFooter")
  789. item?.target = self
  790. item?.btnTag = KMToolbarType.headerAndFooter.rawValue
  791. item?.toolTip = NSLocalizedString("Header&Footer", comment: "")
  792. item?.titleName = NSLocalizedString("Header&Footer", comment: "")
  793. item?.boxImagePosition = KMToolBoxImagePosition.left
  794. item?.btnAction = #selector(headerfooterMenuAction)
  795. let menuItem = NSMenuItem.init(title: "Header&Footer", action: #selector(headerfooterMenuAction), target: self)
  796. item?.menuFormRepresentation = menuItem
  797. } else if identifier == KMToolbarToolBackgroundItemIdentifier {
  798. item?.image = NSImage(named: "KMImageNameMainToolsBackgroud")
  799. item?.alternateImage = NSImage(named: "KMImageNameMainToolsBackgroud")
  800. item?.target = self
  801. item?.btnTag = KMToolbarType.background.rawValue
  802. item?.toolTip = NSLocalizedString("Backgroud", comment: "")
  803. item?.titleName = NSLocalizedString("Backgroud", comment: "")
  804. item?.boxImagePosition = KMToolBoxImagePosition.left
  805. item?.btnAction = #selector(backgroundMenuAction)
  806. let menuItem = NSMenuItem.init(title: "Backgroud", action: #selector(backgroundMenuAction), target: self)
  807. item?.menuFormRepresentation = menuItem
  808. } else if identifier == KMToolbarToolWatermarkItemIdentifier {
  809. item?.image = NSImage(named: "KMImageNameMainToolsWatermark")
  810. item?.alternateImage = NSImage(named: "KMImageNameMainToolsWatermark")
  811. item?.target = self
  812. item?.btnTag = KMToolbarType.watermark.rawValue
  813. item?.toolTip = NSLocalizedString("Watermark", comment: "")
  814. item?.titleName = NSLocalizedString("Watermark", comment: "")
  815. item?.boxImagePosition = KMToolBoxImagePosition.left
  816. item?.btnAction = #selector(watermarkMenuAction)
  817. let menuItem = NSMenuItem.init(title: "Watermark", action: #selector(watermarkMenuAction), target: self)
  818. item?.menuFormRepresentation = menuItem
  819. } else if identifier == KMToolbarToolTextFieldItemIdentifier {
  820. item?.image = NSImage(named: "KMImageNameMainToolFormText")
  821. item?.alternateImage = NSImage(named: "KMImageNameMainToolFormText")
  822. item?.target = self
  823. item?.btnTag = CAnnotationType.textField.rawValue
  824. item?.toolTip = NSLocalizedString("TextField", comment: "")
  825. item?.titleName = NSLocalizedString("TextField", comment: "")
  826. item?.boxImagePosition = KMToolBoxImagePosition.only
  827. item?.btnAction = #selector(changeAnnotationMode)
  828. let menuItem = NSMenuItem.init(title: "TextField", action: #selector(changeAnnotationMode), target: self)
  829. menuItem?.tag = item!.btnTag
  830. item?.menuFormRepresentation = menuItem
  831. } else if identifier == KMToolbarToolCheckBoxItemIdentifier {
  832. item?.image = NSImage(named: "KMImageNameMainToolFormCheckbox")
  833. item?.alternateImage = NSImage(named: "KMImageNameMainToolFormCheckbox")
  834. item?.target = self
  835. item?.btnTag = CAnnotationType.checkBox.rawValue
  836. item?.toolTip = NSLocalizedString("CheckBox", comment: "")
  837. item?.titleName = NSLocalizedString("CheckBox", comment: "")
  838. item?.boxImagePosition = KMToolBoxImagePosition.only
  839. item?.btnAction = #selector(changeAnnotationMode)
  840. let menuItem = NSMenuItem.init(title: "CheckBox", action: #selector(changeAnnotationMode), target: self)
  841. menuItem?.tag = item!.btnTag
  842. item?.menuFormRepresentation = menuItem
  843. } else if identifier == KMToolbarToolRadioButtonItemIdentifier {
  844. item?.image = NSImage(named: "KMImageNameMainToolFormRadio")
  845. item?.alternateImage = NSImage(named: "KMImageNameMainToolFormRadio")
  846. item?.target = self
  847. item?.btnTag = CAnnotationType.radioButton.rawValue
  848. item?.toolTip = NSLocalizedString("RadioButton", comment: "")
  849. item?.titleName = NSLocalizedString("RadioButton", comment: "")
  850. item?.boxImagePosition = KMToolBoxImagePosition.only
  851. item?.btnAction = #selector(changeAnnotationMode)
  852. let menuItem = NSMenuItem.init(title: "RadioButton", action: #selector(changeAnnotationMode), target: self)
  853. menuItem?.tag = item!.btnTag
  854. item?.menuFormRepresentation = menuItem
  855. } else if identifier == KMToolbarToolListBoxItemIdentifier {
  856. item?.image = NSImage(named: "KMImageNameMainToolFormListBox")
  857. item?.alternateImage = NSImage(named: "KMImageNameMainToolFormListBox")
  858. item?.target = self
  859. item?.btnTag = CAnnotationType.listMenu.rawValue
  860. item?.toolTip = NSLocalizedString("ListBox", comment: "")
  861. item?.titleName = NSLocalizedString("ListBox", comment: "")
  862. item?.boxImagePosition = KMToolBoxImagePosition.only
  863. item?.btnAction = #selector(changeAnnotationMode)
  864. let menuItem = NSMenuItem.init(title: "ListBox", action: #selector(changeAnnotationMode), target: self)
  865. menuItem?.tag = item!.btnTag
  866. item?.menuFormRepresentation = menuItem
  867. } else if identifier == KMToolbarToolPullDownmenuItemIdentifier {
  868. item?.image = NSImage(named: "KMImageNameMainToolFormPulldown")
  869. item?.alternateImage = NSImage(named: "KMImageNameMainToolFormPulldown")
  870. item?.target = self
  871. item?.btnTag = CAnnotationType.comboBox.rawValue
  872. item?.toolTip = NSLocalizedString("PullDownmenu", comment: "")
  873. item?.titleName = NSLocalizedString("PullDownmenu", comment: "")
  874. item?.boxImagePosition = KMToolBoxImagePosition.only
  875. item?.btnAction = #selector(changeAnnotationMode)
  876. let menuItem = NSMenuItem.init(title: "PullDownmenu", action: #selector(changeAnnotationMode), target: self)
  877. menuItem?.tag = item!.btnTag
  878. item?.menuFormRepresentation = menuItem
  879. } else if identifier == KMToolbarToolButtonIdentifier {
  880. item?.image = NSImage(named: "KMImageNameMainToolFormButton")
  881. item?.alternateImage = NSImage(named: "KMImageNameMainToolFormButton")
  882. item?.target = self
  883. item?.btnTag = CAnnotationType.actionButton.rawValue
  884. item?.toolTip = NSLocalizedString("Button", comment: "")
  885. item?.titleName = NSLocalizedString("Button", comment: "")
  886. item?.boxImagePosition = KMToolBoxImagePosition.only
  887. item?.btnAction = #selector(changeAnnotationMode)
  888. let menuItem = NSMenuItem.init(title: "Button", action: #selector(changeAnnotationMode), target: self)
  889. menuItem?.tag = item!.btnTag
  890. item?.menuFormRepresentation = menuItem
  891. } else if identifier == KMToolbarToolSignBoxIdentifier {
  892. item?.image = NSImage(named: "KMImageNameMainToolFormSign")
  893. item?.alternateImage = NSImage(named: "KMImageNameMainToolFormSign")
  894. item?.target = self
  895. item?.btnTag = CAnnotationType.signature.rawValue
  896. item?.toolTip = NSLocalizedString("SignBox", comment: "")
  897. item?.titleName = NSLocalizedString("SignBox", comment: "")
  898. item?.boxImagePosition = KMToolBoxImagePosition.only
  899. item?.btnAction = #selector(changeAnnotationMode)
  900. let menuItem = NSMenuItem.init(title: "SignBox", action: #selector(changeAnnotationMode), target: self)
  901. menuItem?.tag = item!.btnTag
  902. item?.menuFormRepresentation = menuItem
  903. } else if identifier == KMToolbarToolFormAlignIdentifier {
  904. item?.image = NSImage(named: "KMImageNameMainToolFormAlignment")
  905. item?.alternateImage = NSImage(named: "KMImageNameMainToolFormAlignment")
  906. item?.target = self
  907. item?.toolTip = NSLocalizedString("Alignment", comment: "")
  908. item?.titleName = NSLocalizedString("Alignment", comment: "")
  909. item?.boxImagePosition = KMToolBoxImagePosition.expandLeft
  910. item?.btnAction = #selector(formsAlignmentAction)
  911. let menuItem = NSMenuItem.init(title: "Alignment", action: #selector(formsAlignmentAction), target: self)
  912. menuItem?.tag = item!.btnTag
  913. item?.menuFormRepresentation = menuItem
  914. } else if identifier == KMToolbarToolFormMoreIdentifier {
  915. item?.image = NSImage(named: "KMImageNameMainToolFormMore")
  916. item?.alternateImage = NSImage(named: "KMImageNameMainToolFormMore")
  917. item?.target = self
  918. item?.toolTip = NSLocalizedString("More", comment: "")
  919. item?.titleName = NSLocalizedString("More", comment: "")
  920. item?.boxImagePosition = KMToolBoxImagePosition.expandLeft
  921. item?.btnAction = #selector(formsMoreOperationAction)
  922. let menuItem = NSMenuItem.init(title: "More", action: #selector(formsMoreOperationAction), target: self)
  923. menuItem?.tag = item!.btnTag
  924. item?.menuFormRepresentation = menuItem
  925. } else if identifier == KMToolbarToolRedactItemIdentifier {
  926. item?.image = NSImage(named: "KMImageNameMainToolsRedact")
  927. item?.alternateImage = NSImage(named: "KMImageNameMainToolsRedact")
  928. item?.target = self
  929. item?.btnTag = KMToolbarType.redact.rawValue
  930. item?.toolTip = NSLocalizedString("Redact", comment: "")
  931. item?.titleName = NSLocalizedString("Redact", comment: "")
  932. item?.btnAction = #selector(redactMenuAction)
  933. let menuItem = NSMenuItem.init(title: "Redact", action: #selector(changeAnnotationMode), target: self)
  934. menuItem?.tag = item!.btnTag
  935. item?.menuFormRepresentation = menuItem
  936. } else if identifier == KMToolbarToolCompressItemIdentifier {
  937. item?.image = NSImage(named: "KMImageNameMainToolsCompress")
  938. item?.alternateImage = NSImage(named: "KMImageNameMainToolsCompress")
  939. item?.target = self
  940. item?.btnTag = KMToolbarType.compress.rawValue
  941. item?.toolTip = NSLocalizedString("Reduce file size or custimize the quality to make the document smaller.", comment: "")
  942. item?.titleName = NSLocalizedString("Compress", comment: "")
  943. item?.btnAction = #selector(compressMenuAction)
  944. let menuItem = NSMenuItem.init(title: "Compress", action: #selector(compressMenuAction), target: self)
  945. menuItem?.tag = item!.btnTag
  946. item?.menuFormRepresentation = menuItem
  947. } else if identifier == KMToolbarToolSecureItemIdentifier {
  948. item?.image = NSImage(named: "KMImageNameMainToolsSecurity")
  949. item?.alternateImage = NSImage(named: "KMImageNameMainToolsSecurity")
  950. item?.target = self
  951. item?.btnTag = KMToolbarType.secure.rawValue
  952. item?.toolTip = NSLocalizedString("", comment: "")
  953. item?.titleName = NSLocalizedString("Security", comment: "")
  954. item?.boxImagePosition = KMToolBoxImagePosition.expandLeft
  955. item?.btnAction = #selector(secureMenuAction)
  956. let menuItem = NSMenuItem.init(title: "Security", action: #selector(secureMenuAction), target: self)
  957. menuItem?.tag = item!.btnTag
  958. item?.menuFormRepresentation = menuItem
  959. } else if identifier == KMToolbarToolHookItemIdentifier {
  960. item?.image = NSImage(named: "KMImageNameFillSignHook")
  961. item?.alternateImage = NSImage(named: "KMImageNameFillSignHook")
  962. item?.target = self
  963. item?.btnTag = CAnnotationType.signTure.rawValue
  964. item?.toolTip = NSLocalizedString("Check", comment: "")
  965. item?.titleName = NSLocalizedString("Signature", comment: "")
  966. item?.boxImagePosition = KMToolBoxImagePosition.only
  967. item?.btnAction = #selector(changeAnnotationMode)
  968. let menuItem = NSMenuItem.init(title: "Signature", action: #selector(changeAnnotationMode), target: self)
  969. menuItem?.tag = item!.btnTag
  970. item?.menuFormRepresentation = menuItem
  971. } else if identifier == KMToolbarToolForkItemIdentifier {
  972. item?.image = NSImage(named: "KMImageNameFillSignFork")
  973. item?.alternateImage = NSImage(named: "KMImageNameFillSignFork")
  974. item?.target = self
  975. item?.btnTag = CAnnotationType.signFalse.rawValue
  976. item?.toolTip = NSLocalizedString("X", comment: "")
  977. item?.titleName = NSLocalizedString("signFalse", comment: "")
  978. item?.boxImagePosition = KMToolBoxImagePosition.only
  979. item?.btnAction = #selector(changeAnnotationMode)
  980. let menuItem = NSMenuItem.init(title: "signFalse", action: #selector(changeAnnotationMode), target: self)
  981. menuItem?.tag = item!.btnTag
  982. item?.menuFormRepresentation = menuItem
  983. } else if identifier == KMToolbarToolLineItemIdentifier {
  984. item?.image = NSImage(named: "KMImageNameFillSignLine")
  985. item?.alternateImage = NSImage(named: "KMImageNameFillSignLine")
  986. item?.target = self
  987. item?.btnTag = CAnnotationType.signLine.rawValue
  988. item?.toolTip = NSLocalizedString("Line", comment: "")
  989. item?.titleName = NSLocalizedString("Line", comment: "")
  990. item?.boxImagePosition = KMToolBoxImagePosition.only
  991. item?.btnAction = #selector(changeAnnotationMode)
  992. let menuItem = NSMenuItem.init(title: "Line", action: #selector(changeAnnotationMode), target: self)
  993. menuItem?.tag = item!.btnTag
  994. item?.menuFormRepresentation = menuItem
  995. } else if identifier == KMToolbarToolDotItemIdentifier {
  996. item?.image = NSImage(named: "KMImageNameFillSignDot")
  997. item?.alternateImage = NSImage(named: "KMImageNameFillSignDot")
  998. item?.target = self
  999. item?.btnTag = CAnnotationType.signDot.rawValue
  1000. item?.toolTip = NSLocalizedString("Dot", comment: "")
  1001. item?.titleName = NSLocalizedString("Dot", comment: "")
  1002. item?.boxImagePosition = KMToolBoxImagePosition.only
  1003. item?.btnAction = #selector(changeAnnotationMode)
  1004. let menuItem = NSMenuItem.init(title: "Dot", action: #selector(changeAnnotationMode), target: self)
  1005. menuItem?.tag = item!.btnTag
  1006. item?.menuFormRepresentation = menuItem
  1007. } else if identifier == KMToolbarToolRectangleIdentifier {
  1008. item?.image = NSImage(named: "KMImageNameFillSignRectangle")
  1009. item?.alternateImage = NSImage(named: "KMImageNameFillSignRectangle")
  1010. item?.target = self
  1011. item?.btnTag = CAnnotationType.signCircle.rawValue
  1012. item?.toolTip = NSLocalizedString("Rectangle", comment: "")
  1013. item?.titleName = NSLocalizedString("Rectangle", comment: "")
  1014. item?.boxImagePosition = KMToolBoxImagePosition.only
  1015. item?.btnAction = #selector(changeAnnotationMode)
  1016. let menuItem = NSMenuItem.init(title: "Rectangle", action: #selector(changeAnnotationMode), target: self)
  1017. menuItem?.tag = item!.btnTag
  1018. item?.menuFormRepresentation = menuItem
  1019. } else if identifier == KMToolbarToolTextIdentifier {
  1020. item?.image = NSImage(named: "KMImageNameMainToolFreeText")
  1021. item?.alternateImage = NSImage(named: "KMImageNameMainToolFreeText")
  1022. item?.target = self
  1023. item?.btnTag = CAnnotationType.signText.rawValue
  1024. item?.toolTip = NSLocalizedString("Add a handwritten signature or create a signature via the trackpad", comment: "")
  1025. item?.titleName = NSLocalizedString("signText", comment: "")
  1026. item?.boxImagePosition = KMToolBoxImagePosition.only
  1027. item?.btnAction = #selector(changeAnnotationMode)
  1028. let menuItem = NSMenuItem.init(title: "signText", action: #selector(changeAnnotationMode), target: self)
  1029. menuItem?.tag = item!.btnTag
  1030. item?.menuFormRepresentation = menuItem
  1031. } else if identifier == KMToolbarToolDateIdentifier {
  1032. item?.image = NSImage(named: "KMImageNameFillSignDate")
  1033. item?.alternateImage = NSImage(named: "KMImageNameFillSignDate")
  1034. item?.target = self
  1035. item?.btnTag = CAnnotationType.signDate.rawValue
  1036. item?.toolTip = NSLocalizedString("Date", comment: "")
  1037. item?.titleName = NSLocalizedString("Date", comment: "")
  1038. item?.boxImagePosition = KMToolBoxImagePosition.only
  1039. item?.btnAction = #selector(changeAnnotationMode)
  1040. let menuItem = NSMenuItem.init(title: "Date", action: #selector(changeAnnotationMode), target: self)
  1041. menuItem?.tag = item!.btnTag
  1042. item?.menuFormRepresentation = menuItem
  1043. } else if (identifier == KMToolbarFillSignSignatureIdentifier) {
  1044. item?.image = NSImage(named: "KMImageNameMainToolSignSignature")
  1045. item?.alternateImage = NSImage(named: "KMImageNameMainToolSignSignature")
  1046. item?.target = self
  1047. item?.btnTag = CAnnotationType.signSignature.rawValue
  1048. item?.toolTip = NSLocalizedString("Add a handwritten signature or create a signature via the trackpad", comment: "")
  1049. item?.boxImagePosition = KMToolBoxImagePosition.only
  1050. item?.btnAction = #selector(changeAnnotationMode)
  1051. let menuItem = NSMenuItem.init(title: "SignSignature", action: #selector(changeAnnotationMode), target: self)
  1052. menuItem?.tag = CAnnotationType.signSignature.rawValue
  1053. item?.menuFormRepresentation = menuItem
  1054. } else if identifier == KMToolbarConversionWordItemIdentifier {
  1055. item?.image = NSImage(named: "KMImageNameMainToolConverterWord")
  1056. item?.alternateImage = NSImage(named: "KMImageNameMainToolConverterWord")
  1057. item?.target = self
  1058. item?.btnTag = KMToolbarType.word.rawValue
  1059. item?.toolTip = NSLocalizedString("Convert PDF to editable Word documents.", comment: "")
  1060. item?.titleName = NSLocalizedString("To Word", comment: "")
  1061. item?.boxImagePosition = KMToolBoxImagePosition.left
  1062. item?.btnAction = #selector(conversionMenuItemAction)
  1063. let menuItem = NSMenuItem.init(title: "To Word", action: #selector(conversionMenuItemAction), target: self)
  1064. menuItem?.tag = item!.btnTag
  1065. item?.menuFormRepresentation = menuItem
  1066. } else if identifier == KMToolbarConversionExcelItemIdentifier {
  1067. item?.image = NSImage(named: "KMImageNameMainToolConverterExcel")
  1068. item?.alternateImage = NSImage(named: "KMImageNameMainToolConverterExcel")
  1069. item?.target = self
  1070. item?.btnTag = KMToolbarType.excel.rawValue
  1071. item?.toolTip = NSLocalizedString("Extract data from PDF to Excel", comment: "")
  1072. item?.titleName = NSLocalizedString("To Excel", comment: "")
  1073. item?.boxImagePosition = KMToolBoxImagePosition.left
  1074. item?.btnAction = #selector(conversionMenuItemAction)
  1075. let menuItem = NSMenuItem.init(title: "To Excel", action: #selector(conversionMenuItemAction), target: self)
  1076. menuItem?.tag = item!.btnTag
  1077. item?.menuFormRepresentation = menuItem
  1078. } else if identifier == KMToolbarConversionPPTItemIdentifier {
  1079. item?.image = NSImage(named: "KMImageNameMainToolConverterPPT")
  1080. item?.alternateImage = NSImage(named: "KMImageNameMainToolConverterPPT")
  1081. item?.target = self
  1082. item?.btnTag = KMToolbarType.ppt.rawValue
  1083. item?.toolTip = NSLocalizedString("Convert PDF documents to PPT while retaining formatting", comment: "")
  1084. item?.titleName = NSLocalizedString("To PPT", comment: "")
  1085. item?.boxImagePosition = KMToolBoxImagePosition.left
  1086. item?.btnAction = #selector(conversionMenuItemAction)
  1087. let menuItem = NSMenuItem.init(title: "To PPT", action: #selector(conversionMenuItemAction), target: self)
  1088. menuItem?.tag = item!.btnTag
  1089. item?.menuFormRepresentation = menuItem
  1090. } else if identifier == KMToolbarConversionRTFItemIdentifier {
  1091. item?.image = NSImage(named: "KMImageNameMainToolConverterRTF")
  1092. item?.alternateImage = NSImage(named: "KMImageNameMainToolConverterRTF")
  1093. item?.target = self
  1094. item?.btnTag = KMToolbarType.rtf.rawValue
  1095. item?.toolTip = NSLocalizedString("Convert PDF to RTF that can be opened in almost any word processor", comment: "")
  1096. item?.titleName = NSLocalizedString("To RTF", comment: "")
  1097. item?.boxImagePosition = KMToolBoxImagePosition.left
  1098. item?.btnAction = #selector(conversionMenuItemAction)
  1099. let menuItem = NSMenuItem.init(title: "To RTF", action: #selector(conversionMenuItemAction), target: self)
  1100. menuItem?.tag = item!.btnTag
  1101. item?.menuFormRepresentation = menuItem
  1102. } else if identifier == KMToolbarConversionCSVItemIdentifier {
  1103. item?.image = NSImage(named: "KMImageNameMainToolConverterCSV")
  1104. item?.alternateImage = NSImage(named: "KMImageNameMainToolConverterCSV")
  1105. item?.target = self
  1106. item?.btnTag = KMToolbarType.csv.rawValue
  1107. item?.toolTip = NSLocalizedString("To CSV", comment: "")
  1108. item?.titleName = NSLocalizedString("To CSV", comment: "")
  1109. item?.boxImagePosition = KMToolBoxImagePosition.left
  1110. item?.btnAction = #selector(conversionMenuItemAction)
  1111. let menuItem = NSMenuItem.init(title: "To CSV", action: #selector(conversionMenuItemAction), target: self)
  1112. menuItem?.tag = item!.btnTag
  1113. item?.menuFormRepresentation = menuItem
  1114. } else if identifier == KMToolbarConversionHTMLItemIdentifier {
  1115. item?.image = NSImage(named: "KMImageNameMainToolConverterHTML")
  1116. item?.alternateImage = NSImage(named: "KMImageNameMainToolConverterHTML")
  1117. item?.target = self
  1118. item?.btnTag = KMToolbarType.html.rawValue
  1119. item?.toolTip = NSLocalizedString("To HTML", comment: "")
  1120. item?.titleName = NSLocalizedString("To HTML", comment: "")
  1121. item?.boxImagePosition = KMToolBoxImagePosition.left
  1122. item?.btnAction = #selector(conversionMenuItemAction)
  1123. let menuItem = NSMenuItem.init(title: "To HTML", action: #selector(conversionMenuItemAction), target: self)
  1124. menuItem?.tag = item!.btnTag
  1125. item?.menuFormRepresentation = menuItem
  1126. } else if identifier == KMToolbarConversionTextItemIdentifier {
  1127. item?.image = NSImage(named: "KMImageNameMainToolConverterText")
  1128. item?.alternateImage = NSImage(named: "KMImageNameMainToolConverterText")
  1129. item?.target = self
  1130. item?.btnTag = KMToolbarType.conversion_text.rawValue
  1131. item?.toolTip = NSLocalizedString("To Text", comment: "")
  1132. item?.titleName = NSLocalizedString("To Text", comment: "")
  1133. item?.boxImagePosition = KMToolBoxImagePosition.left
  1134. item?.btnAction = #selector(conversionMenuItemAction)
  1135. let menuItem = NSMenuItem.init(title: "To Text", action: #selector(conversionMenuItemAction), target: self)
  1136. menuItem?.tag = item!.btnTag
  1137. item?.menuFormRepresentation = menuItem
  1138. } else if identifier == KMToolbarConversionImageItemIdentifier {
  1139. item?.image = NSImage(named: "KMImageNameMainToolConverterImage")
  1140. item?.alternateImage = NSImage(named: "KMImageNameMainToolConverterImage")
  1141. item?.target = self
  1142. item?.btnTag = KMToolbarType.conversion_image.rawValue
  1143. item?.toolTip = NSLocalizedString("Convert each page in a PDF to JPEG, JPG, PNG, GIF and other formats", comment: "")
  1144. item?.titleName = NSLocalizedString("To Image", comment: "")
  1145. item?.boxImagePosition = KMToolBoxImagePosition.left
  1146. item?.btnAction = #selector(conversionMenuItemAction)
  1147. let menuItem = NSMenuItem.init(title: "To Image", action: #selector(conversionMenuItemAction), target: self)
  1148. menuItem?.tag = item!.btnTag
  1149. item?.menuFormRepresentation = menuItem
  1150. } else if identifier == KMToolbarToolMergeItemIdentifier {
  1151. item?.image = NSImage(named: "KMImageNameMainToolsMerge")
  1152. item?.alternateImage = NSImage(named: "KMImageNameMainToolsMerge")
  1153. item?.target = self
  1154. item?.btnTag = KMToolbarType.merge.rawValue
  1155. item?.toolTip = NSLocalizedString("Combine multiple files into a new PDF.", comment: "")
  1156. item?.titleName = NSLocalizedString("Merge", comment: "")
  1157. item?.boxImagePosition = KMToolBoxImagePosition.left
  1158. item?.btnAction = #selector(mergeMenuItemAction)
  1159. let menuItem = NSMenuItem.init(title: "Merge", action: #selector(mergeMenuItemAction), target: self)
  1160. menuItem?.tag = item!.btnTag
  1161. item?.menuFormRepresentation = menuItem
  1162. }
  1163. }
  1164. return item
  1165. }
  1166. func validateToolbarItem(_ item: NSToolbarItem) -> Bool {
  1167. return true
  1168. }
  1169. @objc func listViewAnnotationTypeChangeNotification() {
  1170. let annotationType : CAnnotationType = pdfView.annotationType
  1171. if annotationType == .square || annotationType == .circle || annotationType == .arrow || annotationType == .line{
  1172. UserDefaults.standard.set(pdfView.annotationType.rawValue, forKey: KMToolBarToolPDFShapeStyle)
  1173. UserDefaults.standard.synchronize()
  1174. }
  1175. for item in self.toolbar.items {
  1176. if self.toolbarType == .Annatiton || self.toolbarType == .Move || self.toolbarType == .Magnify ||
  1177. self.toolbarType == .Select || self.toolbarType == .SelectZoom {
  1178. item.isSelected = false
  1179. if item.itemIdentifier == KMDocumentAnnotationToolbarItemIdentifier {
  1180. item.isSelected = true
  1181. } else if item.itemIdentifier == KMToolbarHighlightAnnotationItemIdentifier {
  1182. if annotationType == .highlight {
  1183. item.isSelected = true
  1184. }
  1185. } else if item.itemIdentifier == KMToolbarUnderlineAnnotationItemIdentifier {
  1186. if annotationType == .underline {
  1187. item.isSelected = true
  1188. }
  1189. } else if item.itemIdentifier == KMToolbarStrikeOutAnnotationItemIdentifier {
  1190. if annotationType == .strikeOut {
  1191. item.isSelected = true
  1192. }
  1193. } else if item.itemIdentifier == KMToolbarInkAnnotationItemIdentifier {
  1194. if annotationType == .ink || annotationType == .eraser {
  1195. item.isSelected = true
  1196. }
  1197. } else if item.itemIdentifier == KMToolbarFreeTextAnnotationItemIdentifier {
  1198. if annotationType == .freeText {
  1199. item.isSelected = true
  1200. }
  1201. } else if item.itemIdentifier == KMToolbarAnchoredAnnotationItemIdentifier {
  1202. if annotationType == .anchored {
  1203. item.isSelected = true
  1204. }
  1205. } else if item.itemIdentifier == KMToolbarSquareAnnotationItemIdentifier {
  1206. if annotationType == .square || annotationType == .circle || annotationType == .arrow || annotationType == .line {
  1207. item.isSelected = true
  1208. }
  1209. } else if item.itemIdentifier == KMToolbarLinkAnnotationItemIdentifier {
  1210. if annotationType == .link {
  1211. item.isSelected = true
  1212. }
  1213. } else if item.itemIdentifier == KMAnnotationStampToolbarItemIdentifier {
  1214. if annotationType == .stamp {
  1215. item.isSelected = true
  1216. }
  1217. } else if item.itemIdentifier == KMToolbarSignSignatureAnnotationItemIdentifier {
  1218. if annotationType == .signSignature {
  1219. item.isSelected = true
  1220. }
  1221. } else if pdfView.toolMode == .moveToolMode {
  1222. if item.itemIdentifier == KMToolbarMoveToolModeItemIdentifier {
  1223. item.isSelected = true
  1224. }
  1225. } else if pdfView.toolMode == .magnifyToolMode {
  1226. if item.itemIdentifier == KMToolbarMagnifyToolModeItemIdentifier {
  1227. item.isSelected = true
  1228. }
  1229. } else if pdfView.toolMode == .selectToolMode {
  1230. if item.itemIdentifier == KMToolbarSelectToolModeItemIdentifier {
  1231. item.isSelected = true
  1232. }
  1233. } else if pdfView.toolMode == .selectZoomToolMode {
  1234. if item.itemIdentifier == KMToolbarZoomToSelectionItemIdentifier {
  1235. item.isSelected = true
  1236. }
  1237. }
  1238. if (item.itemIdentifier == KMToolbarShowToolbarItemIdentifier) {
  1239. item.isSelected = !self.isShowAllAnnotations
  1240. }
  1241. } else if self.toolbarType == .FillSign {
  1242. item.isSelected = false
  1243. if pdfView.toolMode == .selfSignMode {
  1244. if item.itemIdentifier == KMToolbarToolHookItemIdentifier {
  1245. if annotationType == .signTure {
  1246. item.isSelected = true
  1247. }
  1248. } else if item.itemIdentifier == KMToolbarToolForkItemIdentifier {
  1249. if annotationType == .signFalse {
  1250. item.isSelected = true
  1251. }
  1252. } else if item.itemIdentifier == KMToolbarToolLineItemIdentifier {
  1253. if annotationType == .signLine {
  1254. item.isSelected = true
  1255. }
  1256. } else if item.itemIdentifier == KMToolbarToolDotItemIdentifier {
  1257. if annotationType == .signDot {
  1258. item.isSelected = true
  1259. }
  1260. } else if item.itemIdentifier == KMToolbarToolRectangleIdentifier {
  1261. if annotationType == .signCircle {
  1262. item.isSelected = true
  1263. }
  1264. } else if item.itemIdentifier == KMToolbarToolDateIdentifier {
  1265. if annotationType == .signDate {
  1266. item.isSelected = true
  1267. }
  1268. } else if item.itemIdentifier == KMToolbarToolTextIdentifier {
  1269. if annotationType == .signText {
  1270. item.isSelected = true
  1271. }
  1272. } else if (item.itemIdentifier == KMToolbarFillSignSignatureIdentifier) {
  1273. if (annotationType == .signSignature) {
  1274. item.isSelected = true
  1275. }
  1276. }
  1277. }
  1278. }
  1279. }
  1280. }
  1281. }