mirror of
https://github.com/atom/atom.git
synced 2026-04-28 03:01:47 -04:00
Handle copy/paste using $native
This commit is contained in:
@@ -3,16 +3,7 @@ _ = require 'underscore'
|
||||
module.exports =
|
||||
class Native
|
||||
alert: (message, detailedMessage, buttons) ->
|
||||
alert = OSX.NSAlert.alloc.init
|
||||
alert.setMessageText message
|
||||
alert.setInformativeText detailedMessage
|
||||
callbacks = {}
|
||||
for label, callback of buttons
|
||||
button = alert.addButtonWithTitle label
|
||||
callbacks[button.tag] = callback
|
||||
|
||||
buttonTag = alert.runModal
|
||||
return callbacks[buttonTag]()
|
||||
$native.alert(message, detailedMessage, buttons)
|
||||
|
||||
# path - Optional. The String path to the file to base it on.
|
||||
newWindow: (path) ->
|
||||
@@ -38,49 +29,45 @@ class Native
|
||||
panel.filenames.lastObject.valueOf()
|
||||
|
||||
writeToPasteboard: (text) ->
|
||||
pb = OSX.NSPasteboard.generalPasteboard
|
||||
pb.declareTypes_owner [OSX.NSStringPboardType], null
|
||||
pb.setString_forType text, OSX.NSStringPboardType
|
||||
$native.writeToPasteboard text
|
||||
|
||||
readFromPasteboard: (text) ->
|
||||
pb = OSX.NSPasteboard.generalPasteboard
|
||||
results = pb.readObjectsForClasses_options [OSX.NSString], null
|
||||
results?[0]?.toString()
|
||||
readFromPasteboard: ->
|
||||
$native.readFromPasteboard()
|
||||
|
||||
resetMainMenu: (menu) ->
|
||||
# OSX.NSApp.resetMainMenu
|
||||
OSX.NSApp.resetMainMenu
|
||||
|
||||
addMenuItem: (itemPath, keyPattern) ->
|
||||
# itemPathComponents = itemPath.split /\s*>\s*/
|
||||
# submenu = @buildSubmenuPath(OSX.NSApp.mainMenu, itemPathComponents[0..-2])
|
||||
# title = _.last(itemPathComponents)
|
||||
# unless submenu.itemWithTitle(title)
|
||||
# item = OSX.AtomMenuItem.alloc.initWithTitle_itemPath(title, itemPath).autorelease
|
||||
# item.setKeyEquivalentModifierMask 0 # Because in Cocoa defaults it to NSCommandKeyMask
|
||||
itemPathComponents = itemPath.split /\s*>\s*/
|
||||
submenu = @buildSubmenuPath(OSX.NSApp.mainMenu, itemPathComponents[0..-2])
|
||||
title = _.last(itemPathComponents)
|
||||
unless submenu.itemWithTitle(title)
|
||||
item = OSX.AtomMenuItem.alloc.initWithTitle_itemPath(title, itemPath).autorelease
|
||||
item.setKeyEquivalentModifierMask 0 # Because in Cocoa defaults it to NSCommandKeyMask
|
||||
|
||||
# if keyPattern
|
||||
# bindingSet = new (require('binding-set'))("*", {})
|
||||
# keys = bindingSet.parseKeyPattern keyPattern
|
||||
if keyPattern
|
||||
bindingSet = new (require('binding-set'))("*", {})
|
||||
keys = bindingSet.parseKeyPattern keyPattern
|
||||
|
||||
# modifierMask = (keys.metaKey and OSX.NSCommandKeyMask ) |
|
||||
# (keys.shiftKey and OSX.NSShiftKeyMask) |
|
||||
# (keys.altKey and OSX.NSAlternateKeyMask) |
|
||||
# (keys.ctrlKey and OSX.NSControlKeyMask)
|
||||
modifierMask = (keys.metaKey and OSX.NSCommandKeyMask ) |
|
||||
(keys.shiftKey and OSX.NSShiftKeyMask) |
|
||||
(keys.altKey and OSX.NSAlternateKeyMask) |
|
||||
(keys.ctrlKey and OSX.NSControlKeyMask)
|
||||
|
||||
# item.setKeyEquivalent keys.key
|
||||
# item.setKeyEquivalentModifierMask modifierMask
|
||||
# submenu.addItem(item)
|
||||
item.setKeyEquivalent keys.key
|
||||
item.setKeyEquivalentModifierMask modifierMask
|
||||
submenu.addItem(item)
|
||||
|
||||
buildSubmenuPath: (menu, path) ->
|
||||
# return menu if path.length == 0
|
||||
return menu if path.length == 0
|
||||
|
||||
# first = path[0]
|
||||
# unless item = menu.itemWithTitle(first)
|
||||
# item = OSX.AtomMenuItem.alloc.initWithTitle_action_keyEquivalent(first, null, "").autorelease
|
||||
# menu.addItem(item)
|
||||
# unless submenu = item.submenu
|
||||
# submenu = OSX.NSMenu.alloc.initWithTitle(first)
|
||||
# item.submenu = submenu
|
||||
first = path[0]
|
||||
unless item = menu.itemWithTitle(first)
|
||||
item = OSX.AtomMenuItem.alloc.initWithTitle_action_keyEquivalent(first, null, "").autorelease
|
||||
menu.addItem(item)
|
||||
unless submenu = item.submenu
|
||||
submenu = OSX.NSMenu.alloc.initWithTitle(first)
|
||||
item.submenu = submenu
|
||||
|
||||
# @buildSubmenuPath(submenu, path[1..-1])
|
||||
@buildSubmenuPath(submenu, path[1..-1])
|
||||
|
||||
|
||||
Reference in New Issue
Block a user