Merge pull request #92 from sharpobject/master

Add cut for text input, use cmd instead of ctrl on macs
This commit is contained in:
Kenny Shields 2013-12-03 14:27:57 -08:00
commit e131ed8628
4 changed files with 26 additions and 8 deletions

View File

@ -514,7 +514,7 @@ function newobject:SelectRow(row, ctrl)
end end
end end
elseif v ~= row then elseif v ~= row then
if (not multiselect and ctrl) or (not multiselect and not ctrl) or (multiselect and not ctrl) then if not (multiselect and ctrl) then
v.selected = false v.selected = false
end end
end end

View File

@ -118,7 +118,7 @@ function newobject:mousepressed(x, y, button)
end end
local parent1 = self:GetParent() local parent1 = self:GetParent()
local parent2 = parent1:GetParent() local parent2 = parent1:GetParent()
local ctrldown = love.keyboard.isDown("lctrl") local ctrldown = loveframes.util.IsCtrlDown()
parent2:SelectRow(self, ctrldown) parent2:SelectRow(self, ctrldown)
end end

View File

@ -135,10 +135,8 @@ function newobject:update(dt)
-- keydown check -- keydown check
if keydown ~= "none" then if keydown ~= "none" then
local lctrl = love.keyboard.isDown("lctrl")
local rctrl = love.keyboard.isDown("rctrl")
if time > delay then if time > delay then
if (lctrl or rctrl) and keydown == "v" then if (loveframes.util.IsCtrlDown()) and keydown == "v" then
self:Paste() self:Paste()
else else
self:RunKey(keydown, unicode, true) self:RunKey(keydown, unicode, true)
@ -475,8 +473,6 @@ function newobject:keypressed(key, unicode)
end end
local time = love.timer.getTime() local time = love.timer.getTime()
local lctrl = love.keyboard.isDown("lctrl")
local rctrl = love.keyboard.isDown("rctrl")
local focus = self.focus local focus = self.focus
local repeatdelay = self.repeatdelay local repeatdelay = self.repeatdelay
local alltextselected = self.alltextselected local alltextselected = self.alltextselected
@ -486,7 +482,7 @@ function newobject:keypressed(key, unicode)
self.delay = time + repeatdelay self.delay = time + repeatdelay
self.keydown = key self.keydown = key
if (lctrl or rctrl) and focus then if (loveframes.util.IsCtrlDown()) and focus then
if key == "a" then if key == "a" then
self.alltextselected = true self.alltextselected = true
elseif key == "c" and alltextselected and version == "0.9.0" then elseif key == "c" and alltextselected and version == "0.9.0" then
@ -496,6 +492,15 @@ function newobject:keypressed(key, unicode)
if oncopy then if oncopy then
oncopy(self, text) oncopy(self, text)
end end
elseif key == "x" and alltextselected and version == "0.9.0" and editable then
local text = self:GetText()
local oncut = self.OnCut
love.system.setClipboardText(text)
if oncut then
oncut(self, text)
else
self:SetText("")
end
elseif key == "v" and version == "0.9.0" and editable then elseif key == "v" and version == "0.9.0" and editable then
self:Paste() self:Paste()
end end

View File

@ -361,3 +361,16 @@ function loveframes.util.GetHoverObject()
return loveframes.hoverobject return loveframes.hoverobject
end end
--[[---------------------------------------------------------
- func: loveframes.util.IsCtrlDown()
- desc: checks for ctrl, for use with multiselect, copy,
paste, and such. On OS X it actually looks for cmd.
--]]---------------------------------------------------------
function loveframes.util.IsCtrlDown()
if love._os == "OS X" then
return love.keyboard.isDown("lmeta") or love.keyboard.isDown("rmeta") or
love.keyboard.isDown("lgui") or love.keyboard.isDown("rgui")
end
return love.keyboard.isDown("lctrl") or love.keyboard.isDown("rctrl")
end