hevohevo

pullEventCharKey

Apr 10th, 2014
261
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.07 KB | None | 0 0
  1. function pullEventCharKey()
  2.   local reserved_key = {delete=true, backspace=true, enter=true, tab=true,
  3.     left=true, right=true, up=true, down=true}
  4.   local detected_value = {}
  5.  
  6.   local function pullEvent_key()
  7.     local event, key_code =  os.pullEvent("key")
  8.     local key_name = keys.getName(key_code)
  9.     if reserved_key[key_name] then
  10.       detected_value["key"] = key_name
  11.     end
  12.   end
  13.  
  14.   local function pullEvent_char()
  15.     local event, c =  os.pullEvent("char")
  16.     detected_value["char"] = c
  17.   end
  18.  
  19.   repeat
  20.     detected_value = {}
  21.     parallel.waitForAny(pullEvent_char, pullEvent_key)
  22.   until (detected_value["char"] or detected_value["key"])
  23.   if detected_value["char"] then
  24.     return "char", detected_value["char"]
  25.   else
  26.     return "key", detected_value["key"]
  27.   end
  28. end
  29.  
  30.  
  31.  
  32. write( shell.dir() .. "> " )
  33.  
  34. function h2readLine(tCommandHistory)
  35.   local posX, posY = term.getCursorPos()
  36.   local initPosX = posX
  37.   local sLine = ""
  38.   repeat
  39.     local e, name = pullEventCharKey()
  40.   until name == "enter"
  41.   return sLine
  42. end
  43.  
  44. print(e,' ',name)
Advertisement
Add Comment
Please, Sign In to add comment